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.
Files changed (54) hide show
  1. temporal_flowrensic/__init__.py +2 -0
  2. temporal_flowrensic/_calls.py +185 -0
  3. temporal_flowrensic/_ci.py +56 -0
  4. temporal_flowrensic/_deploy.py +65 -0
  5. temporal_flowrensic/_gen/flowrensic/v1/activity_metrics_pb2.py +76 -0
  6. temporal_flowrensic/_gen/flowrensic/v1/activity_metrics_pb2.pyi +301 -0
  7. temporal_flowrensic/_gen/flowrensic/v1/catalog_pb2.py +60 -0
  8. temporal_flowrensic/_gen/flowrensic/v1/catalog_pb2.pyi +127 -0
  9. temporal_flowrensic/_gen/flowrensic/v1/catch_up_pb2.py +42 -0
  10. temporal_flowrensic/_gen/flowrensic/v1/catch_up_pb2.pyi +71 -0
  11. temporal_flowrensic/_gen/flowrensic/v1/client_calls_pb2.py +49 -0
  12. temporal_flowrensic/_gen/flowrensic/v1/client_calls_pb2.pyi +90 -0
  13. temporal_flowrensic/_gen/flowrensic/v1/cost_pb2.py +52 -0
  14. temporal_flowrensic/_gen/flowrensic/v1/cost_pb2.pyi +107 -0
  15. temporal_flowrensic/_gen/flowrensic/v1/deploy_pb2.py +51 -0
  16. temporal_flowrensic/_gen/flowrensic/v1/deploy_pb2.pyi +92 -0
  17. temporal_flowrensic/_gen/flowrensic/v1/ephemeral_run_pb2.py +107 -0
  18. temporal_flowrensic/_gen/flowrensic/v1/ephemeral_run_pb2.pyi +344 -0
  19. temporal_flowrensic/_gen/flowrensic/v1/finding_pb2.py +76 -0
  20. temporal_flowrensic/_gen/flowrensic/v1/finding_pb2.pyi +371 -0
  21. temporal_flowrensic/_gen/flowrensic/v1/job_pb2.py +46 -0
  22. temporal_flowrensic/_gen/flowrensic/v1/job_pb2.pyi +51 -0
  23. temporal_flowrensic/_gen/flowrensic/v1/load_pb2.py +51 -0
  24. temporal_flowrensic/_gen/flowrensic/v1/load_pb2.pyi +118 -0
  25. temporal_flowrensic/_gen/flowrensic/v1/page_pb2.py +38 -0
  26. temporal_flowrensic/_gen/flowrensic/v1/page_pb2.pyi +23 -0
  27. temporal_flowrensic/_gen/flowrensic/v1/remediation_pb2.py +60 -0
  28. temporal_flowrensic/_gen/flowrensic/v1/remediation_pb2.pyi +157 -0
  29. temporal_flowrensic/_gen/flowrensic/v1/replay_pb2.py +84 -0
  30. temporal_flowrensic/_gen/flowrensic/v1/replay_pb2.pyi +309 -0
  31. temporal_flowrensic/_gen/flowrensic/v1/server_config_pb2.py +48 -0
  32. temporal_flowrensic/_gen/flowrensic/v1/server_config_pb2.pyi +97 -0
  33. temporal_flowrensic/_gen/flowrensic/v1/services_connect.py +3621 -0
  34. temporal_flowrensic/_gen/flowrensic/v1/services_pb2.py +60 -0
  35. temporal_flowrensic/_gen/flowrensic/v1/services_pb2.pyi +20 -0
  36. temporal_flowrensic/_gen/flowrensic/v1/stored_data_pb2.py +43 -0
  37. temporal_flowrensic/_gen/flowrensic/v1/stored_data_pb2.pyi +50 -0
  38. temporal_flowrensic/_gen/flowrensic/v1/workflow_history_pb2.py +47 -0
  39. temporal_flowrensic/_gen/flowrensic/v1/workflow_history_pb2.pyi +102 -0
  40. temporal_flowrensic/_gen/flowrensic/v1/workflow_types_pb2.py +55 -0
  41. temporal_flowrensic/_gen/flowrensic/v1/workflow_types_pb2.pyi +197 -0
  42. temporal_flowrensic/_names.py +42 -0
  43. temporal_flowrensic/_queries.py +61 -0
  44. temporal_flowrensic/_replay.py +378 -0
  45. temporal_flowrensic/_sink.py +574 -0
  46. temporal_flowrensic/_telemetry.py +559 -0
  47. temporal_flowrensic/activity.py +136 -0
  48. temporal_flowrensic/client.py +166 -0
  49. temporal_flowrensic/py.typed +0 -0
  50. temporal_flowrensic/workflow.py +103 -0
  51. temporal_flowrensic_python_sdk-0.6.63.dist-info/METADATA +74 -0
  52. temporal_flowrensic_python_sdk-0.6.63.dist-info/RECORD +54 -0
  53. temporal_flowrensic_python_sdk-0.6.63.dist-info/WHEEL +4 -0
  54. 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: ...