luminarycloud 0.22.1__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 (64) hide show
  1. luminarycloud/_client/client.py +5 -3
  2. luminarycloud/_helpers/__init__.py +9 -0
  3. luminarycloud/_helpers/_inference_jobs.py +227 -0
  4. luminarycloud/_helpers/_parse_iso_datetime.py +54 -0
  5. luminarycloud/_helpers/proto_decorator.py +38 -7
  6. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.py +45 -25
  7. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.pyi +30 -0
  8. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.py +34 -0
  9. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.pyi +12 -0
  10. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.py +118 -45
  11. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.pyi +246 -2
  12. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.py +34 -0
  13. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.pyi +12 -0
  14. luminarycloud/_proto/api/v0/luminarycloud/physicsaiinference/physicsaiinference_pb2.py +93 -33
  15. luminarycloud/_proto/api/v0/luminarycloud/physicsaiinference/physicsaiinference_pb2.pyi +105 -0
  16. luminarycloud/_proto/api/v0/luminarycloud/physicsaiinference/physicsaiinference_pb2_grpc.py +70 -0
  17. luminarycloud/_proto/api/v0/luminarycloud/physicsaiinference/physicsaiinference_pb2_grpc.pyi +29 -0
  18. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.py +29 -7
  19. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.pyi +39 -0
  20. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.py +36 -0
  21. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.pyi +18 -0
  22. luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2.py +70 -70
  23. luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2.pyi +5 -5
  24. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +163 -153
  25. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +37 -3
  26. luminarycloud/_proto/client/simulation_pb2.py +356 -337
  27. luminarycloud/_proto/client/simulation_pb2.pyi +89 -3
  28. luminarycloud/_proto/physicsaiinferenceservice/physicsaiinferenceservice_pb2.py +9 -4
  29. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2.py +6 -3
  30. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.py +34 -0
  31. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.pyi +12 -0
  32. luminarycloud/_wrapper.py +53 -7
  33. luminarycloud/feature_modification.py +25 -32
  34. luminarycloud/geometry.py +6 -6
  35. luminarycloud/outputs/__init__.py +2 -0
  36. luminarycloud/outputs/output_definitions.py +3 -3
  37. luminarycloud/outputs/stopping_conditions.py +94 -0
  38. luminarycloud/params/enum/_enum_wrappers.py +16 -0
  39. luminarycloud/params/geometry/shapes.py +33 -33
  40. luminarycloud/params/simulation/adaptive_mesh_refinement/__init__.py +1 -0
  41. luminarycloud/params/simulation/adaptive_mesh_refinement/active_region_.py +83 -0
  42. luminarycloud/params/simulation/adaptive_mesh_refinement/boundary_layer_profile_.py +1 -1
  43. luminarycloud/params/simulation/adaptive_mesh_refinement_.py +8 -1
  44. luminarycloud/physics_ai/__init__.py +7 -0
  45. luminarycloud/physics_ai/inference.py +166 -199
  46. luminarycloud/physics_ai/models.py +22 -0
  47. luminarycloud/pipelines/api.py +45 -9
  48. luminarycloud/project.py +56 -2
  49. luminarycloud/simulation.py +25 -0
  50. luminarycloud/types/__init__.py +2 -0
  51. luminarycloud/types/ids.py +2 -0
  52. luminarycloud/vis/__init__.py +1 -0
  53. luminarycloud/vis/filters.py +97 -0
  54. luminarycloud/vis/visualization.py +3 -0
  55. luminarycloud/volume_selection.py +6 -6
  56. luminarycloud/workflow_utils.py +149 -0
  57. {luminarycloud-0.22.1.dist-info → luminarycloud-0.22.2.dist-info}/METADATA +1 -1
  58. {luminarycloud-0.22.1.dist-info → luminarycloud-0.22.2.dist-info}/RECORD +59 -60
  59. luminarycloud/_proto/api/v0/luminarycloud/inference/inference_pb2.py +0 -61
  60. luminarycloud/_proto/api/v0/luminarycloud/inference/inference_pb2.pyi +0 -85
  61. luminarycloud/_proto/api/v0/luminarycloud/inference/inference_pb2_grpc.py +0 -67
  62. luminarycloud/_proto/api/v0/luminarycloud/inference/inference_pb2_grpc.pyi +0 -26
  63. luminarycloud/_proto/inferenceservice/inferenceservice_pb2.py +0 -69
  64. {luminarycloud-0.22.1.dist-info → luminarycloud-0.22.2.dist-info}/WHEEL +0 -0
@@ -34,7 +34,9 @@ from .._proto.api.v0.luminarycloud.named_variable_set.named_variable_set_pb2_grp
34
34
  from .._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2_grpc import (
35
35
  PhysicsAiServiceStub,
36
36
  )
37
- from .._proto.api.v0.luminarycloud.inference.inference_pb2_grpc import InferenceServiceStub
37
+ from .._proto.api.v0.luminarycloud.physicsaiinference.physicsaiinference_pb2_grpc import (
38
+ PhysicsAiInferenceServiceStub,
39
+ )
38
40
  from .._proto.api.v0.luminarycloud.thirdpartyintegration.onshape.onshape_pb2_grpc import (
39
41
  OnshapeServiceStub,
40
42
  )
@@ -71,8 +73,8 @@ class Client(
71
73
  StoppingConditionServiceStub,
72
74
  NamedVariableSetServiceStub,
73
75
  PhysicsAiServiceStub,
74
- InferenceServiceStub,
75
76
  OnshapeServiceStub,
77
+ PhysicsAiInferenceServiceStub,
76
78
  ProjectUIStateServiceStub,
77
79
  FeatureFlagServiceStub,
78
80
  ):
