luminarycloud 0.16.1__py3-none-any.whl → 0.17.0__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 (59) hide show
  1. luminarycloud/_auth/auth.py +23 -34
  2. luminarycloud/_client/client.py +21 -5
  3. luminarycloud/_client/retry_interceptor.py +7 -0
  4. luminarycloud/_helpers/_create_geometry.py +0 -2
  5. luminarycloud/_helpers/_wait_for_mesh.py +14 -4
  6. luminarycloud/_helpers/warnings/__init__.py +0 -1
  7. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.py +120 -120
  8. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.pyi +2 -8
  9. luminarycloud/_proto/api/v0/luminarycloud/mesh/mesh_pb2.py +25 -3
  10. luminarycloud/_proto/api/v0/luminarycloud/mesh/mesh_pb2.pyi +30 -0
  11. luminarycloud/_proto/api/v0/luminarycloud/mesh/mesh_pb2_grpc.py +34 -0
  12. luminarycloud/_proto/api/v0/luminarycloud/mesh/mesh_pb2_grpc.pyi +12 -0
  13. luminarycloud/_proto/api/v0/luminarycloud/project_ui_state/project_ui_state_pb2.py +97 -0
  14. luminarycloud/_proto/api/v0/luminarycloud/project_ui_state/project_ui_state_pb2.pyi +93 -0
  15. luminarycloud/_proto/api/v0/luminarycloud/project_ui_state/project_ui_state_pb2_grpc.py +132 -0
  16. luminarycloud/_proto/api/v0/luminarycloud/project_ui_state/project_ui_state_pb2_grpc.pyi +44 -0
  17. luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2.py +88 -34
  18. luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2.pyi +96 -6
  19. luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2_grpc.py +68 -0
  20. luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2_grpc.pyi +24 -0
  21. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +153 -133
  22. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +51 -3
  23. luminarycloud/_proto/cad/shape_pb2.py +78 -19
  24. luminarycloud/_proto/cad/transformation_pb2.py +34 -15
  25. luminarycloud/_proto/geometry/geometry_pb2.py +62 -62
  26. luminarycloud/_proto/geometry/geometry_pb2.pyi +3 -5
  27. luminarycloud/_proto/hexmesh/hexmesh_pb2.py +17 -4
  28. luminarycloud/_proto/hexmesh/hexmesh_pb2.pyi +22 -1
  29. luminarycloud/_proto/quantity/quantity_pb2.py +19 -19
  30. luminarycloud/_proto/upload/upload_pb2.py +25 -15
  31. luminarycloud/_proto/upload/upload_pb2.pyi +31 -2
  32. luminarycloud/feature_modification.py +0 -5
  33. luminarycloud/geometry.py +15 -2
  34. luminarycloud/mesh.py +16 -0
  35. luminarycloud/named_variable_set.py +3 -4
  36. luminarycloud/outputs/stopping_conditions.py +0 -3
  37. luminarycloud/physics_ai/architectures.py +0 -4
  38. luminarycloud/physics_ai/inference.py +0 -4
  39. luminarycloud/physics_ai/models.py +0 -4
  40. luminarycloud/physics_ai/solution.py +2 -2
  41. luminarycloud/pipelines/__init__.py +6 -0
  42. luminarycloud/pipelines/arguments.py +105 -0
  43. luminarycloud/pipelines/core.py +204 -20
  44. luminarycloud/pipelines/operators.py +11 -9
  45. luminarycloud/pipelines/parameters.py +25 -4
  46. luminarycloud/project.py +37 -11
  47. luminarycloud/simulation_param.py +0 -2
  48. luminarycloud/simulation_template.py +1 -3
  49. luminarycloud/solution.py +1 -3
  50. luminarycloud/vis/__init__.py +2 -0
  51. luminarycloud/vis/data_extraction.py +201 -31
  52. luminarycloud/vis/filters.py +94 -35
  53. luminarycloud/vis/primitives.py +78 -1
  54. luminarycloud/vis/visualization.py +44 -6
  55. luminarycloud/volume_selection.py +0 -4
  56. {luminarycloud-0.16.1.dist-info → luminarycloud-0.17.0.dist-info}/METADATA +1 -1
  57. {luminarycloud-0.16.1.dist-info → luminarycloud-0.17.0.dist-info}/RECORD +58 -54
  58. luminarycloud/_helpers/warnings/experimental.py +0 -48
  59. {luminarycloud-0.16.1.dist-info → luminarycloud-0.17.0.dist-info}/WHEEL +0 -0
@@ -38,9 +38,10 @@ class Auth0Client:
38
38
  (Optional) Auth0 client ID
39
39
  audience : str
40
40
  (Optional) Auth0 audience (i.e. target service ID)
41
- no_browser : bool
42
- (Optional) If True, prevents client from opening browser and raises an error if user
43
- interaction via the browser becomes required.
41
+ noninteractive : bool
42
+ (Optional) If True, prevents client from ever attempting an interactive login (i.e.
43
+ launching an http server and opening the login page in a web browser). In cases where user
44
+ interaction is required, an error will be raised. Default: False
44
45
  access_token : str
45
46
  (Optional) Auth0 access token.
46
47
  refresh_token : str
@@ -55,7 +56,7 @@ class Auth0Client:
55
56
  domain: Optional[str] = None,
56
57
  client_id: Optional[str] = None,
57
58
  audience: Optional[str] = None,
58
- no_browser: bool = False,
59
+ noninteractive: bool = False,
59
60
  access_token: Optional[str] = None,
