luminarycloud 0.22.0__py3-none-any.whl → 0.22.2__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 (86) hide show
  1. luminarycloud/_client/authentication_plugin.py +49 -0
  2. luminarycloud/_client/client.py +38 -11
  3. luminarycloud/_client/http_client.py +1 -1
  4. luminarycloud/_client/retry_interceptor.py +64 -2
  5. luminarycloud/_helpers/__init__.py +9 -0
  6. luminarycloud/_helpers/_inference_jobs.py +227 -0
  7. luminarycloud/_helpers/_parse_iso_datetime.py +54 -0
  8. luminarycloud/_helpers/download.py +11 -0
  9. luminarycloud/_helpers/proto_decorator.py +38 -7
  10. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.py +152 -132
  11. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.pyi +66 -8
  12. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.py +34 -0
  13. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.pyi +12 -0
  14. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.py +142 -39
  15. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.pyi +300 -3
  16. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.py +34 -0
  17. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.pyi +12 -0
  18. luminarycloud/_proto/api/v0/luminarycloud/physicsaiinference/physicsaiinference_pb2.py +255 -0
  19. luminarycloud/_proto/api/v0/luminarycloud/physicsaiinference/physicsaiinference_pb2.pyi +466 -0
  20. luminarycloud/_proto/api/v0/luminarycloud/physicsaiinference/physicsaiinference_pb2_grpc.py +242 -0
  21. luminarycloud/_proto/api/v0/luminarycloud/physicsaiinference/physicsaiinference_pb2_grpc.pyi +95 -0
  22. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.py +29 -7
  23. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.pyi +39 -0
  24. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.py +36 -0
  25. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.pyi +18 -0
  26. luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2.py +88 -65
  27. luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2.pyi +42 -0
  28. luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2_grpc.py +34 -0
  29. luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2_grpc.pyi +12 -0
  30. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +163 -153
  31. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +37 -3
  32. luminarycloud/_proto/base/base_pb2.py +7 -6
  33. luminarycloud/_proto/base/base_pb2.pyi +4 -0
  34. luminarycloud/_proto/client/simulation_pb2.py +358 -339
  35. luminarycloud/_proto/client/simulation_pb2.pyi +89 -3
  36. luminarycloud/_proto/physicsaiinferenceservice/physicsaiinferenceservice_pb2.py +35 -0
  37. luminarycloud/_proto/physicsaiinferenceservice/physicsaiinferenceservice_pb2.pyi +7 -0
  38. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2.py +6 -3
  39. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.py +68 -0
  40. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.pyi +24 -0
  41. luminarycloud/_wrapper.py +53 -7
  42. luminarycloud/enum/vis_enums.py +6 -0
  43. luminarycloud/feature_modification.py +25 -32
  44. luminarycloud/geometry.py +10 -6
  45. luminarycloud/geometry_version.py +4 -0
  46. luminarycloud/mesh.py +4 -0
  47. luminarycloud/meshing/mesh_generation_params.py +5 -6
  48. luminarycloud/meshing/sizing_strategy/sizing_strategies.py +1 -2
  49. luminarycloud/outputs/__init__.py +2 -0
  50. luminarycloud/outputs/output_definitions.py +3 -3
  51. luminarycloud/outputs/stopping_conditions.py +94 -0
  52. luminarycloud/params/enum/_enum_wrappers.py +16 -0
  53. luminarycloud/params/geometry/shapes.py +33 -33
  54. luminarycloud/params/simulation/adaptive_mesh_refinement/__init__.py +1 -0
  55. luminarycloud/params/simulation/adaptive_mesh_refinement/active_region_.py +83 -0
  56. luminarycloud/params/simulation/adaptive_mesh_refinement/boundary_layer_profile_.py +1 -1
  57. luminarycloud/params/simulation/adaptive_mesh_refinement_.py +8 -1
  58. luminarycloud/physics_ai/__init__.py +7 -0
  59. luminarycloud/physics_ai/inference.py +166 -199
  60. luminarycloud/physics_ai/models.py +22 -0
  61. luminarycloud/physics_ai/solution.py +4 -0
  62. luminarycloud/pipelines/api.py +143 -16
  63. luminarycloud/pipelines/core.py +1 -1
  64. luminarycloud/pipelines/stages.py +22 -9
  65. luminarycloud/project.py +61 -8
  66. luminarycloud/simulation.py +25 -0
  67. luminarycloud/types/__init__.py +2 -0
  68. luminarycloud/types/ids.py +2 -0
  69. luminarycloud/types/vector3.py +1 -2
  70. luminarycloud/vis/__init__.py +1 -0
  71. luminarycloud/vis/data_extraction.py +7 -7
  72. luminarycloud/vis/filters.py +97 -0
  73. luminarycloud/vis/interactive_report.py +163 -7
  74. luminarycloud/vis/report.py +113 -1
  75. luminarycloud/vis/visualization.py +3 -0
  76. luminarycloud/volume_selection.py +16 -8
  77. luminarycloud/workflow_utils.py +149 -0
  78. {luminarycloud-0.22.0.dist-info → luminarycloud-0.22.2.dist-info}/METADATA +1 -1
  79. {luminarycloud-0.22.0.dist-info → luminarycloud-0.22.2.dist-info}/RECORD +80 -76
  80. {luminarycloud-0.22.0.dist-info → luminarycloud-0.22.2.dist-info}/WHEEL +1 -1
  81. luminarycloud/_proto/api/v0/luminarycloud/inference/inference_pb2.py +0 -61
  82. luminarycloud/_proto/api/v0/luminarycloud/inference/inference_pb2.pyi +0 -85
  83. luminarycloud/_proto/api/v0/luminarycloud/inference/inference_pb2_grpc.py +0 -67
  84. luminarycloud/_proto/api/v0/luminarycloud/inference/inference_pb2_grpc.pyi +0 -26
  85. luminarycloud/_proto/inferenceservice/inferenceservice_pb2.py +0 -69
  86. luminarycloud/pipeline_util/dictable.py +0 -27
