meshtrade 1.0.1__py3-none-any.whl → 1.29.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 (163) hide show
  1. meshtrade/common/__init__.py +2 -4
  2. meshtrade/common/config.py +3 -4
  3. meshtrade/common/grpc_client.py +140 -0
  4. meshtrade/common/service_options.py +46 -0
  5. meshtrade/compliance/client/v1/__init__.py +0 -2
  6. meshtrade/compliance/client/v1/client_pb2.py +15 -4
  7. meshtrade/compliance/client/v1/client_pb2.pyi +1 -0
  8. meshtrade/compliance/client/v1/company_pb2.py +25 -8
  9. meshtrade/compliance/client/v1/company_pb2.pyi +1 -0
  10. meshtrade/compliance/client/v1/company_representative_pb2.py +9 -4
  11. meshtrade/compliance/client/v1/company_representative_pb2.pyi +1 -0
  12. meshtrade/compliance/client/v1/company_representative_role_pb2.py +2 -2
  13. meshtrade/compliance/client/v1/fund_pb2.py +13 -4
  14. meshtrade/compliance/client/v1/fund_pb2.pyi +1 -0
  15. meshtrade/compliance/client/v1/identification_document_type_pb2.py +2 -2
  16. meshtrade/compliance/client/v1/industry_classification_pb2.py +2 -2
  17. meshtrade/compliance/client/v1/natural_person_connection_type_pb2.py +2 -2
  18. meshtrade/compliance/client/v1/natural_person_pb2.py +19 -4
  19. meshtrade/compliance/client/v1/natural_person_pb2.pyi +1 -0
  20. meshtrade/compliance/client/v1/pep_status_pb2.py +2 -2
  21. meshtrade/compliance/client/v1/service_meshpy.py +2 -1
  22. meshtrade/compliance/client/v1/service_pb2.py +21 -17
  23. meshtrade/compliance/client/v1/service_pb2.pyi +2 -2
  24. meshtrade/compliance/client/v1/source_of_income_and_wealth_pb2.py +2 -2
  25. meshtrade/compliance/client/v1/tax_residency_pb2.py +9 -4
  26. meshtrade/compliance/client/v1/tax_residency_pb2.pyi +1 -0
  27. meshtrade/compliance/client/v1/trust_pb2.py +13 -4
  28. meshtrade/compliance/client/v1/trust_pb2.pyi +1 -0
  29. meshtrade/compliance/client/v1/verification_status_pb2.py +2 -2
  30. meshtrade/iam/api_user/v1/__init__.py +34 -26
  31. meshtrade/iam/api_user/v1/api_credentials_pb2.py +5 -5
  32. meshtrade/iam/api_user/v1/api_user_pb2.py +13 -9
  33. meshtrade/iam/api_user/v1/api_user_pb2.pyi +2 -4
  34. meshtrade/iam/api_user/v1/api_user_state_machine.py +104 -0
  35. meshtrade/iam/api_user/v1/service_meshpy.py +96 -61
  36. meshtrade/iam/api_user/v1/service_pb2.py +61 -40
  37. meshtrade/iam/api_user/v1/service_pb2.pyi +26 -11
  38. meshtrade/iam/api_user/v1/service_pb2_grpc.py +179 -135
  39. meshtrade/iam/group/v1/__init__.py +4 -2
  40. meshtrade/iam/group/v1/group_pb2.py +13 -4
  41. meshtrade/iam/group/v1/group_pb2.pyi +9 -2
  42. meshtrade/iam/group/v1/service_meshpy.py +41 -6
  43. meshtrade/iam/group/v1/service_pb2.py +47 -20
  44. meshtrade/iam/group/v1/service_pb2.pyi +46 -13
  45. meshtrade/iam/group/v1/service_pb2_grpc.py +151 -16
  46. meshtrade/iam/role/v1/__init__.py +17 -4
  47. meshtrade/iam/role/v1/role.py +162 -11
  48. meshtrade/iam/role/v1/role_pb2.py +4 -7
  49. meshtrade/iam/role/v1/role_pb2.pyi +53 -23
  50. meshtrade/iam/user/v1/__init__.py +22 -4
  51. meshtrade/iam/user/v1/service_meshpy.py +129 -7
  52. meshtrade/iam/user/v1/service_pb2.py +66 -16
  53. meshtrade/iam/user/v1/service_pb2.pyi +81 -9
  54. meshtrade/iam/user/v1/service_pb2_grpc.py +385 -14
  55. meshtrade/iam/user/v1/user_pb2.py +13 -4
  56. meshtrade/iam/user/v1/user_pb2.pyi +7 -2
  57. meshtrade/ledger/transaction/v1/__init__.py +25 -1
  58. meshtrade/ledger/transaction/v1/service_meshpy.py +176 -0
  59. meshtrade/ledger/transaction/v1/service_pb2.py +56 -0
  60. meshtrade/ledger/transaction/v1/service_pb2.pyi +32 -0
  61. meshtrade/ledger/transaction/v1/service_pb2_grpc.py +131 -0
  62. meshtrade/ledger/transaction/v1/transaction_action_pb2.py +2 -2
  63. meshtrade/ledger/transaction/v1/transaction_state_machine.py +75 -0
  64. meshtrade/ledger/transaction/v1/transaction_state_pb2.py +2 -2
  65. meshtrade/{reporting/income_report → market_data/price}/v1/__init__.py +11 -20
  66. meshtrade/market_data/price/v1/price_pb2.py +40 -0
  67. meshtrade/market_data/price/v1/price_pb2.pyi +23 -0
  68. meshtrade/market_data/price/v1/service_meshpy.py +152 -0
  69. meshtrade/market_data/price/v1/service_pb2.py +49 -0
  70. meshtrade/market_data/price/v1/service_pb2.pyi +18 -0
  71. meshtrade/market_data/price/v1/service_pb2_grpc.py +84 -0
  72. meshtrade/option/method_options/v1/__init__.py +41 -0
  73. meshtrade/option/method_options/v1/method_options_pb2.py +43 -0
  74. meshtrade/option/method_options/v1/method_options_pb2.pyi +40 -0
  75. meshtrade/reporting/account_report/v1/__init__.py +66 -0
  76. meshtrade/reporting/account_report/v1/account_report_pb2.py +46 -0
  77. meshtrade/reporting/account_report/v1/account_report_pb2.pyi +49 -0
  78. meshtrade/reporting/{income_report → account_report}/v1/disclaimer_pb2.py +7 -7
  79. meshtrade/reporting/account_report/v1/fee_entry_pb2.py +39 -0
  80. meshtrade/reporting/account_report/v1/fee_entry_pb2.pyi +26 -0
  81. meshtrade/reporting/account_report/v1/fee_entry_pb2_grpc.py +4 -0
  82. meshtrade/reporting/account_report/v1/income_entry.py +35 -0
  83. meshtrade/reporting/account_report/v1/income_entry_pb2.py +42 -0
  84. meshtrade/reporting/{income_report/v1/entry_pb2.pyi → account_report/v1/income_entry_pb2.pyi} +18 -10
  85. meshtrade/reporting/account_report/v1/income_entry_pb2_grpc.py +4 -0
  86. meshtrade/reporting/{income_report → account_report}/v1/service_meshpy.py +37 -36
  87. meshtrade/reporting/account_report/v1/service_pb2.py +72 -0
  88. meshtrade/reporting/account_report/v1/service_pb2.pyi +43 -0
  89. meshtrade/reporting/account_report/v1/service_pb2_grpc.py +161 -0
  90. meshtrade/reporting/account_report/v1/trading_statement_entry_pb2.py +39 -0
  91. meshtrade/reporting/account_report/v1/trading_statement_entry_pb2.pyi +30 -0
  92. meshtrade/reporting/account_report/v1/trading_statement_entry_pb2_grpc.py +4 -0
  93. meshtrade/studio/instrument/v1/__init__.py +43 -0
  94. meshtrade/studio/instrument/v1/instrument_pb2.py +45 -0
  95. meshtrade/studio/instrument/v1/instrument_pb2.pyi +20 -0
  96. meshtrade/studio/instrument/v1/instrument_pb2_grpc.py +4 -0
  97. meshtrade/studio/instrument/v1/instrument_type_pb2.py +37 -0
  98. meshtrade/studio/instrument/v1/instrument_type_pb2.pyi +64 -0
  99. meshtrade/studio/instrument/v1/instrument_type_pb2_grpc.py +4 -0
  100. meshtrade/studio/instrument/v1/unit_pb2.py +37 -0
  101. meshtrade/studio/instrument/v1/unit_pb2.pyi +46 -0
  102. meshtrade/studio/instrument/v1/unit_pb2_grpc.py +4 -0
  103. meshtrade/trading/limit_order/v1/__init__.py +22 -4
  104. meshtrade/trading/limit_order/v1/limit_order_pb2.py +24 -4
  105. meshtrade/trading/limit_order/v1/limit_order_pb2.pyi +55 -5
  106. meshtrade/trading/limit_order/v1/service_meshpy.py +113 -2
  107. meshtrade/trading/limit_order/v1/service_pb2.py +49 -9
  108. meshtrade/trading/limit_order/v1/service_pb2.pyi +67 -7
  109. meshtrade/trading/limit_order/v1/service_pb2_grpc.py +321 -4
  110. meshtrade/trading/market_order/v1/__init__.py +0 -2
  111. meshtrade/trading/market_order/v1/market_order_pb2.py +2 -2
  112. meshtrade/trading/market_order/v1/service_meshpy.py +3 -2
  113. meshtrade/trading/market_order/v1/service_pb2.py +8 -9
  114. meshtrade/trading/market_order/v1/service_pb2.pyi +1 -2
  115. meshtrade/type/v1/__init__.py +82 -12
  116. meshtrade/type/v1/address_pb2.py +2 -2
  117. meshtrade/type/v1/amount.py +429 -5
  118. meshtrade/type/v1/amount_pb2.py +2 -2
  119. meshtrade/type/v1/contact_details_pb2.py +2 -2
  120. meshtrade/type/v1/date_pb2.py +2 -2
  121. meshtrade/type/v1/decimal_built_in_conversions.py +8 -3
  122. meshtrade/type/v1/decimal_operations.py +354 -0
  123. meshtrade/type/v1/decimal_pb2.py +2 -2
  124. meshtrade/type/v1/ledger.py +76 -1
  125. meshtrade/type/v1/ledger_pb2.py +2 -2
  126. meshtrade/type/v1/sorting_pb2.py +2 -2
  127. meshtrade/type/v1/time_of_day_pb2.py +2 -2
  128. meshtrade/type/v1/token.py +144 -0
  129. meshtrade/type/v1/token_pb2.py +2 -2
  130. meshtrade/wallet/account/v1/__init__.py +21 -3
  131. meshtrade/wallet/account/v1/account_pb2.py +28 -4
  132. meshtrade/wallet/account/v1/account_pb2.pyi +57 -3
  133. meshtrade/wallet/account/v1/service_meshpy.py +72 -1
  134. meshtrade/wallet/account/v1/service_pb2.py +67 -23
  135. meshtrade/wallet/account/v1/service_pb2.pyi +81 -21
  136. meshtrade/wallet/account/v1/service_pb2_grpc.py +242 -8
  137. {meshtrade-1.0.1.dist-info → meshtrade-1.29.0.dist-info}/METADATA +1 -1
  138. meshtrade-1.29.0.dist-info/RECORD +217 -0
  139. meshtrade/compliance/client/v1/service_options_meshpy.py +0 -65
  140. meshtrade/iam/api_user/v1/service.py +0 -58
  141. meshtrade/iam/api_user/v1/service_options_meshpy.py +0 -65
  142. meshtrade/iam/group/v1/service_options_meshpy.py +0 -65
  143. meshtrade/iam/user/v1/service_options_meshpy.py +0 -65
  144. meshtrade/option/v1/method_type_pb2.py +0 -38
  145. meshtrade/option/v1/method_type_pb2.pyi +0 -17
  146. meshtrade/reporting/income_report/v1/entry_pb2.py +0 -42
  147. meshtrade/reporting/income_report/v1/income_report_pb2.py +0 -44
  148. meshtrade/reporting/income_report/v1/income_report_pb2.pyi +0 -42
  149. meshtrade/reporting/income_report/v1/service_options_meshpy.py +0 -65
  150. meshtrade/reporting/income_report/v1/service_pb2.py +0 -58
  151. meshtrade/reporting/income_report/v1/service_pb2.pyi +0 -37
  152. meshtrade/reporting/income_report/v1/service_pb2_grpc.py +0 -170
  153. meshtrade/trading/limit_order/v1/service_options_meshpy.py +0 -65
  154. meshtrade/trading/market_order/v1/service_options_meshpy.py +0 -65
  155. meshtrade/wallet/account/v1/service_options_meshpy.py +0 -65
  156. meshtrade-1.0.1.dist-info/RECORD +0 -191
  157. /meshtrade/{option/v1/method_type_pb2_grpc.py → market_data/price/v1/price_pb2_grpc.py} +0 -0
  158. /meshtrade/{reporting/income_report/v1/disclaimer_pb2_grpc.py → option/method_options/v1/method_options_pb2_grpc.py} +0 -0
  159. /meshtrade/reporting/{income_report/v1/entry_pb2_grpc.py → account_report/v1/account_report_pb2_grpc.py} +0 -0
  160. /meshtrade/reporting/{income_report → account_report}/v1/disclaimer_pb2.pyi +0 -0
  161. /meshtrade/reporting/{income_report/v1/income_report_pb2_grpc.py → account_report/v1/disclaimer_pb2_grpc.py} +0 -0
  162. {meshtrade-1.0.1.dist-info → meshtrade-1.29.0.dist-info}/WHEEL +0 -0
  163. {meshtrade-1.0.1.dist-info → meshtrade-1.29.0.dist-info}/top_level.txt +0 -0