@@ -273,7 +275,7 @@ class Client(
273
275
  OutputDefinitionServiceStub.__init__(self, self._channel)
274
276
  StoppingConditionServiceStub.__init__(self, self._channel)
275
277
  PhysicsAiServiceStub.__init__(self, self._channel)
276
- InferenceServiceStub.__init__(self, self._channel)
278
+ PhysicsAiInferenceServiceStub.__init__(self, self._channel)
277
279
  NamedVariableSetServiceStub.__init__(self, self._channel)
278
280
  OnshapeServiceStub.__init__(self, self._channel)
279
281
  ProjectUIStateServiceStub.__init__(self, self._channel)
@@ -2,6 +2,12 @@
2
2
  from ._create_geometry import (
3
3
  create_geometry as create_geometry,
4
4
  )
5
+ from ._inference_jobs import (
6
+ create_inference_job as create_inference_job,
7
+ get_inference_job as get_inference_job,
8
+ list_inference_jobs as list_inference_jobs,
9
+ SurfaceForInference as SurfaceForInference,
10
+ )
5
11
  from ._create_simulation import (
6
12
  create_simulation as create_simulation,
7
13
  )
@@ -24,6 +30,9 @@ from ._simulation_params_from_json import (
24
30
  from ._timestamp_to_datetime import (
25
31
  timestamp_to_datetime as timestamp_to_datetime,
26
32
  )
33
+ from ._parse_iso_datetime import (
34
+ parse_iso_datetime as parse_iso_datetime,
35
+ )
27
36
  from .upload import (
28
37
  upload_file as upload_file,
29
38
  )
@@ -0,0 +1,227 @@
1
+ # Copyright 2025 Luminary Cloud, Inc. All Rights Reserved.
2
+ from typing import Any, Dict, Optional
3
+ from json import dumps as json_dumps
4
+ import os
5
+ import uuid
6
+ from .._client import get_default_client
7
+ from .._proto.api.v0.luminarycloud.physicsaiinference import (
8
+ physicsaiinference_pb2 as physicsaiinferencepb,
9
+ )
10
+ from .upload import upload_file, uploadpb
11
+ from ..types import PhysicsAiModelVersionID, PhysicsAiInferenceJobID
12
+ from ..physics_ai.inference import VisualizationExport, InferenceJob, SurfaceForInference
13
+
14
+
15
+ # Helper function to upload an STL file if it is not a GCS URL
16
+ def _upload_if_file(project_id: str, fname: str) -> str:
17
+ if not fname.split(".")[-1].lower() == "stl":
18
+ raise RuntimeError("Unsupported file for inference")
19
+ if fname.startswith("gs://"):
20
+ return fname
21
+ if os.path.exists(fname) and os.path.isfile(fname):
22
+ params = uploadpb.ResourceParams()
23
+ client = get_default_client()
24
+ result = upload_file(client, project_id, params, fname)
25
+ return result[1].url
26
+ raise RuntimeError("Unsupported file for inference")
27
+
28
+
29
+ def _build_inference_request(
30
+ project_id: str,
31
+ geometry: str,
32
+ model_version_id: PhysicsAiModelVersionID,
33
+ conditions: Optional[Dict[str, Any]] = None,
34
+ settings: Optional[Dict[str, Any]] = None,
35
+ surfaces: Optional[list[SurfaceForInference]] = None,
36
+ inference_fields: Optional[list[str]] = None,
37
+ per_surface_visualizations: Optional[list[VisualizationExport]] = None,
38
+ merged_visualizations: Optional[list[VisualizationExport]] = None,
39
+ ) -> physicsaiinferencepb.CreateInferenceServiceJobRequest:
40
+ """Helper function to build an inference service job request.
41
+
42
+ Parameters
43
+ ----------
44
+ project_id : str
45
+ Reference to a project.
46
+ geometry : str
47
+ Path to STL file or GCS URL (gs://) of the geometry to run inference on.
48
+ If a local file path is provided, it will be uploaded to the project.
49
+ model_version_id : PhysicsAiModelVersionID
50
+ The ID of the trained model version to use for inference.
51
+ conditions : Dict[str, Any], optional
52
+ Dictionary of conditions to be passed to the inference service (e.g., alpha, beta, etc.).
53
+ settings : Dict[str, Any], optional
54
+ Dictionary of settings to be passed to inference service (e.g., stencil_size)
55
+ surfaces : list[SurfaceForInference], optional
56
+ List of surfaces for inference, each with 'name' and 'url' keys.
57
+ inference_fields : list[str], optional
58
+ Specific fields within the trained model to return inference results for.
59
+ per_surface_visualizations : list[VisualizationExport], optional
60
+ Types of visualization to write for each surface (e.g., LUMINARY, VTK).
61
+ merged_visualizations : list[VisualizationExport], optional
62
+ Types of merged visualization to write across all surfaces.
63
+
64
+ Returns
65
+ -------
66
+ CreateInferenceServiceJobRequest
67
+ The constructed protobuf request object.
68
+ """
69
+
70
+ geometry_url = _upload_if_file(project_id, geometry)
71
+
72
+ # Embed settings and store as bytes
73
+ settings_bytes = b""
74
+ if settings is not None:
75
+ settings_bytes = json_dumps(settings).encode("utf-8")
76
+
77
+ # Convert parameters dict to bytes if provided
78
+ conditions_bytes = b""
79
+ if conditions is not None:
80
+ conditions_bytes = json_dumps(conditions).encode("utf-8")
81
+
82
+ # Generate a unique request_id for deduplication and to satisfy the database constraint
83
+ # The backend uses request_id as the Name field, which must be non-empty
84
+ request_id = str(uuid.uuid4())
85
+
86
+ # Build request with base parameters
87
+ req_params = {
88
+ "request_id": request_id,
89
+ "geometry": geometry_url,
90
+ "model_version_id": str(model_version_id),
91
+ "conditions": conditions_bytes,
92
+ "settings": settings_bytes,
93
+ "project_id": project_id,
94
+ }
95
+
96
+ # Add optional inference fields
97
+ if inference_fields is not None:
98
+ req_params["inference_fields"] = inference_fields
99
+
100
+ # Add optional per-surface visualizations
101
+ if per_surface_visualizations is not None:
102
+ req_params["per_surface_visualizations"] = per_surface_visualizations
103
+
104
+ # Add optional merged visualizations
105
+ if merged_visualizations is not None:
106
+ req_params["merged_visualizations"] = merged_visualizations
107
+
108
+ # Add optional surfaces
109
+ if surfaces is not None:
110
+ surfaces_proto: list[physicsaiinferencepb.SurfaceForInference] = []
111
+ for surface in surfaces:
112
+ surfaces_proto.append(
113
+ physicsaiinferencepb.SurfaceForInference(
114
+ name=surface["name"], url=_upload_if_file(project_id, surface["url"])
115
+ )
116
+ )
117
+ req_params["surfaces"] = surfaces_proto
118
+
119
+ return physicsaiinferencepb.CreateInferenceServiceJobRequest(**req_params)
120
+
121
+
122
+ def create_inference_job(
123
+ project_id: str,
124
+ geometry: str,
125
+ model_version_id: PhysicsAiModelVersionID,
126
+ synchronous: bool = False,
127
+ conditions: Optional[Dict[str, Any]] = None,
128
+ settings: Optional[Dict[str, Any]] = None,
129
+ surfaces: Optional[list[SurfaceForInference]] = None,
130
+ inference_fields: Optional[list[str]] = None,
131
+ per_surface_visualizations: Optional[list[VisualizationExport]] = None,
132
+ merged_visualizations: Optional[list[VisualizationExport]] = None,
133
+ ) -> InferenceJob:
134
+ """Creates a synchronous inference service job.
135
+
136
+ Parameters
137
+ ----------
138
+ project_id : str
139
+ Reference to a project.
140
+ geometry : str
141
+ Path to STL file or GCS URL (gs://) of the geometry to run inference on.
142
+ If a local file path is provided, it will be uploaded to the project.
143
+ model_version_id : PhysicsAiModelVersionID
144
+ The ID of the trained model version to use for inference.
145
+ synchronous: bool = False,
146
+ Whether to wait for the job to complete before returning the result.
147
+ conditions : Dict[str, Any], optional
148
+ Dictionary of conditions to be passed to the inference service (e.g., alpha, beta, etc.).
149
+ settings : Dict[str, Any], optional
150
+ Dictionary of settings to be passed to inference service (e.g., stencil_size)
151
+ surfaces : list[SurfaceForInference], optional
152
+ List of surfaces for inference, each with 'name' and 'url' keys.
153
+ inference_fields : list[str], optional
154
+ Specific fields within the trained model to return inference results for.
155
+ per_surface_visualizations : list[VisualizationOutput], optional
156
+ Types of visualization to write for each surface (e.g., LUMINARY, VTK).
157
+ merged_visualizations : list[VisualizationOutput], optional
158
+ Types of merged visualization to write across all surfaces.
159
+
160
+ Returns
161
+ -------
162
+ dict[str, Any]
163
+ Response from the server containing results, with keys mapping to:
164
+ - Numeric results: float/vector values
165
+ - Surface/volume results: URLs to data files
166
+ - Visualization results: URLs to visualization files
167
+
168
+ warning:: This feature is experimental and may change or be removed without notice.
169
+ """
170
+ req = _build_inference_request(
171
+ project_id,
172
+ geometry,
173
+ model_version_id,
174
+ conditions,
175
+ settings,
176
+ surfaces,
177
+ inference_fields,
178
+ per_surface_visualizations,
179
+ merged_visualizations,
180
+ )
181
+ if synchronous:
182
+ res: physicsaiinferencepb.GetInferenceServiceJobResponse = (
183
+ get_default_client().CreateInferenceServiceJob(req)
184
+ )
185
+ else: # Asynchronous inference
186
+ res: physicsaiinferencepb.CreateInferenceServiceJobAsyncResponse = (
187
+ get_default_client().CreateInferenceServiceJobAsync(req)
188
+ )
189
+ return InferenceJob(res.job)
190
+
191
+
192
+ def get_inference_job(job_id: str) -> InferenceJob:
193
+ """Retrieves an inference service job by its ID.
194
+
195
+ Parameters
196
+ ----------
197
+ job_id : str
198
+ The ID of the inference job to retrieve.
199
+
200
+ Returns
201
+ -------
202
+ dict[str, Any]
203
+ The inference job details including results and status.
204
+
205
+ warning:: This feature is experimental and may change or be removed without notice.
206
+ """
207
+
208
+ req = physicsaiinferencepb.GetInferenceServiceJobRequest(job_id=job_id)
209
+ res: physicsaiinferencepb.GetInferenceServiceJobResponse = (
210
+ get_default_client().GetInferenceServiceJob(req)
211
+ )
212
+ return InferenceJob(res.job)
213
+
214
+
215
+ def list_inference_jobs(project_id: str) -> list[InferenceJob]:
216
+ """Lists all inference service jobs for a project.
217
+
218
+ Parameters
219
+ ----------
220
+ project_id : str
221
+ The project to list inference jobs for.
222
+ """
223
+ req = physicsaiinferencepb.ListInferenceServiceJobsRequest(project_id=project_id)
224
+ res: physicsaiinferencepb.ListInferenceServiceJobsResponse = (
225
+ get_default_client().ListInferenceServiceJobs(req)
226
+ )
227
+ return [InferenceJob(job) for job in res.jobs]
@@ -0,0 +1,54 @@
1
+ # Copyright 2023-2025 Luminary Cloud, Inc. All Rights Reserved.
2
+ from datetime import datetime
3
+
4
+
5
+ def parse_iso_datetime(iso_str: str) -> datetime:
6
+ """
7
+ Parse an ISO format datetime string, handling 'Z' timezone indicator.
8
+
9
+ This function acts as a compatibility shim for Python < 3.11, which doesn't
10
+ support 'Z' in fromisoformat. It normalizes 'Z' (or 'z') to '+00:00' before parsing,
11
+ making it compatible with all Python versions (3.7+).
12
+
13
+ Parameters
14
+ ----------
15
+ iso_str : str
16
+ ISO format datetime string, optionally ending with 'Z' or 'z' for UTC.
17
+
18
+ Returns
19
+ -------
20
+ datetime
21
+ Parsed datetime object.
22
+
23
+ Raises
24
+ ------
25
+ ValueError
26
+ If the string is not a valid ISO format datetime string.
27
+ TypeError
28
+ If iso_str is not a string.
29
+
30
+ Examples
31
+ --------
32
+ >>> parse_iso_datetime("2023-07-31T13:54:12Z")
33
+ datetime.datetime(2023, 7, 31, 13, 54, 12, tzinfo=datetime.timezone.utc)
34
+ >>> parse_iso_datetime("2023-07-31T13:54:12+00:00")
35
+ datetime.datetime(2023, 7, 31, 13, 54, 12, tzinfo=datetime.timezone.utc)
36
+ """
37
+ if not isinstance(iso_str, str):
38
+ raise TypeError(f"parse_iso_datetime expects a string, got {type(iso_str).__name__}")
39
+
40
+ if not iso_str:
41
+ raise ValueError("parse_iso_datetime: empty string is not a valid ISO format datetime")
42
+
43
+ # Normalize 'Z' or 'z' at the end to '+00:00'
44
+ # Strip whitespace first to handle cases like "2023-01-01T00:00:00Z "
45
+ iso_str = iso_str.strip()
46
+
47
+ if iso_str.endswith(("Z", "z")):
48
+ # Only normalize if the string is longer than just 'Z'/'z'
49
+ if len(iso_str) > 1:
50
+ iso_str = iso_str[:-1] + "+00:00"
51
+ else:
52
+ raise ValueError("parse_iso_datetime: 'Z' alone is not a valid ISO format datetime")
53
+
54
+ return datetime.fromisoformat(iso_str)
@@ -3,25 +3,36 @@ from typing import (
3
3
  Generic,
4
4
  TypeVar,
5
5
  get_type_hints,
6
- get_origin,
7
6
  )
8
7
 
9
8
  from google.protobuf.message import Message
10
9
 
10
+ from luminarycloud._proto.base import base_pb2 as basepb
11
11
  from luminarycloud.types import Vector3
12
- from luminarycloud.types.adfloat import _to_ad_proto
12
+ from luminarycloud.types.adfloat import _from_ad_proto, _to_ad_proto
13
13
  from luminarycloud.types.vector3 import _to_vector3_ad_proto
14
- from .._proto.base.base_pb2 import AdFloatType, AdVector3
15
14
 
16
15
  P = TypeVar("P", bound=Message)
17
16
  C = TypeVar("C")
18
17
 
19
18
 
19
+ class ProtoConvertible(Generic[P]):
20
+ """
21
+ Abstract mixin to satisfy the type checker when using `@proto_decorator`.
22
+ Declares statically that `_to_proto` and `_from_proto` will be added by the decorator.
23
+ """
24
+
25
+ def _to_proto(self) -> P: ...
26
+
27
+ def _from_proto(self, proto: P) -> None: ...
28
+
29
+
20
30
  class proto_decorator(Generic[P]):
21
31
  """
22
- A decorator that adds a `to_proto` method to a class.
32
+ A decorator that adds `_to_proto` and `_from_proto` methods to instances of a class and a
33
+ `from_proto` method to the class.
23
34
 
24
- NOTE: only works for primitive and basepb.Vector3 fields right now.
35
+ NOTE: only works for primitive, Vector3, AdFloatType, and AdVector3 fields right now.
25
36
  """
26
37
 
27
38
  proto_type: type[P]
@@ -40,10 +51,10 @@ class proto_decorator(Generic[P]):
40
51
  if _type:
41
52
  value = getattr(self, field.name)
42
53
  proto_value = getattr(proto, field.name)
43
- if issubclass(_type, float) and isinstance(proto_value, AdFloatType):
54
+ if issubclass(_type, float) and isinstance(proto_value, basepb.AdFloatType):
44
55
  proto_value.CopyFrom(_to_ad_proto(value))
45
56
  elif issubclass(_type, Vector3):
46
- if isinstance(proto_value, AdVector3):
57
+ if isinstance(proto_value, basepb.AdVector3):
47
58
  proto_value.CopyFrom(_to_vector3_ad_proto((value.x, value.y, value.z)))
48
59
  else:
49
60
  proto_value.x = value.x
@@ -54,4 +65,24 @@ class proto_decorator(Generic[P]):
54
65
  return proto
55
66
 
56
67
  setattr(cls, "_to_proto", _to_proto)
68
+
69
+ def _from_proto(self: type[C], proto: type[P]) -> None:
70
+ for field in fields:
71
+ _type = type_hints.get(field.name, None)
72
+ if _type:
73
+ proto_value = getattr(proto, field.name)
74
+ if isinstance(proto_value, basepb.AdFloatType):
75
+ setattr(self, field.name, _from_ad_proto(proto_value))
76
+ elif issubclass(_type, Vector3):
77
+ vec = getattr(self, field.name)
78
+ if isinstance(proto_value, basepb.Vector3):
79
+ vec._from_proto(proto_value)
80
+ elif isinstance(proto_value, basepb.AdVector3):
81
+ vec._from_ad_proto(proto_value)
82
+ else:
83
+ setattr(self, field.name, proto_value)
84
+ return None
85
+
86
+ setattr(cls, "_from_proto", _from_proto)
87
+
57
88
  return cls
@@ -22,7 +22,7 @@ from luminarycloud._proto.lcn import lcmesh_pb2 as proto_dot_lcn_dot_lcmesh__pb2
22
22
  from luminarycloud._proto.ratelimit import ratelimit_pb2 as proto_dot_ratelimit_dot_ratelimit__pb2
23
23
 
24
24
 
25
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2proto/api/v0/luminarycloud/geometry/geometry.proto\x12,luminary.proto.api.v0.luminarycloud.geometry\x1a\x1cgoogle/api/annotations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1dproto/geometry/geometry.proto\x1a\x15proto/base/base.proto\x1a#proto/cadmetadata/cadmetadata.proto\x1a\x16proto/lcn/lcmesh.proto\x1a\x1fproto/ratelimit/ratelimit.proto\"\xdd\x04\n\x08Geometry\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\x0f\n\x07\x64\x65leted\x18\x05 \x01(\x08\x12\x17\n\x0flast_version_id\x18\x06 \x01(\t\x12\x11\n\tuses_tags\x18\x07 \x01(\x08\x12\x12\n\nproject_id\x18\t \x01(\t\x12R\n\x06status\x18\n \x01(\x0e\x32=.luminary.proto.api.v0.luminarycloud.geometry.Geometry.StatusH\x00\x88\x01\x01\x12U\n\x05\x63heck\x18\x0c \x01(\x0b\x32\x46.luminary.proto.api.v0.luminarycloud.geometry.GetCheckGeometryResponse\x12O\n\x08versions\x18\x0b \x03(\x0b\x32=.luminary.proto.api.v0.luminarycloud.geometry.GeometryVersion\"w\n\x06Status\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x42USY\x10\x01\x12\x16\n\x12HAS_FEATURE_ERRORS\x10\x05\x12\x13\n\x0fREADY_FOR_CHECK\x10\x02\x12\x0c\n\x08\x43HECKING\x10\x06\x12\x10\n\x0c\x46\x41ILED_CHECK\x10\x03\x12\t\n\x05READY\x10\x04\x42\t\n\x07_statusJ\x04\x08\x08\x10\t\"\x88\x03\n\x0fGeometryVersion\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0bgeometry_id\x18\x02 \x01(\t\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x38\n\x0bkernel_type\x18\x05 \x01(\x0e\x32#.luminary.proto.geometry.KernelType\x12%\n\x1dnamed_variable_set_version_id\x18\x06 \x01(\t\x12U\n\x05\x63heck\x18\x07 \x01(\x0b\x32\x46.luminary.proto.api.v0.luminarycloud.geometry.GetCheckGeometryResponse\x12R\n\x06status\x18\x08 \x01(\x0e\x32=.luminary.proto.api.v0.luminarycloud.geometry.Geometry.StatusH\x00\x88\x01\x01\x42\t\n\x07_status\"\x84\x02\n\x10TessellationData\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x11\n\tmeta_data\x18\x02 \x01(\x0c\x12\x36\n\x08lcn_meta\x18\x03 \x01(\x0b\x32$.luminary.proto.lcn.MeshFileMetadata\x12=\n\x0c\x63\x61\x64_metadata\x18\x04 \x01(\x0b\x32\'.luminary.proto.cadmetadata.CadMetadata\x12\x1b\n\x13geometry_version_id\x18\x05 \x01(\t\x12\x12\n\nfeature_id\x18\x06 \x01(\t\x12\x10\n\x08\x64\x61ta_url\x18\x07 \x01(\t\x12\x15\n\rmeta_data_url\x18\x08 \x01(\t\"O\n\x12GetGeometryRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12$\n\x1cinclude_interesting_versions\x18\x02 \x01(\x08\"_\n\x13GetGeometryResponse\x12H\n\x08geometry\x18\x01 \x01(\x0b\x32\x36.luminary.proto.api.v0.luminarycloud.geometry.Geometry\"i\n\x1bListGeometryFeaturesRequest\x12\x15\n\x0bgeometry_id\x18\x01 \x01(\tH\x00\x12\x1d\n\x13geometry_version_id\x18\x02 \x01(\tH\x00\x42\x14\n\x12parent_resource_id\"R\n\x1cListGeometryFeaturesResponse\x12\x32\n\x08\x66\x65\x61tures\x18\x01 \x03(\x0b\x32 .luminary.proto.geometry.Feature\"n\n ListGeometryFeatureIssuesRequest\x12\x15\n\x0bgeometry_id\x18\x01 \x01(\tH\x00\x12\x1d\n\x13geometry_version_id\x18\x02 \x01(\tH\x00\x42\x14\n\x12parent_resource_id\"d\n!ListGeometryFeatureIssuesResponse\x12?\n\x0f\x66\x65\x61tures_issues\x18\x01 \x03(\x0b\x32&.luminary.proto.geometry.FeatureIssues\"i\n\x1bListGeometryEntitiesRequest\x12\x15\n\x0bgeometry_id\x18\x01 \x01(\tH\x00\x12\x1d\n\x13geometry_version_id\x18\x02 \x01(\tH\x00\x42\x14\n\x12parent_resource_id\"{\n\x1cListGeometryEntitiesResponse\x12,\n\x05\x66\x61\x63\x65s\x18\x01 \x03(\x0b\x32\x1d.luminary.proto.geometry.Face\x12-\n\x06\x62odies\x18\x02 \x03(\x0b\x32\x1d.luminary.proto.geometry.Body\"Q\n\x15ListGeometriesRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12$\n\x1cinclude_interesting_versions\x18\x02 \x01(\x08\"d\n\x16ListGeometriesResponse\x12J\n\ngeometries\x18\x01 \x03(\x0b\x32\x36.luminary.proto.api.v0.luminarycloud.geometry.Geometry\"I\n\x18SubscribeGeometryRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x13\n\x0bgeometry_id\x18\x02 \x01(\tJ\x04\x08\x03\x10\x04\"\xa0\x02\n\x0fGeometryHistory\x12\x61\n\rhistory_entry\x18\x01 \x01(\x0b\x32J.luminary.proto.api.v0.luminarycloud.geometry.GeometryHistory.HistoryEntry\x1a\xa9\x01\n\x0cHistoryEntry\x12;\n\x0cmodification\x18\x01 \x01(\x0b\x32%.luminary.proto.geometry.Modification\x12#\n\x1bgeometry_version_initial_id\x18\x02 \x01(\t\x12\x1f\n\x17geometry_version_new_id\x18\x03 \x01(\t\x12\x16\n\x0e\x63heckpoint_url\x18\x04 \x01(\t\"\xaa\x0f\n\x19SubscribeGeometryResponse\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12p\n\ncheckpoint\x18\x05 \x01(\x0b\x32Z.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.GeometryCheckpointH\x00\x12\x61\n\x04\x62usy\x18\x06 \x01(\x0b\x32Q.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.BusyStateH\x00\x12\x1d\n\x13worker_disconnected\x18\x07 \x01(\x08H\x00\x12\x18\n\x0ereceived_error\x18\x08 \x01(\x08H\x00\x1a\x8b\x04\n\x12GeometryCheckpoint\x12\x10\n\x08mesh_url\x18\x02 \x01(\t\x12\x32\n\x08\x66\x65\x61tures\x18\x03 \x03(\x0b\x32 .luminary.proto.geometry.Feature\x12?\n\x0f\x66\x65\x61tures_issues\x18\x08 \x03(\x0b\x32&.luminary.proto.geometry.FeatureIssues\x12W\n\x10geometry_history\x18\x04 \x03(\x0b\x32=.luminary.proto.api.v0.luminarycloud.geometry.GeometryHistory\x12Y\n\x11tessellation_data\x18\x05 \x01(\x0b\x32>.luminary.proto.api.v0.luminarycloud.geometry.TessellationData\x12\x15\n\rn_avail_undos\x18\x06 \x01(\x05\x12\x15\n\rn_avail_redos\x18\x07 \x01(\x05\x12+\n\x04tags\x18\t \x01(\x0b\x32\x1d.luminary.proto.geometry.Tags\x12\x38\n\x0bkernel_type\x18\n \x01(\x0e\x32#.luminary.proto.geometry.KernelType\x12%\n\x1dnamed_variable_set_version_id\x18\x0b \x01(\t\x1a\xcb\x08\n\tBusyState\x12\x0f\n\x07message\x18\x01 \x01(\t\x12}\n\x10\x66\x65\x61ture_progress\x18\x05 \x01(\x0b\x32\x61.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.BusyState.FeatureProgressH\x00\x12\x85\x01\n\x14\x66\x65\x61ture_tessellation\x18\x06 \x01(\x0b\x32\x65.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.BusyState.FeatureTessellationH\x00\x12o\n\tundo_redo\x18\x07 \x01(\x0b\x32Z.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.BusyState.UndoRedoH\x00\x12p\n\treloading\x18\x08 \x01(\x0b\x32[.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.BusyState.ReloadingH\x00\x12y\n\x0e\x64\x65lete_feature\x18\t \x01(\x0b\x32_.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.BusyState.DeleteFeatureH\x00\x12y\n\x0erename_feature\x18\n \x01(\x0b\x32_.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.BusyState.RenameFeatureH\x00\x12w\n\rtag_operation\x18\x0b \x01(\x0b\x32^.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.BusyState.TagOperationH\x00\x1a%\n\x0f\x46\x65\x61tureProgress\x12\x12\n\nfeature_id\x18\x02 \x01(\t\x1a)\n\x13\x46\x65\x61tureTessellation\x12\x12\n\nfeature_id\x18\x03 \x01(\t\x1a\n\n\x08UndoRedo\x1a\x0b\n\tReloading\x1a#\n\rDeleteFeature\x12\x12\n\nfeature_id\x18\x04 \x01(\t\x1a#\n\rRenameFeature\x12\x12\n\nfeature_id\x18\x01 \x01(\t\x1a\x0e\n\x0cTagOperationB\x0f\n\rBusyStateTypeB\x0e\n\x0cResponseType\"}\n\x15ModifyGeometryRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12;\n\x0cmodification\x18\x02 \x01(\x0b\x32%.luminary.proto.geometry.Modification\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"\xbf\x01\n\x16ModifyGeometryResponse\x12\x32\n\x08\x66\x65\x61tures\x18\x01 \x03(\x0b\x32 .luminary.proto.geometry.Feature\x12\x30\n\x07volumes\x18\x02 \x03(\x0b\x32\x1f.luminary.proto.geometry.Volume\x12?\n\x0f\x66\x65\x61tures_issues\x18\x03 \x03(\x0b\x32&.luminary.proto.geometry.FeatureIssues\"\xd7\x01\n\x15\x43reateGeometryRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x17\n\x0fweb_geometry_id\x18\t \x01(\t\x12\x15\n\rscaling_float\x18\x04 \x01(\x01\x12\x31\n\x07scaling\x18\n \x01(\x0b\x32 .luminary.proto.base.AdFloatType\x12\x0c\n\x04wait\x18\x05 \x01(\x08\x12\x12\n\nrequest_id\x18\x08 \x01(\tJ\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08\"b\n\x16\x43reateGeometryResponse\x12H\n\x08geometry\x18\x01 \x01(\x0b\x32\x36.luminary.proto.api.v0.luminarycloud.geometry.Geometry\":\n\x15UpdateGeometryRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"b\n\x16UpdateGeometryResponse\x12H\n\x08geometry\x18\x01 \x01(\x0b\x32\x36.luminary.proto.api.v0.luminarycloud.geometry.Geometry\"L\n\x13\x43opyGeometryRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"`\n\x14\x43opyGeometryResponse\x12H\n\x08geometry\x18\x01 \x01(\x0b\x32\x36.luminary.proto.api.v0.luminarycloud.geometry.Geometry\"_\n\x1e\x43opyGeometryFromVersionRequest\x12\x1b\n\x13geometry_version_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"k\n\x1f\x43opyGeometryFromVersionResponse\x12H\n\x08geometry\x18\x01 \x01(\x0b\x32\x36.luminary.proto.api.v0.luminarycloud.geometry.Geometry\",\n\x15\x44\x65leteGeometryRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\"\x18\n\x16\x44\x65leteGeometryResponse\"H\n\x14\x43heckGeometryRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12\x1b\n\x13geometry_version_id\x18\x02 \x01(\t\"3\n\x15\x43heckGeometryResponse\x12\n\n\x02ok\x18\x01 \x01(\x08\x12\x0e\n\x06issues\x18\x02 \x03(\t\"H\n\x18GetCheckGeometryResponse\x12\n\n\x02ok\x18\x01 \x01(\x08\x12\x0e\n\x06issues\x18\x02 \x03(\t\x12\x10\n\x08\x66inished\x18\x03 \x01(\x08\"S\n#TessellationUpToModificationRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12\x17\n\x0fmodification_id\x18\x02 \x01(\t\":\n$TessellationUpToModificationResponse\x12\x12\n\ntessel_url\x18\x01 \x01(\t\"0\n\x19LatestTessellationRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\"5\n\x1aLatestTessellationResponse\x12\x17\n\x0ftesselation_url\x18\x01 \x01(\t\"\'\n\x10KeepAliveRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\"\x13\n\x11KeepAliveResponse\"\x0e\n\x0cPanicRequest\"\x0f\n\rPanicResponse\"(\n\x11StopWorkerRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\"\x14\n\x12StopWorkerResponse\"B\n\x0eGetTagsRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12\x1b\n\x13geometry_version_id\x18\x02 \x01(\t\">\n\x0fGetTagsResponse\x12+\n\x04tags\x18\x01 \x01(\x0b\x32\x1d.luminary.proto.geometry.Tags\"R\n\x03Tag\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06\x62odies\x18\x03 \x03(\x05\x12\x0f\n\x07volumes\x18\x04 \x03(\t\x12\x10\n\x08surfaces\x18\x05 \x03(\t\"]\n\x0fListTagsRequest\x12\x15\n\x0bgeometry_id\x18\x01 \x01(\tH\x00\x12\x1d\n\x13geometry_version_id\x18\x02 \x01(\tH\x00\x42\x14\n\x12parent_resource_id\"S\n\x10ListTagsResponse\x12?\n\x04tags\x18\x01 \x03(\x0b\x32\x31.luminary.proto.api.v0.luminarycloud.geometry.Tag\"\xb3\x01\n\x1bListGeometryVersionsRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12\x12\n\nunfiltered\x18\x02 \x01(\x08\x12\x1d\n\x15include_check_results\x18\x05 \x01(\x08\x12\x16\n\tpage_size\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12\x17\n\npage_token\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x0c\n\n_page_sizeB\r\n\x0b_page_token\"\xa6\x01\n\x1cListGeometryVersionsResponse\x12X\n\x11geometry_versions\x18\x01 \x03(\x0b\x32=.luminary.proto.api.v0.luminarycloud.geometry.GeometryVersion\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0btotal_count\x18\x03 \x01(\x05\"W\n\x19GetGeometryVersionRequest\x12\x1b\n\x13geometry_version_id\x18\x01 \x01(\t\x12\x1d\n\x15include_check_results\x18\x02 \x01(\x08\"u\n\x1aGetGeometryVersionResponse\x12W\n\x10geometry_version\x18\x01 \x01(\x0b\x32=.luminary.proto.api.v0.luminarycloud.geometry.GeometryVersion\"I\n\x1cUpdateGeometryVersionRequest\x12\x1b\n\x13geometry_version_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"x\n\x1dUpdateGeometryVersionResponse\x12W\n\x10geometry_version\x18\x01 \x01(\x0b\x32=.luminary.proto.api.v0.luminarycloud.geometry.GeometryVersion\"E\n\x11GetSdkCodeRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12\x1b\n\x13geometry_version_id\x18\x02 \x01(\t\"&\n\x12GetSdkCodeResponse\x12\x10\n\x08sdk_code\x18\x01 \x01(\t2\x92*\n\x0fGeometryService\x12\xd3\x01\n\x0eListGeometries\x12\x43.luminary.proto.api.v0.luminarycloud.geometry.ListGeometriesRequest\x1a\x44.luminary.proto.api.v0.luminarycloud.geometry.ListGeometriesResponse\"6\x82\xd3\xe4\x93\x02&\x12$/v0/projects/{project_id}/geometries\x8a\xb5\x18\x06\x08<\x12\x02\x08\x01\x12\x91\x02\n\x14ListGeometryEntities\x12I.luminary.proto.api.v0.luminarycloud.geometry.ListGeometryEntitiesRequest\x1aJ.luminary.proto.api.v0.luminarycloud.geometry.ListGeometryEntitiesResponse\"b\x82\xd3\xe4\x93\x02\\\x12#/v0/geometry/{geometry_id}/entitiesZ5\x12\x33/v0/geometry_version/{geometry_version_id}/entities\x12\xb6\x01\n\x0bGetGeometry\x12@.luminary.proto.api.v0.luminarycloud.geometry.GetGeometryRequest\x1a\x41.luminary.proto.api.v0.luminarycloud.geometry.GetGeometryResponse\"\"\x82\xd3\xe4\x93\x02\x1c\x12\x1a/v0/geometry/{geometry_id}\x12\x91\x02\n\x14ListGeometryFeatures\x12I.luminary.proto.api.v0.luminarycloud.geometry.ListGeometryFeaturesRequest\x1aJ.luminary.proto.api.v0.luminarycloud.geometry.ListGeometryFeaturesResponse\"b\x82\xd3\xe4\x93\x02\\\x12#/v0/geometry/{geometry_id}/featuresZ5\x12\x33/v0/geometry_version/{geometry_version_id}/features\x12\xae\x02\n\x19ListGeometryFeatureIssues\x12N.luminary.proto.api.v0.luminarycloud.geometry.ListGeometryFeatureIssuesRequest\x1aO.luminary.proto.api.v0.luminarycloud.geometry.ListGeometryFeatureIssuesResponse\"p\x82\xd3\xe4\x93\x02j\x12*/v0/geometry/{geometry_id}/features/issuesZ<\x12:/v0/geometry_version/{geometry_version_id}/features/issues\x12\xae\x01\n\x11SubscribeGeometry\x12\x46.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryRequest\x1aG.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse\"\x06\x8a\xb5\x18\x02\x08\x32\x30\x01\x12\xd3\x01\n\x0eModifyGeometry\x12\x43.luminary.proto.api.v0.luminarycloud.geometry.ModifyGeometryRequest\x1a\x44.luminary.proto.api.v0.luminarycloud.geometry.ModifyGeometryResponse\"6\x82\xd3\xe4\x93\x02&\"!/v0/geometry/{geometry_id}/modify:\x01*\x8a\xb5\x18\x06\x08<\x12\x02\x08\x01\x12\xdb\x01\n\x0e\x43reateGeometry\x12\x43.luminary.proto.api.v0.luminarycloud.geometry.CreateGeometryRequest\x1a\x44.luminary.proto.api.v0.luminarycloud.geometry.CreateGeometryResponse\">\x82\xd3\xe4\x93\x02.\")/v0/projects/{project_id}/create-geometry:\x01*\x8a\xb5\x18\x06\x08\x1e\x12\x02\x08\x03\x12\xc2\x01\n\x0eUpdateGeometry\x12\x43.luminary.proto.api.v0.luminarycloud.geometry.UpdateGeometryRequest\x1a\x44.luminary.proto.api.v0.luminarycloud.geometry.UpdateGeometryResponse\"%\x82\xd3\xe4\x93\x02\x1f\x32\x1a/v0/geometry/{geometry_id}:\x01*\x12\xcb\x01\n\x0c\x43opyGeometry\x12\x41.luminary.proto.api.v0.luminarycloud.geometry.CopyGeometryRequest\x1a\x42.luminary.proto.api.v0.luminarycloud.geometry.CopyGeometryResponse\"4\x82\xd3\xe4\x93\x02$\"\x1f/v0/geometry/{geometry_id}:copy:\x01*\x8a\xb5\x18\x06\x08\x1e\x12\x02\x08\x01\x12\xfc\x01\n\x17\x43opyGeometryFromVersion\x12L.luminary.proto.api.v0.luminarycloud.geometry.CopyGeometryFromVersionRequest\x1aM.luminary.proto.api.v0.luminarycloud.geometry.CopyGeometryFromVersionResponse\"D\x82\xd3\xe4\x93\x02\x34\"//v0/geometry_from_version/{geometry_version_id}:\x01*\x8a\xb5\x18\x06\x08\x1e\x12\x02\x08\x01\x12\xc9\x01\n\x0e\x44\x65leteGeometry\x12\x43.luminary.proto.api.v0.luminarycloud.geometry.DeleteGeometryRequest\x1a\x44.luminary.proto.api.v0.luminarycloud.geometry.DeleteGeometryResponse\",\x82\xd3\xe4\x93\x02&\"!/v0/geometry/{geometry_id}:delete:\x01*\x12\xad\x01\n\x12StartCheckGeometry\x12\x42.luminary.proto.api.v0.luminarycloud.geometry.CheckGeometryRequest\x1a\x16.google.protobuf.Empty\";\x82\xd3\xe4\x93\x02+\"&/v0/geometry/{geometry_id}/start_check:\x01*\x8a\xb5\x18\x06\x08\x14\x12\x02\x08\x01\x12\xcf\x01\n\x10GetCheckGeometry\x12\x42.luminary.proto.api.v0.luminarycloud.geometry.CheckGeometryRequest\x1a\x46.luminary.proto.api.v0.luminarycloud.geometry.GetCheckGeometryResponse\"/\x82\xd3\xe4\x93\x02)\"$/v0/geometry/{geometry_id}/get_check:\x01*\x12\xc5\x01\n\rCheckGeometry\x12\x42.luminary.proto.api.v0.luminarycloud.geometry.CheckGeometryRequest\x1a\x43.luminary.proto.api.v0.luminarycloud.geometry.CheckGeometryResponse\"+\x82\xd3\xe4\x93\x02%\" /v0/geometry/{geometry_id}/check:\x01*\x12\xd0\x01\n\x1bTesselationUpToModification\x12Q.luminary.proto.api.v0.luminarycloud.geometry.TessellationUpToModificationRequest\x1aR.luminary.proto.api.v0.luminarycloud.geometry.TessellationUpToModificationResponse\"\n\x8a\xb5\x18\x06\x08\x14\x12\x02\x08\x01\x12\xa7\x01\n\x12LatestTessellation\x12G.luminary.proto.api.v0.luminarycloud.geometry.LatestTessellationRequest\x1aH.luminary.proto.api.v0.luminarycloud.geometry.LatestTessellationResponse\x12\x98\x01\n\tKeepAlive\x12>.luminary.proto.api.v0.luminarycloud.geometry.KeepAliveRequest\x1a?.luminary.proto.api.v0.luminarycloud.geometry.KeepAliveResponse\"\n\x8a\xb5\x18\x06\x08\x14\x12\x02\x08\x01\x12\x80\x01\n\x05Panic\x12:.luminary.proto.api.v0.luminarycloud.geometry.PanicRequest\x1a;.luminary.proto.api.v0.luminarycloud.geometry.PanicResponse\x12\x8f\x01\n\nStopWorker\x12?.luminary.proto.api.v0.luminarycloud.geometry.StopWorkerRequest\x1a@.luminary.proto.api.v0.luminarycloud.geometry.StopWorkerResponse\x12\x86\x01\n\x07GetTags\x12<.luminary.proto.api.v0.luminarycloud.geometry.GetTagsRequest\x1a=.luminary.proto.api.v0.luminarycloud.geometry.GetTagsResponse\x12\xe5\x01\n\x08ListTags\x12=.luminary.proto.api.v0.luminarycloud.geometry.ListTagsRequest\x1a>.luminary.proto.api.v0.luminarycloud.geometry.ListTagsResponse\"Z\x82\xd3\xe4\x93\x02T\x12\x1f/v0/geometry/{geometry_id}/tagsZ1\x12//v0/geometry_version/{geometry_version_id}/tags\x12\xe4\x01\n\x14ListGeometryVersions\x12I.luminary.proto.api.v0.luminarycloud.geometry.ListGeometryVersionsRequest\x1aJ.luminary.proto.api.v0.luminarycloud.geometry.ListGeometryVersionsResponse\"5\x82\xd3\xe4\x93\x02%\x12#/v0/geometry/{geometry_id}/versions\x8a\xb5\x18\x06\x08\x14\x12\x02\x08\x01\x12\xdb\x01\n\x12GetGeometryVersion\x12G.luminary.proto.api.v0.luminarycloud.geometry.GetGeometryVersionRequest\x1aH.luminary.proto.api.v0.luminarycloud.geometry.GetGeometryVersionResponse\"2\x82\xd3\xe4\x93\x02,\x12*/v0/geometry_version/{geometry_version_id}\x12\xe7\x01\n\x15UpdateGeometryVersion\x12J.luminary.proto.api.v0.luminarycloud.geometry.UpdateGeometryVersionRequest\x1aK.luminary.proto.api.v0.luminarycloud.geometry.UpdateGeometryVersionResponse\"5\x82\xd3\xe4\x93\x02/2*/v0/geometry_version/{geometry_version_id}:\x01*\x12\xbc\x01\n\nGetSdkCode\x12?.luminary.proto.api.v0.luminarycloud.geometry.GetSdkCodeRequest\x1a@.luminary.proto.api.v0.luminarycloud.geometry.GetSdkCodeResponse\"+\x82\xd3\xe4\x93\x02%\x12#/v0/geometry/{geometry_id}/sdk-codeB<Z:luminarycloud.com/core/proto/api/v0/luminarycloud/geometryb\x06proto3')
25
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2proto/api/v0/luminarycloud/geometry/geometry.proto\x12,luminary.proto.api.v0.luminarycloud.geometry\x1a\x1cgoogle/api/annotations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1dproto/geometry/geometry.proto\x1a\x15proto/base/base.proto\x1a#proto/cadmetadata/cadmetadata.proto\x1a\x16proto/lcn/lcmesh.proto\x1a\x1fproto/ratelimit/ratelimit.proto\"\xdd\x04\n\x08Geometry\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\x0f\n\x07\x64\x65leted\x18\x05 \x01(\x08\x12\x17\n\x0flast_version_id\x18\x06 \x01(\t\x12\x11\n\tuses_tags\x18\x07 \x01(\x08\x12\x12\n\nproject_id\x18\t \x01(\t\x12R\n\x06status\x18\n \x01(\x0e\x32=.luminary.proto.api.v0.luminarycloud.geometry.Geometry.StatusH\x00\x88\x01\x01\x12U\n\x05\x63heck\x18\x0c \x01(\x0b\x32\x46.luminary.proto.api.v0.luminarycloud.geometry.GetCheckGeometryResponse\x12O\n\x08versions\x18\x0b \x03(\x0b\x32=.luminary.proto.api.v0.luminarycloud.geometry.GeometryVersion\"w\n\x06Status\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x42USY\x10\x01\x12\x16\n\x12HAS_FEATURE_ERRORS\x10\x05\x12\x13\n\x0fREADY_FOR_CHECK\x10\x02\x12\x0c\n\x08\x43HECKING\x10\x06\x12\x10\n\x0c\x46\x41ILED_CHECK\x10\x03\x12\t\n\x05READY\x10\x04\x42\t\n\x07_statusJ\x04\x08\x08\x10\t\"\x88\x03\n\x0fGeometryVersion\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0bgeometry_id\x18\x02 \x01(\t\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x38\n\x0bkernel_type\x18\x05 \x01(\x0e\x32#.luminary.proto.geometry.KernelType\x12%\n\x1dnamed_variable_set_version_id\x18\x06 \x01(\t\x12U\n\x05\x63heck\x18\x07 \x01(\x0b\x32\x46.luminary.proto.api.v0.luminarycloud.geometry.GetCheckGeometryResponse\x12R\n\x06status\x18\x08 \x01(\x0e\x32=.luminary.proto.api.v0.luminarycloud.geometry.Geometry.StatusH\x00\x88\x01\x01\x42\t\n\x07_status\"\x84\x02\n\x10TessellationData\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x11\n\tmeta_data\x18\x02 \x01(\x0c\x12\x36\n\x08lcn_meta\x18\x03 \x01(\x0b\x32$.luminary.proto.lcn.MeshFileMetadata\x12=\n\x0c\x63\x61\x64_metadata\x18\x04 \x01(\x0b\x32\'.luminary.proto.cadmetadata.CadMetadata\x12\x1b\n\x13geometry_version_id\x18\x05 \x01(\t\x12\x12\n\nfeature_id\x18\x06 \x01(\t\x12\x10\n\x08\x64\x61ta_url\x18\x07 \x01(\t\x12\x15\n\rmeta_data_url\x18\x08 \x01(\t\"O\n\x12GetGeometryRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12$\n\x1cinclude_interesting_versions\x18\x02 \x01(\x08\"_\n\x13GetGeometryResponse\x12H\n\x08geometry\x18\x01 \x01(\x0b\x32\x36.luminary.proto.api.v0.luminarycloud.geometry.Geometry\"i\n\x1bListGeometryFeaturesRequest\x12\x15\n\x0bgeometry_id\x18\x01 \x01(\tH\x00\x12\x1d\n\x13geometry_version_id\x18\x02 \x01(\tH\x00\x42\x14\n\x12parent_resource_id\"R\n\x1cListGeometryFeaturesResponse\x12\x32\n\x08\x66\x65\x61tures\x18\x01 \x03(\x0b\x32 .luminary.proto.geometry.Feature\"n\n ListGeometryFeatureIssuesRequest\x12\x15\n\x0bgeometry_id\x18\x01 \x01(\tH\x00\x12\x1d\n\x13geometry_version_id\x18\x02 \x01(\tH\x00\x42\x14\n\x12parent_resource_id\"d\n!ListGeometryFeatureIssuesResponse\x12?\n\x0f\x66\x65\x61tures_issues\x18\x01 \x03(\x0b\x32&.luminary.proto.geometry.FeatureIssues\"i\n\x1bListGeometryEntitiesRequest\x12\x15\n\x0bgeometry_id\x18\x01 \x01(\tH\x00\x12\x1d\n\x13geometry_version_id\x18\x02 \x01(\tH\x00\x42\x14\n\x12parent_resource_id\"{\n\x1cListGeometryEntitiesResponse\x12,\n\x05\x66\x61\x63\x65s\x18\x01 \x03(\x0b\x32\x1d.luminary.proto.geometry.Face\x12-\n\x06\x62odies\x18\x02 \x03(\x0b\x32\x1d.luminary.proto.geometry.Body\"Q\n\x15ListGeometriesRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12$\n\x1cinclude_interesting_versions\x18\x02 \x01(\x08\"d\n\x16ListGeometriesResponse\x12J\n\ngeometries\x18\x01 \x03(\x0b\x32\x36.luminary.proto.api.v0.luminarycloud.geometry.Geometry\"I\n\x18SubscribeGeometryRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x13\n\x0bgeometry_id\x18\x02 \x01(\tJ\x04\x08\x03\x10\x04\"\xa0\x02\n\x0fGeometryHistory\x12\x61\n\rhistory_entry\x18\x01 \x01(\x0b\x32J.luminary.proto.api.v0.luminarycloud.geometry.GeometryHistory.HistoryEntry\x1a\xa9\x01\n\x0cHistoryEntry\x12;\n\x0cmodification\x18\x01 \x01(\x0b\x32%.luminary.proto.geometry.Modification\x12#\n\x1bgeometry_version_initial_id\x18\x02 \x01(\t\x12\x1f\n\x17geometry_version_new_id\x18\x03 \x01(\t\x12\x16\n\x0e\x63heckpoint_url\x18\x04 \x01(\t\"\xaa\x0f\n\x19SubscribeGeometryResponse\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12p\n\ncheckpoint\x18\x05 \x01(\x0b\x32Z.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.GeometryCheckpointH\x00\x12\x61\n\x04\x62usy\x18\x06 \x01(\x0b\x32Q.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.BusyStateH\x00\x12\x1d\n\x13worker_disconnected\x18\x07 \x01(\x08H\x00\x12\x18\n\x0ereceived_error\x18\x08 \x01(\x08H\x00\x1a\x8b\x04\n\x12GeometryCheckpoint\x12\x10\n\x08mesh_url\x18\x02 \x01(\t\x12\x32\n\x08\x66\x65\x61tures\x18\x03 \x03(\x0b\x32 .luminary.proto.geometry.Feature\x12?\n\x0f\x66\x65\x61tures_issues\x18\x08 \x03(\x0b\x32&.luminary.proto.geometry.FeatureIssues\x12W\n\x10geometry_history\x18\x04 \x03(\x0b\x32=.luminary.proto.api.v0.luminarycloud.geometry.GeometryHistory\x12Y\n\x11tessellation_data\x18\x05 \x01(\x0b\x32>.luminary.proto.api.v0.luminarycloud.geometry.TessellationData\x12\x15\n\rn_avail_undos\x18\x06 \x01(\x05\x12\x15\n\rn_avail_redos\x18\x07 \x01(\x05\x12+\n\x04tags\x18\t \x01(\x0b\x32\x1d.luminary.proto.geometry.Tags\x12\x38\n\x0bkernel_type\x18\n \x01(\x0e\x32#.luminary.proto.geometry.KernelType\x12%\n\x1dnamed_variable_set_version_id\x18\x0b \x01(\t\x1a\xcb\x08\n\tBusyState\x12\x0f\n\x07message\x18\x01 \x01(\t\x12}\n\x10\x66\x65\x61ture_progress\x18\x05 \x01(\x0b\x32\x61.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.BusyState.FeatureProgressH\x00\x12\x85\x01\n\x14\x66\x65\x61ture_tessellation\x18\x06 \x01(\x0b\x32\x65.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.BusyState.FeatureTessellationH\x00\x12o\n\tundo_redo\x18\x07 \x01(\x0b\x32Z.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.BusyState.UndoRedoH\x00\x12p\n\treloading\x18\x08 \x01(\x0b\x32[.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.BusyState.ReloadingH\x00\x12y\n\x0e\x64\x65lete_feature\x18\t \x01(\x0b\x32_.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.BusyState.DeleteFeatureH\x00\x12y\n\x0erename_feature\x18\n \x01(\x0b\x32_.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.BusyState.RenameFeatureH\x00\x12w\n\rtag_operation\x18\x0b \x01(\x0b\x32^.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse.BusyState.TagOperationH\x00\x1a%\n\x0f\x46\x65\x61tureProgress\x12\x12\n\nfeature_id\x18\x02 \x01(\t\x1a)\n\x13\x46\x65\x61tureTessellation\x12\x12\n\nfeature_id\x18\x03 \x01(\t\x1a\n\n\x08UndoRedo\x1a\x0b\n\tReloading\x1a#\n\rDeleteFeature\x12\x12\n\nfeature_id\x18\x04 \x01(\t\x1a#\n\rRenameFeature\x12\x12\n\nfeature_id\x18\x01 \x01(\t\x1a\x0e\n\x0cTagOperationB\x0f\n\rBusyStateTypeB\x0e\n\x0cResponseType\"}\n\x15ModifyGeometryRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12;\n\x0cmodification\x18\x02 \x01(\x0b\x32%.luminary.proto.geometry.Modification\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"\xbf\x01\n\x16ModifyGeometryResponse\x12\x32\n\x08\x66\x65\x61tures\x18\x01 \x03(\x0b\x32 .luminary.proto.geometry.Feature\x12\x30\n\x07volumes\x18\x02 \x03(\x0b\x32\x1f.luminary.proto.geometry.Volume\x12?\n\x0f\x66\x65\x61tures_issues\x18\x03 \x03(\x0b\x32&.luminary.proto.geometry.FeatureIssues\"\xd7\x01\n\x15\x43reateGeometryRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x17\n\x0fweb_geometry_id\x18\t \x01(\t\x12\x15\n\rscaling_float\x18\x04 \x01(\x01\x12\x31\n\x07scaling\x18\n \x01(\x0b\x32 .luminary.proto.base.AdFloatType\x12\x0c\n\x04wait\x18\x05 \x01(\x08\x12\x12\n\nrequest_id\x18\x08 \x01(\tJ\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08\"b\n\x16\x43reateGeometryResponse\x12H\n\x08geometry\x18\x01 \x01(\x0b\x32\x36.luminary.proto.api.v0.luminarycloud.geometry.Geometry\":\n\x15UpdateGeometryRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"b\n\x16UpdateGeometryResponse\x12H\n\x08geometry\x18\x01 \x01(\x0b\x32\x36.luminary.proto.api.v0.luminarycloud.geometry.Geometry\"L\n\x13\x43opyGeometryRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"`\n\x14\x43opyGeometryResponse\x12H\n\x08geometry\x18\x01 \x01(\x0b\x32\x36.luminary.proto.api.v0.luminarycloud.geometry.Geometry\"_\n\x1e\x43opyGeometryFromVersionRequest\x12\x1b\n\x13geometry_version_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"k\n\x1f\x43opyGeometryFromVersionResponse\x12H\n\x08geometry\x18\x01 \x01(\x0b\x32\x36.luminary.proto.api.v0.luminarycloud.geometry.Geometry\",\n\x15\x44\x65leteGeometryRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\"\x18\n\x16\x44\x65leteGeometryResponse\"H\n\x14\x43heckGeometryRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12\x1b\n\x13geometry_version_id\x18\x02 \x01(\t\"3\n\x15\x43heckGeometryResponse\x12\n\n\x02ok\x18\x01 \x01(\x08\x12\x0e\n\x06issues\x18\x02 \x03(\t\"H\n\x18GetCheckGeometryResponse\x12\n\n\x02ok\x18\x01 \x01(\x08\x12\x0e\n\x06issues\x18\x02 \x03(\t\x12\x10\n\x08\x66inished\x18\x03 \x01(\x08\"S\n#TessellationUpToModificationRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12\x17\n\x0fmodification_id\x18\x02 \x01(\t\":\n$TessellationUpToModificationResponse\x12\x12\n\ntessel_url\x18\x01 \x01(\t\"0\n\x19LatestTessellationRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\"5\n\x1aLatestTessellationResponse\x12\x17\n\x0ftesselation_url\x18\x01 \x01(\t\"\'\n\x10KeepAliveRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\"\x13\n\x11KeepAliveResponse\"\x0e\n\x0cPanicRequest\"\x0f\n\rPanicResponse\"(\n\x11StopWorkerRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\"\x14\n\x12StopWorkerResponse\"B\n\x0eGetTagsRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12\x1b\n\x13geometry_version_id\x18\x02 \x01(\t\">\n\x0fGetTagsResponse\x12+\n\x04tags\x18\x01 \x01(\x0b\x32\x1d.luminary.proto.geometry.Tags\"e\n\x13GetTagsBatchRequest\x12N\n\x08requests\x18\x01 \x03(\x0b\x32<.luminary.proto.api.v0.luminarycloud.geometry.GetTagsRequest\"h\n\x14GetTagsBatchResponse\x12P\n\tresponses\x18\x01 \x03(\x0b\x32=.luminary.proto.api.v0.luminarycloud.geometry.GetTagsResponse\"R\n\x03Tag\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06\x62odies\x18\x03 \x03(\x05\x12\x0f\n\x07volumes\x18\x04 \x03(\t\x12\x10\n\x08surfaces\x18\x05 \x03(\t\"]\n\x0fListTagsRequest\x12\x15\n\x0bgeometry_id\x18\x01 \x01(\tH\x00\x12\x1d\n\x13geometry_version_id\x18\x02 \x01(\tH\x00\x42\x14\n\x12parent_resource_id\"S\n\x10ListTagsResponse\x12?\n\x04tags\x18\x01 \x03(\x0b\x32\x31.luminary.proto.api.v0.luminarycloud.geometry.Tag\"\xb3\x01\n\x1bListGeometryVersionsRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12\x12\n\nunfiltered\x18\x02 \x01(\x08\x12\x1d\n\x15include_check_results\x18\x05 \x01(\x08\x12\x16\n\tpage_size\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12\x17\n\npage_token\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x0c\n\n_page_sizeB\r\n\x0b_page_token\"\xa6\x01\n\x1cListGeometryVersionsResponse\x12X\n\x11geometry_versions\x18\x01 \x03(\x0b\x32=.luminary.proto.api.v0.luminarycloud.geometry.GeometryVersion\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0btotal_count\x18\x03 \x01(\x05\"W\n\x19GetGeometryVersionRequest\x12\x1b\n\x13geometry_version_id\x18\x01 \x01(\t\x12\x1d\n\x15include_check_results\x18\x02 \x01(\x08\"u\n\x1aGetGeometryVersionResponse\x12W\n\x10geometry_version\x18\x01 \x01(\x0b\x32=.luminary.proto.api.v0.luminarycloud.geometry.GeometryVersion\"I\n\x1cUpdateGeometryVersionRequest\x12\x1b\n\x13geometry_version_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"x\n\x1dUpdateGeometryVersionResponse\x12W\n\x10geometry_version\x18\x01 \x01(\x0b\x32=.luminary.proto.api.v0.luminarycloud.geometry.GeometryVersion\"E\n\x11GetSdkCodeRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\x12\x1b\n\x13geometry_version_id\x18\x02 \x01(\t\"&\n\x12GetSdkCodeResponse\x12\x10\n\x08sdk_code\x18\x01 \x01(\t2\xaa+\n\x0fGeometryService\x12\xd3\x01\n\x0eListGeometries\x12\x43.luminary.proto.api.v0.luminarycloud.geometry.ListGeometriesRequest\x1a\x44.luminary.proto.api.v0.luminarycloud.geometry.ListGeometriesResponse\"6\x82\xd3\xe4\x93\x02&\x12$/v0/projects/{project_id}/geometries\x8a\xb5\x18\x06\x08<\x12\x02\x08\x01\x12\x91\x02\n\x14ListGeometryEntities\x12I.luminary.proto.api.v0.luminarycloud.geometry.ListGeometryEntitiesRequest\x1aJ.luminary.proto.api.v0.luminarycloud.geometry.ListGeometryEntitiesResponse\"b\x82\xd3\xe4\x93\x02\\\x12#/v0/geometry/{geometry_id}/entitiesZ5\x12\x33/v0/geometry_version/{geometry_version_id}/entities\x12\xb6\x01\n\x0bGetGeometry\x12@.luminary.proto.api.v0.luminarycloud.geometry.GetGeometryRequest\x1a\x41.luminary.proto.api.v0.luminarycloud.geometry.GetGeometryResponse\"\"\x82\xd3\xe4\x93\x02\x1c\x12\x1a/v0/geometry/{geometry_id}\x12\x91\x02\n\x14ListGeometryFeatures\x12I.luminary.proto.api.v0.luminarycloud.geometry.ListGeometryFeaturesRequest\x1aJ.luminary.proto.api.v0.luminarycloud.geometry.ListGeometryFeaturesResponse\"b\x82\xd3\xe4\x93\x02\\\x12#/v0/geometry/{geometry_id}/featuresZ5\x12\x33/v0/geometry_version/{geometry_version_id}/features\x12\xae\x02\n\x19ListGeometryFeatureIssues\x12N.luminary.proto.api.v0.luminarycloud.geometry.ListGeometryFeatureIssuesRequest\x1aO.luminary.proto.api.v0.luminarycloud.geometry.ListGeometryFeatureIssuesResponse\"p\x82\xd3\xe4\x93\x02j\x12*/v0/geometry/{geometry_id}/features/issuesZ<\x12:/v0/geometry_version/{geometry_version_id}/features/issues\x12\xae\x01\n\x11SubscribeGeometry\x12\x46.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryRequest\x1aG.luminary.proto.api.v0.luminarycloud.geometry.SubscribeGeometryResponse\"\x06\x8a\xb5\x18\x02\x08\x32\x30\x01\x12\xd3\x01\n\x0eModifyGeometry\x12\x43.luminary.proto.api.v0.luminarycloud.geometry.ModifyGeometryRequest\x1a\x44.luminary.proto.api.v0.luminarycloud.geometry.ModifyGeometryResponse\"6\x82\xd3\xe4\x93\x02&\"!/v0/geometry/{geometry_id}/modify:\x01*\x8a\xb5\x18\x06\x08<\x12\x02\x08\x01\x12\xdb\x01\n\x0e\x43reateGeometry\x12\x43.luminary.proto.api.v0.luminarycloud.geometry.CreateGeometryRequest\x1a\x44.luminary.proto.api.v0.luminarycloud.geometry.CreateGeometryResponse\">\x82\xd3\xe4\x93\x02.\")/v0/projects/{project_id}/create-geometry:\x01*\x8a\xb5\x18\x06\x08\x1e\x12\x02\x08\x03\x12\xc2\x01\n\x0eUpdateGeometry\x12\x43.luminary.proto.api.v0.luminarycloud.geometry.UpdateGeometryRequest\x1a\x44.luminary.proto.api.v0.luminarycloud.geometry.UpdateGeometryResponse\"%\x82\xd3\xe4\x93\x02\x1f\x32\x1a/v0/geometry/{geometry_id}:\x01*\x12\xcb\x01\n\x0c\x43opyGeometry\x12\x41.luminary.proto.api.v0.luminarycloud.geometry.CopyGeometryRequest\x1a\x42.luminary.proto.api.v0.luminarycloud.geometry.CopyGeometryResponse\"4\x82\xd3\xe4\x93\x02$\"\x1f/v0/geometry/{geometry_id}:copy:\x01*\x8a\xb5\x18\x06\x08\x1e\x12\x02\x08\x01\x12\xfc\x01\n\x17\x43opyGeometryFromVersion\x12L.luminary.proto.api.v0.luminarycloud.geometry.CopyGeometryFromVersionRequest\x1aM.luminary.proto.api.v0.luminarycloud.geometry.CopyGeometryFromVersionResponse\"D\x82\xd3\xe4\x93\x02\x34\"//v0/geometry_from_version/{geometry_version_id}:\x01*\x8a\xb5\x18\x06\x08\x1e\x12\x02\x08\x01\x12\xc9\x01\n\x0e\x44\x65leteGeometry\x12\x43.luminary.proto.api.v0.luminarycloud.geometry.DeleteGeometryRequest\x1a\x44.luminary.proto.api.v0.luminarycloud.geometry.DeleteGeometryResponse\",\x82\xd3\xe4\x93\x02&\"!/v0/geometry/{geometry_id}:delete:\x01*\x12\xad\x01\n\x12StartCheckGeometry\x12\x42.luminary.proto.api.v0.luminarycloud.geometry.CheckGeometryRequest\x1a\x16.google.protobuf.Empty\";\x82\xd3\xe4\x93\x02+\"&/v0/geometry/{geometry_id}/start_check:\x01*\x8a\xb5\x18\x06\x08\x14\x12\x02\x08\x01\x12\xcf\x01\n\x10GetCheckGeometry\x12\x42.luminary.proto.api.v0.luminarycloud.geometry.CheckGeometryRequest\x1a\x46.luminary.proto.api.v0.luminarycloud.geometry.GetCheckGeometryResponse\"/\x82\xd3\xe4\x93\x02)\"$/v0/geometry/{geometry_id}/get_check:\x01*\x12\xc5\x01\n\rCheckGeometry\x12\x42.luminary.proto.api.v0.luminarycloud.geometry.CheckGeometryRequest\x1a\x43.luminary.proto.api.v0.luminarycloud.geometry.CheckGeometryResponse\"+\x82\xd3\xe4\x93\x02%\" /v0/geometry/{geometry_id}/check:\x01*\x12\xd0\x01\n\x1bTesselationUpToModification\x12Q.luminary.proto.api.v0.luminarycloud.geometry.TessellationUpToModificationRequest\x1aR.luminary.proto.api.v0.luminarycloud.geometry.TessellationUpToModificationResponse\"\n\x8a\xb5\x18\x06\x08\x14\x12\x02\x08\x01\x12\xa7\x01\n\x12LatestTessellation\x12G.luminary.proto.api.v0.luminarycloud.geometry.LatestTessellationRequest\x1aH.luminary.proto.api.v0.luminarycloud.geometry.LatestTessellationResponse\x12\x98\x01\n\tKeepAlive\x12>.luminary.proto.api.v0.luminarycloud.geometry.KeepAliveRequest\x1a?.luminary.proto.api.v0.luminarycloud.geometry.KeepAliveResponse\"\n\x8a\xb5\x18\x06\x08\x14\x12\x02\x08\x01\x12\x80\x01\n\x05Panic\x12:.luminary.proto.api.v0.luminarycloud.geometry.PanicRequest\x1a;.luminary.proto.api.v0.luminarycloud.geometry.PanicResponse\x12\x8f\x01\n\nStopWorker\x12?.luminary.proto.api.v0.luminarycloud.geometry.StopWorkerRequest\x1a@.luminary.proto.api.v0.luminarycloud.geometry.StopWorkerResponse\x12\x86\x01\n\x07GetTags\x12<.luminary.proto.api.v0.luminarycloud.geometry.GetTagsRequest\x1a=.luminary.proto.api.v0.luminarycloud.geometry.GetTagsResponse\x12\x95\x01\n\x0cGetTagsBatch\x12\x41.luminary.proto.api.v0.luminarycloud.geometry.GetTagsBatchRequest\x1a\x42.luminary.proto.api.v0.luminarycloud.geometry.GetTagsBatchResponse\x12\xe5\x01\n\x08ListTags\x12=.luminary.proto.api.v0.luminarycloud.geometry.ListTagsRequest\x1a>.luminary.proto.api.v0.luminarycloud.geometry.ListTagsResponse\"Z\x82\xd3\xe4\x93\x02T\x12\x1f/v0/geometry/{geometry_id}/tagsZ1\x12//v0/geometry_version/{geometry_version_id}/tags\x12\xe4\x01\n\x14ListGeometryVersions\x12I.luminary.proto.api.v0.luminarycloud.geometry.ListGeometryVersionsRequest\x1aJ.luminary.proto.api.v0.luminarycloud.geometry.ListGeometryVersionsResponse\"5\x82\xd3\xe4\x93\x02%\x12#/v0/geometry/{geometry_id}/versions\x8a\xb5\x18\x06\x08\x14\x12\x02\x08\x01\x12\xdb\x01\n\x12GetGeometryVersion\x12G.luminary.proto.api.v0.luminarycloud.geometry.GetGeometryVersionRequest\x1aH.luminary.proto.api.v0.luminarycloud.geometry.GetGeometryVersionResponse\"2\x82\xd3\xe4\x93\x02,\x12*/v0/geometry_version/{geometry_version_id}\x12\xe7\x01\n\x15UpdateGeometryVersion\x12J.luminary.proto.api.v0.luminarycloud.geometry.UpdateGeometryVersionRequest\x1aK.luminary.proto.api.v0.luminarycloud.geometry.UpdateGeometryVersionResponse\"5\x82\xd3\xe4\x93\x02/2*/v0/geometry_version/{geometry_version_id}:\x01*\x12\xbc\x01\n\nGetSdkCode\x12?.luminary.proto.api.v0.luminarycloud.geometry.GetSdkCodeRequest\x1a@.luminary.proto.api.v0.luminarycloud.geometry.GetSdkCodeResponse\"+\x82\xd3\xe4\x93\x02%\x12#/v0/geometry/{geometry_id}/sdk-codeB<Z:luminarycloud.com/core/proto/api/v0/luminarycloud/geometryb\x06proto3')
26
26
 
27
27
 
28
28
 
@@ -79,6 +79,8 @@ _STOPWORKERREQUEST = DESCRIPTOR.message_types_by_name['StopWorkerRequest']
79
79
  _STOPWORKERRESPONSE = DESCRIPTOR.message_types_by_name['StopWorkerResponse']
80
80
  _GETTAGSREQUEST = DESCRIPTOR.message_types_by_name['GetTagsRequest']
81
81
  _GETTAGSRESPONSE = DESCRIPTOR.message_types_by_name['GetTagsResponse']
82
+ _GETTAGSBATCHREQUEST = DESCRIPTOR.message_types_by_name['GetTagsBatchRequest']
83
+ _GETTAGSBATCHRESPONSE = DESCRIPTOR.message_types_by_name['GetTagsBatchResponse']
82
84
  _TAG = DESCRIPTOR.message_types_by_name['Tag']
83
85
  _LISTTAGSREQUEST = DESCRIPTOR.message_types_by_name['ListTagsRequest']
84
86
  _LISTTAGSRESPONSE = DESCRIPTOR.message_types_by_name['ListTagsResponse']
@@ -472,6 +474,20 @@ GetTagsResponse = _reflection.GeneratedProtocolMessageType('GetTagsResponse', (_
472
474
  })
473
475
  _sym_db.RegisterMessage(GetTagsResponse)
474
476
 
477
+ GetTagsBatchRequest = _reflection.GeneratedProtocolMessageType('GetTagsBatchRequest', (_message.Message,), {
478
+ 'DESCRIPTOR' : _GETTAGSBATCHREQUEST,
479
+ '__module__' : 'proto.api.v0.luminarycloud.geometry.geometry_pb2'
480
+ # @@protoc_insertion_point(class_scope:luminary.proto.api.v0.luminarycloud.geometry.GetTagsBatchRequest)
481
+ })
482
+ _sym_db.RegisterMessage(GetTagsBatchRequest)
483
+
484
+ GetTagsBatchResponse = _reflection.GeneratedProtocolMessageType('GetTagsBatchResponse', (_message.Message,), {
485
+ 'DESCRIPTOR' : _GETTAGSBATCHRESPONSE,
486
+ '__module__' : 'proto.api.v0.luminarycloud.geometry.geometry_pb2'
487
+ # @@protoc_insertion_point(class_scope:luminary.proto.api.v0.luminarycloud.geometry.GetTagsBatchResponse)
488
+ })
489
+ _sym_db.RegisterMessage(GetTagsBatchResponse)
490
+
475
491
  Tag = _reflection.GeneratedProtocolMessageType('Tag', (_message.Message,), {
476
492
  'DESCRIPTOR' : _TAG,
477
493
  '__module__' : 'proto.api.v0.luminarycloud.geometry.geometry_pb2'
@@ -706,28 +722,32 @@ if _descriptor._USE_C_DESCRIPTORS == False:
706
722
  _GETTAGSREQUEST._serialized_end=6866
707
723
  _GETTAGSRESPONSE._serialized_start=6868
708
724
  _GETTAGSRESPONSE._serialized_end=6930
709
- _TAG._serialized_start=6932
710
- _TAG._serialized_end=7014
711
- _LISTTAGSREQUEST._serialized_start=7016
712
- _LISTTAGSREQUEST._serialized_end=7109
713
- _LISTTAGSRESPONSE._serialized_start=7111
714
- _LISTTAGSRESPONSE._serialized_end=7194
715
- _LISTGEOMETRYVERSIONSREQUEST._serialized_start=7197
716
- _LISTGEOMETRYVERSIONSREQUEST._serialized_end=7376
717
- _LISTGEOMETRYVERSIONSRESPONSE._serialized_start=7379
718
- _LISTGEOMETRYVERSIONSRESPONSE._serialized_end=7545
719
- _GETGEOMETRYVERSIONREQUEST._serialized_start=7547
720
- _GETGEOMETRYVERSIONREQUEST._serialized_end=7634
721
- _GETGEOMETRYVERSIONRESPONSE._serialized_start=7636
722
- _GETGEOMETRYVERSIONRESPONSE._serialized_end=7753
723
- _UPDATEGEOMETRYVERSIONREQUEST._serialized_start=7755
724
- _UPDATEGEOMETRYVERSIONREQUEST._serialized_end=7828
725
- _UPDATEGEOMETRYVERSIONRESPONSE._serialized_start=7830
726
- _UPDATEGEOMETRYVERSIONRESPONSE._serialized_end=7950
727
- _GETSDKCODEREQUEST._serialized_start=7952
728
- _GETSDKCODEREQUEST._serialized_end=8021
729
- _GETSDKCODERESPONSE._serialized_start=8023
730
- _GETSDKCODERESPONSE._serialized_end=8061
731
- _GEOMETRYSERVICE._serialized_start=8064
732
- _GEOMETRYSERVICE._serialized_end=13458
725
+ _GETTAGSBATCHREQUEST._serialized_start=6932
726
+ _GETTAGSBATCHREQUEST._serialized_end=7033
727
+ _GETTAGSBATCHRESPONSE._serialized_start=7035
728
+ _GETTAGSBATCHRESPONSE._serialized_end=7139
729
+ _TAG._serialized_start=7141
730
+ _TAG._serialized_end=7223
731
+ _LISTTAGSREQUEST._serialized_start=7225
732
+ _LISTTAGSREQUEST._serialized_end=7318
733
+ _LISTTAGSRESPONSE._serialized_start=7320
734
+ _LISTTAGSRESPONSE._serialized_end=7403
735
+ _LISTGEOMETRYVERSIONSREQUEST._serialized_start=7406
736
+ _LISTGEOMETRYVERSIONSREQUEST._serialized_end=7585
737
+ _LISTGEOMETRYVERSIONSRESPONSE._serialized_start=7588
738
+ _LISTGEOMETRYVERSIONSRESPONSE._serialized_end=7754
739
+ _GETGEOMETRYVERSIONREQUEST._serialized_start=7756
740
+ _GETGEOMETRYVERSIONREQUEST._serialized_end=7843
741
+ _GETGEOMETRYVERSIONRESPONSE._serialized_start=7845
742
+ _GETGEOMETRYVERSIONRESPONSE._serialized_end=7962
743
+ _UPDATEGEOMETRYVERSIONREQUEST._serialized_start=7964
744
+ _UPDATEGEOMETRYVERSIONREQUEST._serialized_end=8037
745
+ _UPDATEGEOMETRYVERSIONRESPONSE._serialized_start=8039
746
+ _UPDATEGEOMETRYVERSIONRESPONSE._serialized_end=8159
747
+ _GETSDKCODEREQUEST._serialized_start=8161
748
+ _GETSDKCODEREQUEST._serialized_end=8230
749
+ _GETSDKCODERESPONSE._serialized_start=8232
750
+ _GETSDKCODERESPONSE._serialized_end=8270
751
+ _GEOMETRYSERVICE._serialized_start=8273
752
+ _GEOMETRYSERVICE._serialized_end=13819
733
753
  # @@protoc_insertion_point(module_scope)
@@ -1170,6 +1170,36 @@ class GetTagsResponse(google.protobuf.message.Message):
1170
1170
 
1171
1171
  global___GetTagsResponse = GetTagsResponse
1172
1172
 
1173
+ class GetTagsBatchRequest(google.protobuf.message.Message):
1174
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
1175
+
1176
+ REQUESTS_FIELD_NUMBER: builtins.int
1177
+ @property
1178
+ def requests(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetTagsRequest]: ...
1179
+ def __init__(
1180
+ self,
1181
+ *,
1182
+ requests: collections.abc.Iterable[global___GetTagsRequest] | None = ...,
1183
+ ) -> None: ...
1184
+ def ClearField(self, field_name: typing_extensions.Literal["requests", b"requests"]) -> None: ...
1185
+
1186
+ global___GetTagsBatchRequest = GetTagsBatchRequest
1187
+
1188
+ class GetTagsBatchResponse(google.protobuf.message.Message):
1189
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
1190
+
1191
+ RESPONSES_FIELD_NUMBER: builtins.int
1192
+ @property
1193
+ def responses(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GetTagsResponse]: ...
1194
+ def __init__(
1195
+ self,
1196
+ *,
1197
+ responses: collections.abc.Iterable[global___GetTagsResponse] | None = ...,
1198
+ ) -> None: ...
1199
+ def ClearField(self, field_name: typing_extensions.Literal["responses", b"responses"]) -> None: ...
1200
+
1201
+ global___GetTagsBatchResponse = GetTagsBatchResponse
1202
+
1173
1203
  class Tag(google.protobuf.message.Message):
1174
1204
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
1175
1205