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,60 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: flowrensic/v1/services.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/services.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from temporal_flowrensic._gen.flowrensic.v1 import activity_metrics_pb2 as flowrensic_dot_v1_dot_activity__metrics__pb2
26
+ from temporal_flowrensic._gen.flowrensic.v1 import catalog_pb2 as flowrensic_dot_v1_dot_catalog__pb2
27
+ from temporal_flowrensic._gen.flowrensic.v1 import catch_up_pb2 as flowrensic_dot_v1_dot_catch__up__pb2
28
+ from temporal_flowrensic._gen.flowrensic.v1 import client_calls_pb2 as flowrensic_dot_v1_dot_client__calls__pb2
29
+ from temporal_flowrensic._gen.flowrensic.v1 import cost_pb2 as flowrensic_dot_v1_dot_cost__pb2
30
+ from temporal_flowrensic._gen.flowrensic.v1 import deploy_pb2 as flowrensic_dot_v1_dot_deploy__pb2
31
+ from temporal_flowrensic._gen.flowrensic.v1 import ephemeral_run_pb2 as flowrensic_dot_v1_dot_ephemeral__run__pb2
32
+ from temporal_flowrensic._gen.flowrensic.v1 import finding_pb2 as flowrensic_dot_v1_dot_finding__pb2
33
+ from temporal_flowrensic._gen.flowrensic.v1 import job_pb2 as flowrensic_dot_v1_dot_job__pb2
34
+ from temporal_flowrensic._gen.flowrensic.v1 import load_pb2 as flowrensic_dot_v1_dot_load__pb2
35
+ from temporal_flowrensic._gen.flowrensic.v1 import remediation_pb2 as flowrensic_dot_v1_dot_remediation__pb2
36
+ from temporal_flowrensic._gen.flowrensic.v1 import replay_pb2 as flowrensic_dot_v1_dot_replay__pb2
37
+ from temporal_flowrensic._gen.flowrensic.v1 import server_config_pb2 as flowrensic_dot_v1_dot_server__config__pb2
38
+ from temporal_flowrensic._gen.flowrensic.v1 import stored_data_pb2 as flowrensic_dot_v1_dot_stored__data__pb2
39
+ from temporal_flowrensic._gen.flowrensic.v1 import workflow_history_pb2 as flowrensic_dot_v1_dot_workflow__history__pb2
40
+ from temporal_flowrensic._gen.flowrensic.v1 import workflow_types_pb2 as flowrensic_dot_v1_dot_workflow__types__pb2
41
+
42
+
43
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lowrensic/v1/services.proto\x12\rflowrensic.v1\x1a$flowrensic/v1/activity_metrics.proto\x1a\x1b\x66lowrensic/v1/catalog.proto\x1a\x1c\x66lowrensic/v1/catch_up.proto\x1a flowrensic/v1/client_calls.proto\x1a\x18\x66lowrensic/v1/cost.proto\x1a\x1a\x66lowrensic/v1/deploy.proto\x1a!flowrensic/v1/ephemeral_run.proto\x1a\x1b\x66lowrensic/v1/finding.proto\x1a\x17\x66lowrensic/v1/job.proto\x1a\x18\x66lowrensic/v1/load.proto\x1a\x1f\x66lowrensic/v1/remediation.proto\x1a\x1a\x66lowrensic/v1/replay.proto\x1a!flowrensic/v1/server_config.proto\x1a\x1f\x66lowrensic/v1/stored_data.proto\x1a$flowrensic/v1/workflow_history.proto\x1a\"flowrensic/v1/workflow_types.proto2\x82\x03\n\x0e\x43\x61talogService\x12h\n\x11RegisterNamespace\x12\'.flowrensic.v1.RegisterNamespaceRequest\x1a(.flowrensic.v1.RegisterNamespaceResponse\"\x00\x12M\n\x08ListEnvs\x12\x1e.flowrensic.v1.ListEnvsRequest\x1a\x1f.flowrensic.v1.ListEnvsResponse\"\x00\x12V\n\x0bListServers\x12!.flowrensic.v1.ListServersRequest\x1a\".flowrensic.v1.ListServersResponse\"\x00\x12_\n\x0eListNamespaces\x12$.flowrensic.v1.ListNamespacesRequest\x1a%.flowrensic.v1.ListNamespacesResponse\"\x00\x32\x84\x0b\n\rIngestService\x12q\n\x14IngestActivityEvents\x12*.flowrensic.v1.IngestActivityEventsRequest\x1a+.flowrensic.v1.IngestActivityEventsResponse\"\x00\x12\\\n\rIngestHistory\x12#.flowrensic.v1.IngestHistoryRequest\x1a$.flowrensic.v1.IngestHistoryResponse\"\x00\x12n\n\x13IngestReplayResults\x12).flowrensic.v1.IngestReplayResultsRequest\x1a*.flowrensic.v1.IngestReplayResultsResponse\"\x00\x12t\n\x15\x45phemeralRunHandshake\x12+.flowrensic.v1.EphemeralRunHandshakeRequest\x1a,.flowrensic.v1.EphemeralRunHandshakeResponse\"\x00\x12\x80\x01\n\x19IngestEphemeralRunMetrics\x12/.flowrensic.v1.IngestEphemeralRunMetricsRequest\x1a\x30.flowrensic.v1.IngestEphemeralRunMetricsResponse\"\x00\x12n\n\x13IngestWorkerMetrics\x12).flowrensic.v1.IngestWorkerMetricsRequest\x1a*.flowrensic.v1.IngestWorkerMetricsResponse\"\x00\x12n\n\x13IngestEngineHistory\x12).flowrensic.v1.IngestEngineHistoryRequest\x1a*.flowrensic.v1.IngestEngineHistoryResponse\"\x00\x12q\n\x14\x45phemeralRunHandover\x12*.flowrensic.v1.EphemeralRunHandoverRequest\x1a+.flowrensic.v1.EphemeralRunHandoverResponse\"\x00\x12S\n\nWorkerBeat\x12 .flowrensic.v1.WorkerBeatRequest\x1a!.flowrensic.v1.WorkerBeatResponse\"\x00\x12S\n\nOldWorkers\x12 .flowrensic.v1.OldWorkersRequest\x1a!.flowrensic.v1.OldWorkersResponse\"\x00\x12h\n\x11IngestDeployStage\x12\'.flowrensic.v1.IngestDeployStageRequest\x1a(.flowrensic.v1.IngestDeployStageResponse\"\x00\x12h\n\x11IngestClientCalls\x12\'.flowrensic.v1.IngestClientCallsRequest\x1a(.flowrensic.v1.IngestClientCallsResponse\"\x00\x12h\n\x11IngestQueryCounts\x12\'.flowrensic.v1.IngestQueryCountsRequest\x1a(.flowrensic.v1.IngestQueryCountsResponse\"\x00\x32\x99\x18\n\x0cQueryService\x12\\\n\rActivityStats\x12#.flowrensic.v1.ActivityStatsRequest\x1a$.flowrensic.v1.ActivityStatsResponse\"\x00\x12M\n\x08ListRuns\x12\x1e.flowrensic.v1.ListRunsRequest\x1a\x1f.flowrensic.v1.ListRunsResponse\"\x00\x12Y\n\x0cListFindings\x12\".flowrensic.v1.ListFindingsRequest\x1a#.flowrensic.v1.ListFindingsResponse\"\x00\x12S\n\nListAlerts\x12 .flowrensic.v1.ListAlertsRequest\x1a!.flowrensic.v1.ListAlertsResponse\"\x00\x12\\\n\rEngineMetrics\x12#.flowrensic.v1.EngineMetricsRequest\x1a$.flowrensic.v1.EngineMetricsResponse\"\x00\x12\x65\n\x10UpdateRejections\x12&.flowrensic.v1.UpdateRejectionsRequest\x1a\'.flowrensic.v1.UpdateRejectionsResponse\"\x00\x12n\n\x13ListReplayHistories\x12).flowrensic.v1.ListReplayHistoriesRequest\x1a*.flowrensic.v1.ListReplayHistoriesResponse\"\x00\x12h\n\x11ListReplayResults\x12\'.flowrensic.v1.ListReplayResultsRequest\x1a(.flowrensic.v1.ListReplayResultsResponse\"\x00\x12k\n\x12ListReplayRequests\x12(.flowrensic.v1.ListReplayRequestsRequest\x1a).flowrensic.v1.ListReplayRequestsResponse\"\x00\x12_\n\x0eListReplaySets\x12$.flowrensic.v1.ListReplaySetsRequest\x1a%.flowrensic.v1.ListReplaySetsResponse\"\x00\x12Y\n\x0cGetReplaySet\x12\".flowrensic.v1.GetReplaySetRequest\x1a#.flowrensic.v1.GetReplaySetResponse\"\x00\x12h\n\x11QuarantineHistory\x12\'.flowrensic.v1.QuarantineHistoryRequest\x1a(.flowrensic.v1.QuarantineHistoryResponse\"\x00\x12_\n\x0eReleaseHistory\x12$.flowrensic.v1.ReleaseHistoryRequest\x1a%.flowrensic.v1.ReleaseHistoryResponse\"\x00\x12h\n\x11ListWorkflowTypes\x12\'.flowrensic.v1.ListWorkflowTypesRequest\x1a(.flowrensic.v1.ListWorkflowTypesResponse\"\x00\x12\x62\n\x0fGetWorkflowType\x12%.flowrensic.v1.GetWorkflowTypeRequest\x1a&.flowrensic.v1.GetWorkflowTypeResponse\"\x00\x12h\n\x11ListEphemeralRuns\x12\'.flowrensic.v1.ListEphemeralRunsRequest\x1a(.flowrensic.v1.ListEphemeralRunsResponse\"\x00\x12\x80\x01\n\x19ListEphemeralRunSummaries\x12/.flowrensic.v1.ListEphemeralRunSummariesRequest\x1a\x30.flowrensic.v1.ListEphemeralRunSummariesResponse\"\x00\x12k\n\x12\x44\x65leteEphemeralRun\x12(.flowrensic.v1.DeleteEphemeralRunRequest\x1a).flowrensic.v1.DeleteEphemeralRunResponse\"\x00\x12w\n\x16GetEphemeralRunSummary\x12,.flowrensic.v1.GetEphemeralRunSummaryRequest\x1a-.flowrensic.v1.GetEphemeralRunSummaryResponse\"\x00\x12n\n\x13\x45phemeralRunMetrics\x12).flowrensic.v1.EphemeralRunMetricsRequest\x1a*.flowrensic.v1.EphemeralRunMetricsResponse\"\x00\x12\\\n\rWorkerMetrics\x12#.flowrensic.v1.WorkerMetricsRequest\x1a$.flowrensic.v1.WorkerMetricsResponse\"\x00\x12\\\n\rCostBreakdown\x12#.flowrensic.v1.CostBreakdownRequest\x1a$.flowrensic.v1.CostBreakdownResponse\"\x00\x12\\\n\rGetDeployment\x12#.flowrensic.v1.GetDeploymentRequest\x1a$.flowrensic.v1.GetDeploymentResponse\"\x00\x12n\n\x13\x44\x65ployAttemptCounts\x12).flowrensic.v1.DeployAttemptCountsRequest\x1a*.flowrensic.v1.DeployAttemptCountsResponse\"\x00\x12_\n\x0eListThresholds\x12$.flowrensic.v1.ListThresholdsRequest\x1a%.flowrensic.v1.ListThresholdsResponse\"\x00\x12S\n\nGetFinding\x12 .flowrensic.v1.GetFindingRequest\x1a!.flowrensic.v1.GetFindingResponse\"\x00\x12\x65\n\x10SetFindingStatus\x12&.flowrensic.v1.SetFindingStatusRequest\x1a\'.flowrensic.v1.SetFindingStatusResponse\"\x00\x12\x62\n\x0fGetServerConfig\x12%.flowrensic.v1.GetServerConfigRequest\x1a&.flowrensic.v1.GetServerConfigResponse\"\x00\x12\\\n\rGetStoredData\x12#.flowrensic.v1.GetStoredDataRequest\x1a$.flowrensic.v1.GetStoredDataResponse\"\x00\x12S\n\nGetCatchUp\x12 .flowrensic.v1.GetCatchUpRequest\x1a!.flowrensic.v1.GetCatchUpResponse\"\x00\x12J\n\x07GetLoad\x12\x1d.flowrensic.v1.GetLoadRequest\x1a\x1e.flowrensic.v1.GetLoadResponse\"\x00\x32\xb1\x02\n\x12RemediationService\x12\x62\n\x0fRemediationPlan\x12%.flowrensic.v1.RemediationPlanRequest\x1a&.flowrensic.v1.RemediationPlanResponse\"\x00\x12P\n\tRemediate\x12\x1f.flowrensic.v1.RemediateRequest\x1a .flowrensic.v1.RemediateResponse\"\x00\x12\x65\n\x10ListRemediations\x12&.flowrensic.v1.ListRemediationsRequest\x1a\'.flowrensic.v1.ListRemediationsResponse\"\x00\x32U\n\nJobService\x12G\n\x06RunJob\x12\x1c.flowrensic.v1.RunJobRequest\x1a\x1d.flowrensic.v1.RunJobResponse\"\x00\x62\x06proto3')
44
+
45
+ _globals = globals()
46
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
47
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flowrensic.v1.services_pb2', _globals)
48
+ if not _descriptor._USE_C_DESCRIPTORS:
49
+ DESCRIPTOR._loaded_options = None
50
+ _globals['_CATALOGSERVICE']._serialized_start=551
51
+ _globals['_CATALOGSERVICE']._serialized_end=937
52
+ _globals['_INGESTSERVICE']._serialized_start=940
53
+ _globals['_INGESTSERVICE']._serialized_end=2352
54
+ _globals['_QUERYSERVICE']._serialized_start=2355
55
+ _globals['_QUERYSERVICE']._serialized_end=5452
56
+ _globals['_REMEDIATIONSERVICE']._serialized_start=5455
57
+ _globals['_REMEDIATIONSERVICE']._serialized_end=5760
58
+ _globals['_JOBSERVICE']._serialized_start=5762
59
+ _globals['_JOBSERVICE']._serialized_end=5847
60
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,20 @@
1
+ from temporal_flowrensic._gen.flowrensic.v1 import activity_metrics_pb2 as _activity_metrics_pb2
2
+ from temporal_flowrensic._gen.flowrensic.v1 import catalog_pb2 as _catalog_pb2
3
+ from temporal_flowrensic._gen.flowrensic.v1 import catch_up_pb2 as _catch_up_pb2
4
+ from temporal_flowrensic._gen.flowrensic.v1 import client_calls_pb2 as _client_calls_pb2
5
+ from temporal_flowrensic._gen.flowrensic.v1 import cost_pb2 as _cost_pb2
6
+ from temporal_flowrensic._gen.flowrensic.v1 import deploy_pb2 as _deploy_pb2
7
+ from temporal_flowrensic._gen.flowrensic.v1 import ephemeral_run_pb2 as _ephemeral_run_pb2
8
+ from temporal_flowrensic._gen.flowrensic.v1 import finding_pb2 as _finding_pb2
9
+ from temporal_flowrensic._gen.flowrensic.v1 import job_pb2 as _job_pb2
10
+ from temporal_flowrensic._gen.flowrensic.v1 import load_pb2 as _load_pb2
11
+ from temporal_flowrensic._gen.flowrensic.v1 import remediation_pb2 as _remediation_pb2
12
+ from temporal_flowrensic._gen.flowrensic.v1 import replay_pb2 as _replay_pb2
13
+ from temporal_flowrensic._gen.flowrensic.v1 import server_config_pb2 as _server_config_pb2
14
+ from temporal_flowrensic._gen.flowrensic.v1 import stored_data_pb2 as _stored_data_pb2
15
+ from temporal_flowrensic._gen.flowrensic.v1 import workflow_history_pb2 as _workflow_history_pb2
16
+ from temporal_flowrensic._gen.flowrensic.v1 import workflow_types_pb2 as _workflow_types_pb2
17
+ from google.protobuf import descriptor as _descriptor
18
+ from typing import ClassVar as _ClassVar
19
+
20
+ DESCRIPTOR: _descriptor.FileDescriptor
@@ -0,0 +1,43 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: flowrensic/v1/stored_data.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/stored_data.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\x1f\x66lowrensic/v1/stored_data.proto\x12\rflowrensic.v1\x1a\x1fgoogle/protobuf/timestamp.proto\".\n\x14GetStoredDataRequest\x12\x16\n\x06recent\x18\x01 \x01(\x08R\x06recent\"\xf7\x01\n\nStoredKind\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05\x63ount\x18\x02 \x01(\x03R\x05\x63ount\x12\x32\n\x06oldest\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x06oldest\x12\x32\n\x06newest\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x06newest\x12=\n\x0clast_arrival\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0blastArrival\x12\x1a\n\x08schedule\x18\x06 \x01(\tR\x08schedule\"N\n\tStoredEnv\x12\x10\n\x03\x65nv\x18\x01 \x01(\tR\x03\x65nv\x12/\n\x05kinds\x18\x02 \x03(\x0b\x32\x19.flowrensic.v1.StoredKindR\x05kinds\"\xa4\x01\n\x15GetStoredDataResponse\x12/\n\x05kinds\x18\x01 \x03(\x0b\x32\x19.flowrensic.v1.StoredKindR\x05kinds\x12,\n\x03now\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x03now\x12,\n\x04\x65nvs\x18\x03 \x03(\x0b\x32\x18.flowrensic.v1.StoredEnvR\x04\x65nvsb\x06proto3')
29
+
30
+ _globals = globals()
31
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
32
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flowrensic.v1.stored_data_pb2', _globals)
33
+ if not _descriptor._USE_C_DESCRIPTORS:
34
+ DESCRIPTOR._loaded_options = None
35
+ _globals['_GETSTOREDDATAREQUEST']._serialized_start=83
36
+ _globals['_GETSTOREDDATAREQUEST']._serialized_end=129
37
+ _globals['_STOREDKIND']._serialized_start=132
38
+ _globals['_STOREDKIND']._serialized_end=379
39
+ _globals['_STOREDENV']._serialized_start=381
40
+ _globals['_STOREDENV']._serialized_end=459
41
+ _globals['_GETSTOREDDATARESPONSE']._serialized_start=462
42
+ _globals['_GETSTOREDDATARESPONSE']._serialized_end=626
43
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,50 @@
1
+ import datetime
2
+
3
+ from google.protobuf import timestamp_pb2 as _timestamp_pb2
4
+ from google.protobuf.internal import containers as _containers
5
+ from google.protobuf import descriptor as _descriptor
6
+ from google.protobuf import message as _message
7
+ from collections.abc import Iterable as _Iterable, Mapping as _Mapping
8
+ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
9
+
10
+ DESCRIPTOR: _descriptor.FileDescriptor
11
+
12
+ class GetStoredDataRequest(_message.Message):
13
+ __slots__ = ("recent",)
14
+ RECENT_FIELD_NUMBER: _ClassVar[int]
15
+ recent: bool
16
+ def __init__(self, recent: bool = ...) -> None: ...
17
+
18
+ class StoredKind(_message.Message):
19
+ __slots__ = ("key", "count", "oldest", "newest", "last_arrival", "schedule")
20
+ KEY_FIELD_NUMBER: _ClassVar[int]
21
+ COUNT_FIELD_NUMBER: _ClassVar[int]
22
+ OLDEST_FIELD_NUMBER: _ClassVar[int]
23
+ NEWEST_FIELD_NUMBER: _ClassVar[int]
24
+ LAST_ARRIVAL_FIELD_NUMBER: _ClassVar[int]
25
+ SCHEDULE_FIELD_NUMBER: _ClassVar[int]
26
+ key: str
27
+ count: int
28
+ oldest: _timestamp_pb2.Timestamp
29
+ newest: _timestamp_pb2.Timestamp
30
+ last_arrival: _timestamp_pb2.Timestamp
31
+ schedule: str
32
+ def __init__(self, key: _Optional[str] = ..., count: _Optional[int] = ..., oldest: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., newest: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., last_arrival: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., schedule: _Optional[str] = ...) -> None: ...
33
+
34
+ class StoredEnv(_message.Message):
35
+ __slots__ = ("env", "kinds")
36
+ ENV_FIELD_NUMBER: _ClassVar[int]
37
+ KINDS_FIELD_NUMBER: _ClassVar[int]
38
+ env: str
39
+ kinds: _containers.RepeatedCompositeFieldContainer[StoredKind]
40
+ def __init__(self, env: _Optional[str] = ..., kinds: _Optional[_Iterable[_Union[StoredKind, _Mapping]]] = ...) -> None: ...
41
+
42
+ class GetStoredDataResponse(_message.Message):
43
+ __slots__ = ("kinds", "now", "envs")
44
+ KINDS_FIELD_NUMBER: _ClassVar[int]
45
+ NOW_FIELD_NUMBER: _ClassVar[int]
46
+ ENVS_FIELD_NUMBER: _ClassVar[int]
47
+ kinds: _containers.RepeatedCompositeFieldContainer[StoredKind]
48
+ now: _timestamp_pb2.Timestamp
49
+ envs: _containers.RepeatedCompositeFieldContainer[StoredEnv]
50
+ def __init__(self, kinds: _Optional[_Iterable[_Union[StoredKind, _Mapping]]] = ..., now: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., envs: _Optional[_Iterable[_Union[StoredEnv, _Mapping]]] = ...) -> None: ...
@@ -0,0 +1,47 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: flowrensic/v1/workflow_history.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/workflow_history.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
26
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
27
+ from temporal_flowrensic._gen.flowrensic.v1 import catalog_pb2 as flowrensic_dot_v1_dot_catalog__pb2
28
+
29
+
30
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$flowrensic/v1/workflow_history.proto\x12\rflowrensic.v1\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1b\x66lowrensic/v1/catalog.proto\"\xc7\x01\n\x05\x45vent\x12\x10\n\x03seq\x18\x01 \x01(\x03R\x03seq\x12,\n\x04kind\x18\x02 \x01(\x0e\x32\x18.flowrensic.v1.EventKindR\x04kind\x12.\n\x04time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x04time\x12\x1f\n\x0b\x65ngine_type\x18\x04 \x01(\tR\nengineType\x12-\n\x05\x61ttrs\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructR\x05\x61ttrs\"\x9b\x01\n\x07History\x12\x15\n\x06run_id\x18\x01 \x01(\tR\x05runId\x12-\n\x06\x65ngine\x18\x02 \x01(\x0e\x32\x15.flowrensic.v1.EngineR\x06\x65ngine\x12\x1c\n\ttruncated\x18\x03 \x01(\x08R\ttruncated\x12,\n\x06\x65vents\x18\x04 \x03(\x0b\x32\x14.flowrensic.v1.EventR\x06\x65vents\"[\n\x14IngestHistoryRequest\x12\x30\n\x07history\x18\x01 \x01(\x0b\x32\x16.flowrensic.v1.HistoryR\x07historyJ\x04\x08\x02\x10\x03R\x0b\x63urrent_env\"b\n\x15IngestHistoryResponse\x12\x15\n\x06run_id\x18\x01 \x01(\tR\x05runId\x12\x16\n\x06\x65vents\x18\x02 \x01(\x05R\x06\x65vents\x12\x1a\n\x08\x66indings\x18\x03 \x01(\x05R\x08\x66indings*\xf8\x05\n\tEventKind\x12\x1a\n\x16\x45VENT_KIND_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x45VENT_KIND_WORKFLOW_STARTED\x10\x01\x12&\n\"EVENT_KIND_WORKFLOW_TASK_SCHEDULED\x10\x02\x12$\n EVENT_KIND_WORKFLOW_TASK_STARTED\x10\x03\x12&\n\"EVENT_KIND_WORKFLOW_TASK_COMPLETED\x10\x04\x12#\n\x1f\x45VENT_KIND_WORKFLOW_TASK_FAILED\x10\x05\x12&\n\"EVENT_KIND_WORKFLOW_TASK_TIMED_OUT\x10\x06\x12!\n\x1d\x45VENT_KIND_ACTIVITY_SCHEDULED\x10\x07\x12\x1f\n\x1b\x45VENT_KIND_ACTIVITY_STARTED\x10\x08\x12!\n\x1d\x45VENT_KIND_ACTIVITY_COMPLETED\x10\t\x12\x1e\n\x1a\x45VENT_KIND_ACTIVITY_FAILED\x10\n\x12!\n\x1d\x45VENT_KIND_ACTIVITY_TIMED_OUT\x10\x0b\x12 \n\x1c\x45VENT_KIND_ACTIVITY_CANCELED\x10\x0c\x12\x1c\n\x18\x45VENT_KIND_TIMER_STARTED\x10\r\x12\x1a\n\x16\x45VENT_KIND_TIMER_FIRED\x10\x0e\x12\x1d\n\x19\x45VENT_KIND_TIMER_CANCELED\x10\x0f\x12\x1e\n\x1a\x45VENT_KIND_SIGNAL_RECEIVED\x10\x10\x12\x1e\n\x1a\x45VENT_KIND_UPDATE_ACCEPTED\x10\x11\x12\x1f\n\x1b\x45VENT_KIND_UPDATE_COMPLETED\x10\x12\x12%\n!EVENT_KIND_CHILD_WORKFLOW_STARTED\x10\x13\x12\x1e\n\x1a\x45VENT_KIND_MARKER_RECORDED\x10\x14\x12\x1e\n\x1a\x45VENT_KIND_WORKFLOW_CLOSED\x10\x15\x62\x06proto3')
31
+
32
+ _globals = globals()
33
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
34
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flowrensic.v1.workflow_history_pb2', _globals)
35
+ if not _descriptor._USE_C_DESCRIPTORS:
36
+ DESCRIPTOR._loaded_options = None
37
+ _globals['_EVENTKIND']._serialized_start=701
38
+ _globals['_EVENTKIND']._serialized_end=1461
39
+ _globals['_EVENT']._serialized_start=148
40
+ _globals['_EVENT']._serialized_end=347
41
+ _globals['_HISTORY']._serialized_start=350
42
+ _globals['_HISTORY']._serialized_end=505
43
+ _globals['_INGESTHISTORYREQUEST']._serialized_start=507
44
+ _globals['_INGESTHISTORYREQUEST']._serialized_end=598
45
+ _globals['_INGESTHISTORYRESPONSE']._serialized_start=600
46
+ _globals['_INGESTHISTORYRESPONSE']._serialized_end=698
47
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,102 @@
1
+ import datetime
2
+
3
+ from google.protobuf import struct_pb2 as _struct_pb2
4
+ from google.protobuf import timestamp_pb2 as _timestamp_pb2
5
+ from temporal_flowrensic._gen.flowrensic.v1 import catalog_pb2 as _catalog_pb2
6
+ from google.protobuf.internal import containers as _containers
7
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
8
+ from google.protobuf import descriptor as _descriptor
9
+ from google.protobuf import message as _message
10
+ from collections.abc import Iterable as _Iterable, Mapping as _Mapping
11
+ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
12
+
13
+ DESCRIPTOR: _descriptor.FileDescriptor
14
+
15
+ class EventKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
16
+ __slots__ = ()
17
+ EVENT_KIND_UNSPECIFIED: _ClassVar[EventKind]
18
+ EVENT_KIND_WORKFLOW_STARTED: _ClassVar[EventKind]
19
+ EVENT_KIND_WORKFLOW_TASK_SCHEDULED: _ClassVar[EventKind]
20
+ EVENT_KIND_WORKFLOW_TASK_STARTED: _ClassVar[EventKind]
21
+ EVENT_KIND_WORKFLOW_TASK_COMPLETED: _ClassVar[EventKind]
22
+ EVENT_KIND_WORKFLOW_TASK_FAILED: _ClassVar[EventKind]
23
+ EVENT_KIND_WORKFLOW_TASK_TIMED_OUT: _ClassVar[EventKind]
24
+ EVENT_KIND_ACTIVITY_SCHEDULED: _ClassVar[EventKind]
25
+ EVENT_KIND_ACTIVITY_STARTED: _ClassVar[EventKind]
26
+ EVENT_KIND_ACTIVITY_COMPLETED: _ClassVar[EventKind]
27
+ EVENT_KIND_ACTIVITY_FAILED: _ClassVar[EventKind]
28
+ EVENT_KIND_ACTIVITY_TIMED_OUT: _ClassVar[EventKind]
29
+ EVENT_KIND_ACTIVITY_CANCELED: _ClassVar[EventKind]
30
+ EVENT_KIND_TIMER_STARTED: _ClassVar[EventKind]
31
+ EVENT_KIND_TIMER_FIRED: _ClassVar[EventKind]
32
+ EVENT_KIND_TIMER_CANCELED: _ClassVar[EventKind]
33
+ EVENT_KIND_SIGNAL_RECEIVED: _ClassVar[EventKind]
34
+ EVENT_KIND_UPDATE_ACCEPTED: _ClassVar[EventKind]
35
+ EVENT_KIND_UPDATE_COMPLETED: _ClassVar[EventKind]
36
+ EVENT_KIND_CHILD_WORKFLOW_STARTED: _ClassVar[EventKind]
37
+ EVENT_KIND_MARKER_RECORDED: _ClassVar[EventKind]
38
+ EVENT_KIND_WORKFLOW_CLOSED: _ClassVar[EventKind]
39
+ EVENT_KIND_UNSPECIFIED: EventKind
40
+ EVENT_KIND_WORKFLOW_STARTED: EventKind
41
+ EVENT_KIND_WORKFLOW_TASK_SCHEDULED: EventKind
42
+ EVENT_KIND_WORKFLOW_TASK_STARTED: EventKind
43
+ EVENT_KIND_WORKFLOW_TASK_COMPLETED: EventKind
44
+ EVENT_KIND_WORKFLOW_TASK_FAILED: EventKind
45
+ EVENT_KIND_WORKFLOW_TASK_TIMED_OUT: EventKind
46
+ EVENT_KIND_ACTIVITY_SCHEDULED: EventKind
47
+ EVENT_KIND_ACTIVITY_STARTED: EventKind
48
+ EVENT_KIND_ACTIVITY_COMPLETED: EventKind
49
+ EVENT_KIND_ACTIVITY_FAILED: EventKind
50
+ EVENT_KIND_ACTIVITY_TIMED_OUT: EventKind
51
+ EVENT_KIND_ACTIVITY_CANCELED: EventKind
52
+ EVENT_KIND_TIMER_STARTED: EventKind
53
+ EVENT_KIND_TIMER_FIRED: EventKind
54
+ EVENT_KIND_TIMER_CANCELED: EventKind
55
+ EVENT_KIND_SIGNAL_RECEIVED: EventKind
56
+ EVENT_KIND_UPDATE_ACCEPTED: EventKind
57
+ EVENT_KIND_UPDATE_COMPLETED: EventKind
58
+ EVENT_KIND_CHILD_WORKFLOW_STARTED: EventKind
59
+ EVENT_KIND_MARKER_RECORDED: EventKind
60
+ EVENT_KIND_WORKFLOW_CLOSED: EventKind
61
+
62
+ class Event(_message.Message):
63
+ __slots__ = ("seq", "kind", "time", "engine_type", "attrs")
64
+ SEQ_FIELD_NUMBER: _ClassVar[int]
65
+ KIND_FIELD_NUMBER: _ClassVar[int]
66
+ TIME_FIELD_NUMBER: _ClassVar[int]
67
+ ENGINE_TYPE_FIELD_NUMBER: _ClassVar[int]
68
+ ATTRS_FIELD_NUMBER: _ClassVar[int]
69
+ seq: int
70
+ kind: EventKind
71
+ time: _timestamp_pb2.Timestamp
72
+ engine_type: str
73
+ attrs: _struct_pb2.Struct
74
+ def __init__(self, seq: _Optional[int] = ..., kind: _Optional[_Union[EventKind, str]] = ..., time: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., engine_type: _Optional[str] = ..., attrs: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...
75
+
76
+ class History(_message.Message):
77
+ __slots__ = ("run_id", "engine", "truncated", "events")
78
+ RUN_ID_FIELD_NUMBER: _ClassVar[int]
79
+ ENGINE_FIELD_NUMBER: _ClassVar[int]
80
+ TRUNCATED_FIELD_NUMBER: _ClassVar[int]
81
+ EVENTS_FIELD_NUMBER: _ClassVar[int]
82
+ run_id: str
83
+ engine: _catalog_pb2.Engine
84
+ truncated: bool
85
+ events: _containers.RepeatedCompositeFieldContainer[Event]
86
+ def __init__(self, run_id: _Optional[str] = ..., engine: _Optional[_Union[_catalog_pb2.Engine, str]] = ..., truncated: bool = ..., events: _Optional[_Iterable[_Union[Event, _Mapping]]] = ...) -> None: ...
87
+
88
+ class IngestHistoryRequest(_message.Message):
89
+ __slots__ = ("history",)
90
+ HISTORY_FIELD_NUMBER: _ClassVar[int]
91
+ history: History
92
+ def __init__(self, history: _Optional[_Union[History, _Mapping]] = ...) -> None: ...
93
+
94
+ class IngestHistoryResponse(_message.Message):
95
+ __slots__ = ("run_id", "events", "findings")
96
+ RUN_ID_FIELD_NUMBER: _ClassVar[int]
97
+ EVENTS_FIELD_NUMBER: _ClassVar[int]
98
+ FINDINGS_FIELD_NUMBER: _ClassVar[int]
99
+ run_id: str
100
+ events: int
101
+ findings: int
102
+ def __init__(self, run_id: _Optional[str] = ..., events: _Optional[int] = ..., findings: _Optional[int] = ...) -> None: ...
@@ -0,0 +1,55 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: flowrensic/v1/workflow_types.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/workflow_types.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from temporal_flowrensic._gen.flowrensic.v1 import page_pb2 as flowrensic_dot_v1_dot_page__pb2
26
+ from temporal_flowrensic._gen.flowrensic.v1 import activity_metrics_pb2 as flowrensic_dot_v1_dot_activity__metrics__pb2
27
+ from temporal_flowrensic._gen.flowrensic.v1 import finding_pb2 as flowrensic_dot_v1_dot_finding__pb2
28
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
29
+
30
+
31
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"flowrensic/v1/workflow_types.proto\x12\rflowrensic.v1\x1a\x18\x66lowrensic/v1/page.proto\x1a$flowrensic/v1/activity_metrics.proto\x1a\x1b\x66lowrensic/v1/finding.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xdd\x06\n\x0fWorkflowTypeRow\x12#\n\rworkflow_type\x18\x01 \x01(\tR\x0cworkflowType\x12\x1d\n\ntotal_runs\x18\x02 \x01(\x03R\ttotalRuns\x12\x1f\n\x0b\x66\x61iled_runs\x18\x03 \x01(\x03R\nfailedRuns\x12\x1f\n\x0bwedged_runs\x18\x04 \x01(\x03R\nwedgedRuns\x12\"\n\rruns_per_hour\x18\x05 \x01(\x01R\x0brunsPerHour\x12!\n\x0c\x66\x61ilure_rate\x18\x06 \x01(\x01R\x0b\x66\x61ilureRate\x12(\n\x10has_failure_rate\x18\x07 \x01(\x08R\x0ehasFailureRate\x12&\n\x0f\x63omplete_p50_ms\x18\x08 \x01(\x03R\rcompleteP50Ms\x12&\n\x0f\x63omplete_p95_ms\x18\t \x01(\x03R\rcompleteP95Ms\x12&\n\x0f\x63omplete_p99_ms\x18\n \x01(\x03R\rcompleteP99Ms\x12!\n\x0chas_complete\x18\x0b \x01(\x08R\x0bhasComplete\x12\x19\n\x08open_now\x18\x0c \x01(\x03R\x07openNow\x12O\n\x16oldest_open_started_at\x18\r \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x13oldestOpenStartedAt\x12\x1d\n\nevents_p95\x18\x0e \x01(\x03R\teventsP95\x12\x1d\n\nevents_max\x18\x0f \x01(\x03R\teventsMax\x12\x1d\n\nhas_events\x18\x10 \x01(\x08R\thasEvents\x12\x1a\n\x08\x66indings\x18\x11 \x01(\x03R\x08\x66indings\x12\'\n\x0f\x62illable_events\x18\x12 \x01(\x03R\x0e\x62illableEvents\x12(\n\x10\x62illable_per_run\x18\x13 \x01(\x01R\x0e\x62illablePerRun\x12!\n\x0chas_billable\x18\x14 \x01(\x08R\x0bhasBillable\x12\x19\n\x08\x63ost_usd\x18\x15 \x01(\x01R\x07\x63ostUsd\x12\x1f\n\x0btask_queues\x18\x16 \x03(\tR\ntaskQueues\x12!\n\x0cworker_names\x18\x17 \x03(\tR\x0bworkerNames\"\xef\x04\n\x0b\x43ostSummary\x12\x31\n\x15price_per_million_usd\x18\x01 \x01(\x01R\x12pricePerMillionUsd\x12%\n\x0ewindow_seconds\x18\x02 \x01(\x03R\rwindowSeconds\x12&\n\x0flast_window_usd\x18\x03 \x01(\x01R\rlastWindowUsd\x12\x33\n\x16last_three_windows_usd\x18\x04 \x01(\x01R\x13lastThreeWindowsUsd\x12*\n\x11window_before_usd\x18\x05 \x01(\x01R\x0fwindowBeforeUsd\x12%\n\x0e\x63hange_percent\x18\x06 \x01(\x01R\rchangePercent\x12\x1d\n\nhas_change\x18\x07 \x01(\x08R\thasChange\x12.\n\x13last_window_covered\x18\x08 \x01(\x08R\x11lastWindowCovered\x12;\n\x1alast_three_windows_covered\x18\t \x01(\x08R\x17lastThreeWindowsCovered\x12\x32\n\x15window_before_covered\x18\n \x01(\x08R\x13windowBeforeCovered\x12\x1f\n\x0b\x63\x61tching_up\x18\x0b \x01(\x08R\ncatchingUp\x12!\n\x0cpull_failing\x18\x0c \x01(\x08R\x0bpullFailing\x12,\n\x12\x66rom_usage_records\x18\r \x01(\x08R\x10\x66romUsageRecords\x12$\n\x0eno_data_reason\x18\x0e \x01(\tR\x0cnoDataReason\"\x80\x02\n\x18ListWorkflowTypesRequest\x12\x30\n\x05since\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x05since\x12\x30\n\x05until\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x05until\x12\x10\n\x03\x65nv\x18\x03 \x01(\tR\x03\x65nv\x12\x1d\n\nall_stored\x18\x04 \x01(\x08R\tallStored\x12\x1f\n\x0bworker_name\x18\x05 \x01(\tR\nworkerName\x12.\n\x04page\x18\x06 \x01(\x0b\x32\x1a.flowrensic.v1.PageRequestR\x04page\"\xf4\x02\n\x19ListWorkflowTypesResponse\x12\x34\n\x05types\x18\x01 \x03(\x0b\x32\x1e.flowrensic.v1.WorkflowTypeRowR\x05types\x12\x30\n\x05since\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x05since\x12\x30\n\x05until\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x05until\x12.\n\x04\x63ost\x18\x04 \x01(\x0b\x32\x1a.flowrensic.v1.CostSummaryR\x04\x63ost\x12\x39\n\ndata_since\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tdataSince\x12!\n\x0cworker_names\x18\x06 \x03(\tR\x0bworkerNames\x12/\n\x04page\x18\x07 \x01(\x0b\x32\x1b.flowrensic.v1.PageResponseR\x04page\"\xad\x01\n\x0fWorkflowMessage\x12\x12\n\x04kind\x18\x01 \x01(\tR\x04kind\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x14\n\x05\x63ount\x18\x03 \x01(\x03R\x05\x63ount\x12\x1a\n\x08\x66\x61ilures\x18\x04 \x01(\x03R\x08\x66\x61ilures\x12#\n\rnever_handled\x18\x05 \x01(\x03R\x0cneverHandled\x12\x1b\n\tno_answer\x18\x06 \x01(\x03R\x08noAnswer\"\x9f\x01\n\x10WorkflowActivity\x12\x32\n\x05stats\x18\x01 \x01(\x0b\x32\x1c.flowrensic.v1.ActivityStatsR\x05stats\x12$\n\x0e\x63\x61lls_per_hour\x18\x02 \x01(\x01R\x0c\x63\x61llsPerHour\x12\x14\n\x05share\x18\x03 \x01(\x01R\x05share\x12\x1b\n\thas_share\x18\x04 \x01(\x08R\x08hasShare\"\x82\x02\n\x16GetWorkflowTypeRequest\x12#\n\rworkflow_type\x18\x01 \x01(\tR\x0cworkflowType\x12\x30\n\x05since\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x05since\x12\x30\n\x05until\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x05until\x12\x10\n\x03\x65nv\x18\x04 \x01(\tR\x03\x65nv\x12\x1d\n\nall_stored\x18\x05 \x01(\x08R\tallStored\x12.\n\x04page\x18\x06 \x01(\x0b\x32\x1a.flowrensic.v1.PageRequestR\x04page\"\x90\x04\n\x17GetWorkflowTypeResponse\x12\x30\n\x03row\x18\x01 \x01(\x0b\x32\x1e.flowrensic.v1.WorkflowTypeRowR\x03row\x12:\n\x08messages\x18\x02 \x03(\x0b\x32\x1e.flowrensic.v1.WorkflowMessageR\x08messages\x12?\n\nactivities\x18\x03 \x03(\x0b\x32\x1f.flowrensic.v1.WorkflowActivityR\nactivities\x12\x32\n\x08\x66indings\x18\x04 \x03(\x0b\x32\x16.flowrensic.v1.FindingR\x08\x66indings\x12\x30\n\x05since\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x05since\x12\x30\n\x05until\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x05until\x12\x39\n\ndata_since\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tdataSince\x12/\n\x04page\x18\x08 \x01(\x0b\x32\x1b.flowrensic.v1.PageResponseR\x04page\x12\x1f\n\x0b\x63\x61tching_up\x18\t \x01(\x08R\ncatchingUp\x12!\n\x0cpull_failing\x18\n \x01(\x08R\x0bpullFailingBiZggithub.com/flowrensic/temporal-flowrensic/internal/7-shared-model/domain/gen/flowrensic/v1;flowrensicv1b\x06proto3')
32
+
33
+ _globals = globals()
34
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
35
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flowrensic.v1.workflow_types_pb2', _globals)
36
+ if not _descriptor._USE_C_DESCRIPTORS:
37
+ _globals['DESCRIPTOR']._loaded_options = None
38
+ _globals['DESCRIPTOR']._serialized_options = b'Zggithub.com/flowrensic/temporal-flowrensic/internal/7-shared-model/domain/gen/flowrensic/v1;flowrensicv1'
39
+ _globals['_WORKFLOWTYPEROW']._serialized_start=180
40
+ _globals['_WORKFLOWTYPEROW']._serialized_end=1041
41
+ _globals['_COSTSUMMARY']._serialized_start=1044
42
+ _globals['_COSTSUMMARY']._serialized_end=1667
43
+ _globals['_LISTWORKFLOWTYPESREQUEST']._serialized_start=1670
44
+ _globals['_LISTWORKFLOWTYPESREQUEST']._serialized_end=1926
45
+ _globals['_LISTWORKFLOWTYPESRESPONSE']._serialized_start=1929
46
+ _globals['_LISTWORKFLOWTYPESRESPONSE']._serialized_end=2301
47
+ _globals['_WORKFLOWMESSAGE']._serialized_start=2304
48
+ _globals['_WORKFLOWMESSAGE']._serialized_end=2477
49
+ _globals['_WORKFLOWACTIVITY']._serialized_start=2480
50
+ _globals['_WORKFLOWACTIVITY']._serialized_end=2639
51
+ _globals['_GETWORKFLOWTYPEREQUEST']._serialized_start=2642
52
+ _globals['_GETWORKFLOWTYPEREQUEST']._serialized_end=2900
53
+ _globals['_GETWORKFLOWTYPERESPONSE']._serialized_start=2903
54
+ _globals['_GETWORKFLOWTYPERESPONSE']._serialized_end=3431
55
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,197 @@
1
+ import datetime
2
+
3
+ from temporal_flowrensic._gen.flowrensic.v1 import page_pb2 as _page_pb2
4
+ from temporal_flowrensic._gen.flowrensic.v1 import activity_metrics_pb2 as _activity_metrics_pb2
5
+ from temporal_flowrensic._gen.flowrensic.v1 import finding_pb2 as _finding_pb2
6
+ from google.protobuf import timestamp_pb2 as _timestamp_pb2
7
+ from google.protobuf.internal import containers as _containers
8
+ from google.protobuf import descriptor as _descriptor
9
+ from google.protobuf import message as _message
10
+ from collections.abc import Iterable as _Iterable, Mapping as _Mapping
11
+ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
12
+
13
+ DESCRIPTOR: _descriptor.FileDescriptor
14
+
15
+ class WorkflowTypeRow(_message.Message):
16
+ __slots__ = ("workflow_type", "total_runs", "failed_runs", "wedged_runs", "runs_per_hour", "failure_rate", "has_failure_rate", "complete_p50_ms", "complete_p95_ms", "complete_p99_ms", "has_complete", "open_now", "oldest_open_started_at", "events_p95", "events_max", "has_events", "findings", "billable_events", "billable_per_run", "has_billable", "cost_usd", "task_queues", "worker_names")
17
+ WORKFLOW_TYPE_FIELD_NUMBER: _ClassVar[int]
18
+ TOTAL_RUNS_FIELD_NUMBER: _ClassVar[int]
19
+ FAILED_RUNS_FIELD_NUMBER: _ClassVar[int]
20
+ WEDGED_RUNS_FIELD_NUMBER: _ClassVar[int]
21
+ RUNS_PER_HOUR_FIELD_NUMBER: _ClassVar[int]
22
+ FAILURE_RATE_FIELD_NUMBER: _ClassVar[int]
23
+ HAS_FAILURE_RATE_FIELD_NUMBER: _ClassVar[int]
24
+ COMPLETE_P50_MS_FIELD_NUMBER: _ClassVar[int]
25
+ COMPLETE_P95_MS_FIELD_NUMBER: _ClassVar[int]
26
+ COMPLETE_P99_MS_FIELD_NUMBER: _ClassVar[int]
27
+ HAS_COMPLETE_FIELD_NUMBER: _ClassVar[int]
28
+ OPEN_NOW_FIELD_NUMBER: _ClassVar[int]
29
+ OLDEST_OPEN_STARTED_AT_FIELD_NUMBER: _ClassVar[int]
30
+ EVENTS_P95_FIELD_NUMBER: _ClassVar[int]
31
+ EVENTS_MAX_FIELD_NUMBER: _ClassVar[int]
32
+ HAS_EVENTS_FIELD_NUMBER: _ClassVar[int]
33
+ FINDINGS_FIELD_NUMBER: _ClassVar[int]
34
+ BILLABLE_EVENTS_FIELD_NUMBER: _ClassVar[int]
35
+ BILLABLE_PER_RUN_FIELD_NUMBER: _ClassVar[int]
36
+ HAS_BILLABLE_FIELD_NUMBER: _ClassVar[int]
37
+ COST_USD_FIELD_NUMBER: _ClassVar[int]
38
+ TASK_QUEUES_FIELD_NUMBER: _ClassVar[int]
39
+ WORKER_NAMES_FIELD_NUMBER: _ClassVar[int]
40
+ workflow_type: str
41
+ total_runs: int
42
+ failed_runs: int
43
+ wedged_runs: int
44
+ runs_per_hour: float
45
+ failure_rate: float
46
+ has_failure_rate: bool
47
+ complete_p50_ms: int
48
+ complete_p95_ms: int
49
+ complete_p99_ms: int
50
+ has_complete: bool
51
+ open_now: int
52
+ oldest_open_started_at: _timestamp_pb2.Timestamp
53
+ events_p95: int
54
+ events_max: int
55
+ has_events: bool
56
+ findings: int
57
+ billable_events: int
58
+ billable_per_run: float
59
+ has_billable: bool
60
+ cost_usd: float
61
+ task_queues: _containers.RepeatedScalarFieldContainer[str]
62
+ worker_names: _containers.RepeatedScalarFieldContainer[str]
63
+ def __init__(self, workflow_type: _Optional[str] = ..., total_runs: _Optional[int] = ..., failed_runs: _Optional[int] = ..., wedged_runs: _Optional[int] = ..., runs_per_hour: _Optional[float] = ..., failure_rate: _Optional[float] = ..., has_failure_rate: bool = ..., complete_p50_ms: _Optional[int] = ..., complete_p95_ms: _Optional[int] = ..., complete_p99_ms: _Optional[int] = ..., has_complete: bool = ..., open_now: _Optional[int] = ..., oldest_open_started_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., events_p95: _Optional[int] = ..., events_max: _Optional[int] = ..., has_events: bool = ..., findings: _Optional[int] = ..., billable_events: _Optional[int] = ..., billable_per_run: _Optional[float] = ..., has_billable: bool = ..., cost_usd: _Optional[float] = ..., task_queues: _Optional[_Iterable[str]] = ..., worker_names: _Optional[_Iterable[str]] = ...) -> None: ...
64
+
65
+ class CostSummary(_message.Message):
66
+ __slots__ = ("price_per_million_usd", "window_seconds", "last_window_usd", "last_three_windows_usd", "window_before_usd", "change_percent", "has_change", "last_window_covered", "last_three_windows_covered", "window_before_covered", "catching_up", "pull_failing", "from_usage_records", "no_data_reason")
67
+ PRICE_PER_MILLION_USD_FIELD_NUMBER: _ClassVar[int]
68
+ WINDOW_SECONDS_FIELD_NUMBER: _ClassVar[int]
69
+ LAST_WINDOW_USD_FIELD_NUMBER: _ClassVar[int]
70
+ LAST_THREE_WINDOWS_USD_FIELD_NUMBER: _ClassVar[int]
71
+ WINDOW_BEFORE_USD_FIELD_NUMBER: _ClassVar[int]
72
+ CHANGE_PERCENT_FIELD_NUMBER: _ClassVar[int]
73
+ HAS_CHANGE_FIELD_NUMBER: _ClassVar[int]
74
+ LAST_WINDOW_COVERED_FIELD_NUMBER: _ClassVar[int]
75
+ LAST_THREE_WINDOWS_COVERED_FIELD_NUMBER: _ClassVar[int]
76
+ WINDOW_BEFORE_COVERED_FIELD_NUMBER: _ClassVar[int]
77
+ CATCHING_UP_FIELD_NUMBER: _ClassVar[int]
78
+ PULL_FAILING_FIELD_NUMBER: _ClassVar[int]
79
+ FROM_USAGE_RECORDS_FIELD_NUMBER: _ClassVar[int]
80
+ NO_DATA_REASON_FIELD_NUMBER: _ClassVar[int]
81
+ price_per_million_usd: float
82
+ window_seconds: int
83
+ last_window_usd: float
84
+ last_three_windows_usd: float
85
+ window_before_usd: float
86
+ change_percent: float
87
+ has_change: bool
88
+ last_window_covered: bool
89
+ last_three_windows_covered: bool
90
+ window_before_covered: bool
91
+ catching_up: bool
92
+ pull_failing: bool
93
+ from_usage_records: bool
94
+ no_data_reason: str
95
+ def __init__(self, price_per_million_usd: _Optional[float] = ..., window_seconds: _Optional[int] = ..., last_window_usd: _Optional[float] = ..., last_three_windows_usd: _Optional[float] = ..., window_before_usd: _Optional[float] = ..., change_percent: _Optional[float] = ..., has_change: bool = ..., last_window_covered: bool = ..., last_three_windows_covered: bool = ..., window_before_covered: bool = ..., catching_up: bool = ..., pull_failing: bool = ..., from_usage_records: bool = ..., no_data_reason: _Optional[str] = ...) -> None: ...
96
+
97
+ class ListWorkflowTypesRequest(_message.Message):
98
+ __slots__ = ("since", "until", "env", "all_stored", "worker_name", "page")
99
+ SINCE_FIELD_NUMBER: _ClassVar[int]
100
+ UNTIL_FIELD_NUMBER: _ClassVar[int]
101
+ ENV_FIELD_NUMBER: _ClassVar[int]
102
+ ALL_STORED_FIELD_NUMBER: _ClassVar[int]
103
+ WORKER_NAME_FIELD_NUMBER: _ClassVar[int]
104
+ PAGE_FIELD_NUMBER: _ClassVar[int]
105
+ since: _timestamp_pb2.Timestamp
106
+ until: _timestamp_pb2.Timestamp
107
+ env: str
108
+ all_stored: bool
109
+ worker_name: str
110
+ page: _page_pb2.PageRequest
111
+ def __init__(self, since: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., until: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., env: _Optional[str] = ..., all_stored: bool = ..., worker_name: _Optional[str] = ..., page: _Optional[_Union[_page_pb2.PageRequest, _Mapping]] = ...) -> None: ...
112
+
113
+ class ListWorkflowTypesResponse(_message.Message):
114
+ __slots__ = ("types", "since", "until", "cost", "data_since", "worker_names", "page")
115
+ TYPES_FIELD_NUMBER: _ClassVar[int]
116
+ SINCE_FIELD_NUMBER: _ClassVar[int]
117
+ UNTIL_FIELD_NUMBER: _ClassVar[int]
118
+ COST_FIELD_NUMBER: _ClassVar[int]
119
+ DATA_SINCE_FIELD_NUMBER: _ClassVar[int]
120
+ WORKER_NAMES_FIELD_NUMBER: _ClassVar[int]
121
+ PAGE_FIELD_NUMBER: _ClassVar[int]
122
+ types: _containers.RepeatedCompositeFieldContainer[WorkflowTypeRow]
123
+ since: _timestamp_pb2.Timestamp
124
+ until: _timestamp_pb2.Timestamp
125
+ cost: CostSummary
126
+ data_since: _timestamp_pb2.Timestamp
127
+ worker_names: _containers.RepeatedScalarFieldContainer[str]
128
+ page: _page_pb2.PageResponse
129
+ def __init__(self, types: _Optional[_Iterable[_Union[WorkflowTypeRow, _Mapping]]] = ..., since: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., until: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., cost: _Optional[_Union[CostSummary, _Mapping]] = ..., data_since: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., worker_names: _Optional[_Iterable[str]] = ..., page: _Optional[_Union[_page_pb2.PageResponse, _Mapping]] = ...) -> None: ...
130
+
131
+ class WorkflowMessage(_message.Message):
132
+ __slots__ = ("kind", "name", "count", "failures", "never_handled", "no_answer")
133
+ KIND_FIELD_NUMBER: _ClassVar[int]
134
+ NAME_FIELD_NUMBER: _ClassVar[int]
135
+ COUNT_FIELD_NUMBER: _ClassVar[int]
136
+ FAILURES_FIELD_NUMBER: _ClassVar[int]
137
+ NEVER_HANDLED_FIELD_NUMBER: _ClassVar[int]
138
+ NO_ANSWER_FIELD_NUMBER: _ClassVar[int]
139
+ kind: str
140
+ name: str
141
+ count: int
142
+ failures: int
143
+ never_handled: int
144
+ no_answer: int
145
+ def __init__(self, kind: _Optional[str] = ..., name: _Optional[str] = ..., count: _Optional[int] = ..., failures: _Optional[int] = ..., never_handled: _Optional[int] = ..., no_answer: _Optional[int] = ...) -> None: ...
146
+
147
+ class WorkflowActivity(_message.Message):
148
+ __slots__ = ("stats", "calls_per_hour", "share", "has_share")
149
+ STATS_FIELD_NUMBER: _ClassVar[int]
150
+ CALLS_PER_HOUR_FIELD_NUMBER: _ClassVar[int]
151
+ SHARE_FIELD_NUMBER: _ClassVar[int]
152
+ HAS_SHARE_FIELD_NUMBER: _ClassVar[int]
153
+ stats: _activity_metrics_pb2.ActivityStats
154
+ calls_per_hour: float
155
+ share: float
156
+ has_share: bool
157
+ def __init__(self, stats: _Optional[_Union[_activity_metrics_pb2.ActivityStats, _Mapping]] = ..., calls_per_hour: _Optional[float] = ..., share: _Optional[float] = ..., has_share: bool = ...) -> None: ...
158
+
159
+ class GetWorkflowTypeRequest(_message.Message):
160
+ __slots__ = ("workflow_type", "since", "until", "env", "all_stored", "page")
161
+ WORKFLOW_TYPE_FIELD_NUMBER: _ClassVar[int]
162
+ SINCE_FIELD_NUMBER: _ClassVar[int]
163
+ UNTIL_FIELD_NUMBER: _ClassVar[int]
164
+ ENV_FIELD_NUMBER: _ClassVar[int]
165
+ ALL_STORED_FIELD_NUMBER: _ClassVar[int]
166
+ PAGE_FIELD_NUMBER: _ClassVar[int]
167
+ workflow_type: str
168
+ since: _timestamp_pb2.Timestamp
169
+ until: _timestamp_pb2.Timestamp
170
+ env: str
171
+ all_stored: bool
172
+ page: _page_pb2.PageRequest
173
+ def __init__(self, workflow_type: _Optional[str] = ..., since: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., until: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., env: _Optional[str] = ..., all_stored: bool = ..., page: _Optional[_Union[_page_pb2.PageRequest, _Mapping]] = ...) -> None: ...
174
+
175
+ class GetWorkflowTypeResponse(_message.Message):
176
+ __slots__ = ("row", "messages", "activities", "findings", "since", "until", "data_since", "page", "catching_up", "pull_failing")
177
+ ROW_FIELD_NUMBER: _ClassVar[int]
178
+ MESSAGES_FIELD_NUMBER: _ClassVar[int]
179
+ ACTIVITIES_FIELD_NUMBER: _ClassVar[int]
180
+ FINDINGS_FIELD_NUMBER: _ClassVar[int]
181
+ SINCE_FIELD_NUMBER: _ClassVar[int]
182
+ UNTIL_FIELD_NUMBER: _ClassVar[int]
183
+ DATA_SINCE_FIELD_NUMBER: _ClassVar[int]
184
+ PAGE_FIELD_NUMBER: _ClassVar[int]
185
+ CATCHING_UP_FIELD_NUMBER: _ClassVar[int]
186
+ PULL_FAILING_FIELD_NUMBER: _ClassVar[int]
187
+ row: WorkflowTypeRow
188
+ messages: _containers.RepeatedCompositeFieldContainer[WorkflowMessage]
189
+ activities: _containers.RepeatedCompositeFieldContainer[WorkflowActivity]
190
+ findings: _containers.RepeatedCompositeFieldContainer[_finding_pb2.Finding]
191
+ since: _timestamp_pb2.Timestamp
192
+ until: _timestamp_pb2.Timestamp
193
+ data_since: _timestamp_pb2.Timestamp
194
+ page: _page_pb2.PageResponse
195
+ catching_up: bool
196
+ pull_failing: bool
197
+ def __init__(self, row: _Optional[_Union[WorkflowTypeRow, _Mapping]] = ..., messages: _Optional[_Iterable[_Union[WorkflowMessage, _Mapping]]] = ..., activities: _Optional[_Iterable[_Union[WorkflowActivity, _Mapping]]] = ..., findings: _Optional[_Iterable[_Union[_finding_pb2.Finding, _Mapping]]] = ..., since: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., until: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., data_since: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., page: _Optional[_Union[_page_pb2.PageResponse, _Mapping]] = ..., catching_up: bool = ..., pull_failing: bool = ...) -> None: ...