@@ -2,8 +2,7 @@
2
2
 
3
3
  from .config import (
4
4
  ACCESS_TOKEN_PREFIX,
5
- AUTHORIZATION_HEADER_KEY,
6
- BEARER_PREFIX,
5
+ API_KEY_HEADER,
7
6
  COOKIE_HEADER_KEY,
8
7
  DEFAULT_GRPC_PORT,
9
8
  DEFAULT_GRPC_URL,
@@ -17,10 +16,9 @@ __all__ = [
17
16
  "DEFAULT_GRPC_URL",
18
17
  "DEFAULT_GRPC_PORT",
19
18
  "DEFAULT_TLS",
20
- "AUTHORIZATION_HEADER_KEY",
19
+ "API_KEY_HEADER",
21
20
  "COOKIE_HEADER_KEY",
22
21
  "GROUP_HEADER_KEY",
23
- "BEARER_PREFIX",
24
22
  "ACCESS_TOKEN_PREFIX",
25
23
  "create_auth_metadata",
26
24
  "GRPCClient",
@@ -7,10 +7,9 @@ DEFAULT_GRPC_PORT = 443
7
7
  DEFAULT_TLS = True
8
8
 
9
9
  # gRPC metadata constants
10
- AUTHORIZATION_HEADER_KEY = "authorization"
10
+ API_KEY_HEADER = "x-api-key"
11
11
  COOKIE_HEADER_KEY = "cookie"
12
12
  GROUP_HEADER_KEY = "x-group"
13
- BEARER_PREFIX = "Bearer "
14
13
  ACCESS_TOKEN_PREFIX = "AccessToken="
15
14
 
16
15
 
@@ -18,13 +17,13 @@ def create_auth_metadata(api_key: str, group: str) -> list[tuple[str, str]]:
18
17
  """Create authentication metadata for gRPC requests.
19
18
 
20
19
  Args:
21
- api_key: The API key (without Bearer prefix)
20
+ api_key: The API key
22
21
  group: The group resource name in format groups/{group_id}
23
22
 
24
23
  Returns:
25
24
  List of metadata header tuples for authentication
26
25
  """
27
26
  return [
28
- (AUTHORIZATION_HEADER_KEY, f"{BEARER_PREFIX}{api_key}"),
27
+ (API_KEY_HEADER, api_key),
29
28
  (GROUP_HEADER_KEY, group), # Send full groups/uuid format in header
30
29
  ]
@@ -146,6 +146,99 @@ class BaseGRPCClient(GRPCClient):
146
146
  raise ValueError("Group not configured. Provide via constructor or set MESH_API_CREDENTIALS environment variable.")
147
147
  return self._group
148
148
 
149
+ @property
150
+ def url(self) -> str:
151
+ """Get the gRPC server URL.
152
+
153
+ Returns:
154
+ The gRPC server URL
155
+ """
156
+ return self._url
157
+
158
+ @property
159
+ def port(self) -> int:
160
+ """Get the gRPC server port.
161
+
162
+ Returns:
163
+ The gRPC server port
164
+ """
165
+ return self._port
166
+
167
+ @property
168
+ def api_key(self) -> str | None:
169
+ """Get the API key used for authentication.
170
+
171
+ Returns:
172
+ The API key, or None if not configured
173
+ """
174
+ return self._api_key
175
+
176
+ @property
177
+ def timeout(self) -> timedelta:
178
+ """Get the request timeout.
179
+
180
+ Returns:
181
+ The request timeout
182
+ """
183
+ return self._timeout
184
+
185
+ @property
186
+ def tls(self) -> bool:
187
+ """Get the TLS setting.
188
+
189
+ Returns:
190
+ True if TLS is enabled, False otherwise
191
+ """
192
+ return self._tls
193
+
194
+ def with_group(self, group: str):
195
+ """Return a new client instance configured with a different group context.
196
+
197
+ This enables convenient group context switching without reconstructing the entire client.
198
+ All other configuration (URL, port, timeout, API key, TLS) is preserved.
199
+
200
+ The group parameter must be in the format 'groups/{group_id}' where group_id is a valid
201
+ group identifier (typically a ULID). The new client instance shares no state with the
202
+ original client, allowing safe concurrent usage.
203
+
204
+ Args:
205
+ group: The group resource name in format 'groups/{group_id}'
206
+
207
+ Returns:
208
+ A new client instance of the same service type with updated group context.
209
+
210
+ Raises:
211
+ ValueError: If group is empty or not in correct format
212
+
213
+ Example:
214
+ >>> service = GroupService()
215
+ >>> alt_service = service.with_group("groups/01ARZ3NDEKTSV4RRFFQ69G5FAV")
216
+ >>> resp1 = service.some_method(request) # Uses original group
217
+ >>> resp2 = alt_service.some_method(request) # Uses alternative group
218
+ """
219
+ # Validation
220
+ if not group:
221
+ raise ValueError("Group parameter cannot be empty")
222
+ if not group.startswith("groups/"):
223
+ raise ValueError("Group must be in format 'groups/{group_id}'")
224
+
225
+ # Import ServiceOptions from common module
226
+ from meshtrade.common.service_options import ServiceOptions
227
+
228
+ # Create new options with all config preserved except group
229
+ options = ServiceOptions(
230
+ url=self._url,
231
+ port=self._port,
232
+ api_key=self._api_key,
233
+ group=group,
234
+ timeout=self._timeout,
235
+ tls=self._tls,
236
+ )
237
+
238
+ # Create new instance of actual runtime class (GroupService, AccountService, etc.)
239
+ # type(self) returns the actual class, and all services accept ServiceOptions
240
+ return type(self)(options)
241
+
149
242
  def validator(self) -> Validator:
150
243
  """Get the protovalidate validator for request validation.
151
244
 
@@ -200,3 +293,50 @@ class BaseGRPCClient(GRPCClient):
200
293
 
201
294
  # Make the authenticated call
202
295
  return method(request, metadata=metadata, timeout=timeout_seconds)
296
+
297
+ def _execute_streaming_method(self, method_name: str, request: Any, timeout: timedelta | None = None) -> Any:
298
+ """Execute a server-side streaming gRPC method with authentication and error handling.
299
+
300
+ This is the streaming equivalent of _execute_method() - it handles validation,
301
+ authentication metadata injection, and timeout handling for server-side streaming calls.
302
+
303
+ Args:
304
+ method_name: The name of the gRPC stub streaming method to call
305
+ request: The request message
306
+ timeout: Optional timeout override
307
+
308
+ Returns:
309
+ Iterator yielding response messages from the stream
310
+
311
+ Raises:
312
+ grpc.RpcError: If the gRPC call fails
313
+ ValueError: If authentication credentials are missing or request validation fails
314
+ """
315
+ # Validate request using protovalidate BEFORE initiating stream
316
+ try:
317
+ self._validator.validate(request)
318
+ except Exception as e:
319
+ raise ValueError(f"Request validation failed: {e}") from e
320
+
321
+ self._ensure_connected()
322
+
323
+ if not self._api_key or not self._group:
324
+ raise ValueError(
325
+ "API key and group are required for authentication. Provide them via constructor or set MESH_API_CREDENTIALS environment variable."
326
+ )
327
+
328
+ if self._stub is None:
329
+ raise RuntimeError("gRPC stub not initialized. Call _ensure_connected() first.")
330
+
331
+ # Get the streaming method from the stub
332
+ method = getattr(self._stub, method_name)
333
+
334
+ # Create authentication metadata (x-api-key, x-group headers)
335
+ metadata = create_auth_metadata(self._api_key, self._group)
336
+
337
+ # Use provided timeout or default
338
+ call_timeout = timeout or self._timeout
339
+ timeout_seconds = call_timeout.total_seconds()
340
+
341
+ # Make the authenticated streaming call with metadata
342
+ return method(request, metadata=metadata, timeout=timeout_seconds)
@@ -0,0 +1,46 @@
1
+ """
2
+ Shared configuration options for all gRPC services.
3
+
4
+ This module provides a clean, extensible way to configure services with optional
5
+ parameters while maintaining backward compatibility and readability.
6
+ """
7
+
8
+ from datetime import timedelta
9
+
10
+
11
+ class ServiceOptions:
12
+ """Configuration options for gRPC services.
13
+
14
+ This class provides a clean, extensible way to configure services with optional
15
+ parameters while maintaining backward compatibility and readability.
16
+ """
17
+
18
+ def __init__(
19
+ self,
20
+ tls: bool = True,
21
+ url: str | None = None,
22
+ port: int | None = None,
23
+ api_key: str | None = None,
24
+ group: str | None = None,
25
+ timeout: timedelta = timedelta(seconds=30),
26
+ ):
27
+ """Initialize service options.
28
+
29
+ Args:
30
+ tls: Whether to use TLS encryption for the gRPC connection.
31
+ url: The server hostname or IP address.
32
+ port: The server port number.
33
+ api_key: The API key for authentication.
34
+ group: The group resource name in format groups/{group_id}.
35
+ timeout: The default timeout for all gRPC method calls.
36
+ """
37
+ self.tls = tls
38
+ self.url = url
39
+ self.port = port
40
+ self.api_key = api_key
41
+ self.group = group
42
+ self.timeout = timeout
43
+
44
+
45
+ # Create alias to match expected exports
46
+ ClientOptions = ServiceOptions
@@ -40,7 +40,6 @@ from .service_meshpy import (
40
40
  ClientServiceGRPCClient,
41
41
  ClientServiceGRPCClientInterface,
42
42
  )
43
- from .service_options_meshpy import ClientOptions
44
43
 
45
44
  # ===================================================================
46
45
  # END OF AUTO-GENERATED SECTION
@@ -63,7 +62,6 @@ from .service_options_meshpy import ClientOptions
63
62
  __all__ = [
64
63
  # Generated exports
65
64
  "Client",
66
- "ClientOptions",
67
65
  "ClientService",
68
66
  "ClientServiceGRPCClient",
69
67
  "ClientServiceGRPCClientInterface",
@@ -22,6 +22,7 @@ _runtime_version.ValidateProtobufRuntimeVersion(
22
22
  _sym_db = _symbol_database.Default()
23
23
 
24
24
 
25
+ from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
25
26
  from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
26
27
  from meshtrade.compliance.client.v1 import company_pb2 as meshtrade_dot_compliance_dot_client_dot_v1_dot_company__pb2
27
28
  from meshtrade.compliance.client.v1 import fund_pb2 as meshtrade_dot_compliance_dot_client_dot_v1_dot_fund__pb2
@@ -30,14 +31,24 @@ from meshtrade.compliance.client.v1 import trust_pb2 as meshtrade_dot_compliance
30
31
  from meshtrade.compliance.client.v1 import verification_status_pb2 as meshtrade_dot_compliance_dot_client_dot_v1_dot_verification__status__pb2
31
32
 
32
33
 
33
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+meshtrade/compliance/client/v1/client.proto\x12\x1emeshtrade.compliance.client.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a,meshtrade/compliance/client/v1/company.proto\x1a)meshtrade/compliance/client/v1/fund.proto\x1a\x33meshtrade/compliance/client/v1/natural_person.proto\x1a*meshtrade/compliance/client/v1/trust.proto\x1a\x38meshtrade/compliance/client/v1/verification_status.proto\"\xb4\x05\n\x06\x43lient\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n\x05owner\x18\x02 \x01(\tR\x05owner\x12!\n\x0c\x64isplay_name\x18\x03 \x01(\tR\x0b\x64isplayName\x12V\n\x0enatural_person\x18\x04 \x01(\x0b\x32-.meshtrade.compliance.client.v1.NaturalPersonH\x00R\rnaturalPerson\x12\x43\n\x07\x63ompany\x18\x05 \x01(\x0b\x32\'.meshtrade.compliance.client.v1.CompanyH\x00R\x07\x63ompany\x12:\n\x04\x66und\x18\x06 \x01(\x0b\x32$.meshtrade.compliance.client.v1.FundH\x00R\x04\x66und\x12=\n\x05trust\x18\x07 \x01(\x0b\x32%.meshtrade.compliance.client.v1.TrustH\x00R\x05trust\x12\x63\n\x13verification_status\x18\x08 \x01(\x0e\x32\x32.meshtrade.compliance.client.v1.VerificationStatusR\x12verificationStatus\x12\x35\n\x16verification_authority\x18\t \x01(\tR\x15verificationAuthority\x12G\n\x11verification_date\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x10verificationDate\x12P\n\x16next_verification_date\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x14nextVerificationDateB\x0e\n\x0clegal_personBb\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1b\x06proto3')
34
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+meshtrade/compliance/client/v1/client.proto\x12\x1emeshtrade.compliance.client.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a,meshtrade/compliance/client/v1/company.proto\x1a)meshtrade/compliance/client/v1/fund.proto\x1a\x33meshtrade/compliance/client/v1/natural_person.proto\x1a*meshtrade/compliance/client/v1/trust.proto\x1a\x38meshtrade/compliance/client/v1/verification_status.proto\"\x8c\t\n\x06\x43lient\x12\xbe\x01\n\x04name\x18\x01 \x01(\tB\xa9\x01\xbaH\xa5\x01\xba\x01\xa1\x01\n\x14name.format.optional\x12\x34name must be empty or in the format clients/{ULIDv2}\x1aSsize(this) == 0 || this.matches(\'^clients/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\')R\x04name\x12R\n\x05owner\x18\x02 \x01(\tB<\xbaH9r42/^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\x98\x01!\xc8\x01\x01R\x05owner\x12\x30\n\x0c\x64isplay_name\x18\x03 \x01(\tB\r\xbaH\nr\x05\x10\x01\x18\xff\x01\xc8\x01\x01R\x0b\x64isplayName\x12V\n\x0enatural_person\x18\x04 \x01(\x0b\x32-.meshtrade.compliance.client.v1.NaturalPersonH\x00R\rnaturalPerson\x12\x43\n\x07\x63ompany\x18\x05 \x01(\x0b\x32\'.meshtrade.compliance.client.v1.CompanyH\x00R\x07\x63ompany\x12:\n\x04\x66und\x18\x06 \x01(\x0b\x32$.meshtrade.compliance.client.v1.FundH\x00R\x04\x66und\x12=\n\x05trust\x18\x07 \x01(\x0b\x32%.meshtrade.compliance.client.v1.TrustH\x00R\x05trust\x12p\n\x13verification_status\x18\x08 \x01(\x0e\x32\x32.meshtrade.compliance.client.v1.VerificationStatusB\x0b\xbaH\x08\x82\x01\x02\x10\x01\xc8\x01\x01R\x12verificationStatus\x12\x85\x02\n\x16verification_authority\x18\t \x01(\tB\xcd\x01\xbaH\xc9\x01\xba\x01\xc5\x01\n&verification_authority.format.optional\x12\x46verification_authority must be empty or in the format clients/{ULIDv2}\x1aSsize(this) == 0 || this.matches(\'^clients/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\')R\x15verificationAuthority\x12G\n\x11verification_date\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x10verificationDate\x12P\n\x16next_verification_date\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x14nextVerificationDateB\x0e\n\x0clegal_personBc\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1b\x06proto3')
34
35
 
35
36
  _globals = globals()
36
37
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
37
38
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.compliance.client.v1.client_pb2', _globals)
38
39
  if not _descriptor._USE_C_DESCRIPTORS:
39
40
  _globals['DESCRIPTOR']._loaded_options = None
40
- _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1'
41
- _globals['_CLIENT']._serialized_start=357
42
- _globals['_CLIENT']._serialized_end=1049
41
+ _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1'
42
+ _globals['_CLIENT'].fields_by_name['name']._loaded_options = None
43
+ _globals['_CLIENT'].fields_by_name['name']._serialized_options = b'\272H\245\001\272\001\241\001\n\024name.format.optional\0224name must be empty or in the format clients/{ULIDv2}\032Ssize(this) == 0 || this.matches(\'^clients/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\')'
44
+ _globals['_CLIENT'].fields_by_name['owner']._loaded_options = None
45
+ _globals['_CLIENT'].fields_by_name['owner']._serialized_options = b'\272H9r42/^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\230\001!\310\001\001'
46
+ _globals['_CLIENT'].fields_by_name['display_name']._loaded_options = None
47
+ _globals['_CLIENT'].fields_by_name['display_name']._serialized_options = b'\272H\nr\005\020\001\030\377\001\310\001\001'
48
+ _globals['_CLIENT'].fields_by_name['verification_status']._loaded_options = None
49
+ _globals['_CLIENT'].fields_by_name['verification_status']._serialized_options = b'\272H\010\202\001\002\020\001\310\001\001'
50
+ _globals['_CLIENT'].fields_by_name['verification_authority']._loaded_options = None
51
+ _globals['_CLIENT'].fields_by_name['verification_authority']._serialized_options = b'\272H\311\001\272\001\305\001\n&verification_authority.format.optional\022Fverification_authority must be empty or in the format clients/{ULIDv2}\032Ssize(this) == 0 || this.matches(\'^clients/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\')'
52
+ _globals['_CLIENT']._serialized_start=386
53
+ _globals['_CLIENT']._serialized_end=1550
43
54
  # @@protoc_insertion_point(module_scope)
@@ -1,5 +1,6 @@
1
1
  import datetime
2
2
 
3
+ from buf.validate import validate_pb2 as _validate_pb2
3
4
  from google.protobuf import timestamp_pb2 as _timestamp_pb2
4
5
  from meshtrade.compliance.client.v1 import company_pb2 as _company_pb2
5
6
  from meshtrade.compliance.client.v1 import fund_pb2 as _fund_pb2
@@ -22,6 +22,7 @@ _runtime_version.ValidateProtobufRuntimeVersion(
22
22
  _sym_db = _symbol_database.Default()
23
23
 
24
24
 
25
+ from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
25
26
  from google.type import date_pb2 as google_dot_type_dot_date__pb2
26
27
  from meshtrade.compliance.client.v1 import company_representative_pb2 as meshtrade_dot_compliance_dot_client_dot_v1_dot_company__representative__pb2
27
28
  from meshtrade.compliance.client.v1 import fund_pb2 as meshtrade_dot_compliance_dot_client_dot_v1_dot_fund__pb2
@@ -32,18 +33,34 @@ from meshtrade.type.v1 import address_pb2 as meshtrade_dot_type_dot_v1_dot_addre
32
33
  from meshtrade.type.v1 import decimal_pb2 as meshtrade_dot_type_dot_v1_dot_decimal__pb2
33
34
 
34
35
 
35
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n,meshtrade/compliance/client/v1/company.proto\x12\x1emeshtrade.compliance.client.v1\x1a\x16google/type/date.proto\x1a;meshtrade/compliance/client/v1/company_representative.proto\x1a)meshtrade/compliance/client/v1/fund.proto\x1a<meshtrade/compliance/client/v1/industry_classification.proto\x1a\x33meshtrade/compliance/client/v1/natural_person.proto\x1a*meshtrade/compliance/client/v1/trust.proto\x1a\x1fmeshtrade/type/v1/address.proto\x1a\x1fmeshtrade/type/v1/decimal.proto\"\xed\x07\n\x07\x43ompany\x12\'\n\x0fregistered_name\x18\x01 \x01(\tR\x0eregisteredName\x12/\n\x13registration_number\x18\x03 \x01(\tR\x12registrationNumber\x12%\n\x0etax_identifier\x18\x04 \x01(\tR\rtaxIdentifier\x12\x38\n\x18\x63ountry_of_incorporation\x18\x05 \x01(\tR\x16\x63ountryOfIncorporation\x12\x45\n\x15\x64\x61te_of_incorporation\x18\x06 \x01(\x0b\x32\x11.google.type.DateR\x13\x64\x61teOfIncorporation\x12I\n\x12registered_address\x18\x07 \x01(\x0b\x32\x1a.meshtrade.type.v1.AddressR\x11registeredAddress\x12X\n\x1aprincipal_physical_address\x18\x08 \x01(\x0b\x32\x1a.meshtrade.type.v1.AddressR\x18principalPhysicalAddress\x12\x41\n\x0epostal_address\x18\t \x01(\x0b\x32\x1a.meshtrade.type.v1.AddressR\rpostalAddress\x12J\n\x13head_office_address\x18\n \x01(\x0b\x32\x1a.meshtrade.type.v1.AddressR\x11headOfficeAddress\x12n\n\x17\x63ompany_representatives\x18\x0b \x03(\x0b\x32\x35.meshtrade.compliance.client.v1.CompanyRepresentativeR\x16\x63ompanyRepresentatives\x12l\n\x17\x63onnected_legal_persons\x18\x0c \x03(\x0b\x32\x34.meshtrade.compliance.client.v1.ConnectedLegalPersonR\x15\x63onnectedLegalPersons\x12o\n\x17industry_classification\x18\r \x01(\x0b\x32\x36.meshtrade.compliance.client.v1.IndustryClassificationR\x16industryClassification\x12\x30\n\x14listed_exchange_code\x18\x0e \x01(\tR\x12listedExchangeCode\x12+\n\x11listing_reference\x18\x0f \x01(\tR\x10listingReference\"\x80\x05\n\x14\x43onnectedLegalPerson\x12V\n\x0enatural_person\x18\x01 \x01(\x0b\x32-.meshtrade.compliance.client.v1.NaturalPersonH\x00R\rnaturalPerson\x12\x43\n\x07\x63ompany\x18\x02 \x01(\x0b\x32\'.meshtrade.compliance.client.v1.CompanyH\x00R\x07\x63ompany\x12:\n\x04\x66und\x18\x03 \x01(\x0b\x32$.meshtrade.compliance.client.v1.FundH\x00R\x04\x66und\x12=\n\x05trust\x18\x04 \x01(\x0b\x32%.meshtrade.compliance.client.v1.TrustH\x00R\x05trust\x12\x64\n\x10\x63onnection_types\x18\x05 \x03(\x0e\x32\x39.meshtrade.compliance.client.v1.LegalPersonConnectionTypeR\x0f\x63onnectionTypes\x12M\n\x14ownership_percentage\x18\x06 \x01(\x0b\x32\x1a.meshtrade.type.v1.DecimalR\x13ownershipPercentage\x12T\n\x18voting_rights_percentage\x18\x07 \x01(\x0b\x32\x1a.meshtrade.type.v1.DecimalR\x16votingRightsPercentage\x12\x35\n\x16\x63onnection_description\x18\x08 \x01(\tR\x15\x63onnectionDescriptionB\x0e\n\x0clegal_person*\xe3\x02\n\x19LegalPersonConnectionType\x12,\n(LEGAL_PERSON_CONNECTION_TYPE_UNSPECIFIED\x10\x00\x12,\n(LEGAL_PERSON_CONNECTION_TYPE_SHAREHOLDER\x10\x01\x12/\n+LEGAL_PERSON_CONNECTION_TYPE_PARENT_COMPANY\x10\x02\x12\x33\n/LEGAL_PERSON_CONNECTION_TYPE_CORPORATE_DIRECTOR\x10\x03\x12&\n\"LEGAL_PERSON_CONNECTION_TYPE_TRUST\x10\x04\x12\x30\n,LEGAL_PERSON_CONNECTION_TYPE_GENERAL_PARTNER\x10\x05\x12*\n&LEGAL_PERSON_CONNECTION_TYPE_GUARANTOR\x10\x06\x42\x62\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1b\x06proto3')
36
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n,meshtrade/compliance/client/v1/company.proto\x12\x1emeshtrade.compliance.client.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x16google/type/date.proto\x1a;meshtrade/compliance/client/v1/company_representative.proto\x1a)meshtrade/compliance/client/v1/fund.proto\x1a<meshtrade/compliance/client/v1/industry_classification.proto\x1a\x33meshtrade/compliance/client/v1/natural_person.proto\x1a*meshtrade/compliance/client/v1/trust.proto\x1a\x1fmeshtrade/type/v1/address.proto\x1a\x1fmeshtrade/type/v1/decimal.proto\"\xc7\t\n\x07\x43ompany\x12\x31\n\x0fregistered_name\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\xff\x01R\x0eregisteredName\x12\x38\n\x13registration_number\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x18\x64R\x12registrationNumber\x12.\n\x0etax_identifier\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x18\x32R\rtaxIdentifier\x12\xe3\x01\n\x18\x63ountry_of_incorporation\x18\x05 \x01(\tB\xa8\x01\xbaH\xa4\x01\xba\x01\xa0\x01\n\x1c\x63ountry_code.format.optional\x12Qcountry_of_incorporation must be empty or a valid ISO 3166-1 alpha-2 country code\x1a-size(this) == 0 || this.matches(\'^[A-Z]{2}$\')R\x16\x63ountryOfIncorporation\x12\x45\n\x15\x64\x61te_of_incorporation\x18\x06 \x01(\x0b\x32\x11.google.type.DateR\x13\x64\x61teOfIncorporation\x12I\n\x12registered_address\x18\x07 \x01(\x0b\x32\x1a.meshtrade.type.v1.AddressR\x11registeredAddress\x12X\n\x1aprincipal_physical_address\x18\x08 \x01(\x0b\x32\x1a.meshtrade.type.v1.AddressR\x18principalPhysicalAddress\x12\x41\n\x0epostal_address\x18\t \x01(\x0b\x32\x1a.meshtrade.type.v1.AddressR\rpostalAddress\x12J\n\x13head_office_address\x18\n \x01(\x0b\x32\x1a.meshtrade.type.v1.AddressR\x11headOfficeAddress\x12n\n\x17\x63ompany_representatives\x18\x0b \x03(\x0b\x32\x35.meshtrade.compliance.client.v1.CompanyRepresentativeR\x16\x63ompanyRepresentatives\x12l\n\x17\x63onnected_legal_persons\x18\x0c \x03(\x0b\x32\x34.meshtrade.compliance.client.v1.ConnectedLegalPersonR\x15\x63onnectedLegalPersons\x12o\n\x17industry_classification\x18\r \x01(\x0b\x32\x36.meshtrade.compliance.client.v1.IndustryClassificationR\x16industryClassification\x12\x39\n\x14listed_exchange_code\x18\x0e \x01(\tB\x07\xbaH\x04r\x02\x18\x14R\x12listedExchangeCode\x12\x34\n\x11listing_reference\x18\x0f \x01(\tB\x07\xbaH\x04r\x02\x18\x14R\x10listingReference\"\x99\x05\n\x14\x43onnectedLegalPerson\x12V\n\x0enatural_person\x18\x01 \x01(\x0b\x32-.meshtrade.compliance.client.v1.NaturalPersonH\x00R\rnaturalPerson\x12\x43\n\x07\x63ompany\x18\x02 \x01(\x0b\x32\'.meshtrade.compliance.client.v1.CompanyH\x00R\x07\x63ompany\x12:\n\x04\x66und\x18\x03 \x01(\x0b\x32$.meshtrade.compliance.client.v1.FundH\x00R\x04\x66und\x12=\n\x05trust\x18\x04 \x01(\x0b\x32%.meshtrade.compliance.client.v1.TrustH\x00R\x05trust\x12s\n\x10\x63onnection_types\x18\x05 \x03(\x0e\x32\x39.meshtrade.compliance.client.v1.LegalPersonConnectionTypeB\r\xbaH\n\x92\x01\x07\"\x05\x82\x01\x02\x10\x01R\x0f\x63onnectionTypes\x12M\n\x14ownership_percentage\x18\x06 \x01(\x0b\x32\x1a.meshtrade.type.v1.DecimalR\x13ownershipPercentage\x12T\n\x18voting_rights_percentage\x18\x07 \x01(\x0b\x32\x1a.meshtrade.type.v1.DecimalR\x16votingRightsPercentage\x12?\n\x16\x63onnection_description\x18\x08 \x01(\tB\x08\xbaH\x05r\x03\x18\xf4\x03R\x15\x63onnectionDescriptionB\x0e\n\x0clegal_person*\xe3\x02\n\x19LegalPersonConnectionType\x12,\n(LEGAL_PERSON_CONNECTION_TYPE_UNSPECIFIED\x10\x00\x12,\n(LEGAL_PERSON_CONNECTION_TYPE_SHAREHOLDER\x10\x01\x12/\n+LEGAL_PERSON_CONNECTION_TYPE_PARENT_COMPANY\x10\x02\x12\x33\n/LEGAL_PERSON_CONNECTION_TYPE_CORPORATE_DIRECTOR\x10\x03\x12&\n\"LEGAL_PERSON_CONNECTION_TYPE_TRUST\x10\x04\x12\x30\n,LEGAL_PERSON_CONNECTION_TYPE_GENERAL_PARTNER\x10\x05\x12*\n&LEGAL_PERSON_CONNECTION_TYPE_GUARANTOR\x10\x06\x42\x63\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1b\x06proto3')
36
37
 
37
38
  _globals = globals()
38
39
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
39
40
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.compliance.client.v1.company_pb2', _globals)
40
41
  if not _descriptor._USE_C_DESCRIPTORS:
41
42
  _globals['DESCRIPTOR']._loaded_options = None
42
- _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1'
43
- _globals['_LEGALPERSONCONNECTIONTYPE']._serialized_start=2085
44
- _globals['_LEGALPERSONCONNECTIONTYPE']._serialized_end=2440
45
- _globals['_COMPANY']._serialized_start=434
46
- _globals['_COMPANY']._serialized_end=1439
47
- _globals['_CONNECTEDLEGALPERSON']._serialized_start=1442
48
- _globals['_CONNECTEDLEGALPERSON']._serialized_end=2082
43
+ _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1'
44
+ _globals['_COMPANY'].fields_by_name['registered_name']._loaded_options = None
45
+ _globals['_COMPANY'].fields_by_name['registered_name']._serialized_options = b'\272H\005r\003\030\377\001'
46
+ _globals['_COMPANY'].fields_by_name['registration_number']._loaded_options = None
47
+ _globals['_COMPANY'].fields_by_name['registration_number']._serialized_options = b'\272H\004r\002\030d'
48
+ _globals['_COMPANY'].fields_by_name['tax_identifier']._loaded_options = None
49
+ _globals['_COMPANY'].fields_by_name['tax_identifier']._serialized_options = b'\272H\004r\002\0302'
50
+ _globals['_COMPANY'].fields_by_name['country_of_incorporation']._loaded_options = None
51
+ _globals['_COMPANY'].fields_by_name['country_of_incorporation']._serialized_options = b'\272H\244\001\272\001\240\001\n\034country_code.format.optional\022Qcountry_of_incorporation must be empty or a valid ISO 3166-1 alpha-2 country code\032-size(this) == 0 || this.matches(\'^[A-Z]{2}$\')'
52
+ _globals['_COMPANY'].fields_by_name['listed_exchange_code']._loaded_options = None
53
+ _globals['_COMPANY'].fields_by_name['listed_exchange_code']._serialized_options = b'\272H\004r\002\030\024'
54
+ _globals['_COMPANY'].fields_by_name['listing_reference']._loaded_options = None
55
+ _globals['_COMPANY'].fields_by_name['listing_reference']._serialized_options = b'\272H\004r\002\030\024'
56
+ _globals['_CONNECTEDLEGALPERSON'].fields_by_name['connection_types']._loaded_options = None
57
+ _globals['_CONNECTEDLEGALPERSON'].fields_by_name['connection_types']._serialized_options = b'\272H\n\222\001\007\"\005\202\001\002\020\001'
58
+ _globals['_CONNECTEDLEGALPERSON'].fields_by_name['connection_description']._loaded_options = None
59
+ _globals['_CONNECTEDLEGALPERSON'].fields_by_name['connection_description']._serialized_options = b'\272H\005r\003\030\364\003'
60
+ _globals['_LEGALPERSONCONNECTIONTYPE']._serialized_start=2357
61
+ _globals['_LEGALPERSONCONNECTIONTYPE']._serialized_end=2712
62
+ _globals['_COMPANY']._serialized_start=463
63
+ _globals['_COMPANY']._serialized_end=1686
64
+ _globals['_CONNECTEDLEGALPERSON']._serialized_start=1689
65
+ _globals['_CONNECTEDLEGALPERSON']._serialized_end=2354
49
66
  # @@protoc_insertion_point(module_scope)
@@ -1,3 +1,4 @@
1
+ from buf.validate import validate_pb2 as _validate_pb2
1
2
  from google.type import date_pb2 as _date_pb2
2
3
  from meshtrade.compliance.client.v1 import company_representative_pb2 as _company_representative_pb2
3
4
  from meshtrade.compliance.client.v1 import fund_pb2 as _fund_pb2
@@ -22,6 +22,7 @@ _runtime_version.ValidateProtobufRuntimeVersion(
22
22
  _sym_db = _symbol_database.Default()
23
23
 
24
24
 
25
+ from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
25
26
  from google.type import date_pb2 as google_dot_type_dot_date__pb2
26
27
  from meshtrade.compliance.client.v1 import company_representative_role_pb2 as meshtrade_dot_compliance_dot_client_dot_v1_dot_company__representative__role__pb2
27
28
  from meshtrade.compliance.client.v1 import natural_person_pb2 as meshtrade_dot_compliance_dot_client_dot_v1_dot_natural__person__pb2
@@ -29,14 +30,18 @@ from meshtrade.type.v1 import contact_details_pb2 as meshtrade_dot_type_dot_v1_d
29
30
  from meshtrade.type.v1 import decimal_pb2 as meshtrade_dot_type_dot_v1_dot_decimal__pb2
30
31
 
31
32
 
32
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n;meshtrade/compliance/client/v1/company_representative.proto\x12\x1emeshtrade.compliance.client.v1\x1a\x16google/type/date.proto\x1a@meshtrade/compliance/client/v1/company_representative_role.proto\x1a\x33meshtrade/compliance/client/v1/natural_person.proto\x1a\'meshtrade/type/v1/contact_details.proto\x1a\x1fmeshtrade/type/v1/decimal.proto\"\xcf\x03\n\x15\x43ompanyRepresentative\x12T\n\x0enatural_person\x18\x01 \x01(\x0b\x32-.meshtrade.compliance.client.v1.NaturalPersonR\rnaturalPerson\x12M\n\x04role\x18\x02 \x01(\x0e\x32\x39.meshtrade.compliance.client.v1.CompanyRepresentativeRoleR\x04role\x12\x1a\n\x08position\x18\x03 \x01(\tR\x08position\x12M\n\x14ownership_percentage\x18\x04 \x01(\x0b\x32\x1a.meshtrade.type.v1.DecimalR\x13ownershipPercentage\x12\x63\n\x1cprofessional_contact_details\x18\x05 \x01(\x0b\x32!.meshtrade.type.v1.ContactDetailsR\x1aprofessionalContactDetails\x12\x41\n\x13\x64\x61te_of_appointment\x18\x06 \x01(\x0b\x32\x11.google.type.DateR\x11\x64\x61teOfAppointmentBb\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1b\x06proto3')
33
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n;meshtrade/compliance/client/v1/company_representative.proto\x12\x1emeshtrade.compliance.client.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x16google/type/date.proto\x1a@meshtrade/compliance/client/v1/company_representative_role.proto\x1a\x33meshtrade/compliance/client/v1/natural_person.proto\x1a\'meshtrade/type/v1/contact_details.proto\x1a\x1fmeshtrade/type/v1/decimal.proto\"\xe3\x03\n\x15\x43ompanyRepresentative\x12T\n\x0enatural_person\x18\x01 \x01(\x0b\x32-.meshtrade.compliance.client.v1.NaturalPersonR\rnaturalPerson\x12W\n\x04role\x18\x02 \x01(\x0e\x32\x39.meshtrade.compliance.client.v1.CompanyRepresentativeRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04role\x12$\n\x08position\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\xf4\x03R\x08position\x12M\n\x14ownership_percentage\x18\x04 \x01(\x0b\x32\x1a.meshtrade.type.v1.DecimalR\x13ownershipPercentage\x12\x63\n\x1cprofessional_contact_details\x18\x05 \x01(\x0b\x32!.meshtrade.type.v1.ContactDetailsR\x1aprofessionalContactDetails\x12\x41\n\x13\x64\x61te_of_appointment\x18\x06 \x01(\x0b\x32\x11.google.type.DateR\x11\x64\x61teOfAppointmentBc\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1b\x06proto3')
33
34
 
34
35
  _globals = globals()
35
36
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
36
37
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.compliance.client.v1.company_representative_pb2', _globals)
37
38
  if not _descriptor._USE_C_DESCRIPTORS:
38
39
  _globals['DESCRIPTOR']._loaded_options = None
39
- _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1'
40
- _globals['_COMPANYREPRESENTATIVE']._serialized_start=313
41
- _globals['_COMPANYREPRESENTATIVE']._serialized_end=776
40
+ _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1'
41
+ _globals['_COMPANYREPRESENTATIVE'].fields_by_name['role']._loaded_options = None
42
+ _globals['_COMPANYREPRESENTATIVE'].fields_by_name['role']._serialized_options = b'\272H\005\202\001\002\020\001'
43
+ _globals['_COMPANYREPRESENTATIVE'].fields_by_name['position']._loaded_options = None
44
+ _globals['_COMPANYREPRESENTATIVE'].fields_by_name['position']._serialized_options = b'\272H\005r\003\030\364\003'
45
+ _globals['_COMPANYREPRESENTATIVE']._serialized_start=342
46
+ _globals['_COMPANYREPRESENTATIVE']._serialized_end=825
42
47
  # @@protoc_insertion_point(module_scope)
@@ -1,3 +1,4 @@
1
+ from buf.validate import validate_pb2 as _validate_pb2
1
2
  from google.type import date_pb2 as _date_pb2
2
3
  from meshtrade.compliance.client.v1 import company_representative_role_pb2 as _company_representative_role_pb2
3
4
  from meshtrade.compliance.client.v1 import natural_person_pb2 as _natural_person_pb2
@@ -24,14 +24,14 @@ _sym_db = _symbol_database.Default()
24
24
 
25
25
 
26
26
 
27
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n@meshtrade/compliance/client/v1/company_representative_role.proto\x12\x1emeshtrade.compliance.client.v1*\xc4\x03\n\x19\x43ompanyRepresentativeRole\x12+\n\'COMPANY_REPRESENTATIVE_ROLE_UNSPECIFIED\x10\x00\x12\x39\n5COMPANY_REPRESENTATIVE_ROLE_ULTIMATE_BENEFICIAL_OWNER\x10\x01\x12+\n\'COMPANY_REPRESENTATIVE_ROLE_SHAREHOLDER\x10\x02\x12/\n+COMPANY_REPRESENTATIVE_ROLE_SOLE_PROPRIETOR\x10\x03\x12\'\n#COMPANY_REPRESENTATIVE_ROLE_PARTNER\x10\x04\x12(\n$COMPANY_REPRESENTATIVE_ROLE_DIRECTOR\x10\x05\x12\'\n#COMPANY_REPRESENTATIVE_ROLE_MANAGER\x10\x06\x12\x34\n0COMPANY_REPRESENTATIVE_ROLE_AUTHORIZED_SIGNATORY\x10\x07\x12/\n+COMPANY_REPRESENTATIVE_ROLE_PRIMARY_CONTACT\x10\x08\x42\x62\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1b\x06proto3')
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n@meshtrade/compliance/client/v1/company_representative_role.proto\x12\x1emeshtrade.compliance.client.v1*\xc4\x03\n\x19\x43ompanyRepresentativeRole\x12+\n\'COMPANY_REPRESENTATIVE_ROLE_UNSPECIFIED\x10\x00\x12\x39\n5COMPANY_REPRESENTATIVE_ROLE_ULTIMATE_BENEFICIAL_OWNER\x10\x01\x12+\n\'COMPANY_REPRESENTATIVE_ROLE_SHAREHOLDER\x10\x02\x12/\n+COMPANY_REPRESENTATIVE_ROLE_SOLE_PROPRIETOR\x10\x03\x12\'\n#COMPANY_REPRESENTATIVE_ROLE_PARTNER\x10\x04\x12(\n$COMPANY_REPRESENTATIVE_ROLE_DIRECTOR\x10\x05\x12\'\n#COMPANY_REPRESENTATIVE_ROLE_MANAGER\x10\x06\x12\x34\n0COMPANY_REPRESENTATIVE_ROLE_AUTHORIZED_SIGNATORY\x10\x07\x12/\n+COMPANY_REPRESENTATIVE_ROLE_PRIMARY_CONTACT\x10\x08\x42\x63\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1b\x06proto3')
28
28
 
29
29
  _globals = globals()
30
30
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
31
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.compliance.client.v1.company_representative_role_pb2', _globals)
32
32
  if not _descriptor._USE_C_DESCRIPTORS:
33
33
  _globals['DESCRIPTOR']._loaded_options = None
34
- _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1'
34
+ _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1'
35
35
  _globals['_COMPANYREPRESENTATIVEROLE']._serialized_start=101
36
36
  _globals['_COMPANYREPRESENTATIVEROLE']._serialized_end=553
37
37
  # @@protoc_insertion_point(module_scope)
@@ -22,17 +22,26 @@ _runtime_version.ValidateProtobufRuntimeVersion(
22
22
  _sym_db = _symbol_database.Default()
23
23
 
24
24
 
25
+ from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
25
26
  from google.type import date_pb2 as google_dot_type_dot_date__pb2
26
27
 
27
28
 
28
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)meshtrade/compliance/client/v1/fund.proto\x12\x1emeshtrade.compliance.client.v1\x1a\x16google/type/date.proto\"\xf6\x01\n\x04\x46und\x12\'\n\x0fregistered_name\x18\x01 \x01(\tR\x0eregisteredName\x12/\n\x13registration_number\x18\x02 \x01(\tR\x12registrationNumber\x12%\n\x0etax_identifier\x18\x03 \x01(\tR\rtaxIdentifier\x12.\n\x13\x63ountry_of_domicile\x18\x04 \x01(\tR\x11\x63ountryOfDomicile\x12=\n\x11\x64\x61te_of_inception\x18\x05 \x01(\x0b\x32\x11.google.type.DateR\x0f\x64\x61teOfInceptionBb\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1b\x06proto3')
29
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)meshtrade/compliance/client/v1/fund.proto\x12\x1emeshtrade.compliance.client.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x16google/type/date.proto\"\xb9\x03\n\x04\x46und\x12\x31\n\x0fregistered_name\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\xff\x01R\x0eregisteredName\x12\x38\n\x13registration_number\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x18\x64R\x12registrationNumber\x12.\n\x0etax_identifier\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x18\x32R\rtaxIdentifier\x12\xd4\x01\n\x13\x63ountry_of_domicile\x18\x04 \x01(\tB\xa3\x01\xbaH\x9f\x01\xba\x01\x9b\x01\n\x1c\x63ountry_code.format.optional\x12Lcountry_of_domicile must be empty or a valid ISO 3166-1 alpha-2 country code\x1a-size(this) == 0 || this.matches(\'^[A-Z]{2}$\')R\x11\x63ountryOfDomicile\x12=\n\x11\x64\x61te_of_inception\x18\x05 \x01(\x0b\x32\x11.google.type.DateR\x0f\x64\x61teOfInceptionBc\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1b\x06proto3')
29
30
 
30
31
  _globals = globals()
31
32
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
32
33
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.compliance.client.v1.fund_pb2', _globals)
33
34
  if not _descriptor._USE_C_DESCRIPTORS:
34
35
  _globals['DESCRIPTOR']._loaded_options = None
35
- _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1'
36
- _globals['_FUND']._serialized_start=102
37
- _globals['_FUND']._serialized_end=348
36
+ _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1'
37
+ _globals['_FUND'].fields_by_name['registered_name']._loaded_options = None
38
+ _globals['_FUND'].fields_by_name['registered_name']._serialized_options = b'\272H\005r\003\030\377\001'
39
+ _globals['_FUND'].fields_by_name['registration_number']._loaded_options = None
40
+ _globals['_FUND'].fields_by_name['registration_number']._serialized_options = b'\272H\004r\002\030d'
41
+ _globals['_FUND'].fields_by_name['tax_identifier']._loaded_options = None
42
+ _globals['_FUND'].fields_by_name['tax_identifier']._serialized_options = b'\272H\004r\002\0302'
43
+ _globals['_FUND'].fields_by_name['country_of_domicile']._loaded_options = None
44
+ _globals['_FUND'].fields_by_name['country_of_domicile']._serialized_options = b'\272H\237\001\272\001\233\001\n\034country_code.format.optional\022Lcountry_of_domicile must be empty or a valid ISO 3166-1 alpha-2 country code\032-size(this) == 0 || this.matches(\'^[A-Z]{2}$\')'
45
+ _globals['_FUND']._serialized_start=131
46
+ _globals['_FUND']._serialized_end=572
38
47
  # @@protoc_insertion_point(module_scope)
@@ -1,3 +1,4 @@
1
+ from buf.validate import validate_pb2 as _validate_pb2
1
2
  from google.type import date_pb2 as _date_pb2
2
3
  from google.protobuf import descriptor as _descriptor
3
4
  from google.protobuf import message as _message
@@ -24,14 +24,14 @@ _sym_db = _symbol_database.Default()
24
24
 
25
25
 
26
26
 
27
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\nAmeshtrade/compliance/client/v1/identification_document_type.proto\x12\x1emeshtrade.compliance.client.v1*\x88\x02\n\x1aIdentificationDocumentType\x12,\n(IDENTIFICATION_DOCUMENT_TYPE_UNSPECIFIED\x10\x00\x12)\n%IDENTIFICATION_DOCUMENT_TYPE_PASSPORT\x10\x01\x12,\n(IDENTIFICATION_DOCUMENT_TYPE_NATIONAL_ID\x10\x02\x12\x30\n,IDENTIFICATION_DOCUMENT_TYPE_DRIVERS_LICENSE\x10\x03\x12\x31\n-IDENTIFICATION_DOCUMENT_TYPE_RESIDENCE_PERMIT\x10\x04\x42\x62\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1b\x06proto3')
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\nAmeshtrade/compliance/client/v1/identification_document_type.proto\x12\x1emeshtrade.compliance.client.v1*\x88\x02\n\x1aIdentificationDocumentType\x12,\n(IDENTIFICATION_DOCUMENT_TYPE_UNSPECIFIED\x10\x00\x12)\n%IDENTIFICATION_DOCUMENT_TYPE_PASSPORT\x10\x01\x12,\n(IDENTIFICATION_DOCUMENT_TYPE_NATIONAL_ID\x10\x02\x12\x30\n,IDENTIFICATION_DOCUMENT_TYPE_DRIVERS_LICENSE\x10\x03\x12\x31\n-IDENTIFICATION_DOCUMENT_TYPE_RESIDENCE_PERMIT\x10\x04\x42\x63\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1b\x06proto3')
28
28
 
29
29
  _globals = globals()
30
30
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
31
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.compliance.client.v1.identification_document_type_pb2', _globals)
32
32
  if not _descriptor._USE_C_DESCRIPTORS:
33
33
  _globals['DESCRIPTOR']._loaded_options = None
34
- _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1'
34
+ _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1'
35
35
  _globals['_IDENTIFICATIONDOCUMENTTYPE']._serialized_start=102
36
36
  _globals['_IDENTIFICATIONDOCUMENTTYPE']._serialized_end=366
37
37
  # @@protoc_insertion_point(module_scope)
@@ -24,14 +24,14 @@ _sym_db = _symbol_database.Default()
24
24
 
25
25
 
26
26
 
27
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n<meshtrade/compliance/client/v1/industry_classification.proto\x12\x1emeshtrade.compliance.client.v1\"\xdc\x02\n\x16IndustryClassification\x12\x1f\n\x0bsector_code\x18\x01 \x01(\tR\nsectorCode\x12\x1f\n\x0bsector_name\x18\x02 \x01(\tR\nsectorName\x12.\n\x13industry_group_code\x18\x03 \x01(\tR\x11industryGroupCode\x12.\n\x13industry_group_name\x18\x04 \x01(\tR\x11industryGroupName\x12#\n\rindustry_code\x18\x05 \x01(\tR\x0cindustryCode\x12#\n\rindustry_name\x18\x06 \x01(\tR\x0cindustryName\x12*\n\x11sub_industry_code\x18\x07 \x01(\tR\x0fsubIndustryCode\x12*\n\x11sub_industry_name\x18\x08 \x01(\tR\x0fsubIndustryNameBb\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1b\x06proto3')
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n<meshtrade/compliance/client/v1/industry_classification.proto\x12\x1emeshtrade.compliance.client.v1\"\xdc\x02\n\x16IndustryClassification\x12\x1f\n\x0bsector_code\x18\x01 \x01(\tR\nsectorCode\x12\x1f\n\x0bsector_name\x18\x02 \x01(\tR\nsectorName\x12.\n\x13industry_group_code\x18\x03 \x01(\tR\x11industryGroupCode\x12.\n\x13industry_group_name\x18\x04 \x01(\tR\x11industryGroupName\x12#\n\rindustry_code\x18\x05 \x01(\tR\x0cindustryCode\x12#\n\rindustry_name\x18\x06 \x01(\tR\x0cindustryName\x12*\n\x11sub_industry_code\x18\x07 \x01(\tR\x0fsubIndustryCode\x12*\n\x11sub_industry_name\x18\x08 \x01(\tR\x0fsubIndustryNameBc\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1b\x06proto3')
28
28
 
29
29
  _globals = globals()
30
30
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
31
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.compliance.client.v1.industry_classification_pb2', _globals)
32
32
  if not _descriptor._USE_C_DESCRIPTORS:
33
33
  _globals['DESCRIPTOR']._loaded_options = None
34
- _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1'
34
+ _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1'
35
35
  _globals['_INDUSTRYCLASSIFICATION']._serialized_start=97
36
36
  _globals['_INDUSTRYCLASSIFICATION']._serialized_end=445
37
37
  # @@protoc_insertion_point(module_scope)
@@ -24,14 +24,14 @@ _sym_db = _symbol_database.Default()
24
24
 
25
25
 
26
26
 
27
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\nCmeshtrade/compliance/client/v1/natural_person_connection_type.proto\x12\x1emeshtrade.compliance.client.v1*\xb4\x06\n\x1bNaturalPersonConnectionType\x12.\n*NATURAL_PERSON_CONNECTION_TYPE_UNSPECIFIED\x10\x00\x12<\n8NATURAL_PERSON_CONNECTION_TYPE_ULTIMATE_BENEFICIAL_OWNER\x10\x01\x12.\n*NATURAL_PERSON_CONNECTION_TYPE_SHAREHOLDER\x10\x02\x12+\n\'NATURAL_PERSON_CONNECTION_TYPE_DIRECTOR\x10\x03\x12\x34\n0NATURAL_PERSON_CONNECTION_TYPE_SENIOR_MANAGEMENT\x10\x04\x12\x37\n3NATURAL_PERSON_CONNECTION_TYPE_AUTHORIZED_SIGNATORY\x10\x05\x12*\n&NATURAL_PERSON_CONNECTION_TYPE_FOUNDER\x10\x06\x12)\n%NATURAL_PERSON_CONNECTION_TYPE_SPOUSE\x10\x14\x12\x33\n/NATURAL_PERSON_CONNECTION_TYPE_DOMESTIC_PARTNER\x10\x15\x12)\n%NATURAL_PERSON_CONNECTION_TYPE_PARENT\x10\x16\x12(\n$NATURAL_PERSON_CONNECTION_TYPE_CHILD\x10\x17\x12*\n&NATURAL_PERSON_CONNECTION_TYPE_SIBLING\x10\x18\x12\x33\n/NATURAL_PERSON_CONNECTION_TYPE_BUSINESS_PARTNER\x10\x1e\x12\x32\n.NATURAL_PERSON_CONNECTION_TYPE_CLOSE_ASSOCIATE\x10\x1f\x12,\n(NATURAL_PERSON_CONNECTION_TYPE_GUARANTOR\x10 \x12\x37\n3NATURAL_PERSON_CONNECTION_TYPE_BENEFICIARY_OF_TRUST\x10!Bb\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1b\x06proto3')
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\nCmeshtrade/compliance/client/v1/natural_person_connection_type.proto\x12\x1emeshtrade.compliance.client.v1*\xb4\x06\n\x1bNaturalPersonConnectionType\x12.\n*NATURAL_PERSON_CONNECTION_TYPE_UNSPECIFIED\x10\x00\x12<\n8NATURAL_PERSON_CONNECTION_TYPE_ULTIMATE_BENEFICIAL_OWNER\x10\x01\x12.\n*NATURAL_PERSON_CONNECTION_TYPE_SHAREHOLDER\x10\x02\x12+\n\'NATURAL_PERSON_CONNECTION_TYPE_DIRECTOR\x10\x03\x12\x34\n0NATURAL_PERSON_CONNECTION_TYPE_SENIOR_MANAGEMENT\x10\x04\x12\x37\n3NATURAL_PERSON_CONNECTION_TYPE_AUTHORIZED_SIGNATORY\x10\x05\x12*\n&NATURAL_PERSON_CONNECTION_TYPE_FOUNDER\x10\x06\x12)\n%NATURAL_PERSON_CONNECTION_TYPE_SPOUSE\x10\x14\x12\x33\n/NATURAL_PERSON_CONNECTION_TYPE_DOMESTIC_PARTNER\x10\x15\x12)\n%NATURAL_PERSON_CONNECTION_TYPE_PARENT\x10\x16\x12(\n$NATURAL_PERSON_CONNECTION_TYPE_CHILD\x10\x17\x12*\n&NATURAL_PERSON_CONNECTION_TYPE_SIBLING\x10\x18\x12\x33\n/NATURAL_PERSON_CONNECTION_TYPE_BUSINESS_PARTNER\x10\x1e\x12\x32\n.NATURAL_PERSON_CONNECTION_TYPE_CLOSE_ASSOCIATE\x10\x1f\x12,\n(NATURAL_PERSON_CONNECTION_TYPE_GUARANTOR\x10 \x12\x37\n3NATURAL_PERSON_CONNECTION_TYPE_BENEFICIARY_OF_TRUST\x10!Bc\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1b\x06proto3')
28
28
 
29
29
  _globals = globals()
30
30
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
31
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.compliance.client.v1.natural_person_connection_type_pb2', _globals)
32
32
  if not _descriptor._USE_C_DESCRIPTORS:
33
33
  _globals['DESCRIPTOR']._loaded_options = None
34
- _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1'
34
+ _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1'
35
35
  _globals['_NATURALPERSONCONNECTIONTYPE']._serialized_start=104
36
36
  _globals['_NATURALPERSONCONNECTIONTYPE']._serialized_end=924
37
37
  # @@protoc_insertion_point(module_scope)
@@ -22,6 +22,7 @@ _runtime_version.ValidateProtobufRuntimeVersion(
22
22
  _sym_db = _symbol_database.Default()
23
23
 
24
24
 
25
+ from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
25
26
  from google.type import date_pb2 as google_dot_type_dot_date__pb2
26
27
  from meshtrade.compliance.client.v1 import identification_document_type_pb2 as meshtrade_dot_compliance_dot_client_dot_v1_dot_identification__document__type__pb2
27
28
  from meshtrade.compliance.client.v1 import pep_status_pb2 as meshtrade_dot_compliance_dot_client_dot_v1_dot_pep__status__pb2
@@ -31,14 +32,28 @@ from meshtrade.type.v1 import address_pb2 as meshtrade_dot_type_dot_v1_dot_addre
31
32
  from meshtrade.type.v1 import contact_details_pb2 as meshtrade_dot_type_dot_v1_dot_contact__details__pb2
32
33
 
33
34
 
34
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n3meshtrade/compliance/client/v1/natural_person.proto\x12\x1emeshtrade.compliance.client.v1\x1a\x16google/type/date.proto\x1a\x41meshtrade/compliance/client/v1/identification_document_type.proto\x1a/meshtrade/compliance/client/v1/pep_status.proto\x1a@meshtrade/compliance/client/v1/source_of_income_and_wealth.proto\x1a\x32meshtrade/compliance/client/v1/tax_residency.proto\x1a\x1fmeshtrade/type/v1/address.proto\x1a\'meshtrade/type/v1/contact_details.proto\"\xef\x07\n\rNaturalPerson\x12\x1b\n\tfull_name\x18\x01 \x01(\tR\x08\x66ullName\x12\x35\n\rdate_of_birth\x18\x02 \x01(\x0b\x32\x11.google.type.DateR\x0b\x64\x61teOfBirth\x12\x34\n\x16\x63ountry_of_citizenship\x18\x03 \x01(\tR\x14\x63ountryOfCitizenship\x12\x33\n\x15identification_number\x18\x04 \x01(\tR\x14identificationNumber\x12|\n\x1cidentification_document_type\x18\x05 \x01(\x0e\x32:.meshtrade.compliance.client.v1.IdentificationDocumentTypeR\x1aidentificationDocumentType\x12`\n#identification_document_expiry_date\x18\x06 \x01(\x0b\x32\x11.google.type.DateR identificationDocumentExpiryDate\x12\x45\n\x10physical_address\x18\x07 \x01(\x0b\x32\x1a.meshtrade.type.v1.AddressR\x0fphysicalAddress\x12\x41\n\x0epostal_address\x18\x08 \x01(\x0b\x32\x1a.meshtrade.type.v1.AddressR\rpostalAddress\x12H\n\npep_status\x18\t \x01(\x0e\x32).meshtrade.compliance.client.v1.PepStatusR\tpepStatus\x12J\n\x0f\x63ontact_details\x18\n \x01(\x0b\x32!.meshtrade.type.v1.ContactDetailsR\x0e\x63ontactDetails\x12\x63\n\x11sources_of_income\x18\x0b \x03(\x0e\x32\x37.meshtrade.compliance.client.v1.SourceOfIncomeAndWealthR\x0fsourcesOfIncome\x12\x63\n\x11sources_of_wealth\x18\x0c \x03(\x0e\x32\x37.meshtrade.compliance.client.v1.SourceOfIncomeAndWealthR\x0fsourcesOfWealth\x12U\n\x0ftax_residencies\x18\r \x03(\x0b\x32,.meshtrade.compliance.client.v1.TaxResidencyR\x0etaxResidenciesBb\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1b\x06proto3')
35
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n3meshtrade/compliance/client/v1/natural_person.proto\x12\x1emeshtrade.compliance.client.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x16google/type/date.proto\x1a\x41meshtrade/compliance/client/v1/identification_document_type.proto\x1a/meshtrade/compliance/client/v1/pep_status.proto\x1a@meshtrade/compliance/client/v1/source_of_income_and_wealth.proto\x1a\x32meshtrade/compliance/client/v1/tax_residency.proto\x1a\x1fmeshtrade/type/v1/address.proto\x1a\'meshtrade/type/v1/contact_details.proto\"\xdf\t\n\rNaturalPerson\x12%\n\tfull_name\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\xff\x01R\x08\x66ullName\x12\x35\n\rdate_of_birth\x18\x02 \x01(\x0b\x32\x11.google.type.DateR\x0b\x64\x61teOfBirth\x12\xdd\x01\n\x16\x63ountry_of_citizenship\x18\x03 \x01(\tB\xa6\x01\xbaH\xa2\x01\xba\x01\x9e\x01\n\x1c\x63ountry_code.format.optional\x12Ocountry_of_citizenship must be empty or a valid ISO 3166-1 alpha-2 country code\x1a-size(this) == 0 || this.matches(\'^[A-Z]{2}$\')R\x14\x63ountryOfCitizenship\x12<\n\x15identification_number\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x18\x64R\x14identificationNumber\x12\x86\x01\n\x1cidentification_document_type\x18\x05 \x01(\x0e\x32:.meshtrade.compliance.client.v1.IdentificationDocumentTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x1aidentificationDocumentType\x12`\n#identification_document_expiry_date\x18\x06 \x01(\x0b\x32\x11.google.type.DateR identificationDocumentExpiryDate\x12\x45\n\x10physical_address\x18\x07 \x01(\x0b\x32\x1a.meshtrade.type.v1.AddressR\x0fphysicalAddress\x12\x41\n\x0epostal_address\x18\x08 \x01(\x0b\x32\x1a.meshtrade.type.v1.AddressR\rpostalAddress\x12R\n\npep_status\x18\t \x01(\x0e\x32).meshtrade.compliance.client.v1.PepStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01R\tpepStatus\x12J\n\x0f\x63ontact_details\x18\n \x01(\x0b\x32!.meshtrade.type.v1.ContactDetailsR\x0e\x63ontactDetails\x12r\n\x11sources_of_income\x18\x0b \x03(\x0e\x32\x37.meshtrade.compliance.client.v1.SourceOfIncomeAndWealthB\r\xbaH\n\x92\x01\x07\"\x05\x82\x01\x02\x10\x01R\x0fsourcesOfIncome\x12r\n\x11sources_of_wealth\x18\x0c \x03(\x0e\x32\x37.meshtrade.compliance.client.v1.SourceOfIncomeAndWealthB\r\xbaH\n\x92\x01\x07\"\x05\x82\x01\x02\x10\x01R\x0fsourcesOfWealth\x12U\n\x0ftax_residencies\x18\r \x03(\x0b\x32,.meshtrade.compliance.client.v1.TaxResidencyR\x0etaxResidenciesBc\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1b\x06proto3')
35
36
 
36
37
  _globals = globals()
37
38
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
38
39
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.compliance.client.v1.natural_person_pb2', _globals)
39
40
  if not _descriptor._USE_C_DESCRIPTORS:
40
41
  _globals['DESCRIPTOR']._loaded_options = None
41
- _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1'
42
- _globals['_NATURALPERSON']._serialized_start=420
43
- _globals['_NATURALPERSON']._serialized_end=1427
42
+ _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1'
43
+ _globals['_NATURALPERSON'].fields_by_name['full_name']._loaded_options = None
44
+ _globals['_NATURALPERSON'].fields_by_name['full_name']._serialized_options = b'\272H\005r\003\030\377\001'
45
+ _globals['_NATURALPERSON'].fields_by_name['country_of_citizenship']._loaded_options = None
46
+ _globals['_NATURALPERSON'].fields_by_name['country_of_citizenship']._serialized_options = b'\272H\242\001\272\001\236\001\n\034country_code.format.optional\022Ocountry_of_citizenship must be empty or a valid ISO 3166-1 alpha-2 country code\032-size(this) == 0 || this.matches(\'^[A-Z]{2}$\')'
47
+ _globals['_NATURALPERSON'].fields_by_name['identification_number']._loaded_options = None
48
+ _globals['_NATURALPERSON'].fields_by_name['identification_number']._serialized_options = b'\272H\004r\002\030d'
49
+ _globals['_NATURALPERSON'].fields_by_name['identification_document_type']._loaded_options = None
50
+ _globals['_NATURALPERSON'].fields_by_name['identification_document_type']._serialized_options = b'\272H\005\202\001\002\020\001'
51
+ _globals['_NATURALPERSON'].fields_by_name['pep_status']._loaded_options = None
52
+ _globals['_NATURALPERSON'].fields_by_name['pep_status']._serialized_options = b'\272H\005\202\001\002\020\001'
53
+ _globals['_NATURALPERSON'].fields_by_name['sources_of_income']._loaded_options = None
54
+ _globals['_NATURALPERSON'].fields_by_name['sources_of_income']._serialized_options = b'\272H\n\222\001\007\"\005\202\001\002\020\001'
55
+ _globals['_NATURALPERSON'].fields_by_name['sources_of_wealth']._loaded_options = None
56
+ _globals['_NATURALPERSON'].fields_by_name['sources_of_wealth']._serialized_options = b'\272H\n\222\001\007\"\005\202\001\002\020\001'
57
+ _globals['_NATURALPERSON']._serialized_start=449
58
+ _globals['_NATURALPERSON']._serialized_end=1696
44
59
  # @@protoc_insertion_point(module_scope)
@@ -1,3 +1,4 @@
1
+ from buf.validate import validate_pb2 as _validate_pb2
1
2
  from google.type import date_pb2 as _date_pb2
2
3
  from meshtrade.compliance.client.v1 import identification_document_type_pb2 as _identification_document_type_pb2
3
4
  from meshtrade.compliance.client.v1 import pep_status_pb2 as _pep_status_pb2