60
61
  refresh_token: Optional[str] = None,
61
62
  refresh_rotation: Optional[bool] = None,
@@ -63,7 +64,7 @@ class Auth0Client:
63
64
  self.domain = domain or LC_AUTH_DOMAIN # Auth0 tenant domain
64
65
  self.client_id = client_id or LC_AUTH_CLIENT_ID # Auth0 ID for client
65
66
  self.audience = audience or LC_AUTH_SERVICE_ID # Auth0 ID for service
66
- self.no_browser = no_browser # True to prevent client from opening browser
67
+ self.noninteractive = noninteractive # True to prevent interactive login
67
68
  self.refresh_rotation = (
68
69
  refresh_rotation or LC_REFRESH_ROTATION
69
70
  ) # True if refresh token rotation is enabled on Auth0
@@ -187,12 +188,16 @@ class Auth0Client:
187
188
  Raises
188
189
  ------
189
190
  InteractiveAuthException
190
- If user interaction is required, and self.no_browser is True.
191
+ If user interaction is required, and self.noninteractive is True.
191
192
  SecurityAlertException
192
193
  If the callback server receives a request from a potential attacker.
193
194
  AuthException
194
195
  If the tokens received from the Auth0 exchange are not found in the response.
195
196
  """
197
+ if self.noninteractive:
198
+ raise InteractiveAuthException(
199
+ "User interaction disabled, cannot initiate browser login."
200
+ )
196
201
 
197
202
  logger.info("Initiating user login.")
198
203
 
@@ -226,34 +231,18 @@ class Auth0Client:
226
231
  url_parameters["redirect_uri"] = redirect_uri
227
232
  authorize_url = urljoin(self.base_url, "authorize?" + urlencode(url_parameters))
228
233
 
229
- logger.info("Attempting silent auth.")
230
- # https://auth0.com/docs/authenticate/login/configure-silent-authentication
231
- # TODO: This always fails due to lack of cookies: https://community.auth0.com/t/failed-silent-auth-login-required/33165/25?page=2
232
- response = requests.get(authorize_url + "&prompt=none", timeout=TIMEOUT)
233
- try:
234
- response.raise_for_status() # raise an error if we get a 40X status code
235
- callback_args = listener.block_until_callback()
236
- except KeyboardInterrupt:
237
- raise
238
- except Exception as e:
239
- logger.info("Silent auth failed.", exc_info=e)
240
- callback_args = MultiDict()
241
-
242
- # Fall back to interactive auth if silent auth fails
243
- if "error" in callback_args:
244
- if self.no_browser:
245
- raise InteractiveAuthException(
246
- "Cannot login without user interaction via browser."
247
- )
248
- logger.info("Silent auth failed. Prompting interactive login via browser.")
249
- webbrowser.open_new(authorize_url)
250
- print(
251
- "Interactive login required. Your browser has been opened to visit the following URL:\n\n",
252
- authorize_url,
253
- "\n",
254
- )
255
- logger.debug("Waiting for redirect callback.")
256
- callback_args = listener.block_until_callback()
234
+ logger.info("Prompting interactive login via browser.")
235
+ if webbrowser.open_new(authorize_url):
236
+ interaction_detail = "Your browser has been opened to visit the following URL"
237
+ else:
238
+ interaction_detail = "Please visit the following URL in your browser"
239
+ print(
240
+ f"Interactive login required. {interaction_detail}:\n\n",
241
+ authorize_url,
242
+ "\n",
243
+ )
244
+ logger.debug("Waiting for redirect callback.")
245
+ callback_args = listener.block_until_callback()
257
246
 
258
247
  if "error" in callback_args:
259
248
  raise AuthException(callback_args["error"] + ": " + callback_args["error_description"])
@@ -4,7 +4,7 @@ import re
4
4
  import atexit
5
5
  from contextvars import ContextVar, Token
6
6
  from collections.abc import Iterable
7
- from typing import Any, Optional
7
+ from typing import Any, Optional, Union
8
8
 
9
9
  import grpc
10
10
 
@@ -35,6 +35,9 @@ from .._proto.api.v0.luminarycloud.inference.inference_pb2_grpc import Inference
35
35
  from .._proto.api.v0.luminarycloud.thirdpartyintegration.onshape.onshape_pb2_grpc import (
36
36
  OnshapeServiceStub,
37
37
  )
38
+ from .._proto.api.v0.luminarycloud.project_ui_state.project_ui_state_pb2_grpc import (
39
+ ProjectUIStateServiceStub,
40
+ )
38
41
  from .._proto.api.v0.luminarycloud.solution.solution_pb2_grpc import SolutionServiceStub
39
42
  from .._proto.api.v0.luminarycloud.upload.upload_pb2_grpc import UploadServiceStub
40
43
  from .._proto.api.v0.luminarycloud.vis.vis_pb2_grpc import VisAPIServiceStub
@@ -64,6 +67,7 @@ class Client(
64
67
  PhysicsAiServiceStub,
65
68
  InferenceServiceStub,
66
69
  OnshapeServiceStub,
70
+ ProjectUIStateServiceStub,
67
71
  ):
68
72
  """
69
73
  Creates a Luminary API client.