@@ -0,0 +1,242 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
5
+ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
6
+ from luminarycloud._proto.api.v0.luminarycloud.physicsaiinference import physicsaiinference_pb2 as proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2
7
+
8
+
9
+ class PhysicsAiInferenceServiceStub(object):
10
+ """Manages physics AI inference jobs.
11
+ """
12
+
13
+ def __init__(self, channel):
14
+ """Constructor.
15
+
16
+ Args:
17
+ channel: A grpc.Channel.
18
+ """
19
+ self.CreateInferenceServiceJob = channel.unary_unary(
20
+ '/luminary.proto.api.v0.luminarycloud.physicsaiinference.PhysicsAiInferenceService/CreateInferenceServiceJob',
21
+ request_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.CreateInferenceServiceJobRequest.SerializeToString,
22
+ response_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceServiceJobResponse.FromString,
23
+ )
24
+ self.CreateInferenceServiceJobAsync = channel.unary_unary(
25
+ '/luminary.proto.api.v0.luminarycloud.physicsaiinference.PhysicsAiInferenceService/CreateInferenceServiceJobAsync',
26
+ request_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.CreateInferenceServiceJobRequest.SerializeToString,
27
+ response_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceServiceJobResponse.FromString,
28
+ )
29
+ self.GetInferenceServiceJob = channel.unary_unary(
30
+ '/luminary.proto.api.v0.luminarycloud.physicsaiinference.PhysicsAiInferenceService/GetInferenceServiceJob',
31
+ request_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceServiceJobRequest.SerializeToString,
32
+ response_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceServiceJobResponse.FromString,
33
+ )
34
+ self.ListInferenceServiceJobs = channel.unary_unary(
35
+ '/luminary.proto.api.v0.luminarycloud.physicsaiinference.PhysicsAiInferenceService/ListInferenceServiceJobs',
36
+ request_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.ListInferenceServiceJobsRequest.SerializeToString,
37
+ response_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.ListInferenceServiceJobsResponse.FromString,
38
+ )
39
+ self.DeleteInferenceJob = channel.unary_unary(
40
+ '/luminary.proto.api.v0.luminarycloud.physicsaiinference.PhysicsAiInferenceService/DeleteInferenceJob',
41
+ request_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.DeleteInferenceJobRequest.SerializeToString,
42
+ response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
43
+ )
44
+ self.GetInferenceFields = channel.unary_unary(
45
+ '/luminary.proto.api.v0.luminarycloud.physicsaiinference.PhysicsAiInferenceService/GetInferenceFields',
46
+ request_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceFieldsRequest.SerializeToString,
47
+ response_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceFieldsResponse.FromString,
48
+ )
49
+
50
+
51
+ class PhysicsAiInferenceServiceServicer(object):
52
+ """Manages physics AI inference jobs.
53
+ """
54
+
55
+ def CreateInferenceServiceJob(self, request, context):
56
+ """Creates an inference service job synchronously, waiting for completion.
57
+ """
58
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
59
+ context.set_details('Method not implemented!')
60
+ raise NotImplementedError('Method not implemented!')
61
+
62
+ def CreateInferenceServiceJobAsync(self, request, context):
63
+ """Creates an inference service job asynchronously without waiting for completion.
64
+ """
65
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
66
+ context.set_details('Method not implemented!')
67
+ raise NotImplementedError('Method not implemented!')
68
+
69
+ def GetInferenceServiceJob(self, request, context):
70
+ """Retrieves an inference service job by its ID.
71
+ """
72
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
73
+ context.set_details('Method not implemented!')
74
+ raise NotImplementedError('Method not implemented!')
75
+
76
+ def ListInferenceServiceJobs(self, request, context):
77
+ """Lists all inference service jobs for a given project.
78
+ """
79
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
80
+ context.set_details('Method not implemented!')
81
+ raise NotImplementedError('Method not implemented!')
82
+
83
+ def DeleteInferenceJob(self, request, context):
84
+ """Deletes (soft deletes) an inference service job by its ID.
85
+ This marks the job as soft-deleted so it no longer appears in listings.
86
+ """
87
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
88
+ context.set_details('Method not implemented!')
89
+ raise NotImplementedError('Method not implemented!')
90
+
91
+ def GetInferenceFields(self, request, context):
92
+ """Gets the inference fields that can be requested from a model version.
93
+ """
94
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
95
+ context.set_details('Method not implemented!')
96
+ raise NotImplementedError('Method not implemented!')
97
+
98
+
99
+ def add_PhysicsAiInferenceServiceServicer_to_server(servicer, server):
100
+ rpc_method_handlers = {
101
+ 'CreateInferenceServiceJob': grpc.unary_unary_rpc_method_handler(
102
+ servicer.CreateInferenceServiceJob,
103
+ request_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.CreateInferenceServiceJobRequest.FromString,
104
+ response_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceServiceJobResponse.SerializeToString,
105
+ ),
106
+ 'CreateInferenceServiceJobAsync': grpc.unary_unary_rpc_method_handler(
107
+ servicer.CreateInferenceServiceJobAsync,
108
+ request_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.CreateInferenceServiceJobRequest.FromString,
109
+ response_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceServiceJobResponse.SerializeToString,
110
+ ),
111
+ 'GetInferenceServiceJob': grpc.unary_unary_rpc_method_handler(
112
+ servicer.GetInferenceServiceJob,
113
+ request_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceServiceJobRequest.FromString,
114
+ response_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceServiceJobResponse.SerializeToString,
115
+ ),
116
+ 'ListInferenceServiceJobs': grpc.unary_unary_rpc_method_handler(
117
+ servicer.ListInferenceServiceJobs,
118
+ request_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.ListInferenceServiceJobsRequest.FromString,
119
+ response_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.ListInferenceServiceJobsResponse.SerializeToString,
120
+ ),
121
+ 'DeleteInferenceJob': grpc.unary_unary_rpc_method_handler(
122
+ servicer.DeleteInferenceJob,
123
+ request_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.DeleteInferenceJobRequest.FromString,
124
+ response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
125
+ ),
126
+ 'GetInferenceFields': grpc.unary_unary_rpc_method_handler(
127
+ servicer.GetInferenceFields,
128
+ request_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceFieldsRequest.FromString,
129
+ response_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceFieldsResponse.SerializeToString,
130
+ ),
131
+ }
132
+ generic_handler = grpc.method_handlers_generic_handler(
133
+ 'luminary.proto.api.v0.luminarycloud.physicsaiinference.PhysicsAiInferenceService', rpc_method_handlers)
134
+ server.add_generic_rpc_handlers((generic_handler,))
135
+
136
+
137
+ # This class is part of an EXPERIMENTAL API.
138
+ class PhysicsAiInferenceService(object):
139
+ """Manages physics AI inference jobs.
140
+ """
141
+
142
+ @staticmethod
143
+ def CreateInferenceServiceJob(request,
144
+ target,
145
+ options=(),
146
+ channel_credentials=None,
147
+ call_credentials=None,
148
+ insecure=False,
149
+ compression=None,
150
+ wait_for_ready=None,
151
+ timeout=None,
152
+ metadata=None):
153
+ return grpc.experimental.unary_unary(request, target, '/luminary.proto.api.v0.luminarycloud.physicsaiinference.PhysicsAiInferenceService/CreateInferenceServiceJob',
154
+ proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.CreateInferenceServiceJobRequest.SerializeToString,
155
+ proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceServiceJobResponse.FromString,
156
+ options, channel_credentials,
157
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
158
+
159
+ @staticmethod
160
+ def CreateInferenceServiceJobAsync(request,
161
+ target,
162
+ options=(),
163
+ channel_credentials=None,
164
+ call_credentials=None,
165
+ insecure=False,
166
+ compression=None,
167
+ wait_for_ready=None,
168
+ timeout=None,
169
+ metadata=None):
170
+ return grpc.experimental.unary_unary(request, target, '/luminary.proto.api.v0.luminarycloud.physicsaiinference.PhysicsAiInferenceService/CreateInferenceServiceJobAsync',
171
+ proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.CreateInferenceServiceJobRequest.SerializeToString,
172
+ proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceServiceJobResponse.FromString,
173
+ options, channel_credentials,
174
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
175
+
176
+ @staticmethod
177
+ def GetInferenceServiceJob(request,
178
+ target,
179
+ options=(),
180
+ channel_credentials=None,
181
+ call_credentials=None,
182
+ insecure=False,
183
+ compression=None,
184
+ wait_for_ready=None,
185
+ timeout=None,
186
+ metadata=None):
187
+ return grpc.experimental.unary_unary(request, target, '/luminary.proto.api.v0.luminarycloud.physicsaiinference.PhysicsAiInferenceService/GetInferenceServiceJob',
188
+ proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceServiceJobRequest.SerializeToString,
189
+ proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceServiceJobResponse.FromString,
190
+ options, channel_credentials,
191
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
192
+
193
+ @staticmethod
194
+ def ListInferenceServiceJobs(request,
195
+ target,
196
+ options=(),
197
+ channel_credentials=None,
198
+ call_credentials=None,
199
+ insecure=False,
200
+ compression=None,
201
+ wait_for_ready=None,
202
+ timeout=None,
203
+ metadata=None):
204
+ return grpc.experimental.unary_unary(request, target, '/luminary.proto.api.v0.luminarycloud.physicsaiinference.PhysicsAiInferenceService/ListInferenceServiceJobs',
205
+ proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.ListInferenceServiceJobsRequest.SerializeToString,
206
+ proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.ListInferenceServiceJobsResponse.FromString,
207
+ options, channel_credentials,
208
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
209
+
210
+ @staticmethod
211
+ def DeleteInferenceJob(request,
212
+ target,
213
+ options=(),
214
+ channel_credentials=None,
215
+ call_credentials=None,
216
+ insecure=False,
217
+ compression=None,
218
+ wait_for_ready=None,
219
+ timeout=None,
220
+ metadata=None):
221
+ return grpc.experimental.unary_unary(request, target, '/luminary.proto.api.v0.luminarycloud.physicsaiinference.PhysicsAiInferenceService/DeleteInferenceJob',
222
+ proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.DeleteInferenceJobRequest.SerializeToString,
223
+ google_dot_protobuf_dot_empty__pb2.Empty.FromString,
224
+ options, channel_credentials,
225
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
226
+
227
+ @staticmethod
228
+ def GetInferenceFields(request,
229
+ target,
230
+ options=(),
231
+ channel_credentials=None,
232
+ call_credentials=None,
233
+ insecure=False,
234
+ compression=None,
235
+ wait_for_ready=None,
236
+ timeout=None,
237
+ metadata=None):
238
+ return grpc.experimental.unary_unary(request, target, '/luminary.proto.api.v0.luminarycloud.physicsaiinference.PhysicsAiInferenceService/GetInferenceFields',
239
+ proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceFieldsRequest.SerializeToString,
240
+ proto_dot_api_dot_v0_dot_luminarycloud_dot_physicsaiinference_dot_physicsaiinference__pb2.GetInferenceFieldsResponse.FromString,
241
+ options, channel_credentials,
242
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -0,0 +1,95 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import abc
6
+ import google.protobuf.empty_pb2
7
+ import grpc
8
+ import luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2
9
+
10
+ class PhysicsAiInferenceServiceStub:
11
+ """Manages physics AI inference jobs."""
12
+
13
+ def __init__(self, channel: grpc.Channel) -> None: ...
14
+ CreateInferenceServiceJob: grpc.UnaryUnaryMultiCallable[
15
+ luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.CreateInferenceServiceJobRequest,
16
+ luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.GetInferenceServiceJobResponse,
17
+ ]
18
+ """Creates an inference service job synchronously, waiting for completion."""
19
+ CreateInferenceServiceJobAsync: grpc.UnaryUnaryMultiCallable[
20
+ luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.CreateInferenceServiceJobRequest,
21
+ luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.GetInferenceServiceJobResponse,
22
+ ]
23
+ """Creates an inference service job asynchronously without waiting for completion."""
24
+ GetInferenceServiceJob: grpc.UnaryUnaryMultiCallable[
25
+ luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.GetInferenceServiceJobRequest,
26
+ luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.GetInferenceServiceJobResponse,
27
+ ]
28
+ """Retrieves an inference service job by its ID."""
29
+ ListInferenceServiceJobs: grpc.UnaryUnaryMultiCallable[
30
+ luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.ListInferenceServiceJobsRequest,
31
+ luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.ListInferenceServiceJobsResponse,
32
+ ]
33
+ """Lists all inference service jobs for a given project."""
34
+ DeleteInferenceJob: grpc.UnaryUnaryMultiCallable[
35
+ luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.DeleteInferenceJobRequest,
36
+ google.protobuf.empty_pb2.Empty,
37
+ ]
38
+ """Deletes (soft deletes) an inference service job by its ID.
39
+ This marks the job as soft-deleted so it no longer appears in listings.
40
+ """
41
+ GetInferenceFields: grpc.UnaryUnaryMultiCallable[
42
+ luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.GetInferenceFieldsRequest,
43
+ luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.GetInferenceFieldsResponse,
44
+ ]
45
+ """Gets the inference fields that can be requested from a model version."""
46
+
47
+ class PhysicsAiInferenceServiceServicer(metaclass=abc.ABCMeta):
48
+ """Manages physics AI inference jobs."""
49
+
50
+ @abc.abstractmethod
51
+ def CreateInferenceServiceJob(
52
+ self,
53
+ request: luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.CreateInferenceServiceJobRequest,
54
+ context: grpc.ServicerContext,
55
+ ) -> luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.GetInferenceServiceJobResponse:
56
+ """Creates an inference service job synchronously, waiting for completion."""
57
+ @abc.abstractmethod
58
+ def CreateInferenceServiceJobAsync(
59
+ self,
60
+ request: luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.CreateInferenceServiceJobRequest,
61
+ context: grpc.ServicerContext,
62
+ ) -> luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.GetInferenceServiceJobResponse:
63
+ """Creates an inference service job asynchronously without waiting for completion."""
64
+ @abc.abstractmethod
65
+ def GetInferenceServiceJob(
66
+ self,
67
+ request: luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.GetInferenceServiceJobRequest,
68
+ context: grpc.ServicerContext,
69
+ ) -> luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.GetInferenceServiceJobResponse:
70
+ """Retrieves an inference service job by its ID."""
71
+ @abc.abstractmethod
72
+ def ListInferenceServiceJobs(
73
+ self,
74
+ request: luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.ListInferenceServiceJobsRequest,
75
+ context: grpc.ServicerContext,
76
+ ) -> luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.ListInferenceServiceJobsResponse:
77
+ """Lists all inference service jobs for a given project."""
78
+ @abc.abstractmethod
79
+ def DeleteInferenceJob(
80
+ self,
81
+ request: luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.DeleteInferenceJobRequest,
82
+ context: grpc.ServicerContext,
83
+ ) -> google.protobuf.empty_pb2.Empty:
84
+ """Deletes (soft deletes) an inference service job by its ID.
85
+ This marks the job as soft-deleted so it no longer appears in listings.
86
+ """
87
+ @abc.abstractmethod
88
+ def GetInferenceFields(
89
+ self,
90
+ request: luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.GetInferenceFieldsRequest,
91
+ context: grpc.ServicerContext,
92
+ ) -> luminarycloud._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2.GetInferenceFieldsResponse:
93
+ """Gets the inference fields that can be requested from a model version."""
94
+
95
+ def add_PhysicsAiInferenceServiceServicer_to_server(servicer: PhysicsAiInferenceServiceServicer, server: grpc.Server) -> None: ...
@@ -25,7 +25,7 @@ from luminarycloud._proto.api.v0.luminarycloud.common import common_pb2 as proto
25
25
  from luminarycloud._proto.api.v0.luminarycloud.simulation_template import simulation_template_pb2 as proto_dot_api_dot_v0_dot_luminarycloud_dot_simulation__template_dot_simulation__template__pb2
26
26
 
27
27
 
28
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n6proto/api/v0/luminarycloud/simulation/simulation.proto\x12.luminary.proto.api.v0.luminarycloud.simulation\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x15proto/base/base.proto\x1a\x1dproto/quantity/quantity.proto\x1a#proto/output/reference_values.proto\x1a\x19proto/output/output.proto\x1a\x1dproto/client/simulation.proto\x1a.proto/api/v0/luminarycloud/common/common.proto\x1aHproto/api/v0/luminarycloud/simulation_template/simulation_template.proto\"\x86\x04\n\nSimulation\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12[\n\x06status\x18\x05 \x01(\x0e\x32K.luminary.proto.api.v0.luminarycloud.simulation.Simulation.SimulationStatus\x12\x0f\n\x07mesh_id\x18\x06 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\x12\x12\n\nproject_id\x18\x08 \x01(\t\x12\x10\n\x08\x64oe_name\x18\t \x01(\t\"\xd2\x01\n\x10SimulationStatus\x12!\n\x1dSIMULATION_STATUS_UNSPECIFIED\x10\x00\x12\x1d\n\x19SIMULATION_STATUS_PENDING\x10\x01\x12\x1c\n\x18SIMULATION_STATUS_ACTIVE\x10\x02\x12\x1f\n\x1bSIMULATION_STATUS_COMPLETED\x10\x03\x12\x1c\n\x18SIMULATION_STATUS_FAILED\x10\x04\x12\x1f\n\x1bSIMULATION_STATUS_SUSPENDED\x10\x05\"\x8c\x02\n\x11SimulationOptions\x12\x18\n\x10\x62\x61tch_processing\x18\x01 \x01(\x08\x12[\n\x08gpu_type\x18\x08 \x01(\x0e\x32I.luminary.proto.api.v0.luminarycloud.simulation.SimulationOptions.GPUType\x12\x11\n\tgpu_count\x18\t \x01(\r\"m\n\x07GPUType\x12\x18\n\x14GPU_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rGPU_TYPE_V100\x10\x01\x12\x11\n\rGPU_TYPE_A100\x10\x02\x12\x0f\n\x0bGPU_TYPE_T4\x10\x03\x12\x11\n\rGPU_TYPE_H100\x10\x04\"\xda\x03\n\x17\x43reateSimulationRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0f\n\x07mesh_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x1e\n\x16simulation_template_id\x18\x04 \x01(\t\x12]\n\x12simulation_options\x18\x05 \x01(\x0b\x32\x41.luminary.proto.api.v0.luminarycloud.simulation.SimulationOptions\x12\x44\n\x10simulation_param\x18\x06 \x01(\x0b\x32&.luminary.proto.client.SimulationParamB\x02\x18\x01\x12!\n\x15simulation_param_json\x18\x07 \x01(\x0c\x42\x02\x18\x01\x12\x13\n\x0b\x64\x65scription\x18\x08 \x01(\t\x12%\n\x1dnamed_variable_set_version_id\x18\t \x01(\t\x12h\n\x13simulation_template\x18\n \x01(\x0b\x32K.luminary.proto.api.v0.luminarycloud.simulation_template.SimulationTemplate\"j\n\x18\x43reateSimulationResponse\x12N\n\nsimulation\x18\x01 \x01(\x0b\x32:.luminary.proto.api.v0.luminarycloud.simulation.Simulation\"\"\n\x14GetSimulationRequest\x12\n\n\x02id\x18\x01 \x01(\t\"g\n\x15GetSimulationResponse\x12N\n\nsimulation\x18\x01 \x01(\x0b\x32:.luminary.proto.api.v0.luminarycloud.simulation.Simulation\"k\n\x17UpdateSimulationRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\x04name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_description\"j\n\x18UpdateSimulationResponse\x12N\n\nsimulation\x18\x01 \x01(\x0b\x32:.luminary.proto.api.v0.luminarycloud.simulation.Simulation\",\n\x16ListSimulationsRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\"j\n\x17ListSimulationsResponse\x12O\n\x0bsimulations\x18\x01 \x03(\x0b\x32:.luminary.proto.api.v0.luminarycloud.simulation.Simulation\"%\n\x17\x44\x65leteSimulationRequest\x12\n\n\x02id\x18\x01 \x01(\t\"&\n\x18SuspendSimulationRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\xcf\x02\n#GetSimulationGlobalResidualsRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x89\x01\n\x16residual_normalization\x18\x03 \x01(\x0e\x32i.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationGlobalResidualsRequest.ResidualNormalization\"\x89\x01\n\x15ResidualNormalization\x12&\n\"RESIDUAL_NORMALIZATION_UNSPECIFIED\x10\x00\x12#\n\x1fRESIDUAL_NORMALIZATION_RELATIVE\x10\x01\x12#\n\x1fRESIDUAL_NORMALIZATION_ABSOLUTE\x10\x02J\x04\x08\x04\x10\x05\"j\n$GetSimulationGlobalResidualsResponse\x12\x42\n\x08\x63sv_file\x18\x01 \x01(\x0b\x32\x30.luminary.proto.api.v0.luminarycloud.common.File\"\xbe\x05\n)GetSimulationSurfaceQuantityOutputRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12<\n\rquantity_type\x18\x02 \x01(\x0e\x32%.luminary.proto.quantity.QuantityType\x12\x13\n\x0bsurface_ids\x18\x03 \x03(\t\x12Y\n\x10\x63\x61lculation_type\x18\x04 \x01(\x0e\x32?.luminary.proto.api.v0.luminarycloud.simulation.CalculationType\x12\x10\n\x08\x66rame_id\x18\x06 \x01(\t\x12L\n\x0f\x66orce_direction\x18\x11 \x01(\x0b\x32\x33.luminary.proto.api.v0.luminarycloud.common.Vector3\x12J\n\rmoment_center\x18\x12 \x01(\x0b\x32\x33.luminary.proto.api.v0.luminarycloud.common.Vector3\x12U\n\x0e\x61veraging_type\x18\x13 \x01(\x0e\x32=.luminary.proto.api.v0.luminarycloud.simulation.AveragingType\x12@\n\x10reference_values\x18\x14 \x01(\x0b\x32&.luminary.proto.output.ReferenceValues\x12?\n\x10vector_component\x18\x15 \x01(\x0e\x32%.luminary.proto.base.Vector3Component\x12K\n\x16moment_convention_type\x18\x16 \x01(\x0e\x32+.luminary.proto.output.MomentConventionTypeJ\x04\x08\x05\x10\x06\"p\n*GetSimulationSurfaceQuantityOutputResponse\x12\x42\n\x08\x63sv_file\x18\x01 \x01(\x0b\x32\x30.luminary.proto.api.v0.luminarycloud.common.File\"J\n#GetSimulationSurfaceSolutionRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\ttime_step\x18\x03 \x01(\rJ\x04\x08\x02\x10\x03\"l\n$GetSimulationSurfaceSolutionResponse\x12>\n\x04\x66ile\x18\x02 \x01(\x0b\x32\x30.luminary.proto.api.v0.luminarycloud.common.FileJ\x04\x08\x01\x10\x02\"c\n\"GetSimulationVolumeSolutionRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\ttime_step\x18\x03 \x01(\r\x12\x18\n\x10single_precision\x18\x04 \x01(\x08J\x04\x08\x02\x10\x03\"k\n#GetSimulationVolumeSolutionResponse\x12>\n\x04\x66ile\x18\x02 \x01(\x0b\x32\x30.luminary.proto.api.v0.luminarycloud.common.FileJ\x04\x08\x01\x10\x02\",\n\x1eGetSimulationParametersRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\xed\x01\n\x15SimulationQueueStatus\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x15\n\rsimulation_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x31\n\rcreation_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x0cstarted_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x0e\n\x06is_lma\x18\x06 \x01(\x08\x12\x10\n\x08priority\x18\x07 \x01(\x08\x42\x0f\n\r_started_time\"l\n\x1cListQueuedSimulationsRequest\x12\x16\n\tpage_size\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x17\n\npage_token\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0c\n\n_page_sizeB\r\n\x0b_page_token\"\xa9\x01\n\x1dListQueuedSimulationsResponse\x12Z\n\x0bsimulations\x18\x01 \x03(\x0b\x32\x45.luminary.proto.api.v0.luminarycloud.simulation.SimulationQueueStatus\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0btotal_count\x18\x03 \x01(\x05\"/\n\x15GetWorkflowIDsRequest\x12\x16\n\x0esimulation_ids\x18\x01 \x03(\t\"\xa5\x01\n\x16GetWorkflowIDsResponse\x12^\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32P.luminary.proto.api.v0.luminarycloud.simulation.GetWorkflowIDsResponse.DataEntry\x1a+\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*\x96\x01\n\x0f\x43\x61lculationType\x12 \n\x1c\x43\x41LCULATION_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x43\x41LCULATION_TYPE_AGGREGATE\x10\x01\x12 \n\x1c\x43\x41LCULATION_TYPE_PER_SURFACE\x10\x02\x12\x1f\n\x1b\x43\x41LCULATION_TYPE_DIFFERENCE\x10\x03*f\n\rAveragingType\x12\x1e\n\x1a\x41VERAGING_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x41VERAGING_TYPE_MASS_FLOW\x10\x01\x12\x17\n\x13\x41VERAGING_TYPE_AREA\x10\x02\x32\xd3\x15\n\x11SimulationService\x12\xd7\x01\n\x10\x43reateSimulation\x12G.luminary.proto.api.v0.luminarycloud.simulation.CreateSimulationRequest\x1aH.luminary.proto.api.v0.luminarycloud.simulation.CreateSimulationResponse\"0\x82\xd3\xe4\x93\x02*\"%/v0/projects/{project_id}/simulations:\x01*\x12\xba\x01\n\rGetSimulation\x12\x44.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationRequest\x1a\x45.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationResponse\"\x1c\x82\xd3\xe4\x93\x02\x16\x12\x14/v0/simulations/{id}\x12\xc6\x01\n\x10UpdateSimulation\x12G.luminary.proto.api.v0.luminarycloud.simulation.UpdateSimulationRequest\x1aH.luminary.proto.api.v0.luminarycloud.simulation.UpdateSimulationResponse\"\x1f\x82\xd3\xe4\x93\x02\x19\x32\x14/v0/simulations/{id}:\x01*\x12\xd1\x01\n\x0fListSimulations\x12\x46.luminary.proto.api.v0.luminarycloud.simulation.ListSimulationsRequest\x1aG.luminary.proto.api.v0.luminarycloud.simulation.ListSimulationsResponse\"-\x82\xd3\xe4\x93\x02\'\x12%/v0/projects/{project_id}/simulations\x12\x91\x01\n\x10\x44\x65leteSimulation\x12G.luminary.proto.api.v0.luminarycloud.simulation.DeleteSimulationRequest\x1a\x16.google.protobuf.Empty\"\x1c\x82\xd3\xe4\x93\x02\x16*\x14/v0/simulations/{id}\x12\x9b\x01\n\x11SuspendSimulation\x12H.luminary.proto.api.v0.luminarycloud.simulation.SuspendSimulationRequest\x1a\x16.google.protobuf.Empty\"$\x82\xd3\xe4\x93\x02\x1e\"\x1c/v0/simulations/{id}:suspend\x12\xf7\x01\n\x1cGetSimulationGlobalResiduals\x12S.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationGlobalResidualsRequest\x1aT.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationGlobalResidualsResponse\",\x82\xd3\xe4\x93\x02&\x12$/v0/simulations/{id}:globalresiduals\x12\x8f\x02\n\"GetSimulationSurfaceQuantityOutput\x12Y.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationSurfaceQuantityOutputRequest\x1aZ.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationSurfaceQuantityOutputResponse\"2\x82\xd3\xe4\x93\x02,\x12*/v0/simulations/{id}:surfacequantityoutput\x12\xf7\x01\n\x1cGetSimulationSurfaceSolution\x12S.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationSurfaceSolutionRequest\x1aT.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationSurfaceSolutionResponse\",\x82\xd3\xe4\x93\x02&\x12$/v0/simulations/{id}:surfacesolution\x12\xf3\x01\n\x1bGetSimulationVolumeSolution\x12R.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationVolumeSolutionRequest\x1aS.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationVolumeSolutionResponse\"+\x82\xd3\xe4\x93\x02%\x12#/v0/simulations/{id}:volumesolution\x12\xba\x01\n\x17GetSimulationParameters\x12N.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationParametersRequest\x1a&.luminary.proto.client.SimulationParam\"\'\x82\xd3\xe4\x93\x02!\x12\x1f/v0/simulations/{id}/parameters\x12\xd4\x01\n\x15ListQueuedSimulations\x12L.luminary.proto.api.v0.luminarycloud.simulation.ListQueuedSimulationsRequest\x1aM.luminary.proto.api.v0.luminarycloud.simulation.ListQueuedSimulationsResponse\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/v0/queued-simulations\x12\xc7\x01\n\x0eGetWorkflowIDs\x12\x45.luminary.proto.api.v0.luminarycloud.simulation.GetWorkflowIDsRequest\x1a\x46.luminary.proto.api.v0.luminarycloud.simulation.GetWorkflowIDsResponse\"&\x82\xd3\xe4\x93\x02 \x12\x1e/v0/simulations:getworkflowidsB>Z<luminarycloud.com/core/proto/api/v0/luminarycloud/simulationb\x06proto3')
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n6proto/api/v0/luminarycloud/simulation/simulation.proto\x12.luminary.proto.api.v0.luminarycloud.simulation\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x15proto/base/base.proto\x1a\x1dproto/quantity/quantity.proto\x1a#proto/output/reference_values.proto\x1a\x19proto/output/output.proto\x1a\x1dproto/client/simulation.proto\x1a.proto/api/v0/luminarycloud/common/common.proto\x1aHproto/api/v0/luminarycloud/simulation_template/simulation_template.proto\"\x86\x04\n\nSimulation\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12[\n\x06status\x18\x05 \x01(\x0e\x32K.luminary.proto.api.v0.luminarycloud.simulation.Simulation.SimulationStatus\x12\x0f\n\x07mesh_id\x18\x06 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\x12\x12\n\nproject_id\x18\x08 \x01(\t\x12\x10\n\x08\x64oe_name\x18\t \x01(\t\"\xd2\x01\n\x10SimulationStatus\x12!\n\x1dSIMULATION_STATUS_UNSPECIFIED\x10\x00\x12\x1d\n\x19SIMULATION_STATUS_PENDING\x10\x01\x12\x1c\n\x18SIMULATION_STATUS_ACTIVE\x10\x02\x12\x1f\n\x1bSIMULATION_STATUS_COMPLETED\x10\x03\x12\x1c\n\x18SIMULATION_STATUS_FAILED\x10\x04\x12\x1f\n\x1bSIMULATION_STATUS_SUSPENDED\x10\x05\"\x8c\x02\n\x11SimulationOptions\x12\x18\n\x10\x62\x61tch_processing\x18\x01 \x01(\x08\x12[\n\x08gpu_type\x18\x08 \x01(\x0e\x32I.luminary.proto.api.v0.luminarycloud.simulation.SimulationOptions.GPUType\x12\x11\n\tgpu_count\x18\t \x01(\r\"m\n\x07GPUType\x12\x18\n\x14GPU_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rGPU_TYPE_V100\x10\x01\x12\x11\n\rGPU_TYPE_A100\x10\x02\x12\x0f\n\x0bGPU_TYPE_T4\x10\x03\x12\x11\n\rGPU_TYPE_H100\x10\x04\"\xda\x03\n\x17\x43reateSimulationRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0f\n\x07mesh_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x1e\n\x16simulation_template_id\x18\x04 \x01(\t\x12]\n\x12simulation_options\x18\x05 \x01(\x0b\x32\x41.luminary.proto.api.v0.luminarycloud.simulation.SimulationOptions\x12\x44\n\x10simulation_param\x18\x06 \x01(\x0b\x32&.luminary.proto.client.SimulationParamB\x02\x18\x01\x12!\n\x15simulation_param_json\x18\x07 \x01(\x0c\x42\x02\x18\x01\x12\x13\n\x0b\x64\x65scription\x18\x08 \x01(\t\x12%\n\x1dnamed_variable_set_version_id\x18\t \x01(\t\x12h\n\x13simulation_template\x18\n \x01(\x0b\x32K.luminary.proto.api.v0.luminarycloud.simulation_template.SimulationTemplate\"j\n\x18\x43reateSimulationResponse\x12N\n\nsimulation\x18\x01 \x01(\x0b\x32:.luminary.proto.api.v0.luminarycloud.simulation.Simulation\"\"\n\x14GetSimulationRequest\x12\n\n\x02id\x18\x01 \x01(\t\"g\n\x15GetSimulationResponse\x12N\n\nsimulation\x18\x01 \x01(\x0b\x32:.luminary.proto.api.v0.luminarycloud.simulation.Simulation\"k\n\x17UpdateSimulationRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\x04name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_description\"j\n\x18UpdateSimulationResponse\x12N\n\nsimulation\x18\x01 \x01(\x0b\x32:.luminary.proto.api.v0.luminarycloud.simulation.Simulation\",\n\x16ListSimulationsRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\"j\n\x17ListSimulationsResponse\x12O\n\x0bsimulations\x18\x01 \x03(\x0b\x32:.luminary.proto.api.v0.luminarycloud.simulation.Simulation\"%\n\x17\x44\x65leteSimulationRequest\x12\n\n\x02id\x18\x01 \x01(\t\"&\n\x18SuspendSimulationRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\xcf\x02\n#GetSimulationGlobalResidualsRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x89\x01\n\x16residual_normalization\x18\x03 \x01(\x0e\x32i.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationGlobalResidualsRequest.ResidualNormalization\"\x89\x01\n\x15ResidualNormalization\x12&\n\"RESIDUAL_NORMALIZATION_UNSPECIFIED\x10\x00\x12#\n\x1fRESIDUAL_NORMALIZATION_RELATIVE\x10\x01\x12#\n\x1fRESIDUAL_NORMALIZATION_ABSOLUTE\x10\x02J\x04\x08\x04\x10\x05\"j\n$GetSimulationGlobalResidualsResponse\x12\x42\n\x08\x63sv_file\x18\x01 \x01(\x0b\x32\x30.luminary.proto.api.v0.luminarycloud.common.File\"\xbe\x05\n)GetSimulationSurfaceQuantityOutputRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12<\n\rquantity_type\x18\x02 \x01(\x0e\x32%.luminary.proto.quantity.QuantityType\x12\x13\n\x0bsurface_ids\x18\x03 \x03(\t\x12Y\n\x10\x63\x61lculation_type\x18\x04 \x01(\x0e\x32?.luminary.proto.api.v0.luminarycloud.simulation.CalculationType\x12\x10\n\x08\x66rame_id\x18\x06 \x01(\t\x12L\n\x0f\x66orce_direction\x18\x11 \x01(\x0b\x32\x33.luminary.proto.api.v0.luminarycloud.common.Vector3\x12J\n\rmoment_center\x18\x12 \x01(\x0b\x32\x33.luminary.proto.api.v0.luminarycloud.common.Vector3\x12U\n\x0e\x61veraging_type\x18\x13 \x01(\x0e\x32=.luminary.proto.api.v0.luminarycloud.simulation.AveragingType\x12@\n\x10reference_values\x18\x14 \x01(\x0b\x32&.luminary.proto.output.ReferenceValues\x12?\n\x10vector_component\x18\x15 \x01(\x0e\x32%.luminary.proto.base.Vector3Component\x12K\n\x16moment_convention_type\x18\x16 \x01(\x0e\x32+.luminary.proto.output.MomentConventionTypeJ\x04\x08\x05\x10\x06\"p\n*GetSimulationSurfaceQuantityOutputResponse\x12\x42\n\x08\x63sv_file\x18\x01 \x01(\x0b\x32\x30.luminary.proto.api.v0.luminarycloud.common.File\"J\n#GetSimulationSurfaceSolutionRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\ttime_step\x18\x03 \x01(\rJ\x04\x08\x02\x10\x03\"l\n$GetSimulationSurfaceSolutionResponse\x12>\n\x04\x66ile\x18\x02 \x01(\x0b\x32\x30.luminary.proto.api.v0.luminarycloud.common.FileJ\x04\x08\x01\x10\x02\"c\n\"GetSimulationVolumeSolutionRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\ttime_step\x18\x03 \x01(\r\x12\x18\n\x10single_precision\x18\x04 \x01(\x08J\x04\x08\x02\x10\x03\"k\n#GetSimulationVolumeSolutionResponse\x12>\n\x04\x66ile\x18\x02 \x01(\x0b\x32\x30.luminary.proto.api.v0.luminarycloud.common.FileJ\x04\x08\x01\x10\x02\",\n\x1eGetSimulationParametersRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\xed\x01\n\x15SimulationQueueStatus\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x15\n\rsimulation_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x31\n\rcreation_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x0cstarted_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x0e\n\x06is_lma\x18\x06 \x01(\x08\x12\x10\n\x08priority\x18\x07 \x01(\x08\x42\x0f\n\r_started_time\"l\n\x1cListQueuedSimulationsRequest\x12\x16\n\tpage_size\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x17\n\npage_token\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0c\n\n_page_sizeB\r\n\x0b_page_token\"\xa9\x01\n\x1dListQueuedSimulationsResponse\x12Z\n\x0bsimulations\x18\x01 \x03(\x0b\x32\x45.luminary.proto.api.v0.luminarycloud.simulation.SimulationQueueStatus\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0btotal_count\x18\x03 \x01(\x05\"/\n\x15GetWorkflowIDsRequest\x12\x16\n\x0esimulation_ids\x18\x01 \x03(\t\"\xa5\x01\n\x16GetWorkflowIDsResponse\x12^\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32P.luminary.proto.api.v0.luminarycloud.simulation.GetWorkflowIDsResponse.DataEntry\x1a+\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"/\n!GetStoppingConditionStatusRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\xa2\x01\n\"GetStoppingConditionStatusResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..luminary.proto.output.StoppingConditionStatus\x12<\n\nconditions\x18\x02 \x03(\x0b\x32(.luminary.proto.output.StoppingCondition*\x96\x01\n\x0f\x43\x61lculationType\x12 \n\x1c\x43\x41LCULATION_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x43\x41LCULATION_TYPE_AGGREGATE\x10\x01\x12 \n\x1c\x43\x41LCULATION_TYPE_PER_SURFACE\x10\x02\x12\x1f\n\x1b\x43\x41LCULATION_TYPE_DIFFERENCE\x10\x03*f\n\rAveragingType\x12\x1e\n\x1a\x41VERAGING_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x41VERAGING_TYPE_MASS_FLOW\x10\x01\x12\x17\n\x13\x41VERAGING_TYPE_AREA\x10\x02\x32\xd1\x17\n\x11SimulationService\x12\xd7\x01\n\x10\x43reateSimulation\x12G.luminary.proto.api.v0.luminarycloud.simulation.CreateSimulationRequest\x1aH.luminary.proto.api.v0.luminarycloud.simulation.CreateSimulationResponse\"0\x82\xd3\xe4\x93\x02*\"%/v0/projects/{project_id}/simulations:\x01*\x12\xba\x01\n\rGetSimulation\x12\x44.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationRequest\x1a\x45.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationResponse\"\x1c\x82\xd3\xe4\x93\x02\x16\x12\x14/v0/simulations/{id}\x12\xc6\x01\n\x10UpdateSimulation\x12G.luminary.proto.api.v0.luminarycloud.simulation.UpdateSimulationRequest\x1aH.luminary.proto.api.v0.luminarycloud.simulation.UpdateSimulationResponse\"\x1f\x82\xd3\xe4\x93\x02\x19\x32\x14/v0/simulations/{id}:\x01*\x12\xd1\x01\n\x0fListSimulations\x12\x46.luminary.proto.api.v0.luminarycloud.simulation.ListSimulationsRequest\x1aG.luminary.proto.api.v0.luminarycloud.simulation.ListSimulationsResponse\"-\x82\xd3\xe4\x93\x02\'\x12%/v0/projects/{project_id}/simulations\x12\x91\x01\n\x10\x44\x65leteSimulation\x12G.luminary.proto.api.v0.luminarycloud.simulation.DeleteSimulationRequest\x1a\x16.google.protobuf.Empty\"\x1c\x82\xd3\xe4\x93\x02\x16*\x14/v0/simulations/{id}\x12\x9b\x01\n\x11SuspendSimulation\x12H.luminary.proto.api.v0.luminarycloud.simulation.SuspendSimulationRequest\x1a\x16.google.protobuf.Empty\"$\x82\xd3\xe4\x93\x02\x1e\"\x1c/v0/simulations/{id}:suspend\x12\xf7\x01\n\x1cGetSimulationGlobalResiduals\x12S.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationGlobalResidualsRequest\x1aT.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationGlobalResidualsResponse\",\x82\xd3\xe4\x93\x02&\x12$/v0/simulations/{id}:globalresiduals\x12\x8f\x02\n\"GetSimulationSurfaceQuantityOutput\x12Y.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationSurfaceQuantityOutputRequest\x1aZ.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationSurfaceQuantityOutputResponse\"2\x82\xd3\xe4\x93\x02,\x12*/v0/simulations/{id}:surfacequantityoutput\x12\xf7\x01\n\x1cGetSimulationSurfaceSolution\x12S.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationSurfaceSolutionRequest\x1aT.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationSurfaceSolutionResponse\",\x82\xd3\xe4\x93\x02&\x12$/v0/simulations/{id}:surfacesolution\x12\xf3\x01\n\x1bGetSimulationVolumeSolution\x12R.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationVolumeSolutionRequest\x1aS.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationVolumeSolutionResponse\"+\x82\xd3\xe4\x93\x02%\x12#/v0/simulations/{id}:volumesolution\x12\xba\x01\n\x17GetSimulationParameters\x12N.luminary.proto.api.v0.luminarycloud.simulation.GetSimulationParametersRequest\x1a&.luminary.proto.client.SimulationParam\"\'\x82\xd3\xe4\x93\x02!\x12\x1f/v0/simulations/{id}/parameters\x12\xd4\x01\n\x15ListQueuedSimulations\x12L.luminary.proto.api.v0.luminarycloud.simulation.ListQueuedSimulationsRequest\x1aM.luminary.proto.api.v0.luminarycloud.simulation.ListQueuedSimulationsResponse\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/v0/queued-simulations\x12\xc7\x01\n\x0eGetWorkflowIDs\x12\x45.luminary.proto.api.v0.luminarycloud.simulation.GetWorkflowIDsRequest\x1a\x46.luminary.proto.api.v0.luminarycloud.simulation.GetWorkflowIDsResponse\"&\x82\xd3\xe4\x93\x02 \x12\x1e/v0/simulations:getworkflowids\x12\xfb\x01\n\x1aGetStoppingConditionStatus\x12Q.luminary.proto.api.v0.luminarycloud.simulation.GetStoppingConditionStatusRequest\x1aR.luminary.proto.api.v0.luminarycloud.simulation.GetStoppingConditionStatusResponse\"6\x82\xd3\xe4\x93\x02\x30\x12./v0/simulations/{id}/stopping_condition_statusB>Z<luminarycloud.com/core/proto/api/v0/luminarycloud/simulationb\x06proto3')
29
29
 
30
30
  _CALCULATIONTYPE = DESCRIPTOR.enum_types_by_name['CalculationType']
31
31
  CalculationType = enum_type_wrapper.EnumTypeWrapper(_CALCULATIONTYPE)
@@ -67,6 +67,8 @@ _LISTQUEUEDSIMULATIONSRESPONSE = DESCRIPTOR.message_types_by_name['ListQueuedSim
67
67
  _GETWORKFLOWIDSREQUEST = DESCRIPTOR.message_types_by_name['GetWorkflowIDsRequest']
68
68
  _GETWORKFLOWIDSRESPONSE = DESCRIPTOR.message_types_by_name['GetWorkflowIDsResponse']
69
69
  _GETWORKFLOWIDSRESPONSE_DATAENTRY = _GETWORKFLOWIDSRESPONSE.nested_types_by_name['DataEntry']
70
+ _GETSTOPPINGCONDITIONSTATUSREQUEST = DESCRIPTOR.message_types_by_name['GetStoppingConditionStatusRequest']
71
+ _GETSTOPPINGCONDITIONSTATUSRESPONSE = DESCRIPTOR.message_types_by_name['GetStoppingConditionStatusResponse']
70
72
  _SIMULATION_SIMULATIONSTATUS = _SIMULATION.enum_types_by_name['SimulationStatus']
71
73
  _SIMULATIONOPTIONS_GPUTYPE = _SIMULATIONOPTIONS.enum_types_by_name['GPUType']
72
74
  _GETSIMULATIONGLOBALRESIDUALSREQUEST_RESIDUALNORMALIZATION = _GETSIMULATIONGLOBALRESIDUALSREQUEST.enum_types_by_name['ResidualNormalization']
@@ -260,6 +262,20 @@ GetWorkflowIDsResponse = _reflection.GeneratedProtocolMessageType('GetWorkflowID
260
262
  _sym_db.RegisterMessage(GetWorkflowIDsResponse)
261
263
  _sym_db.RegisterMessage(GetWorkflowIDsResponse.DataEntry)
262
264
 
265
+ GetStoppingConditionStatusRequest = _reflection.GeneratedProtocolMessageType('GetStoppingConditionStatusRequest', (_message.Message,), {
266
+ 'DESCRIPTOR' : _GETSTOPPINGCONDITIONSTATUSREQUEST,
267
+ '__module__' : 'proto.api.v0.luminarycloud.simulation.simulation_pb2'
268
+ # @@protoc_insertion_point(class_scope:luminary.proto.api.v0.luminarycloud.simulation.GetStoppingConditionStatusRequest)
269
+ })
270
+ _sym_db.RegisterMessage(GetStoppingConditionStatusRequest)
271
+
272
+ GetStoppingConditionStatusResponse = _reflection.GeneratedProtocolMessageType('GetStoppingConditionStatusResponse', (_message.Message,), {
273
+ 'DESCRIPTOR' : _GETSTOPPINGCONDITIONSTATUSRESPONSE,
274
+ '__module__' : 'proto.api.v0.luminarycloud.simulation.simulation_pb2'
275
+ # @@protoc_insertion_point(class_scope:luminary.proto.api.v0.luminarycloud.simulation.GetStoppingConditionStatusResponse)
276
+ })
277
+ _sym_db.RegisterMessage(GetStoppingConditionStatusResponse)
278
+
263
279
  _SIMULATIONSERVICE = DESCRIPTOR.services_by_name['SimulationService']
264
280
  if _descriptor._USE_C_DESCRIPTORS == False:
265
281
 
@@ -297,10 +313,12 @@ if _descriptor._USE_C_DESCRIPTORS == False:
297
313
  _SIMULATIONSERVICE.methods_by_name['ListQueuedSimulations']._serialized_options = b'\202\323\344\223\002\030\022\026/v0/queued-simulations'
298
314
  _SIMULATIONSERVICE.methods_by_name['GetWorkflowIDs']._options = None
299
315
  _SIMULATIONSERVICE.methods_by_name['GetWorkflowIDs']._serialized_options = b'\202\323\344\223\002 \022\036/v0/simulations:getworkflowids'
300
- _CALCULATIONTYPE._serialized_start=4884
301
- _CALCULATIONTYPE._serialized_end=5034
302
- _AVERAGINGTYPE._serialized_start=5036
303
- _AVERAGINGTYPE._serialized_end=5138
316
+ _SIMULATIONSERVICE.methods_by_name['GetStoppingConditionStatus']._options = None
317
+ _SIMULATIONSERVICE.methods_by_name['GetStoppingConditionStatus']._serialized_options = b'\202\323\344\223\0020\022./v0/simulations/{id}/stopping_condition_status'
318
+ _CALCULATIONTYPE._serialized_start=5098
319
+ _CALCULATIONTYPE._serialized_end=5248
320
+ _AVERAGINGTYPE._serialized_start=5250
321
+ _AVERAGINGTYPE._serialized_end=5352
304
322
  _SIMULATION._serialized_start=470
305
323
  _SIMULATION._serialized_end=988
306
324
  _SIMULATION_SIMULATIONSTATUS._serialized_start=778
@@ -361,6 +379,10 @@ if _descriptor._USE_C_DESCRIPTORS == False:
361
379
  _GETWORKFLOWIDSRESPONSE._serialized_end=4881
362
380
  _GETWORKFLOWIDSRESPONSE_DATAENTRY._serialized_start=4838
363
381
  _GETWORKFLOWIDSRESPONSE_DATAENTRY._serialized_end=4881
364
- _SIMULATIONSERVICE._serialized_start=5141
365
- _SIMULATIONSERVICE._serialized_end=7912
382
+ _GETSTOPPINGCONDITIONSTATUSREQUEST._serialized_start=4883
383
+ _GETSTOPPINGCONDITIONSTATUSREQUEST._serialized_end=4930
384
+ _GETSTOPPINGCONDITIONSTATUSRESPONSE._serialized_start=4933
385
+ _GETSTOPPINGCONDITIONSTATUSRESPONSE._serialized_end=5095
386
+ _SIMULATIONSERVICE._serialized_start=5355
387
+ _SIMULATIONSERVICE._serialized_end=8380
366
388
  # @@protoc_insertion_point(module_scope)
@@ -850,3 +850,42 @@ class GetWorkflowIDsResponse(google.protobuf.message.Message):
850
850
  def ClearField(self, field_name: typing_extensions.Literal["data", b"data"]) -> None: ...
851
851
 
852
852
  global___GetWorkflowIDsResponse = GetWorkflowIDsResponse
853
+
854
+ class GetStoppingConditionStatusRequest(google.protobuf.message.Message):
855
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
856
+
857
+ ID_FIELD_NUMBER: builtins.int
858
+ id: builtins.str
859
+ """The simulation ID to get the stopping condition status for."""
860
+ def __init__(
861
+ self,
862
+ *,
863
+ id: builtins.str = ...,
864
+ ) -> None: ...
865
+ def ClearField(self, field_name: typing_extensions.Literal["id", b"id"]) -> None: ...
866
+
867
+ global___GetStoppingConditionStatusRequest = GetStoppingConditionStatusRequest
868
+
869
+ class GetStoppingConditionStatusResponse(google.protobuf.message.Message):
870
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
871
+
872
+ STATUS_FIELD_NUMBER: builtins.int
873
+ CONDITIONS_FIELD_NUMBER: builtins.int
874
+ @property
875
+ def status(self) -> luminarycloud._proto.output.output_pb2.StoppingConditionStatus:
876
+ """The stopping condition status (success, cond_success[], value[], force_stop)."""
877
+ @property
878
+ def conditions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[luminarycloud._proto.output.output_pb2.StoppingCondition]:
879
+ """The stopping conditions that were evaluated (output, threshold, op).
880
+ The i-th element corresponds to status.cond_success[i].
881
+ """
882
+ def __init__(
883
+ self,
884
+ *,
885
+ status: luminarycloud._proto.output.output_pb2.StoppingConditionStatus | None = ...,
886
+ conditions: collections.abc.Iterable[luminarycloud._proto.output.output_pb2.StoppingCondition] | None = ...,
887
+ ) -> None: ...
888
+ def HasField(self, field_name: typing_extensions.Literal["status", b"status"]) -> builtins.bool: ...
889
+ def ClearField(self, field_name: typing_extensions.Literal["conditions", b"conditions", "status", b"status"]) -> None: ...
890
+
891
+ global___GetStoppingConditionStatusResponse = GetStoppingConditionStatusResponse
@@ -82,6 +82,11 @@ class SimulationServiceStub(object):
82
82
  request_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_simulation_dot_simulation__pb2.GetWorkflowIDsRequest.SerializeToString,
83
83
  response_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_simulation_dot_simulation__pb2.GetWorkflowIDsResponse.FromString,
84
84
  )
85
+ self.GetStoppingConditionStatus = channel.unary_unary(
86
+ '/luminary.proto.api.v0.luminarycloud.simulation.SimulationService/GetStoppingConditionStatus',
87
+ request_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_simulation_dot_simulation__pb2.GetStoppingConditionStatusRequest.SerializeToString,
88
+ response_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_simulation_dot_simulation__pb2.GetStoppingConditionStatusResponse.FromString,
89
+ )
85
90
 
86
91
 
87
92
  class SimulationServiceServicer(object):
@@ -189,6 +194,15 @@ class SimulationServiceServicer(object):
189
194
  context.set_details('Method not implemented!')
190
195
  raise NotImplementedError('Method not implemented!')
191
196
 
197
+ def GetStoppingConditionStatus(self, request, context):
198
+ """Returns the stopping condition status for a completed simulation.
199
+ This evaluates the stopping conditions defined in the simulation parameters
200
+ against the final simulation results to determine which conditions were satisfied.
201
+ """
202
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
203
+ context.set_details('Method not implemented!')
204
+ raise NotImplementedError('Method not implemented!')
205
+
192
206
 
193
207
  def add_SimulationServiceServicer_to_server(servicer, server):
194
208
  rpc_method_handlers = {
@@ -257,6 +271,11 @@ def add_SimulationServiceServicer_to_server(servicer, server):
257
271
  request_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_simulation_dot_simulation__pb2.GetWorkflowIDsRequest.FromString,
258
272
  response_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_simulation_dot_simulation__pb2.GetWorkflowIDsResponse.SerializeToString,
259
273
  ),
274
+ 'GetStoppingConditionStatus': grpc.unary_unary_rpc_method_handler(
275
+ servicer.GetStoppingConditionStatus,
276
+ request_deserializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_simulation_dot_simulation__pb2.GetStoppingConditionStatusRequest.FromString,
277
+ response_serializer=proto_dot_api_dot_v0_dot_luminarycloud_dot_simulation_dot_simulation__pb2.GetStoppingConditionStatusResponse.SerializeToString,
278
+ ),
260
279
  }
261
280
  generic_handler = grpc.method_handlers_generic_handler(
262
281
  'luminary.proto.api.v0.luminarycloud.simulation.SimulationService', rpc_method_handlers)
@@ -488,3 +507,20 @@ class SimulationService(object):
488
507
  proto_dot_api_dot_v0_dot_luminarycloud_dot_simulation_dot_simulation__pb2.GetWorkflowIDsResponse.FromString,
489
508
  options, channel_credentials,
490
509
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
510
+
511
+ @staticmethod
512
+ def GetStoppingConditionStatus(request,
513
+ target,
514
+ options=(),
515
+ channel_credentials=None,
516
+ call_credentials=None,
517
+ insecure=False,
518
+ compression=None,
519
+ wait_for_ready=None,
520
+ timeout=None,
521
+ metadata=None):
522
+ return grpc.experimental.unary_unary(request, target, '/luminary.proto.api.v0.luminarycloud.simulation.SimulationService/GetStoppingConditionStatus',
523
+ proto_dot_api_dot_v0_dot_luminarycloud_dot_simulation_dot_simulation__pb2.GetStoppingConditionStatusRequest.SerializeToString,
524
+ proto_dot_api_dot_v0_dot_luminarycloud_dot_simulation_dot_simulation__pb2.GetStoppingConditionStatusResponse.FromString,
525
+ options, channel_credentials,
526
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -93,6 +93,14 @@ class SimulationServiceStub:
93
93
  luminarycloud._proto.api.v0.luminarycloud.simulation.simulation_pb2.GetWorkflowIDsResponse,
94
94
  ]
95
95
  """Returns the workflow IDs corresponding to simulation IDs."""
96
+ GetStoppingConditionStatus: grpc.UnaryUnaryMultiCallable[
97
+ luminarycloud._proto.api.v0.luminarycloud.simulation.simulation_pb2.GetStoppingConditionStatusRequest,
98
+ luminarycloud._proto.api.v0.luminarycloud.simulation.simulation_pb2.GetStoppingConditionStatusResponse,
99
+ ]
100
+ """Returns the stopping condition status for a completed simulation.
101
+ This evaluates the stopping conditions defined in the simulation parameters
102
+ against the final simulation results to determine which conditions were satisfied.
103
+ """
96
104
 
97
105
  class SimulationServiceServicer(metaclass=abc.ABCMeta):
98
106
  """Provides APIs for running simulations and retrieve outputs."""
@@ -204,5 +212,15 @@ class SimulationServiceServicer(metaclass=abc.ABCMeta):
204
212
  context: grpc.ServicerContext,
205
213
  ) -> luminarycloud._proto.api.v0.luminarycloud.simulation.simulation_pb2.GetWorkflowIDsResponse:
206
214
  """Returns the workflow IDs corresponding to simulation IDs."""
215
+ @abc.abstractmethod
216
+ def GetStoppingConditionStatus(
217
+ self,
218
+ request: luminarycloud._proto.api.v0.luminarycloud.simulation.simulation_pb2.GetStoppingConditionStatusRequest,
219
+ context: grpc.ServicerContext,
220
+ ) -> luminarycloud._proto.api.v0.luminarycloud.simulation.simulation_pb2.GetStoppingConditionStatusResponse:
221
+ """Returns the stopping condition status for a completed simulation.
222
+ This evaluates the stopping conditions defined in the simulation parameters
223
+ against the final simulation results to determine which conditions were satisfied.
224
+ """
207
225
 
208
226
  def add_SimulationServiceServicer_to_server(servicer: SimulationServiceServicer, server: grpc.Server) -> None: ...