temporal-flowrensic-python-sdk 0.6.63__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.
- temporal_flowrensic/__init__.py +2 -0
- temporal_flowrensic/_calls.py +185 -0
- temporal_flowrensic/_ci.py +56 -0
- temporal_flowrensic/_deploy.py +65 -0
- temporal_flowrensic/_gen/flowrensic/v1/activity_metrics_pb2.py +76 -0
- temporal_flowrensic/_gen/flowrensic/v1/activity_metrics_pb2.pyi +301 -0
- temporal_flowrensic/_gen/flowrensic/v1/catalog_pb2.py +60 -0
- temporal_flowrensic/_gen/flowrensic/v1/catalog_pb2.pyi +127 -0
- temporal_flowrensic/_gen/flowrensic/v1/catch_up_pb2.py +42 -0
- temporal_flowrensic/_gen/flowrensic/v1/catch_up_pb2.pyi +71 -0
- temporal_flowrensic/_gen/flowrensic/v1/client_calls_pb2.py +49 -0
- temporal_flowrensic/_gen/flowrensic/v1/client_calls_pb2.pyi +90 -0
- temporal_flowrensic/_gen/flowrensic/v1/cost_pb2.py +52 -0
- temporal_flowrensic/_gen/flowrensic/v1/cost_pb2.pyi +107 -0
- temporal_flowrensic/_gen/flowrensic/v1/deploy_pb2.py +51 -0
- temporal_flowrensic/_gen/flowrensic/v1/deploy_pb2.pyi +92 -0
- temporal_flowrensic/_gen/flowrensic/v1/ephemeral_run_pb2.py +107 -0
- temporal_flowrensic/_gen/flowrensic/v1/ephemeral_run_pb2.pyi +344 -0
- temporal_flowrensic/_gen/flowrensic/v1/finding_pb2.py +76 -0
- temporal_flowrensic/_gen/flowrensic/v1/finding_pb2.pyi +371 -0
- temporal_flowrensic/_gen/flowrensic/v1/job_pb2.py +46 -0
- temporal_flowrensic/_gen/flowrensic/v1/job_pb2.pyi +51 -0
- temporal_flowrensic/_gen/flowrensic/v1/load_pb2.py +51 -0
- temporal_flowrensic/_gen/flowrensic/v1/load_pb2.pyi +118 -0
- temporal_flowrensic/_gen/flowrensic/v1/page_pb2.py +38 -0
- temporal_flowrensic/_gen/flowrensic/v1/page_pb2.pyi +23 -0
- temporal_flowrensic/_gen/flowrensic/v1/remediation_pb2.py +60 -0
- temporal_flowrensic/_gen/flowrensic/v1/remediation_pb2.pyi +157 -0
- temporal_flowrensic/_gen/flowrensic/v1/replay_pb2.py +84 -0
- temporal_flowrensic/_gen/flowrensic/v1/replay_pb2.pyi +309 -0
- temporal_flowrensic/_gen/flowrensic/v1/server_config_pb2.py +48 -0
- temporal_flowrensic/_gen/flowrensic/v1/server_config_pb2.pyi +97 -0
- temporal_flowrensic/_gen/flowrensic/v1/services_connect.py +3621 -0
- temporal_flowrensic/_gen/flowrensic/v1/services_pb2.py +60 -0
- temporal_flowrensic/_gen/flowrensic/v1/services_pb2.pyi +20 -0
- temporal_flowrensic/_gen/flowrensic/v1/stored_data_pb2.py +43 -0
- temporal_flowrensic/_gen/flowrensic/v1/stored_data_pb2.pyi +50 -0
- temporal_flowrensic/_gen/flowrensic/v1/workflow_history_pb2.py +47 -0
- temporal_flowrensic/_gen/flowrensic/v1/workflow_history_pb2.pyi +102 -0
- temporal_flowrensic/_gen/flowrensic/v1/workflow_types_pb2.py +55 -0
- temporal_flowrensic/_gen/flowrensic/v1/workflow_types_pb2.pyi +197 -0
- temporal_flowrensic/_names.py +42 -0
- temporal_flowrensic/_queries.py +61 -0
- temporal_flowrensic/_replay.py +378 -0
- temporal_flowrensic/_sink.py +574 -0
- temporal_flowrensic/_telemetry.py +559 -0
- temporal_flowrensic/activity.py +136 -0
- temporal_flowrensic/client.py +166 -0
- temporal_flowrensic/py.typed +0 -0
- temporal_flowrensic/workflow.py +103 -0
- temporal_flowrensic_python_sdk-0.6.63.dist-info/METADATA +74 -0
- temporal_flowrensic_python_sdk-0.6.63.dist-info/RECORD +54 -0
- temporal_flowrensic_python_sdk-0.6.63.dist-info/WHEEL +4 -0
- temporal_flowrensic_python_sdk-0.6.63.dist-info/licenses/LICENSE +202 -0
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
|
|
3
|
+
from temporal_flowrensic._gen.flowrensic.v1 import page_pb2 as _page_pb2
|
|
4
|
+
from google.protobuf import timestamp_pb2 as _timestamp_pb2
|
|
5
|
+
from google.protobuf.internal import containers as _containers
|
|
6
|
+
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import message as _message
|
|
9
|
+
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
|
|
10
|
+
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
|
|
11
|
+
|
|
12
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
13
|
+
|
|
14
|
+
class RunStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
15
|
+
__slots__ = ()
|
|
16
|
+
RUN_STATUS_UNSPECIFIED: _ClassVar[RunStatus]
|
|
17
|
+
RUN_STATUS_RUNNING: _ClassVar[RunStatus]
|
|
18
|
+
RUN_STATUS_COMPLETED: _ClassVar[RunStatus]
|
|
19
|
+
RUN_STATUS_FAILED: _ClassVar[RunStatus]
|
|
20
|
+
RUN_STATUS_CANCELED: _ClassVar[RunStatus]
|
|
21
|
+
RUN_STATUS_TERMINATED: _ClassVar[RunStatus]
|
|
22
|
+
RUN_STATUS_TIMED_OUT: _ClassVar[RunStatus]
|
|
23
|
+
RUN_STATUS_CONTINUED_AS_NEW: _ClassVar[RunStatus]
|
|
24
|
+
RUN_STATUS_PAUSED: _ClassVar[RunStatus]
|
|
25
|
+
RUN_STATUS_UNSPECIFIED: RunStatus
|
|
26
|
+
RUN_STATUS_RUNNING: RunStatus
|
|
27
|
+
RUN_STATUS_COMPLETED: RunStatus
|
|
28
|
+
RUN_STATUS_FAILED: RunStatus
|
|
29
|
+
RUN_STATUS_CANCELED: RunStatus
|
|
30
|
+
RUN_STATUS_TERMINATED: RunStatus
|
|
31
|
+
RUN_STATUS_TIMED_OUT: RunStatus
|
|
32
|
+
RUN_STATUS_CONTINUED_AS_NEW: RunStatus
|
|
33
|
+
RUN_STATUS_PAUSED: RunStatus
|
|
34
|
+
|
|
35
|
+
class ReplayHistory(_message.Message):
|
|
36
|
+
__slots__ = ("run_id", "workflow_type", "env", "namespace_id", "status", "events", "started_at", "closed_at", "url", "code_versions", "size_bytes", "temporal_ui_url", "history")
|
|
37
|
+
RUN_ID_FIELD_NUMBER: _ClassVar[int]
|
|
38
|
+
WORKFLOW_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
39
|
+
ENV_FIELD_NUMBER: _ClassVar[int]
|
|
40
|
+
NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
41
|
+
STATUS_FIELD_NUMBER: _ClassVar[int]
|
|
42
|
+
EVENTS_FIELD_NUMBER: _ClassVar[int]
|
|
43
|
+
STARTED_AT_FIELD_NUMBER: _ClassVar[int]
|
|
44
|
+
CLOSED_AT_FIELD_NUMBER: _ClassVar[int]
|
|
45
|
+
URL_FIELD_NUMBER: _ClassVar[int]
|
|
46
|
+
CODE_VERSIONS_FIELD_NUMBER: _ClassVar[int]
|
|
47
|
+
SIZE_BYTES_FIELD_NUMBER: _ClassVar[int]
|
|
48
|
+
TEMPORAL_UI_URL_FIELD_NUMBER: _ClassVar[int]
|
|
49
|
+
HISTORY_FIELD_NUMBER: _ClassVar[int]
|
|
50
|
+
run_id: str
|
|
51
|
+
workflow_type: str
|
|
52
|
+
env: str
|
|
53
|
+
namespace_id: str
|
|
54
|
+
status: RunStatus
|
|
55
|
+
events: int
|
|
56
|
+
started_at: _timestamp_pb2.Timestamp
|
|
57
|
+
closed_at: _timestamp_pb2.Timestamp
|
|
58
|
+
url: str
|
|
59
|
+
code_versions: _containers.RepeatedScalarFieldContainer[str]
|
|
60
|
+
size_bytes: int
|
|
61
|
+
temporal_ui_url: str
|
|
62
|
+
history: bytes
|
|
63
|
+
def __init__(self, run_id: _Optional[str] = ..., workflow_type: _Optional[str] = ..., env: _Optional[str] = ..., namespace_id: _Optional[str] = ..., status: _Optional[_Union[RunStatus, str]] = ..., events: _Optional[int] = ..., started_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., closed_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., url: _Optional[str] = ..., code_versions: _Optional[_Iterable[str]] = ..., size_bytes: _Optional[int] = ..., temporal_ui_url: _Optional[str] = ..., history: _Optional[bytes] = ...) -> None: ...
|
|
64
|
+
|
|
65
|
+
class ListReplayHistoriesRequest(_message.Message):
|
|
66
|
+
__slots__ = ("workflow_type", "envs", "page")
|
|
67
|
+
WORKFLOW_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
68
|
+
ENVS_FIELD_NUMBER: _ClassVar[int]
|
|
69
|
+
PAGE_FIELD_NUMBER: _ClassVar[int]
|
|
70
|
+
workflow_type: str
|
|
71
|
+
envs: _containers.RepeatedScalarFieldContainer[str]
|
|
72
|
+
page: _page_pb2.PageRequest
|
|
73
|
+
def __init__(self, workflow_type: _Optional[str] = ..., envs: _Optional[_Iterable[str]] = ..., page: _Optional[_Union[_page_pb2.PageRequest, _Mapping]] = ...) -> None: ...
|
|
74
|
+
|
|
75
|
+
class LeftOutHistory(_message.Message):
|
|
76
|
+
__slots__ = ("run_id", "reason")
|
|
77
|
+
RUN_ID_FIELD_NUMBER: _ClassVar[int]
|
|
78
|
+
REASON_FIELD_NUMBER: _ClassVar[int]
|
|
79
|
+
run_id: str
|
|
80
|
+
reason: str
|
|
81
|
+
def __init__(self, run_id: _Optional[str] = ..., reason: _Optional[str] = ...) -> None: ...
|
|
82
|
+
|
|
83
|
+
class ListReplayHistoriesResponse(_message.Message):
|
|
84
|
+
__slots__ = ("histories", "left_out", "page")
|
|
85
|
+
HISTORIES_FIELD_NUMBER: _ClassVar[int]
|
|
86
|
+
LEFT_OUT_FIELD_NUMBER: _ClassVar[int]
|
|
87
|
+
PAGE_FIELD_NUMBER: _ClassVar[int]
|
|
88
|
+
histories: _containers.RepeatedCompositeFieldContainer[ReplayHistory]
|
|
89
|
+
left_out: _containers.RepeatedCompositeFieldContainer[LeftOutHistory]
|
|
90
|
+
page: _page_pb2.PageResponse
|
|
91
|
+
def __init__(self, histories: _Optional[_Iterable[_Union[ReplayHistory, _Mapping]]] = ..., left_out: _Optional[_Iterable[_Union[LeftOutHistory, _Mapping]]] = ..., page: _Optional[_Union[_page_pb2.PageResponse, _Mapping]] = ...) -> None: ...
|
|
92
|
+
|
|
93
|
+
class WorkflowInterceptors(_message.Message):
|
|
94
|
+
__slots__ = ("names",)
|
|
95
|
+
NAMES_FIELD_NUMBER: _ClassVar[int]
|
|
96
|
+
names: _containers.RepeatedScalarFieldContainer[str]
|
|
97
|
+
def __init__(self, names: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
98
|
+
|
|
99
|
+
class ReplayResult(_message.Message):
|
|
100
|
+
__slots__ = ("run_id", "code_version", "passed", "error", "workflow_type", "replayed_at", "workflow_interceptors", "env", "ephemeral_run")
|
|
101
|
+
RUN_ID_FIELD_NUMBER: _ClassVar[int]
|
|
102
|
+
CODE_VERSION_FIELD_NUMBER: _ClassVar[int]
|
|
103
|
+
PASSED_FIELD_NUMBER: _ClassVar[int]
|
|
104
|
+
ERROR_FIELD_NUMBER: _ClassVar[int]
|
|
105
|
+
WORKFLOW_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
106
|
+
REPLAYED_AT_FIELD_NUMBER: _ClassVar[int]
|
|
107
|
+
WORKFLOW_INTERCEPTORS_FIELD_NUMBER: _ClassVar[int]
|
|
108
|
+
ENV_FIELD_NUMBER: _ClassVar[int]
|
|
109
|
+
EPHEMERAL_RUN_FIELD_NUMBER: _ClassVar[int]
|
|
110
|
+
run_id: str
|
|
111
|
+
code_version: str
|
|
112
|
+
passed: bool
|
|
113
|
+
error: str
|
|
114
|
+
workflow_type: str
|
|
115
|
+
replayed_at: _timestamp_pb2.Timestamp
|
|
116
|
+
workflow_interceptors: WorkflowInterceptors
|
|
117
|
+
env: str
|
|
118
|
+
ephemeral_run: str
|
|
119
|
+
def __init__(self, run_id: _Optional[str] = ..., code_version: _Optional[str] = ..., passed: bool = ..., error: _Optional[str] = ..., workflow_type: _Optional[str] = ..., replayed_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., workflow_interceptors: _Optional[_Union[WorkflowInterceptors, _Mapping]] = ..., env: _Optional[str] = ..., ephemeral_run: _Optional[str] = ...) -> None: ...
|
|
120
|
+
|
|
121
|
+
class IngestReplayResultsRequest(_message.Message):
|
|
122
|
+
__slots__ = ("results",)
|
|
123
|
+
RESULTS_FIELD_NUMBER: _ClassVar[int]
|
|
124
|
+
results: _containers.RepeatedCompositeFieldContainer[ReplayResult]
|
|
125
|
+
def __init__(self, results: _Optional[_Iterable[_Union[ReplayResult, _Mapping]]] = ...) -> None: ...
|
|
126
|
+
|
|
127
|
+
class IngestReplayResultsResponse(_message.Message):
|
|
128
|
+
__slots__ = ("accepted", "failed")
|
|
129
|
+
ACCEPTED_FIELD_NUMBER: _ClassVar[int]
|
|
130
|
+
FAILED_FIELD_NUMBER: _ClassVar[int]
|
|
131
|
+
accepted: int
|
|
132
|
+
failed: int
|
|
133
|
+
def __init__(self, accepted: _Optional[int] = ..., failed: _Optional[int] = ...) -> None: ...
|
|
134
|
+
|
|
135
|
+
class ListReplayResultsRequest(_message.Message):
|
|
136
|
+
__slots__ = ("workflow_type", "code_version", "page")
|
|
137
|
+
WORKFLOW_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
138
|
+
CODE_VERSION_FIELD_NUMBER: _ClassVar[int]
|
|
139
|
+
PAGE_FIELD_NUMBER: _ClassVar[int]
|
|
140
|
+
workflow_type: str
|
|
141
|
+
code_version: str
|
|
142
|
+
page: _page_pb2.PageRequest
|
|
143
|
+
def __init__(self, workflow_type: _Optional[str] = ..., code_version: _Optional[str] = ..., page: _Optional[_Union[_page_pb2.PageRequest, _Mapping]] = ...) -> None: ...
|
|
144
|
+
|
|
145
|
+
class ListReplayResultsResponse(_message.Message):
|
|
146
|
+
__slots__ = ("results", "page")
|
|
147
|
+
RESULTS_FIELD_NUMBER: _ClassVar[int]
|
|
148
|
+
PAGE_FIELD_NUMBER: _ClassVar[int]
|
|
149
|
+
results: _containers.RepeatedCompositeFieldContainer[ReplayResult]
|
|
150
|
+
page: _page_pb2.PageResponse
|
|
151
|
+
def __init__(self, results: _Optional[_Iterable[_Union[ReplayResult, _Mapping]]] = ..., page: _Optional[_Union[_page_pb2.PageResponse, _Mapping]] = ...) -> None: ...
|
|
152
|
+
|
|
153
|
+
class ReplayRequest(_message.Message):
|
|
154
|
+
__slots__ = ("at", "env", "workflow_type", "candidates", "returned", "left_out", "size_bytes", "outcome", "fetched_by_env", "fetched_by_ephemeral_run", "results_passed", "results_failed")
|
|
155
|
+
AT_FIELD_NUMBER: _ClassVar[int]
|
|
156
|
+
ENV_FIELD_NUMBER: _ClassVar[int]
|
|
157
|
+
WORKFLOW_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
158
|
+
CANDIDATES_FIELD_NUMBER: _ClassVar[int]
|
|
159
|
+
RETURNED_FIELD_NUMBER: _ClassVar[int]
|
|
160
|
+
LEFT_OUT_FIELD_NUMBER: _ClassVar[int]
|
|
161
|
+
SIZE_BYTES_FIELD_NUMBER: _ClassVar[int]
|
|
162
|
+
OUTCOME_FIELD_NUMBER: _ClassVar[int]
|
|
163
|
+
FETCHED_BY_ENV_FIELD_NUMBER: _ClassVar[int]
|
|
164
|
+
FETCHED_BY_EPHEMERAL_RUN_FIELD_NUMBER: _ClassVar[int]
|
|
165
|
+
RESULTS_PASSED_FIELD_NUMBER: _ClassVar[int]
|
|
166
|
+
RESULTS_FAILED_FIELD_NUMBER: _ClassVar[int]
|
|
167
|
+
at: _timestamp_pb2.Timestamp
|
|
168
|
+
env: str
|
|
169
|
+
workflow_type: str
|
|
170
|
+
candidates: int
|
|
171
|
+
returned: int
|
|
172
|
+
left_out: int
|
|
173
|
+
size_bytes: int
|
|
174
|
+
outcome: str
|
|
175
|
+
fetched_by_env: str
|
|
176
|
+
fetched_by_ephemeral_run: str
|
|
177
|
+
results_passed: int
|
|
178
|
+
results_failed: int
|
|
179
|
+
def __init__(self, at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., env: _Optional[str] = ..., workflow_type: _Optional[str] = ..., candidates: _Optional[int] = ..., returned: _Optional[int] = ..., left_out: _Optional[int] = ..., size_bytes: _Optional[int] = ..., outcome: _Optional[str] = ..., fetched_by_env: _Optional[str] = ..., fetched_by_ephemeral_run: _Optional[str] = ..., results_passed: _Optional[int] = ..., results_failed: _Optional[int] = ...) -> None: ...
|
|
180
|
+
|
|
181
|
+
class ListReplayRequestsRequest(_message.Message):
|
|
182
|
+
__slots__ = ("page", "env", "ephemeral_run")
|
|
183
|
+
PAGE_FIELD_NUMBER: _ClassVar[int]
|
|
184
|
+
ENV_FIELD_NUMBER: _ClassVar[int]
|
|
185
|
+
EPHEMERAL_RUN_FIELD_NUMBER: _ClassVar[int]
|
|
186
|
+
page: _page_pb2.PageRequest
|
|
187
|
+
env: str
|
|
188
|
+
ephemeral_run: str
|
|
189
|
+
def __init__(self, page: _Optional[_Union[_page_pb2.PageRequest, _Mapping]] = ..., env: _Optional[str] = ..., ephemeral_run: _Optional[str] = ...) -> None: ...
|
|
190
|
+
|
|
191
|
+
class ListReplayRequestsResponse(_message.Message):
|
|
192
|
+
__slots__ = ("requests", "held", "page")
|
|
193
|
+
REQUESTS_FIELD_NUMBER: _ClassVar[int]
|
|
194
|
+
HELD_FIELD_NUMBER: _ClassVar[int]
|
|
195
|
+
PAGE_FIELD_NUMBER: _ClassVar[int]
|
|
196
|
+
requests: _containers.RepeatedCompositeFieldContainer[ReplayRequest]
|
|
197
|
+
held: int
|
|
198
|
+
page: _page_pb2.PageResponse
|
|
199
|
+
def __init__(self, requests: _Optional[_Iterable[_Union[ReplayRequest, _Mapping]]] = ..., held: _Optional[int] = ..., page: _Optional[_Union[_page_pb2.PageResponse, _Mapping]] = ...) -> None: ...
|
|
200
|
+
|
|
201
|
+
class ReplaySetCount(_message.Message):
|
|
202
|
+
__slots__ = ("workflow_type", "env", "histories", "quarantined", "left_out")
|
|
203
|
+
WORKFLOW_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
204
|
+
ENV_FIELD_NUMBER: _ClassVar[int]
|
|
205
|
+
HISTORIES_FIELD_NUMBER: _ClassVar[int]
|
|
206
|
+
QUARANTINED_FIELD_NUMBER: _ClassVar[int]
|
|
207
|
+
LEFT_OUT_FIELD_NUMBER: _ClassVar[int]
|
|
208
|
+
workflow_type: str
|
|
209
|
+
env: str
|
|
210
|
+
histories: int
|
|
211
|
+
quarantined: int
|
|
212
|
+
left_out: int
|
|
213
|
+
def __init__(self, workflow_type: _Optional[str] = ..., env: _Optional[str] = ..., histories: _Optional[int] = ..., quarantined: _Optional[int] = ..., left_out: _Optional[int] = ...) -> None: ...
|
|
214
|
+
|
|
215
|
+
class ListReplaySetsRequest(_message.Message):
|
|
216
|
+
__slots__ = ("page", "env", "worker_name")
|
|
217
|
+
PAGE_FIELD_NUMBER: _ClassVar[int]
|
|
218
|
+
ENV_FIELD_NUMBER: _ClassVar[int]
|
|
219
|
+
WORKER_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
220
|
+
page: _page_pb2.PageRequest
|
|
221
|
+
env: str
|
|
222
|
+
worker_name: str
|
|
223
|
+
def __init__(self, page: _Optional[_Union[_page_pb2.PageRequest, _Mapping]] = ..., env: _Optional[str] = ..., worker_name: _Optional[str] = ...) -> None: ...
|
|
224
|
+
|
|
225
|
+
class ListReplaySetsResponse(_message.Message):
|
|
226
|
+
__slots__ = ("sets", "envs", "page", "worker_names")
|
|
227
|
+
SETS_FIELD_NUMBER: _ClassVar[int]
|
|
228
|
+
ENVS_FIELD_NUMBER: _ClassVar[int]
|
|
229
|
+
PAGE_FIELD_NUMBER: _ClassVar[int]
|
|
230
|
+
WORKER_NAMES_FIELD_NUMBER: _ClassVar[int]
|
|
231
|
+
sets: _containers.RepeatedCompositeFieldContainer[ReplaySetCount]
|
|
232
|
+
envs: _containers.RepeatedScalarFieldContainer[str]
|
|
233
|
+
page: _page_pb2.PageResponse
|
|
234
|
+
worker_names: _containers.RepeatedScalarFieldContainer[str]
|
|
235
|
+
def __init__(self, sets: _Optional[_Iterable[_Union[ReplaySetCount, _Mapping]]] = ..., envs: _Optional[_Iterable[str]] = ..., page: _Optional[_Union[_page_pb2.PageResponse, _Mapping]] = ..., worker_names: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
236
|
+
|
|
237
|
+
class QuarantinedHistory(_message.Message):
|
|
238
|
+
__slots__ = ("run_id", "workflow_type", "env", "status", "started_at", "closed_at", "user", "reason", "quarantined_at", "url", "temporal_ui_url")
|
|
239
|
+
RUN_ID_FIELD_NUMBER: _ClassVar[int]
|
|
240
|
+
WORKFLOW_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
241
|
+
ENV_FIELD_NUMBER: _ClassVar[int]
|
|
242
|
+
STATUS_FIELD_NUMBER: _ClassVar[int]
|
|
243
|
+
STARTED_AT_FIELD_NUMBER: _ClassVar[int]
|
|
244
|
+
CLOSED_AT_FIELD_NUMBER: _ClassVar[int]
|
|
245
|
+
USER_FIELD_NUMBER: _ClassVar[int]
|
|
246
|
+
REASON_FIELD_NUMBER: _ClassVar[int]
|
|
247
|
+
QUARANTINED_AT_FIELD_NUMBER: _ClassVar[int]
|
|
248
|
+
URL_FIELD_NUMBER: _ClassVar[int]
|
|
249
|
+
TEMPORAL_UI_URL_FIELD_NUMBER: _ClassVar[int]
|
|
250
|
+
run_id: str
|
|
251
|
+
workflow_type: str
|
|
252
|
+
env: str
|
|
253
|
+
status: RunStatus
|
|
254
|
+
started_at: _timestamp_pb2.Timestamp
|
|
255
|
+
closed_at: _timestamp_pb2.Timestamp
|
|
256
|
+
user: str
|
|
257
|
+
reason: str
|
|
258
|
+
quarantined_at: _timestamp_pb2.Timestamp
|
|
259
|
+
url: str
|
|
260
|
+
temporal_ui_url: str
|
|
261
|
+
def __init__(self, run_id: _Optional[str] = ..., workflow_type: _Optional[str] = ..., env: _Optional[str] = ..., status: _Optional[_Union[RunStatus, str]] = ..., started_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., closed_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., user: _Optional[str] = ..., reason: _Optional[str] = ..., quarantined_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., url: _Optional[str] = ..., temporal_ui_url: _Optional[str] = ...) -> None: ...
|
|
262
|
+
|
|
263
|
+
class GetReplaySetRequest(_message.Message):
|
|
264
|
+
__slots__ = ("workflow_type", "page", "env")
|
|
265
|
+
WORKFLOW_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
266
|
+
PAGE_FIELD_NUMBER: _ClassVar[int]
|
|
267
|
+
ENV_FIELD_NUMBER: _ClassVar[int]
|
|
268
|
+
workflow_type: str
|
|
269
|
+
page: _page_pb2.PageRequest
|
|
270
|
+
env: str
|
|
271
|
+
def __init__(self, workflow_type: _Optional[str] = ..., page: _Optional[_Union[_page_pb2.PageRequest, _Mapping]] = ..., env: _Optional[str] = ...) -> None: ...
|
|
272
|
+
|
|
273
|
+
class GetReplaySetResponse(_message.Message):
|
|
274
|
+
__slots__ = ("histories", "left_out", "quarantined", "page")
|
|
275
|
+
HISTORIES_FIELD_NUMBER: _ClassVar[int]
|
|
276
|
+
LEFT_OUT_FIELD_NUMBER: _ClassVar[int]
|
|
277
|
+
QUARANTINED_FIELD_NUMBER: _ClassVar[int]
|
|
278
|
+
PAGE_FIELD_NUMBER: _ClassVar[int]
|
|
279
|
+
histories: _containers.RepeatedCompositeFieldContainer[ReplayHistory]
|
|
280
|
+
left_out: _containers.RepeatedCompositeFieldContainer[LeftOutHistory]
|
|
281
|
+
quarantined: _containers.RepeatedCompositeFieldContainer[QuarantinedHistory]
|
|
282
|
+
page: _page_pb2.PageResponse
|
|
283
|
+
def __init__(self, histories: _Optional[_Iterable[_Union[ReplayHistory, _Mapping]]] = ..., left_out: _Optional[_Iterable[_Union[LeftOutHistory, _Mapping]]] = ..., quarantined: _Optional[_Iterable[_Union[QuarantinedHistory, _Mapping]]] = ..., page: _Optional[_Union[_page_pb2.PageResponse, _Mapping]] = ...) -> None: ...
|
|
284
|
+
|
|
285
|
+
class QuarantineHistoryRequest(_message.Message):
|
|
286
|
+
__slots__ = ("run_id", "user", "reason")
|
|
287
|
+
RUN_ID_FIELD_NUMBER: _ClassVar[int]
|
|
288
|
+
USER_FIELD_NUMBER: _ClassVar[int]
|
|
289
|
+
REASON_FIELD_NUMBER: _ClassVar[int]
|
|
290
|
+
run_id: str
|
|
291
|
+
user: str
|
|
292
|
+
reason: str
|
|
293
|
+
def __init__(self, run_id: _Optional[str] = ..., user: _Optional[str] = ..., reason: _Optional[str] = ...) -> None: ...
|
|
294
|
+
|
|
295
|
+
class QuarantineHistoryResponse(_message.Message):
|
|
296
|
+
__slots__ = ("quarantined",)
|
|
297
|
+
QUARANTINED_FIELD_NUMBER: _ClassVar[int]
|
|
298
|
+
quarantined: QuarantinedHistory
|
|
299
|
+
def __init__(self, quarantined: _Optional[_Union[QuarantinedHistory, _Mapping]] = ...) -> None: ...
|
|
300
|
+
|
|
301
|
+
class ReleaseHistoryRequest(_message.Message):
|
|
302
|
+
__slots__ = ("run_id",)
|
|
303
|
+
RUN_ID_FIELD_NUMBER: _ClassVar[int]
|
|
304
|
+
run_id: str
|
|
305
|
+
def __init__(self, run_id: _Optional[str] = ...) -> None: ...
|
|
306
|
+
|
|
307
|
+
class ReleaseHistoryResponse(_message.Message):
|
|
308
|
+
__slots__ = ()
|
|
309
|
+
def __init__(self) -> None: ...
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: flowrensic/v1/server_config.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
|
+
'flowrensic/v1/server_config.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from temporal_flowrensic._gen.flowrensic.v1 import finding_pb2 as flowrensic_dot_v1_dot_finding__pb2
|
|
26
|
+
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!flowrensic/v1/server_config.proto\x12\rflowrensic.v1\x1a\x1b\x66lowrensic/v1/finding.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x18\n\x16GetServerConfigRequest\"\xba\x01\n\x0b\x43onfigField\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\x12#\n\rdefault_value\x18\x03 \x01(\tR\x0c\x64\x65\x66\x61ultValue\x12\x18\n\x07\x63hanged\x18\x04 \x01(\x08R\x07\x63hanged\x12\x16\n\x06secret\x18\x05 \x01(\x08R\x06secret\x12\x10\n\x03set\x18\x06 \x01(\x08R\x03set\x12\x18\n\x07ignored\x18\x07 \x01(\tR\x07ignored\"S\n\tConfigEnv\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x32\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x1a.flowrensic.v1.ConfigFieldR\x06\x66ields\"\x98\x04\n\x17GetServerConfigResponse\x12:\n\x0bui_base_url\x18\x01 \x01(\x0b\x32\x1a.flowrensic.v1.ConfigFieldR\tuiBaseUrl\x12<\n\x0b\x63lasses_off\x18\x02 \x03(\x0e\x32\x1b.flowrensic.v1.FindingClassR\nclassesOff\x12\x38\n\nthresholds\x18\x03 \x03(\x0b\x32\x18.flowrensic.v1.ThresholdR\nthresholds\x12,\n\x04\x65nvs\x18\x04 \x03(\x0b\x32\x18.flowrensic.v1.ConfigEnvR\x04\x65nvs\x12\x36\n\x08settings\x18\x05 \x03(\x0b\x32\x1a.flowrensic.v1.ConfigFieldR\x08settings\x12<\n\x0cstored_rules\x18\x06 \x03(\x0b\x32\x19.flowrensic.v1.StoredRuleR\x0bstoredRules\x12\x12\n\x04mode\x18\x07 \x01(\tR\x04mode\x12\x36\n\ndata_paths\x18\x08 \x03(\x0b\x32\x17.flowrensic.v1.DataPathR\tdataPaths\x12\x1e\n\x0b\x62lobs_in_s3\x18\t \x01(\x08R\tblobsInS3\x12\x39\n\nstarted_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartedAt\"8\n\x08\x44\x61taPath\x12\x18\n\x07setting\x18\x01 \x01(\tR\x07setting\x12\x12\n\x04path\x18\x02 \x01(\tR\x04path\"\xf9\x02\n\nStoredRule\x12\x12\n\x04rule\x18\x01 \x01(\tR\x04rule\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x14\n\x05stage\x18\x03 \x01(\tR\x05stage\x12\x1f\n\x0bruns_walked\x18\x04 \x01(\x03R\nrunsWalked\x12\x1d\n\nruns_total\x18\x05 \x01(\x03R\trunsTotal\x12!\n\x0cruns_skipped\x18\x06 \x01(\x03R\x0brunsSkipped\x12\'\n\x0f\x66indings_judged\x18\x07 \x01(\x03R\x0e\x66indingsJudged\x12+\n\x11\x66indings_mistaken\x18\x08 \x01(\x03R\x10\x66indingsMistaken\x12\x39\n\nstarted_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartedAt\x12\x33\n\x07\x64one_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x06\x64oneAtb\x06proto3')
|
|
30
|
+
|
|
31
|
+
_globals = globals()
|
|
32
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
33
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flowrensic.v1.server_config_pb2', _globals)
|
|
34
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
35
|
+
DESCRIPTOR._loaded_options = None
|
|
36
|
+
_globals['_GETSERVERCONFIGREQUEST']._serialized_start=114
|
|
37
|
+
_globals['_GETSERVERCONFIGREQUEST']._serialized_end=138
|
|
38
|
+
_globals['_CONFIGFIELD']._serialized_start=141
|
|
39
|
+
_globals['_CONFIGFIELD']._serialized_end=327
|
|
40
|
+
_globals['_CONFIGENV']._serialized_start=329
|
|
41
|
+
_globals['_CONFIGENV']._serialized_end=412
|
|
42
|
+
_globals['_GETSERVERCONFIGRESPONSE']._serialized_start=415
|
|
43
|
+
_globals['_GETSERVERCONFIGRESPONSE']._serialized_end=951
|
|
44
|
+
_globals['_DATAPATH']._serialized_start=953
|
|
45
|
+
_globals['_DATAPATH']._serialized_end=1009
|
|
46
|
+
_globals['_STOREDRULE']._serialized_start=1012
|
|
47
|
+
_globals['_STOREDRULE']._serialized_end=1389
|
|
48
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
|
|
3
|
+
from temporal_flowrensic._gen.flowrensic.v1 import finding_pb2 as _finding_pb2
|
|
4
|
+
from google.protobuf import timestamp_pb2 as _timestamp_pb2
|
|
5
|
+
from google.protobuf.internal import containers as _containers
|
|
6
|
+
from google.protobuf import descriptor as _descriptor
|
|
7
|
+
from google.protobuf import message as _message
|
|
8
|
+
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
|
|
9
|
+
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
|
|
10
|
+
|
|
11
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
12
|
+
|
|
13
|
+
class GetServerConfigRequest(_message.Message):
|
|
14
|
+
__slots__ = ()
|
|
15
|
+
def __init__(self) -> None: ...
|
|
16
|
+
|
|
17
|
+
class ConfigField(_message.Message):
|
|
18
|
+
__slots__ = ("name", "value", "default_value", "changed", "secret", "set", "ignored")
|
|
19
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
20
|
+
VALUE_FIELD_NUMBER: _ClassVar[int]
|
|
21
|
+
DEFAULT_VALUE_FIELD_NUMBER: _ClassVar[int]
|
|
22
|
+
CHANGED_FIELD_NUMBER: _ClassVar[int]
|
|
23
|
+
SECRET_FIELD_NUMBER: _ClassVar[int]
|
|
24
|
+
SET_FIELD_NUMBER: _ClassVar[int]
|
|
25
|
+
IGNORED_FIELD_NUMBER: _ClassVar[int]
|
|
26
|
+
name: str
|
|
27
|
+
value: str
|
|
28
|
+
default_value: str
|
|
29
|
+
changed: bool
|
|
30
|
+
secret: bool
|
|
31
|
+
set: bool
|
|
32
|
+
ignored: str
|
|
33
|
+
def __init__(self, name: _Optional[str] = ..., value: _Optional[str] = ..., default_value: _Optional[str] = ..., changed: bool = ..., secret: bool = ..., set: bool = ..., ignored: _Optional[str] = ...) -> None: ...
|
|
34
|
+
|
|
35
|
+
class ConfigEnv(_message.Message):
|
|
36
|
+
__slots__ = ("name", "fields")
|
|
37
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
38
|
+
FIELDS_FIELD_NUMBER: _ClassVar[int]
|
|
39
|
+
name: str
|
|
40
|
+
fields: _containers.RepeatedCompositeFieldContainer[ConfigField]
|
|
41
|
+
def __init__(self, name: _Optional[str] = ..., fields: _Optional[_Iterable[_Union[ConfigField, _Mapping]]] = ...) -> None: ...
|
|
42
|
+
|
|
43
|
+
class GetServerConfigResponse(_message.Message):
|
|
44
|
+
__slots__ = ("ui_base_url", "classes_off", "thresholds", "envs", "settings", "stored_rules", "mode", "data_paths", "blobs_in_s3", "started_at")
|
|
45
|
+
UI_BASE_URL_FIELD_NUMBER: _ClassVar[int]
|
|
46
|
+
CLASSES_OFF_FIELD_NUMBER: _ClassVar[int]
|
|
47
|
+
THRESHOLDS_FIELD_NUMBER: _ClassVar[int]
|
|
48
|
+
ENVS_FIELD_NUMBER: _ClassVar[int]
|
|
49
|
+
SETTINGS_FIELD_NUMBER: _ClassVar[int]
|
|
50
|
+
STORED_RULES_FIELD_NUMBER: _ClassVar[int]
|
|
51
|
+
MODE_FIELD_NUMBER: _ClassVar[int]
|
|
52
|
+
DATA_PATHS_FIELD_NUMBER: _ClassVar[int]
|
|
53
|
+
BLOBS_IN_S3_FIELD_NUMBER: _ClassVar[int]
|
|
54
|
+
STARTED_AT_FIELD_NUMBER: _ClassVar[int]
|
|
55
|
+
ui_base_url: ConfigField
|
|
56
|
+
classes_off: _containers.RepeatedScalarFieldContainer[_finding_pb2.FindingClass]
|
|
57
|
+
thresholds: _containers.RepeatedCompositeFieldContainer[_finding_pb2.Threshold]
|
|
58
|
+
envs: _containers.RepeatedCompositeFieldContainer[ConfigEnv]
|
|
59
|
+
settings: _containers.RepeatedCompositeFieldContainer[ConfigField]
|
|
60
|
+
stored_rules: _containers.RepeatedCompositeFieldContainer[StoredRule]
|
|
61
|
+
mode: str
|
|
62
|
+
data_paths: _containers.RepeatedCompositeFieldContainer[DataPath]
|
|
63
|
+
blobs_in_s3: bool
|
|
64
|
+
started_at: _timestamp_pb2.Timestamp
|
|
65
|
+
def __init__(self, ui_base_url: _Optional[_Union[ConfigField, _Mapping]] = ..., classes_off: _Optional[_Iterable[_Union[_finding_pb2.FindingClass, str]]] = ..., thresholds: _Optional[_Iterable[_Union[_finding_pb2.Threshold, _Mapping]]] = ..., envs: _Optional[_Iterable[_Union[ConfigEnv, _Mapping]]] = ..., settings: _Optional[_Iterable[_Union[ConfigField, _Mapping]]] = ..., stored_rules: _Optional[_Iterable[_Union[StoredRule, _Mapping]]] = ..., mode: _Optional[str] = ..., data_paths: _Optional[_Iterable[_Union[DataPath, _Mapping]]] = ..., blobs_in_s3: bool = ..., started_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
|
66
|
+
|
|
67
|
+
class DataPath(_message.Message):
|
|
68
|
+
__slots__ = ("setting", "path")
|
|
69
|
+
SETTING_FIELD_NUMBER: _ClassVar[int]
|
|
70
|
+
PATH_FIELD_NUMBER: _ClassVar[int]
|
|
71
|
+
setting: str
|
|
72
|
+
path: str
|
|
73
|
+
def __init__(self, setting: _Optional[str] = ..., path: _Optional[str] = ...) -> None: ...
|
|
74
|
+
|
|
75
|
+
class StoredRule(_message.Message):
|
|
76
|
+
__slots__ = ("rule", "version", "stage", "runs_walked", "runs_total", "runs_skipped", "findings_judged", "findings_mistaken", "started_at", "done_at")
|
|
77
|
+
RULE_FIELD_NUMBER: _ClassVar[int]
|
|
78
|
+
VERSION_FIELD_NUMBER: _ClassVar[int]
|
|
79
|
+
STAGE_FIELD_NUMBER: _ClassVar[int]
|
|
80
|
+
RUNS_WALKED_FIELD_NUMBER: _ClassVar[int]
|
|
81
|
+
RUNS_TOTAL_FIELD_NUMBER: _ClassVar[int]
|
|
82
|
+
RUNS_SKIPPED_FIELD_NUMBER: _ClassVar[int]
|
|
83
|
+
FINDINGS_JUDGED_FIELD_NUMBER: _ClassVar[int]
|
|
84
|
+
FINDINGS_MISTAKEN_FIELD_NUMBER: _ClassVar[int]
|
|
85
|
+
STARTED_AT_FIELD_NUMBER: _ClassVar[int]
|
|
86
|
+
DONE_AT_FIELD_NUMBER: _ClassVar[int]
|
|
87
|
+
rule: str
|
|
88
|
+
version: str
|
|
89
|
+
stage: str
|
|
90
|
+
runs_walked: int
|
|
91
|
+
runs_total: int
|
|
92
|
+
runs_skipped: int
|
|
93
|
+
findings_judged: int
|
|
94
|
+
findings_mistaken: int
|
|
95
|
+
started_at: _timestamp_pb2.Timestamp
|
|
96
|
+
done_at: _timestamp_pb2.Timestamp
|
|
97
|
+
def __init__(self, rule: _Optional[str] = ..., version: _Optional[str] = ..., stage: _Optional[str] = ..., runs_walked: _Optional[int] = ..., runs_total: _Optional[int] = ..., runs_skipped: _Optional[int] = ..., findings_judged: _Optional[int] = ..., findings_mistaken: _Optional[int] = ..., started_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., done_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|