@@ -86,7 +90,7 @@ class Client(
86
90
  api_key : Optional[str]
87
91
  The API key to use for authentication.
88
92
  **kwargs : dict, optional
89
- Additional arguments are passed to Auth0Client. See auth/auth.py.
93
+ Additional arguments are passed to Auth0Client. See _auth/auth.py.
90
94
 
91
95
  Examples
92
96
  --------
@@ -102,7 +106,7 @@ class Client(
102
106
  self,
103
107
  target: str = LC_DOMAIN,
104
108
  localhost: bool = False,
105
- grpc_channel_options: Optional[Iterable[tuple[str, str]]] = None,
109
+ grpc_channel_options: Optional[Iterable[tuple[str, Union[str, int]]]] = None,
106
110
  channel_credentials: Optional[grpc.ChannelCredentials] = None,
107
111
  api_key: Optional[str] = LC_API_KEY,
108
112
  **kwargs: Any,
@@ -111,8 +115,19 @@ class Client(
111
115
  self._apiserver_domain = target.split(":", maxsplit=1)[0]
112
116
  # Initialize Auth0 client only if not using API key
113
117
  self._auth0_client = None if api_key else Auth0Client(**kwargs)
118
+ # It seems that both python and golang cliens have trouble sometimes RPC calls getting
119
+ # stuck. In go, setting some keepalive options seems to help, so we'll do the same here. See
120
+ # https://github.com/grpc/grpc/blob/d8b7d55975b945a9dee40db5ee87f170590721d9/examples/python/keep_alive/greeter_client.py#L1.
121
+ grpc_channel_options_with_keep_alive: list[tuple[str, Union[str, int]]] = [
122
+ ("grpc.keepalive_time_ms", 50000),
123
+ ("grpc.keepalive_timeout_ms", 5000),
124
+ ("grpc.keepalive_permit_without_calls", 1),
125
+ ("grpc.http2.max_pings_without_data", 10),
126
+ ]
127
+ if grpc_channel_options:
128
+ grpc_channel_options_with_keep_alive.extend(grpc_channel_options)
114
129
  self._channel = self._create_channel(
115
- localhost, grpc_channel_options, channel_credentials, api_key
130
+ localhost, grpc_channel_options_with_keep_alive, channel_credentials, api_key
116
131
  )
117
132
  self._context_tokens: list[Token] = []
118
133
  self.__register_rpcs()
@@ -157,7 +172,7 @@ class Client(
157
172
  def _create_channel(
158
173
  self,
159
174
  localhost: bool = False,
160
- grpc_channel_options: Optional[Iterable[tuple[str, str]]] = None,
175
+ grpc_channel_options: Optional[Iterable[tuple[str, Union[str, int]]]] = None,
161
176
  channel_credentials: Optional[grpc.ChannelCredentials] = None,
162
177
  api_key: Optional[str] = None,
163
178
  ) -> grpc.Channel:
@@ -211,6 +226,7 @@ class Client(
211
226
  InferenceServiceStub.__init__(self, self._channel)
212
227
  NamedVariableSetServiceStub.__init__(self, self._channel)
213
228
  OnshapeServiceStub.__init__(self, self._channel)
229
+ ProjectUIStateServiceStub.__init__(self, self._channel)
214
230
  for name, value in self.__dict__.items():
215
231
  if isinstance(value, grpc.UnaryUnaryMultiCallable):
216
232
  setattr(self, name, rpc_error(value))
@@ -47,6 +47,13 @@ class RetryInterceptor(UnaryUnaryClientInterceptor):
47
47
  call = continuation(client_call_details, request)
48
48
  if call.code() not in retryable_codes:
49
49
  break
50
+ if call.code() == grpc.StatusCode.UNAVAILABLE:
51
+ # if the auth plugin errors, that unfortunately shows up here as UNAVAILABLE, so we
52
+ # have to check for auth plugin exceptions that shouldn't be retried by matching
53
+ # their name in the details string
54
+ details = call.details() or ""
55
+ if "InteractiveAuthException" in details:
56
+ break
50
57
  sleep(backoff)
51
58
  try:
52
59
  call.result()
@@ -23,7 +23,6 @@ def create_geometry(
23
23
  name: Optional[str] = None,
24
24
  scaling: Optional[float] = None,
25
25
  wait: bool = False,
26
- convert_to_discrete: bool = False,
27
26
  ) -> geometrypb.Geometry:
28
27
 
29
28
  # TODO(onshape): Document this publicly when we release
@@ -75,7 +74,6 @@ def create_geometry(
75
74
  scaling=scaling,
76
75
  wait=False,
77
76
  request_id=str(uuid.uuid4()),
78
- force_discrete=convert_to_discrete,
79
77
  )
80
78
  )
81
79
  geo = create_geo_res.geometry
@@ -1,6 +1,7 @@
1
1
  # Copyright 2023-2024 Luminary Cloud, Inc. All Rights Reserved.
2
2
  import logging
3
3
  from time import time, sleep
4
+ import grpc
4
5
 
5
6
  from .._proto.api.v0.luminarycloud.mesh.mesh_pb2 import Mesh, GetMeshRequest
6
7
  from .._client import Client
@@ -35,11 +36,20 @@ def wait_for_mesh(
35
36
  """
36
37
  deadline = time() + timeout_seconds
37
38
  while True:
38
- response = client.GetMesh(GetMeshRequest(id=mesh.id))
39
+ if time() >= deadline:
40
+ logger.error("`wait_for_mesh` timed out.")
41
+ raise TimeoutError
42
+ # It seems this call sometimes hangs. It seems as well that python gRPC is known to hang
43
+ # in some cases, so we'll add a deadline and catch deadline exceeded errors to retry.
44
+ try:
45
+ response = client.GetMesh(GetMeshRequest(id=mesh.id), timeout=15)
46
+ except grpc.RpcError as e:
47
+ if e.code() == grpc.StatusCode.DEADLINE_EXCEEDED:
48
+ logger.error("Deadline exceeded while waiting for mesh.")
49
+ sleep(max(0, min(interval_seconds, deadline - time())))
50
+ continue
51
+ raise e
39
52
  status = response.mesh.status
40
53
  if status in [Mesh.MESH_STATUS_COMPLETED, Mesh.MESH_STATUS_FAILED]:
41
54
  return status
42
55
  sleep(max(0, min(interval_seconds, deadline - time())))
43
- if time() >= deadline:
44
- logger.error("`wait_for_mesh` timed out.")
45
- raise TimeoutError
@@ -1,2 +1 @@
1
1
  from .deprecated import deprecated
2
- from .experimental import experimental
@@ -21,7 +21,7 @@ from luminarycloud._proto.lcn import lcmesh_pb2 as proto_dot_lcn_dot_lcmesh__pb2
21
21
  from luminarycloud._proto.ratelimit import ratelimit_pb2 as proto_dot_ratelimit_dot_ratelimit__pb2
22
22
 
23
23
 
24
- 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#proto/cadmetadata/cadmetadata.proto\x1a\x16proto/lcn/lcmesh.proto\x1a\x1fproto/ratelimit/ratelimit.proto\"\xa2\x03\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\x16\n\x0e\x66orce_discrete\x18\x08 \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\"R\n\x06Status\x12\x0b\n\x07UNKNOWN\x10\x00\x12\r\n\tIMPORTING\x10\x01\x12\x0f\n\x0bNEEDS_CHECK\x10\x02\x12\x10\n\x0c\x46\x41ILED_CHECK\x10\x03\x12\t\n\x05READY\x10\x04\x42\t\n\x07_status\"c\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\"\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\")\n\x12GetGeometryRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\"_\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\"+\n\x15ListGeometriesRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\"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\"\xb0\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\x0f\n\x07scaling\x18\x04 \x01(\x01\x12\x0c\n\x04wait\x18\x05 \x01(\x08\x12\x16\n\x0e\x66orce_discrete\x18\x07 \x01(\x08\x12\x12\n\nrequest_id\x18\x08 \x01(\tJ\x04\x08\x06\x10\x07\"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\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\"8\n\x19GetGeometryVersionRequest\x12\x1b\n\x13geometry_version_id\x18\x01 \x01(\t\"u\n\x1aGetGeometryVersionResponse\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\xcc$\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\x03\x12\xd3\x01\n\x0e\x44\x65leteGeometry\x12\x43.luminary.proto.api.v0.luminarycloud.geometry.DeleteGeometryRequest\x1a\x44.luminary.proto.api.v0.luminarycloud.geometry.DeleteGeometryResponse\"6\x82\xd3\xe4\x93\x02&\"!/v0/geometry/{geometry_id}:delete:\x01*\x8a\xb5\x18\x06\x08\x1e\x12\x02\x08\x03\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\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\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')
24
+ 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#proto/cadmetadata/cadmetadata.proto\x1a\x16proto/lcn/lcmesh.proto\x1a\x1fproto/ratelimit/ratelimit.proto\"\x90\x03\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\"R\n\x06Status\x12\x0b\n\x07UNKNOWN\x10\x00\x12\r\n\tIMPORTING\x10\x01\x12\x0f\n\x0bNEEDS_CHECK\x10\x02\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\"c\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\"\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\")\n\x12GetGeometryRequest\x12\x13\n\x0bgeometry_id\x18\x01 \x01(\t\"_\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\"+\n\x15ListGeometriesRequest\x12\x12\n\nproject_id\x18\x01 \x01(\t\"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\"\x9e\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\x0f\n\x07scaling\x18\x04 \x01(\x01\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\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\"8\n\x19GetGeometryVersionRequest\x12\x1b\n\x13geometry_version_id\x18\x01 \x01(\t\"u\n\x1aGetGeometryVersionResponse\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\xcc$\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\x03\x12\xd3\x01\n\x0e\x44\x65leteGeometry\x12\x43.luminary.proto.api.v0.luminarycloud.geometry.DeleteGeometryRequest\x1a\x44.luminary.proto.api.v0.luminarycloud.geometry.DeleteGeometryResponse\"6\x82\xd3\xe4\x93\x02&\"!/v0/geometry/{geometry_id}:delete:\x01*\x8a\xb5\x18\x06\x08\x1e\x12\x02\x08\x03\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\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\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
25
 
26
26
 
27
27
 
@@ -544,123 +544,123 @@ if _descriptor._USE_C_DESCRIPTORS == False:
544
544
  _GEOMETRYSERVICE.methods_by_name['GetSdkCode']._options = None
545
545
  _GEOMETRYSERVICE.methods_by_name['GetSdkCode']._serialized_options = b'\202\323\344\223\002%\022#/v0/geometry/{geometry_id}/sdk-code'
546
546
  _GEOMETRY._serialized_start=318
547
- _GEOMETRY._serialized_end=736
548
- _GEOMETRY_STATUS._serialized_start=643
549
- _GEOMETRY_STATUS._serialized_end=725
550
- _GEOMETRYVERSION._serialized_start=738
551
- _GEOMETRYVERSION._serialized_end=837
552
- _TESSELLATIONDATA._serialized_start=840
553
- _TESSELLATIONDATA._serialized_end=1100
554
- _GETGEOMETRYREQUEST._serialized_start=1102
555
- _GETGEOMETRYREQUEST._serialized_end=1143
556
- _GETGEOMETRYRESPONSE._serialized_start=1145
557
- _GETGEOMETRYRESPONSE._serialized_end=1240
558
- _LISTGEOMETRYFEATURESREQUEST._serialized_start=1242
559
- _LISTGEOMETRYFEATURESREQUEST._serialized_end=1347
560
- _LISTGEOMETRYFEATURESRESPONSE._serialized_start=1349
561
- _LISTGEOMETRYFEATURESRESPONSE._serialized_end=1431
562
- _LISTGEOMETRYFEATUREISSUESREQUEST._serialized_start=1433
563
- _LISTGEOMETRYFEATUREISSUESREQUEST._serialized_end=1543
564
- _LISTGEOMETRYFEATUREISSUESRESPONSE._serialized_start=1545
565
- _LISTGEOMETRYFEATUREISSUESRESPONSE._serialized_end=1645
566
- _LISTGEOMETRYENTITIESREQUEST._serialized_start=1647
567
- _LISTGEOMETRYENTITIESREQUEST._serialized_end=1752
568
- _LISTGEOMETRYENTITIESRESPONSE._serialized_start=1754
569
- _LISTGEOMETRYENTITIESRESPONSE._serialized_end=1877
570
- _LISTGEOMETRIESREQUEST._serialized_start=1879
571
- _LISTGEOMETRIESREQUEST._serialized_end=1922
572
- _LISTGEOMETRIESRESPONSE._serialized_start=1924
573
- _LISTGEOMETRIESRESPONSE._serialized_end=2024
574
- _SUBSCRIBEGEOMETRYREQUEST._serialized_start=2026
575
- _SUBSCRIBEGEOMETRYREQUEST._serialized_end=2099
576
- _GEOMETRYHISTORY._serialized_start=2102
577
- _GEOMETRYHISTORY._serialized_end=2390
578
- _GEOMETRYHISTORY_HISTORYENTRY._serialized_start=2221
579
- _GEOMETRYHISTORY_HISTORYENTRY._serialized_end=2390
580
- _SUBSCRIBEGEOMETRYRESPONSE._serialized_start=2393
581
- _SUBSCRIBEGEOMETRYRESPONSE._serialized_end=4355
582
- _SUBSCRIBEGEOMETRYRESPONSE_GEOMETRYCHECKPOINT._serialized_start=2714
583
- _SUBSCRIBEGEOMETRYRESPONSE_GEOMETRYCHECKPOINT._serialized_end=3237
584
- _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE._serialized_start=3240
585
- _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE._serialized_end=4339
586
- _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_FEATUREPROGRESS._serialized_start=4127
587
- _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_FEATUREPROGRESS._serialized_end=4164
588
- _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_FEATURETESSELLATION._serialized_start=4166
589
- _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_FEATURETESSELLATION._serialized_end=4207
590
- _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_UNDOREDO._serialized_start=4209
591
- _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_UNDOREDO._serialized_end=4219
592
- _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_RELOADING._serialized_start=4221
593
- _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_RELOADING._serialized_end=4232
594
- _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_DELETEFEATURE._serialized_start=4234
595
- _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_DELETEFEATURE._serialized_end=4269
596
- _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_RENAMEFEATURE._serialized_start=4271
597
- _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_RENAMEFEATURE._serialized_end=4306
598
- _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_TAGOPERATION._serialized_start=4308
599
- _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_TAGOPERATION._serialized_end=4322
600
- _MODIFYGEOMETRYREQUEST._serialized_start=4357
601
- _MODIFYGEOMETRYREQUEST._serialized_end=4482
602
- _MODIFYGEOMETRYRESPONSE._serialized_start=4485
603
- _MODIFYGEOMETRYRESPONSE._serialized_end=4676
604
- _CREATEGEOMETRYREQUEST._serialized_start=4679
605
- _CREATEGEOMETRYREQUEST._serialized_end=4855
606
- _CREATEGEOMETRYRESPONSE._serialized_start=4857
607
- _CREATEGEOMETRYRESPONSE._serialized_end=4955
608
- _UPDATEGEOMETRYREQUEST._serialized_start=4957
609
- _UPDATEGEOMETRYREQUEST._serialized_end=5015
610
- _UPDATEGEOMETRYRESPONSE._serialized_start=5017
611
- _UPDATEGEOMETRYRESPONSE._serialized_end=5115
612
- _COPYGEOMETRYREQUEST._serialized_start=5117
613
- _COPYGEOMETRYREQUEST._serialized_end=5193
614
- _COPYGEOMETRYRESPONSE._serialized_start=5195
615
- _COPYGEOMETRYRESPONSE._serialized_end=5291
616
- _DELETEGEOMETRYREQUEST._serialized_start=5293
617
- _DELETEGEOMETRYREQUEST._serialized_end=5337
618
- _DELETEGEOMETRYRESPONSE._serialized_start=5339
619
- _DELETEGEOMETRYRESPONSE._serialized_end=5363
620
- _CHECKGEOMETRYREQUEST._serialized_start=5365
621
- _CHECKGEOMETRYREQUEST._serialized_end=5437
622
- _CHECKGEOMETRYRESPONSE._serialized_start=5439
623
- _CHECKGEOMETRYRESPONSE._serialized_end=5490
624
- _GETCHECKGEOMETRYRESPONSE._serialized_start=5492
625
- _GETCHECKGEOMETRYRESPONSE._serialized_end=5564
626
- _TESSELLATIONUPTOMODIFICATIONREQUEST._serialized_start=5566
627
- _TESSELLATIONUPTOMODIFICATIONREQUEST._serialized_end=5649
628
- _TESSELLATIONUPTOMODIFICATIONRESPONSE._serialized_start=5651
629
- _TESSELLATIONUPTOMODIFICATIONRESPONSE._serialized_end=5709
630
- _LATESTTESSELLATIONREQUEST._serialized_start=5711
631
- _LATESTTESSELLATIONREQUEST._serialized_end=5759
632
- _LATESTTESSELLATIONRESPONSE._serialized_start=5761
633
- _LATESTTESSELLATIONRESPONSE._serialized_end=5814
634
- _KEEPALIVEREQUEST._serialized_start=5816
635
- _KEEPALIVEREQUEST._serialized_end=5855
636
- _KEEPALIVERESPONSE._serialized_start=5857
637
- _KEEPALIVERESPONSE._serialized_end=5876
638
- _PANICREQUEST._serialized_start=5878
639
- _PANICREQUEST._serialized_end=5892
640
- _PANICRESPONSE._serialized_start=5894
641
- _PANICRESPONSE._serialized_end=5909
642
- _STOPWORKERREQUEST._serialized_start=5911
643
- _STOPWORKERREQUEST._serialized_end=5951
644
- _STOPWORKERRESPONSE._serialized_start=5953
645
- _STOPWORKERRESPONSE._serialized_end=5973
646
- _GETTAGSREQUEST._serialized_start=5975
647
- _GETTAGSREQUEST._serialized_end=6041
648
- _GETTAGSRESPONSE._serialized_start=6043
649
- _GETTAGSRESPONSE._serialized_end=6105
650
- _TAG._serialized_start=6107
651
- _TAG._serialized_end=6189
652
- _LISTTAGSREQUEST._serialized_start=6191
653
- _LISTTAGSREQUEST._serialized_end=6284
654
- _LISTTAGSRESPONSE._serialized_start=6286
655
- _LISTTAGSRESPONSE._serialized_end=6369
656
- _GETGEOMETRYVERSIONREQUEST._serialized_start=6371
657
- _GETGEOMETRYVERSIONREQUEST._serialized_end=6427
658
- _GETGEOMETRYVERSIONRESPONSE._serialized_start=6429
659
- _GETGEOMETRYVERSIONRESPONSE._serialized_end=6546
660
- _GETSDKCODEREQUEST._serialized_start=6548
661
- _GETSDKCODEREQUEST._serialized_end=6617
662
- _GETSDKCODERESPONSE._serialized_start=6619
663
- _GETSDKCODERESPONSE._serialized_end=6657
664
- _GEOMETRYSERVICE._serialized_start=6660
665
- _GEOMETRYSERVICE._serialized_end=11344
547
+ _GEOMETRY._serialized_end=718
548
+ _GEOMETRY_STATUS._serialized_start=619
549
+ _GEOMETRY_STATUS._serialized_end=701
550
+ _GEOMETRYVERSION._serialized_start=720
551
+ _GEOMETRYVERSION._serialized_end=819
552
+ _TESSELLATIONDATA._serialized_start=822
553
+ _TESSELLATIONDATA._serialized_end=1082
554
+ _GETGEOMETRYREQUEST._serialized_start=1084
555
+ _GETGEOMETRYREQUEST._serialized_end=1125
556
+ _GETGEOMETRYRESPONSE._serialized_start=1127
557
+ _GETGEOMETRYRESPONSE._serialized_end=1222
558
+ _LISTGEOMETRYFEATURESREQUEST._serialized_start=1224
559
+ _LISTGEOMETRYFEATURESREQUEST._serialized_end=1329
560
+ _LISTGEOMETRYFEATURESRESPONSE._serialized_start=1331
561
+ _LISTGEOMETRYFEATURESRESPONSE._serialized_end=1413
562
+ _LISTGEOMETRYFEATUREISSUESREQUEST._serialized_start=1415
563
+ _LISTGEOMETRYFEATUREISSUESREQUEST._serialized_end=1525
564
+ _LISTGEOMETRYFEATUREISSUESRESPONSE._serialized_start=1527
565
+ _LISTGEOMETRYFEATUREISSUESRESPONSE._serialized_end=1627
566
+ _LISTGEOMETRYENTITIESREQUEST._serialized_start=1629
567
+ _LISTGEOMETRYENTITIESREQUEST._serialized_end=1734
568
+ _LISTGEOMETRYENTITIESRESPONSE._serialized_start=1736
569
+ _LISTGEOMETRYENTITIESRESPONSE._serialized_end=1859
570
+ _LISTGEOMETRIESREQUEST._serialized_start=1861
571
+ _LISTGEOMETRIESREQUEST._serialized_end=1904
572
+ _LISTGEOMETRIESRESPONSE._serialized_start=1906
573
+ _LISTGEOMETRIESRESPONSE._serialized_end=2006
574
+ _SUBSCRIBEGEOMETRYREQUEST._serialized_start=2008
575
+ _SUBSCRIBEGEOMETRYREQUEST._serialized_end=2081
576
+ _GEOMETRYHISTORY._serialized_start=2084
577
+ _GEOMETRYHISTORY._serialized_end=2372
578
+ _GEOMETRYHISTORY_HISTORYENTRY._serialized_start=2203
579
+ _GEOMETRYHISTORY_HISTORYENTRY._serialized_end=2372
580
+ _SUBSCRIBEGEOMETRYRESPONSE._serialized_start=2375
581
+ _SUBSCRIBEGEOMETRYRESPONSE._serialized_end=4337
582
+ _SUBSCRIBEGEOMETRYRESPONSE_GEOMETRYCHECKPOINT._serialized_start=2696
583
+ _SUBSCRIBEGEOMETRYRESPONSE_GEOMETRYCHECKPOINT._serialized_end=3219
584
+ _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE._serialized_start=3222
585
+ _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE._serialized_end=4321
586
+ _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_FEATUREPROGRESS._serialized_start=4109
587
+ _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_FEATUREPROGRESS._serialized_end=4146
588
+ _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_FEATURETESSELLATION._serialized_start=4148
589
+ _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_FEATURETESSELLATION._serialized_end=4189
590
+ _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_UNDOREDO._serialized_start=4191
591
+ _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_UNDOREDO._serialized_end=4201
592
+ _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_RELOADING._serialized_start=4203
593
+ _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_RELOADING._serialized_end=4214
594
+ _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_DELETEFEATURE._serialized_start=4216
595
+ _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_DELETEFEATURE._serialized_end=4251
596
+ _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_RENAMEFEATURE._serialized_start=4253
597
+ _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_RENAMEFEATURE._serialized_end=4288
598
+ _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_TAGOPERATION._serialized_start=4290
599
+ _SUBSCRIBEGEOMETRYRESPONSE_BUSYSTATE_TAGOPERATION._serialized_end=4304
600
+ _MODIFYGEOMETRYREQUEST._serialized_start=4339
601
+ _MODIFYGEOMETRYREQUEST._serialized_end=4464
602
+ _MODIFYGEOMETRYRESPONSE._serialized_start=4467
603
+ _MODIFYGEOMETRYRESPONSE._serialized_end=4658
604
+ _CREATEGEOMETRYREQUEST._serialized_start=4661
605
+ _CREATEGEOMETRYREQUEST._serialized_end=4819
606
+ _CREATEGEOMETRYRESPONSE._serialized_start=4821
607
+ _CREATEGEOMETRYRESPONSE._serialized_end=4919
608
+ _UPDATEGEOMETRYREQUEST._serialized_start=4921
609
+ _UPDATEGEOMETRYREQUEST._serialized_end=4979
610
+ _UPDATEGEOMETRYRESPONSE._serialized_start=4981
611
+ _UPDATEGEOMETRYRESPONSE._serialized_end=5079
612
+ _COPYGEOMETRYREQUEST._serialized_start=5081
613
+ _COPYGEOMETRYREQUEST._serialized_end=5157
614
+ _COPYGEOMETRYRESPONSE._serialized_start=5159
615
+ _COPYGEOMETRYRESPONSE._serialized_end=5255
616
+ _DELETEGEOMETRYREQUEST._serialized_start=5257
617
+ _DELETEGEOMETRYREQUEST._serialized_end=5301
618
+ _DELETEGEOMETRYRESPONSE._serialized_start=5303
619
+ _DELETEGEOMETRYRESPONSE._serialized_end=5327
620
+ _CHECKGEOMETRYREQUEST._serialized_start=5329
621
+ _CHECKGEOMETRYREQUEST._serialized_end=5401
622
+ _CHECKGEOMETRYRESPONSE._serialized_start=5403
623
+ _CHECKGEOMETRYRESPONSE._serialized_end=5454
624
+ _GETCHECKGEOMETRYRESPONSE._serialized_start=5456
625
+ _GETCHECKGEOMETRYRESPONSE._serialized_end=5528
626
+ _TESSELLATIONUPTOMODIFICATIONREQUEST._serialized_start=5530
627
+ _TESSELLATIONUPTOMODIFICATIONREQUEST._serialized_end=5613
628
+ _TESSELLATIONUPTOMODIFICATIONRESPONSE._serialized_start=5615
629
+ _TESSELLATIONUPTOMODIFICATIONRESPONSE._serialized_end=5673
630
+ _LATESTTESSELLATIONREQUEST._serialized_start=5675
631
+ _LATESTTESSELLATIONREQUEST._serialized_end=5723
632
+ _LATESTTESSELLATIONRESPONSE._serialized_start=5725
633
+ _LATESTTESSELLATIONRESPONSE._serialized_end=5778
634
+ _KEEPALIVEREQUEST._serialized_start=5780
635
+ _KEEPALIVEREQUEST._serialized_end=5819
636
+ _KEEPALIVERESPONSE._serialized_start=5821
637
+ _KEEPALIVERESPONSE._serialized_end=5840
638
+ _PANICREQUEST._serialized_start=5842
639
+ _PANICREQUEST._serialized_end=5856
640
+ _PANICRESPONSE._serialized_start=5858
641
+ _PANICRESPONSE._serialized_end=5873
642
+ _STOPWORKERREQUEST._serialized_start=5875
643
+ _STOPWORKERREQUEST._serialized_end=5915
644
+ _STOPWORKERRESPONSE._serialized_start=5917
645
+ _STOPWORKERRESPONSE._serialized_end=5937
646
+ _GETTAGSREQUEST._serialized_start=5939
647
+ _GETTAGSREQUEST._serialized_end=6005
648
+ _GETTAGSRESPONSE._serialized_start=6007
649
+ _GETTAGSRESPONSE._serialized_end=6069
650
+ _TAG._serialized_start=6071
651
+ _TAG._serialized_end=6153
652
+ _LISTTAGSREQUEST._serialized_start=6155
653
+ _LISTTAGSREQUEST._serialized_end=6248
654
+ _LISTTAGSRESPONSE._serialized_start=6250
655
+ _LISTTAGSRESPONSE._serialized_end=6333
656
+ _GETGEOMETRYVERSIONREQUEST._serialized_start=6335
657
+ _GETGEOMETRYVERSIONREQUEST._serialized_end=6391
658
+ _GETGEOMETRYVERSIONRESPONSE._serialized_start=6393
659
+ _GETGEOMETRYVERSIONRESPONSE._serialized_end=6510
660
+ _GETSDKCODEREQUEST._serialized_start=6512
661
+ _GETSDKCODEREQUEST._serialized_end=6581
662
+ _GETSDKCODERESPONSE._serialized_start=6583
663
+ _GETSDKCODERESPONSE._serialized_end=6621
664
+ _GEOMETRYSERVICE._serialized_start=6624
665
+ _GEOMETRYSERVICE._serialized_end=11308
666
666
  # @@protoc_insertion_point(module_scope)
@@ -51,7 +51,6 @@ class Geometry(google.protobuf.message.Message):
51
51
  DELETED_FIELD_NUMBER: builtins.int
52
52
  LAST_VERSION_ID_FIELD_NUMBER: builtins.int
53
53
  USES_TAGS_FIELD_NUMBER: builtins.int
54
- FORCE_DISCRETE_FIELD_NUMBER: builtins.int
55
54
  PROJECT_ID_FIELD_NUMBER: builtins.int
56
55
  STATUS_FIELD_NUMBER: builtins.int
57
56
  id: builtins.str
@@ -63,7 +62,6 @@ class Geometry(google.protobuf.message.Message):
63
62
  deleted: builtins.bool
64
63
  last_version_id: builtins.str
65
64
  uses_tags: builtins.bool
66
- force_discrete: builtins.bool
67
65
  project_id: builtins.str
68
66
  status: global___Geometry.Status.ValueType
69
67
  def __init__(
@@ -76,12 +74,11 @@ class Geometry(google.protobuf.message.Message):
76
74
  deleted: builtins.bool = ...,
77
75
  last_version_id: builtins.str = ...,
78
76
  uses_tags: builtins.bool = ...,
79
- force_discrete: builtins.bool = ...,
80
77
  project_id: builtins.str = ...,
81
78
  status: global___Geometry.Status.ValueType | None = ...,
82
79
  ) -> None: ...
83
80
  def HasField(self, field_name: typing_extensions.Literal["_status", b"_status", "create_time", b"create_time", "status", b"status", "update_time", b"update_time"]) -> builtins.bool: ...
84
- def ClearField(self, field_name: typing_extensions.Literal["_status", b"_status", "create_time", b"create_time", "deleted", b"deleted", "force_discrete", b"force_discrete", "id", b"id", "last_version_id", b"last_version_id", "name", b"name", "project_id", b"project_id", "status", b"status", "update_time", b"update_time", "uses_tags", b"uses_tags"]) -> None: ...
81
+ def ClearField(self, field_name: typing_extensions.Literal["_status", b"_status", "create_time", b"create_time", "deleted", b"deleted", "id", b"id", "last_version_id", b"last_version_id", "name", b"name", "project_id", b"project_id", "status", b"status", "update_time", b"update_time", "uses_tags", b"uses_tags"]) -> None: ...
85
82
  def WhichOneof(self, oneof_group: typing_extensions.Literal["_status", b"_status"]) -> typing_extensions.Literal["status"] | None: ...
86
83
 
87
84
  global___Geometry = Geometry
@@ -669,7 +666,6 @@ class CreateGeometryRequest(google.protobuf.message.Message):
669
666
  WEB_GEOMETRY_ID_FIELD_NUMBER: builtins.int
670
667
  SCALING_FIELD_NUMBER: builtins.int
671
668
  WAIT_FIELD_NUMBER: builtins.int
672
- FORCE_DISCRETE_FIELD_NUMBER: builtins.int
673
669
  REQUEST_ID_FIELD_NUMBER: builtins.int
674
670
  project_id: builtins.str
675
671
  """Required. The project to create the new geometry in."""
@@ -694,7 +690,6 @@ class CreateGeometryRequest(google.protobuf.message.Message):
694
690
  complete before sending the response. Otherwise, it will respond
695
691
  immediately and the import will occur in the background. Defaults to false.
696
692
  """
697
- force_discrete: builtins.bool
698
693
  request_id: builtins.str
699
694
  """Optional. Used to deduplicate requests. If it is not set, no deduplication
700
695
  attempts will be made. Else, the server will check that no geometry was
@@ -709,10 +704,9 @@ class CreateGeometryRequest(google.protobuf.message.Message):
709
704
  web_geometry_id: builtins.str = ...,
710
705
  scaling: builtins.float = ...,
711
706
  wait: builtins.bool = ...,
712
- force_discrete: builtins.bool = ...,
713
707
  request_id: builtins.str = ...,
714
708
  ) -> None: ...
715
- def ClearField(self, field_name: typing_extensions.Literal["force_discrete", b"force_discrete", "name", b"name", "project_id", b"project_id", "request_id", b"request_id", "scaling", b"scaling", "url", b"url", "wait", b"wait", "web_geometry_id", b"web_geometry_id"]) -> None: ...
709
+ def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "project_id", b"project_id", "request_id", b"request_id", "scaling", b"scaling", "url", b"url", "wait", b"wait", "web_geometry_id", b"web_geometry_id"]) -> None: ...
716
710
 
717
711
  global___CreateGeometryRequest = CreateGeometryRequest
718
712