meshtrade 1.16.0__py3-none-any.whl → 1.19.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.
Potentially problematic release.
This version of meshtrade might be problematic. Click here for more details.
- meshtrade/common/grpc_client.py +47 -0
- meshtrade/iam/api_user/v1/api_user_pb2.py +7 -7
- meshtrade/iam/api_user/v1/service_pb2.py +20 -20
- meshtrade/iam/role/v1/role_pb2.py +2 -2
- meshtrade/iam/role/v1/role_pb2.pyi +8 -0
- meshtrade/iam/user/v1/service_pb2.py +23 -23
- meshtrade/iam/user/v1/user_pb2.py +3 -3
- meshtrade/ledger/transaction/v1/__init__.py +23 -1
- meshtrade/ledger/transaction/v1/service_meshpy.py +175 -0
- meshtrade/ledger/transaction/v1/service_options_meshpy.py +65 -0
- meshtrade/ledger/transaction/v1/service_pb2.py +57 -0
- meshtrade/ledger/transaction/v1/service_pb2.pyi +33 -0
- meshtrade/ledger/transaction/v1/service_pb2_grpc.py +131 -0
- meshtrade/studio/instrument/v1/__init__.py +1 -1
- meshtrade/studio/instrument/v1/instrument_type_pb2.py +37 -0
- meshtrade/studio/instrument/v1/{type_pb2.pyi → instrument_type_pb2.pyi} +6 -0
- meshtrade/wallet/account/v1/__init__.py +0 -4
- meshtrade/wallet/account/v1/account_pb2.py +10 -10
- meshtrade/wallet/account/v1/account_pb2.pyi +3 -3
- meshtrade/wallet/account/v1/service_meshpy.py +0 -18
- meshtrade/wallet/account/v1/service_pb2.py +19 -27
- meshtrade/wallet/account/v1/service_pb2.pyi +0 -14
- meshtrade/wallet/account/v1/service_pb2_grpc.py +0 -49
- {meshtrade-1.16.0.dist-info → meshtrade-1.19.0.dist-info}/METADATA +1 -1
- {meshtrade-1.16.0.dist-info → meshtrade-1.19.0.dist-info}/RECORD +28 -23
- meshtrade/studio/instrument/v1/type_pb2.py +0 -37
- /meshtrade/studio/instrument/v1/{type_pb2_grpc.py → instrument_type_pb2_grpc.py} +0 -0
- {meshtrade-1.16.0.dist-info → meshtrade-1.19.0.dist-info}/WHEEL +0 -0
- {meshtrade-1.16.0.dist-info → meshtrade-1.19.0.dist-info}/top_level.txt +0 -0
meshtrade/common/grpc_client.py
CHANGED
|
@@ -200,3 +200,50 @@ class BaseGRPCClient(GRPCClient):
|
|
|
200
200
|
|
|
201
201
|
# Make the authenticated call
|
|
202
202
|
return method(request, metadata=metadata, timeout=timeout_seconds)
|
|
203
|
+
|
|
204
|
+
def _execute_streaming_method(self, method_name: str, request: Any, timeout: timedelta | None = None) -> Any:
|
|
205
|
+
"""Execute a server-side streaming gRPC method with authentication and error handling.
|
|
206
|
+
|
|
207
|
+
This is the streaming equivalent of _execute_method() - it handles validation,
|
|
208
|
+
authentication metadata injection, and timeout handling for server-side streaming calls.
|
|
209
|
+
|
|
210
|
+
Args:
|
|
211
|
+
method_name: The name of the gRPC stub streaming method to call
|
|
212
|
+
request: The request message
|
|
213
|
+
timeout: Optional timeout override
|
|
214
|
+
|
|
215
|
+
Returns:
|
|
216
|
+
Iterator yielding response messages from the stream
|
|
217
|
+
|
|
218
|
+
Raises:
|
|
219
|
+
grpc.RpcError: If the gRPC call fails
|
|
220
|
+
ValueError: If authentication credentials are missing or request validation fails
|
|
221
|
+
"""
|
|
222
|
+
# Validate request using protovalidate BEFORE initiating stream
|
|
223
|
+
try:
|
|
224
|
+
self._validator.validate(request)
|
|
225
|
+
except Exception as e:
|
|
226
|
+
raise ValueError(f"Request validation failed: {e}") from e
|
|
227
|
+
|
|
228
|
+
self._ensure_connected()
|
|
229
|
+
|
|
230
|
+
if not self._api_key or not self._group:
|
|
231
|
+
raise ValueError(
|
|
232
|
+
"API key and group are required for authentication. Provide them via constructor or set MESH_API_CREDENTIALS environment variable."
|
|
233
|
+
)
|
|
234
|
+
|
|
235
|
+
if self._stub is None:
|
|
236
|
+
raise RuntimeError("gRPC stub not initialized. Call _ensure_connected() first.")
|
|
237
|
+
|
|
238
|
+
# Get the streaming method from the stub
|
|
239
|
+
method = getattr(self._stub, method_name)
|
|
240
|
+
|
|
241
|
+
# Create authentication metadata (x-api-key, x-group headers)
|
|
242
|
+
metadata = create_auth_metadata(self._api_key, self._group)
|
|
243
|
+
|
|
244
|
+
# Use provided timeout or default
|
|
245
|
+
call_timeout = timeout or self._timeout
|
|
246
|
+
timeout_seconds = call_timeout.total_seconds()
|
|
247
|
+
|
|
248
|
+
# Make the authenticated streaming call with metadata
|
|
249
|
+
return method(request, metadata=metadata, timeout=timeout_seconds)
|
|
@@ -25,7 +25,7 @@ _sym_db = _symbol_database.Default()
|
|
|
25
25
|
from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(meshtrade/iam/api_user/v1/api_user.proto\x12\x19meshtrade.iam.api_user.v1\x1a\x1b\x62uf/validate/validate.proto\"\
|
|
28
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(meshtrade/iam/api_user/v1/api_user.proto\x12\x19meshtrade.iam.api_user.v1\x1a\x1b\x62uf/validate/validate.proto\"\x97\x06\n\x07\x41PIUser\x12\xc2\x01\n\x04name\x18\x01 \x01(\tB\xad\x01\xbaH\xa9\x01\xba\x01\xa5\x01\n\x14name.format.optional\x12\x36name must be empty or in the format api_users/{ULIDv2}\x1aUsize(this) == 0 || this.matches(\'^api_users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\')R\x04name\x12R\n\x05owner\x18\x02 \x01(\tB<\xbaH9r42/^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\x98\x01!\xc8\x01\x01R\x05owner\x12\xb4\x01\n\x0c\x64isplay_name\x18\x04 \x01(\tB\x90\x01\xbaH\x8c\x01r\x05\x10\x01\x18\xff\x01\xba\x01\x7f\n\x15\x64isplay_name.required\x12\x41\x64isplay name is required and must be between 1 and 255 characters\x1a#size(this) > 0 && size(this) <= 255\xc8\x01\x01R\x0b\x64isplayName\x12\xbe\x01\n\x05state\x18\x05 \x01(\x0e\x32\'.meshtrade.iam.api_user.v1.APIUserStateB\x7f\xbaH|\x82\x01\x02\x10\x01\xba\x01t\n\x0bstate.valid\x12/state must be a valid APIUserState if specified\x1a\x34int(this) == 0 || (int(this) >= 1 && int(this) <= 2)R\x05state\x12\x62\n\x05roles\x18\x06 \x03(\tBL\xbaHI\x92\x01\x46\"DrB2=^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}/[1-9][0-9]{6}$\x98\x01)R\x05roles\x12\x17\n\x07\x61pi_key\x18\x07 \x01(\tR\x06\x61piKey*f\n\x0c\x41PIUserState\x12\x1e\n\x1a\x41PI_USER_STATE_UNSPECIFIED\x10\x00\x12\x19\n\x15\x41PI_USER_STATE_ACTIVE\x10\x01\x12\x1b\n\x17\x41PI_USER_STATE_INACTIVE\x10\x02*\xa6\x01\n\rAPIUserAction\x12\x1f\n\x1b\x41PI_USER_ACTION_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x41PI_USER_ACTION_ACTIVATE\x10\x01\x12\x1e\n\x1a\x41PI_USER_ACTION_DEACTIVATE\x10\x02\x12\x1a\n\x16\x41PI_USER_ACTION_CREATE\x10\x03\x12\x1a\n\x16\x41PI_USER_ACTION_UPDATE\x10\x04\x42[\n co.meshtrade.api.iam.api_user.v1Z7github.com/meshtrade/api/go/iam/api_user/v1;api_user_v1b\x06proto3')
|
|
29
29
|
|
|
30
30
|
_globals = globals()
|
|
31
31
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -42,11 +42,11 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
42
42
|
_globals['_APIUSER'].fields_by_name['state']._loaded_options = None
|
|
43
43
|
_globals['_APIUSER'].fields_by_name['state']._serialized_options = b'\272H|\202\001\002\020\001\272\001t\n\013state.valid\022/state must be a valid APIUserState if specified\0324int(this) == 0 || (int(this) >= 1 && int(this) <= 2)'
|
|
44
44
|
_globals['_APIUSER'].fields_by_name['roles']._loaded_options = None
|
|
45
|
-
_globals['_APIUSER'].fields_by_name['roles']._serialized_options = b'\
|
|
46
|
-
_globals['_APIUSERSTATE']._serialized_start=
|
|
47
|
-
_globals['_APIUSERSTATE']._serialized_end=
|
|
48
|
-
_globals['_APIUSERACTION']._serialized_start=
|
|
49
|
-
_globals['_APIUSERACTION']._serialized_end=
|
|
45
|
+
_globals['_APIUSER'].fields_by_name['roles']._serialized_options = b'\272HI\222\001F\"DrB2=^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}/[1-9][0-9]{6}$\230\001)'
|
|
46
|
+
_globals['_APIUSERSTATE']._serialized_start=894
|
|
47
|
+
_globals['_APIUSERSTATE']._serialized_end=996
|
|
48
|
+
_globals['_APIUSERACTION']._serialized_start=999
|
|
49
|
+
_globals['_APIUSERACTION']._serialized_end=1165
|
|
50
50
|
_globals['_APIUSER']._serialized_start=101
|
|
51
|
-
_globals['_APIUSER']._serialized_end=
|
|
51
|
+
_globals['_APIUSER']._serialized_end=892
|
|
52
52
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -28,7 +28,7 @@ from meshtrade.iam.role.v1 import role_pb2 as meshtrade_dot_iam_dot_role_dot_v1_
|
|
|
28
28
|
from meshtrade.option.v1 import method_type_pb2 as meshtrade_dot_option_dot_v1_dot_method__type__pb2
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'meshtrade/iam/api_user/v1/service.proto\x12\x19meshtrade.iam.api_user.v1\x1a\x1b\x62uf/validate/validate.proto\x1a(meshtrade/iam/api_user/v1/api_user.proto\x1a meshtrade/iam/role/v1/role.proto\x1a%meshtrade/option/v1/method_type.proto\"h\n\x11GetApiUserRequest\x12S\n\x04name\x18\x01 \x01(\tB?\xbaH<r722^api_users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\x98\x01$\xc8\x01\x01R\x04name\"Z\n\x1aGetApiUserByKeyHashRequest\x12<\n\x08key_hash\x18\x01 \x01(\tB!\xbaH\x1er\x19\x32\x14^[A-Za-z0-9+/]{43}=$\x98\x01,\xc8\x01\x01R\x07keyHash\"]\n\x14\x43reateApiUserRequest\x12\x45\n\x08\x61pi_user\x18\x01 \x01(\x0b\x32\".meshtrade.iam.api_user.v1.APIUserB\x06\xbaH\x03\xc8\x01\x01R\x07\x61piUser\"\
|
|
31
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'meshtrade/iam/api_user/v1/service.proto\x12\x19meshtrade.iam.api_user.v1\x1a\x1b\x62uf/validate/validate.proto\x1a(meshtrade/iam/api_user/v1/api_user.proto\x1a meshtrade/iam/role/v1/role.proto\x1a%meshtrade/option/v1/method_type.proto\"h\n\x11GetApiUserRequest\x12S\n\x04name\x18\x01 \x01(\tB?\xbaH<r722^api_users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\x98\x01$\xc8\x01\x01R\x04name\"Z\n\x1aGetApiUserByKeyHashRequest\x12<\n\x08key_hash\x18\x01 \x01(\tB!\xbaH\x1er\x19\x32\x14^[A-Za-z0-9+/]{43}=$\x98\x01,\xc8\x01\x01R\x07keyHash\"]\n\x14\x43reateApiUserRequest\x12\x45\n\x08\x61pi_user\x18\x01 \x01(\x0b\x32\".meshtrade.iam.api_user.v1.APIUserB\x06\xbaH\x03\xc8\x01\x01R\x07\x61piUser\"\xd1\x01\n\x1a\x41ssignRoleToAPIUserRequest\x12S\n\x04name\x18\x01 \x01(\tB?\xbaH<r722^api_users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\x98\x01$\xc8\x01\x01R\x04name\x12^\n\x04role\x18\x04 \x01(\tBJ\xbaHGrB2=^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}/[1-9][0-9]{6}$\x98\x01)\xc8\x01\x01R\x04role\"\xd3\x01\n\x1cRevokeRoleFromAPIUserRequest\x12S\n\x04name\x18\x01 \x01(\tB?\xbaH<r722^api_users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\x98\x01$\xc8\x01\x01R\x04name\x12^\n\x04role\x18\x02 \x01(\tBJ\xbaHGrB2=^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}/[1-9][0-9]{6}$\x98\x01)\xc8\x01\x01R\x04role\"\x15\n\x13ListApiUsersRequest\"W\n\x14ListApiUsersResponse\x12?\n\tapi_users\x18\x01 \x03(\x0b\x32\".meshtrade.iam.api_user.v1.APIUserR\x08\x61piUsers\":\n\x15SearchApiUsersRequest\x12!\n\x0c\x64isplay_name\x18\x01 \x01(\tR\x0b\x64isplayName\"Y\n\x16SearchApiUsersResponse\x12?\n\tapi_users\x18\x01 \x03(\x0b\x32\".meshtrade.iam.api_user.v1.APIUserR\x08\x61piUsers\"m\n\x16\x41\x63tivateApiUserRequest\x12S\n\x04name\x18\x01 \x01(\tB?\xbaH<r722^api_users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\x98\x01$\xc8\x01\x01R\x04name\"o\n\x18\x44\x65\x61\x63tivateApiUserRequest\x12S\n\x04name\x18\x01 \x01(\tB?\xbaH<r722^api_users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\x98\x01$\xc8\x01\x01R\x04name2\xca\t\n\x0e\x41piUserService\x12z\n\nGetApiUser\x12,.meshtrade.iam.api_user.v1.GetApiUserRequest\x1a\".meshtrade.iam.api_user.v1.APIUser\"\x1a\xa0\xb5\x18\x01\xaa\xb5\x18\x12\n\x10\xc0\x8d\xb7\x01\xc1\x8d\xb7\x01\xc2\x8d\xb7\x01\xc3\x8d\xb7\x01\x12x\n\rCreateApiUser\x12/.meshtrade.iam.api_user.v1.CreateApiUserRequest\x1a\".meshtrade.iam.api_user.v1.APIUser\"\x12\xa0\xb5\x18\x02\xaa\xb5\x18\n\n\x08\xc0\x8d\xb7\x01\xc2\x8d\xb7\x01\x12\x84\x01\n\x13\x41ssignRoleToAPIUser\x12\x35.meshtrade.iam.api_user.v1.AssignRoleToAPIUserRequest\x1a\".meshtrade.iam.api_user.v1.APIUser\"\x12\xa0\xb5\x18\x02\xaa\xb5\x18\n\n\x08\xc0\x8d\xb7\x01\xc2\x8d\xb7\x01\x12\x88\x01\n\x15RevokeRoleFromAPIUser\x12\x37.meshtrade.iam.api_user.v1.RevokeRoleFromAPIUserRequest\x1a\".meshtrade.iam.api_user.v1.APIUser\"\x12\xa0\xb5\x18\x02\xaa\xb5\x18\n\n\x08\xc0\x8d\xb7\x01\xc2\x8d\xb7\x01\x12\x8b\x01\n\x0cListApiUsers\x12..meshtrade.iam.api_user.v1.ListApiUsersRequest\x1a/.meshtrade.iam.api_user.v1.ListApiUsersResponse\"\x1a\xa0\xb5\x18\x01\xaa\xb5\x18\x12\n\x10\xc0\x8d\xb7\x01\xc1\x8d\xb7\x01\xc2\x8d\xb7\x01\xc3\x8d\xb7\x01\x12\x91\x01\n\x0eSearchApiUsers\x12\x30.meshtrade.iam.api_user.v1.SearchApiUsersRequest\x1a\x31.meshtrade.iam.api_user.v1.SearchApiUsersResponse\"\x1a\xa0\xb5\x18\x01\xaa\xb5\x18\x12\n\x10\xc0\x8d\xb7\x01\xc1\x8d\xb7\x01\xc2\x8d\xb7\x01\xc3\x8d\xb7\x01\x12|\n\x0f\x41\x63tivateApiUser\x12\x31.meshtrade.iam.api_user.v1.ActivateApiUserRequest\x1a\".meshtrade.iam.api_user.v1.APIUser\"\x12\xa0\xb5\x18\x02\xaa\xb5\x18\n\n\x08\xc0\x8d\xb7\x01\xc2\x8d\xb7\x01\x12\x80\x01\n\x11\x44\x65\x61\x63tivateApiUser\x12\x33.meshtrade.iam.api_user.v1.DeactivateApiUserRequest\x1a\".meshtrade.iam.api_user.v1.APIUser\"\x12\xa0\xb5\x18\x02\xaa\xb5\x18\n\n\x08\xc0\x8d\xb7\x01\xc2\x8d\xb7\x01\x12\x8c\x01\n\x13GetApiUserByKeyHash\x12\x35.meshtrade.iam.api_user.v1.GetApiUserByKeyHashRequest\x1a\".meshtrade.iam.api_user.v1.APIUser\"\x1a\xa0\xb5\x18\x01\xaa\xb5\x18\x12\n\x10\xc0\x8d\xb7\x01\xc1\x8d\xb7\x01\xc2\x8d\xb7\x01\xc3\x8d\xb7\x01\x42[\n co.meshtrade.api.iam.api_user.v1Z7github.com/meshtrade/api/go/iam/api_user/v1;api_user_v1b\x06proto3')
|
|
32
32
|
|
|
33
33
|
_globals = globals()
|
|
34
34
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -45,11 +45,11 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
45
45
|
_globals['_ASSIGNROLETOAPIUSERREQUEST'].fields_by_name['name']._loaded_options = None
|
|
46
46
|
_globals['_ASSIGNROLETOAPIUSERREQUEST'].fields_by_name['name']._serialized_options = b'\272H<r722^api_users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\230\001$\310\001\001'
|
|
47
47
|
_globals['_ASSIGNROLETOAPIUSERREQUEST'].fields_by_name['role']._loaded_options = None
|
|
48
|
-
_globals['_ASSIGNROLETOAPIUSERREQUEST'].fields_by_name['role']._serialized_options = b'\
|
|
48
|
+
_globals['_ASSIGNROLETOAPIUSERREQUEST'].fields_by_name['role']._serialized_options = b'\272HGrB2=^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}/[1-9][0-9]{6}$\230\001)\310\001\001'
|
|
49
49
|
_globals['_REVOKEROLEFROMAPIUSERREQUEST'].fields_by_name['name']._loaded_options = None
|
|
50
50
|
_globals['_REVOKEROLEFROMAPIUSERREQUEST'].fields_by_name['name']._serialized_options = b'\272H<r722^api_users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\230\001$\310\001\001'
|
|
51
51
|
_globals['_REVOKEROLEFROMAPIUSERREQUEST'].fields_by_name['role']._loaded_options = None
|
|
52
|
-
_globals['_REVOKEROLEFROMAPIUSERREQUEST'].fields_by_name['role']._serialized_options = b'\
|
|
52
|
+
_globals['_REVOKEROLEFROMAPIUSERREQUEST'].fields_by_name['role']._serialized_options = b'\272HGrB2=^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}/[1-9][0-9]{6}$\230\001)\310\001\001'
|
|
53
53
|
_globals['_ACTIVATEAPIUSERREQUEST'].fields_by_name['name']._loaded_options = None
|
|
54
54
|
_globals['_ACTIVATEAPIUSERREQUEST'].fields_by_name['name']._serialized_options = b'\272H<r722^api_users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\230\001$\310\001\001'
|
|
55
55
|
_globals['_DEACTIVATEAPIUSERREQUEST'].fields_by_name['name']._loaded_options = None
|
|
@@ -79,21 +79,21 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
79
79
|
_globals['_CREATEAPIUSERREQUEST']._serialized_start=412
|
|
80
80
|
_globals['_CREATEAPIUSERREQUEST']._serialized_end=505
|
|
81
81
|
_globals['_ASSIGNROLETOAPIUSERREQUEST']._serialized_start=508
|
|
82
|
-
_globals['_ASSIGNROLETOAPIUSERREQUEST']._serialized_end=
|
|
83
|
-
_globals['_REVOKEROLEFROMAPIUSERREQUEST']._serialized_start=
|
|
84
|
-
_globals['_REVOKEROLEFROMAPIUSERREQUEST']._serialized_end=
|
|
85
|
-
_globals['_LISTAPIUSERSREQUEST']._serialized_start=
|
|
86
|
-
_globals['_LISTAPIUSERSREQUEST']._serialized_end=
|
|
87
|
-
_globals['_LISTAPIUSERSRESPONSE']._serialized_start=
|
|
88
|
-
_globals['_LISTAPIUSERSRESPONSE']._serialized_end=
|
|
89
|
-
_globals['_SEARCHAPIUSERSREQUEST']._serialized_start=
|
|
90
|
-
_globals['_SEARCHAPIUSERSREQUEST']._serialized_end=
|
|
91
|
-
_globals['_SEARCHAPIUSERSRESPONSE']._serialized_start=
|
|
92
|
-
_globals['_SEARCHAPIUSERSRESPONSE']._serialized_end=
|
|
93
|
-
_globals['_ACTIVATEAPIUSERREQUEST']._serialized_start=
|
|
94
|
-
_globals['_ACTIVATEAPIUSERREQUEST']._serialized_end=
|
|
95
|
-
_globals['_DEACTIVATEAPIUSERREQUEST']._serialized_start=
|
|
96
|
-
_globals['_DEACTIVATEAPIUSERREQUEST']._serialized_end=
|
|
97
|
-
_globals['_APIUSERSERVICE']._serialized_start=
|
|
98
|
-
_globals['_APIUSERSERVICE']._serialized_end=
|
|
82
|
+
_globals['_ASSIGNROLETOAPIUSERREQUEST']._serialized_end=717
|
|
83
|
+
_globals['_REVOKEROLEFROMAPIUSERREQUEST']._serialized_start=720
|
|
84
|
+
_globals['_REVOKEROLEFROMAPIUSERREQUEST']._serialized_end=931
|
|
85
|
+
_globals['_LISTAPIUSERSREQUEST']._serialized_start=933
|
|
86
|
+
_globals['_LISTAPIUSERSREQUEST']._serialized_end=954
|
|
87
|
+
_globals['_LISTAPIUSERSRESPONSE']._serialized_start=956
|
|
88
|
+
_globals['_LISTAPIUSERSRESPONSE']._serialized_end=1043
|
|
89
|
+
_globals['_SEARCHAPIUSERSREQUEST']._serialized_start=1045
|
|
90
|
+
_globals['_SEARCHAPIUSERSREQUEST']._serialized_end=1103
|
|
91
|
+
_globals['_SEARCHAPIUSERSRESPONSE']._serialized_start=1105
|
|
92
|
+
_globals['_SEARCHAPIUSERSRESPONSE']._serialized_end=1194
|
|
93
|
+
_globals['_ACTIVATEAPIUSERREQUEST']._serialized_start=1196
|
|
94
|
+
_globals['_ACTIVATEAPIUSERREQUEST']._serialized_end=1305
|
|
95
|
+
_globals['_DEACTIVATEAPIUSERREQUEST']._serialized_start=1307
|
|
96
|
+
_globals['_DEACTIVATEAPIUSERREQUEST']._serialized_end=1418
|
|
97
|
+
_globals['_APIUSERSERVICE']._serialized_start=1421
|
|
98
|
+
_globals['_APIUSERSERVICE']._serialized_end=2647
|
|
99
99
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -25,7 +25,7 @@ _sym_db = _symbol_database.Default()
|
|
|
25
25
|
from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n meshtrade/iam/role/v1/role.proto\x12\x15meshtrade.iam.role.v1\x1a google/protobuf/descriptor.proto\"=\n\x08RoleList\x12\x31\n\x05roles\x18\x01 \x03(\x0e\x32\x1b.meshtrade.iam.role.v1.RoleR\x05roles*\
|
|
28
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n meshtrade/iam/role/v1/role.proto\x12\x15meshtrade.iam.role.v1\x1a google/protobuf/descriptor.proto\"=\n\x08RoleList\x12\x31\n\x05roles\x18\x01 \x03(\x0e\x32\x1b.meshtrade.iam.role.v1.RoleR\x05roles*\xee\x06\n\x04Role\x12\x14\n\x10ROLE_UNSPECIFIED\x10\x00\x12\x17\n\x11ROLE_WALLET_ADMIN\x10\xc0\x84=\x12\x18\n\x12ROLE_WALLET_VIEWER\x10\xc1\x84=\x12\x1f\n\x19ROLE_WALLET_ACCOUNT_ADMIN\x10\xc2\x84=\x12 \n\x1aROLE_WALLET_ACCOUNT_VIEWER\x10\xc3\x84=\x12\x1b\n\x15ROLE_COMPLIANCE_ADMIN\x10\x80\x89z\x12\x1c\n\x16ROLE_COMPLIANCE_VIEWER\x10\x81\x89z\x12\"\n\x1cROLE_COMPLIANCE_CLIENT_ADMIN\x10\x82\x89z\x12#\n\x1dROLE_COMPLIANCE_CLIENT_VIEWER\x10\x83\x89z\x12\x15\n\x0eROLE_IAM_ADMIN\x10\xc0\x8d\xb7\x01\x12\x16\n\x0fROLE_IAM_VIEWER\x10\xc1\x8d\xb7\x01\x12\x1e\n\x17ROLE_IAM_API_USER_ADMIN\x10\xc2\x8d\xb7\x01\x12\x1f\n\x18ROLE_IAM_API_USER_VIEWER\x10\xc3\x8d\xb7\x01\x12\x1b\n\x14ROLE_IAM_GROUP_ADMIN\x10\xc4\x8d\xb7\x01\x12\x1c\n\x15ROLE_IAM_GROUP_VIEWER\x10\xc5\x8d\xb7\x01\x12\x1a\n\x13ROLE_IAM_USER_ADMIN\x10\xc6\x8d\xb7\x01\x12\x1b\n\x14ROLE_IAM_USER_VIEWER\x10\xc7\x8d\xb7\x01\x12\x18\n\x11ROLE_STUDIO_ADMIN\x10\x80\x92\xf4\x01\x12\x19\n\x12ROLE_STUDIO_VIEWER\x10\x81\x92\xf4\x01\x12#\n\x1cROLE_STUDIO_INSTRUMENT_ADMIN\x10\x82\x92\xf4\x01\x12$\n\x1dROLE_STUDIO_INSTRUMENT_VIEWER\x10\x83\x92\xf4\x01\x12\x19\n\x12ROLE_TRADING_ADMIN\x10\xc0\x96\xb1\x02\x12\x1a\n\x13ROLE_TRADING_VIEWER\x10\xc1\x96\xb1\x02\x12\x1b\n\x14ROLE_REPORTING_ADMIN\x10\x80\x9b\xee\x02\x12\x1c\n\x15ROLE_REPORTING_VIEWER\x10\x81\x9b\xee\x02\x12\x18\n\x11ROLE_LEDGER_ADMIN\x10\xc0\x9f\xab\x03\x12\x19\n\x12ROLE_LEDGER_VIEWER\x10\xc1\x9f\xab\x03\x12$\n\x1dROLE_LEDGER_TRANSACTION_ADMIN\x10\xc2\x9f\xab\x03\x12%\n\x1eROLE_LEDGER_TRANSACTION_VIEWER\x10\xc3\x9f\xab\x03:g\n\rmessage_roles\x12\x1f.google.protobuf.MessageOptions\x18\xd6\x86\x03 \x01(\x0b\x32\x1f.meshtrade.iam.role.v1.RoleListR\x0cmessageRoles:W\n\x05roles\x12\x1e.google.protobuf.MethodOptions\x18\xd5\x86\x03 \x01(\x0b\x32\x1f.meshtrade.iam.role.v1.RoleListR\x05rolesBO\n\x1c\x63o.meshtrade.api.iam.role.v1Z/github.com/meshtrade/api/go/iam/role/v1;role_v1b\x06proto3')
|
|
29
29
|
|
|
30
30
|
_globals = globals()
|
|
31
31
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -34,7 +34,7 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
34
34
|
_globals['DESCRIPTOR']._loaded_options = None
|
|
35
35
|
_globals['DESCRIPTOR']._serialized_options = b'\n\034co.meshtrade.api.iam.role.v1Z/github.com/meshtrade/api/go/iam/role/v1;role_v1'
|
|
36
36
|
_globals['_ROLE']._serialized_start=157
|
|
37
|
-
_globals['_ROLE']._serialized_end=
|
|
37
|
+
_globals['_ROLE']._serialized_end=1035
|
|
38
38
|
_globals['_ROLELIST']._serialized_start=93
|
|
39
39
|
_globals['_ROLELIST']._serialized_end=154
|
|
40
40
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -35,6 +35,10 @@ class Role(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
|
35
35
|
ROLE_TRADING_VIEWER: _ClassVar[Role]
|
|
36
36
|
ROLE_REPORTING_ADMIN: _ClassVar[Role]
|
|
37
37
|
ROLE_REPORTING_VIEWER: _ClassVar[Role]
|
|
38
|
+
ROLE_LEDGER_ADMIN: _ClassVar[Role]
|
|
39
|
+
ROLE_LEDGER_VIEWER: _ClassVar[Role]
|
|
40
|
+
ROLE_LEDGER_TRANSACTION_ADMIN: _ClassVar[Role]
|
|
41
|
+
ROLE_LEDGER_TRANSACTION_VIEWER: _ClassVar[Role]
|
|
38
42
|
ROLE_UNSPECIFIED: Role
|
|
39
43
|
ROLE_WALLET_ADMIN: Role
|
|
40
44
|
ROLE_WALLET_VIEWER: Role
|
|
@@ -60,6 +64,10 @@ ROLE_TRADING_ADMIN: Role
|
|
|
60
64
|
ROLE_TRADING_VIEWER: Role
|
|
61
65
|
ROLE_REPORTING_ADMIN: Role
|
|
62
66
|
ROLE_REPORTING_VIEWER: Role
|
|
67
|
+
ROLE_LEDGER_ADMIN: Role
|
|
68
|
+
ROLE_LEDGER_VIEWER: Role
|
|
69
|
+
ROLE_LEDGER_TRANSACTION_ADMIN: Role
|
|
70
|
+
ROLE_LEDGER_TRANSACTION_VIEWER: Role
|
|
63
71
|
MESSAGE_ROLES_FIELD_NUMBER: _ClassVar[int]
|
|
64
72
|
message_roles: _descriptor.FieldDescriptor
|
|
65
73
|
ROLES_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -29,7 +29,7 @@ from meshtrade.option.v1 import method_type_pb2 as meshtrade_dot_option_dot_v1_d
|
|
|
29
29
|
from meshtrade.type.v1 import sorting_pb2 as meshtrade_dot_type_dot_v1_dot_sorting__pb2
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#meshtrade/iam/user/v1/service.proto\x12\x15meshtrade.iam.user.v1\x1a\x1b\x62uf/validate/validate.proto\x1a meshtrade/iam/role/v1/role.proto\x1a meshtrade/iam/user/v1/user.proto\x1a%meshtrade/option/v1/method_type.proto\x1a\x1fmeshtrade/type/v1/sorting.proto\"\
|
|
32
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#meshtrade/iam/user/v1/service.proto\x12\x15meshtrade.iam.user.v1\x1a\x1b\x62uf/validate/validate.proto\x1a meshtrade/iam/role/v1/role.proto\x1a meshtrade/iam/user/v1/user.proto\x1a%meshtrade/option/v1/method_type.proto\x1a\x1fmeshtrade/type/v1/sorting.proto\"\xc7\x01\n\x17\x41ssignRoleToUserRequest\x12L\n\x04name\x18\x01 \x01(\tB8\xbaH5r32.^users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\x98\x01 R\x04name\x12^\n\x04role\x18\x04 \x01(\tBJ\xbaHGrB2=^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}/[1-9][0-9]{6}$\x98\x01)\xc8\x01\x01R\x04role\"a\n\x0eGetUserRequest\x12O\n\x04name\x18\x01 \x01(\tB;\xbaH8r32.^users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\x98\x01 \xc8\x01\x01R\x04name\"\x94\x02\n\x10ListUsersRequest\x12I\n\x07sorting\x18\x01 \x01(\x0b\x32/.meshtrade.iam.user.v1.ListUsersRequest.SortingR\x07sorting\x1a\xb4\x01\n\x07Sorting\x12r\n\x05\x66ield\x18\x01 \x01(\tB\\\xbaHYr\tR\x00R\x05\x65mail\xba\x01K\n\x0b\x66ield.valid\x12%field must be one of: email, or empty\x1a\x15this in [\'\', \'email\']R\x05\x66ield\x12\x35\n\x05order\x18\x02 \x01(\x0e\x32\x1f.meshtrade.type.v1.SortingOrderR\x05order\"F\n\x11ListUsersResponse\x12\x31\n\x05users\x18\x01 \x03(\x0b\x32\x1b.meshtrade.iam.user.v1.UserR\x05users\"\xae\x02\n\x12SearchUsersRequest\x12\x14\n\x05\x65mail\x18\x01 \x01(\tR\x05\x65mail\x12K\n\x07sorting\x18\x02 \x01(\x0b\x32\x31.meshtrade.iam.user.v1.SearchUsersRequest.SortingR\x07sorting\x1a\xb4\x01\n\x07Sorting\x12r\n\x05\x66ield\x18\x01 \x01(\tB\\\xbaHYr\tR\x00R\x05\x65mail\xba\x01K\n\x0b\x66ield.valid\x12%field must be one of: email, or empty\x1a\x15this in [\'\', \'email\']R\x05\x66ield\x12\x35\n\x05order\x18\x02 \x01(\x0e\x32\x1f.meshtrade.type.v1.SortingOrderR\x05order\"H\n\x13SearchUsersResponse\x12\x31\n\x05users\x18\x01 \x03(\x0b\x32\x1b.meshtrade.iam.user.v1.UserR\x05users\"L\n\x11\x43reateUserRequest\x12\x37\n\x04user\x18\x01 \x01(\x0b\x32\x1b.meshtrade.iam.user.v1.UserB\x06\xbaH\x03\xc8\x01\x01R\x04user\"L\n\x11UpdateUserRequest\x12\x37\n\x04user\x18\x01 \x01(\x0b\x32\x1b.meshtrade.iam.user.v1.UserB\x06\xbaH\x03\xc8\x01\x01R\x04user2\xbe\x05\n\x0bUserService\x12s\n\x10\x41ssignRoleToUser\x12..meshtrade.iam.user.v1.AssignRoleToUserRequest\x1a\x1b.meshtrade.iam.user.v1.User\"\x12\xa0\xb5\x18\x02\xaa\xb5\x18\n\n\x08\xc0\x8d\xb7\x01\xc6\x8d\xb7\x01\x12i\n\x07GetUser\x12%.meshtrade.iam.user.v1.GetUserRequest\x1a\x1b.meshtrade.iam.user.v1.User\"\x1a\xa0\xb5\x18\x01\xaa\xb5\x18\x12\n\x10\xc0\x8d\xb7\x01\xc1\x8d\xb7\x01\xc6\x8d\xb7\x01\xc7\x8d\xb7\x01\x12z\n\tListUsers\x12\'.meshtrade.iam.user.v1.ListUsersRequest\x1a(.meshtrade.iam.user.v1.ListUsersResponse\"\x1a\xa0\xb5\x18\x01\xaa\xb5\x18\x12\n\x10\xc0\x8d\xb7\x01\xc1\x8d\xb7\x01\xc6\x8d\xb7\x01\xc7\x8d\xb7\x01\x12\x80\x01\n\x0bSearchUsers\x12).meshtrade.iam.user.v1.SearchUsersRequest\x1a*.meshtrade.iam.user.v1.SearchUsersResponse\"\x1a\xa0\xb5\x18\x01\xaa\xb5\x18\x12\n\x10\xc0\x8d\xb7\x01\xc1\x8d\xb7\x01\xc6\x8d\xb7\x01\xc7\x8d\xb7\x01\x12g\n\nCreateUser\x12(.meshtrade.iam.user.v1.CreateUserRequest\x1a\x1b.meshtrade.iam.user.v1.User\"\x12\xa0\xb5\x18\x02\xaa\xb5\x18\n\n\x08\xc0\x8d\xb7\x01\xc6\x8d\xb7\x01\x12g\n\nUpdateUser\x12(.meshtrade.iam.user.v1.UpdateUserRequest\x1a\x1b.meshtrade.iam.user.v1.User\"\x12\xa0\xb5\x18\x02\xaa\xb5\x18\n\n\x08\xc0\x8d\xb7\x01\xc6\x8d\xb7\x01\x42O\n\x1c\x63o.meshtrade.api.iam.user.v1Z/github.com/meshtrade/api/go/iam/user/v1;user_v1b\x06proto3')
|
|
33
33
|
|
|
34
34
|
_globals = globals()
|
|
35
35
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -40,7 +40,7 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
40
40
|
_globals['_ASSIGNROLETOUSERREQUEST'].fields_by_name['name']._loaded_options = None
|
|
41
41
|
_globals['_ASSIGNROLETOUSERREQUEST'].fields_by_name['name']._serialized_options = b'\272H5r32.^users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\230\001 '
|
|
42
42
|
_globals['_ASSIGNROLETOUSERREQUEST'].fields_by_name['role']._loaded_options = None
|
|
43
|
-
_globals['_ASSIGNROLETOUSERREQUEST'].fields_by_name['role']._serialized_options = b'\
|
|
43
|
+
_globals['_ASSIGNROLETOUSERREQUEST'].fields_by_name['role']._serialized_options = b'\272HGrB2=^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}/[1-9][0-9]{6}$\230\001)\310\001\001'
|
|
44
44
|
_globals['_GETUSERREQUEST'].fields_by_name['name']._loaded_options = None
|
|
45
45
|
_globals['_GETUSERREQUEST'].fields_by_name['name']._serialized_options = b'\272H8r32.^users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\230\001 \310\001\001'
|
|
46
46
|
_globals['_LISTUSERSREQUEST_SORTING'].fields_by_name['field']._loaded_options = None
|
|
@@ -64,25 +64,25 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
64
64
|
_globals['_USERSERVICE'].methods_by_name['UpdateUser']._loaded_options = None
|
|
65
65
|
_globals['_USERSERVICE'].methods_by_name['UpdateUser']._serialized_options = b'\240\265\030\002\252\265\030\n\n\010\300\215\267\001\306\215\267\001'
|
|
66
66
|
_globals['_ASSIGNROLETOUSERREQUEST']._serialized_start=232
|
|
67
|
-
_globals['_ASSIGNROLETOUSERREQUEST']._serialized_end=
|
|
68
|
-
_globals['_GETUSERREQUEST']._serialized_start=
|
|
69
|
-
_globals['_GETUSERREQUEST']._serialized_end=
|
|
70
|
-
_globals['_LISTUSERSREQUEST']._serialized_start=
|
|
71
|
-
_globals['_LISTUSERSREQUEST']._serialized_end=
|
|
72
|
-
_globals['_LISTUSERSREQUEST_SORTING']._serialized_start=
|
|
73
|
-
_globals['_LISTUSERSREQUEST_SORTING']._serialized_end=
|
|
74
|
-
_globals['_LISTUSERSRESPONSE']._serialized_start=
|
|
75
|
-
_globals['_LISTUSERSRESPONSE']._serialized_end=
|
|
76
|
-
_globals['_SEARCHUSERSREQUEST']._serialized_start=
|
|
77
|
-
_globals['_SEARCHUSERSREQUEST']._serialized_end=
|
|
78
|
-
_globals['_SEARCHUSERSREQUEST_SORTING']._serialized_start=
|
|
79
|
-
_globals['_SEARCHUSERSREQUEST_SORTING']._serialized_end=
|
|
80
|
-
_globals['_SEARCHUSERSRESPONSE']._serialized_start=
|
|
81
|
-
_globals['_SEARCHUSERSRESPONSE']._serialized_end=
|
|
82
|
-
_globals['_CREATEUSERREQUEST']._serialized_start=
|
|
83
|
-
_globals['_CREATEUSERREQUEST']._serialized_end=
|
|
84
|
-
_globals['_UPDATEUSERREQUEST']._serialized_start=
|
|
85
|
-
_globals['_UPDATEUSERREQUEST']._serialized_end=
|
|
86
|
-
_globals['_USERSERVICE']._serialized_start=
|
|
87
|
-
_globals['_USERSERVICE']._serialized_end=
|
|
67
|
+
_globals['_ASSIGNROLETOUSERREQUEST']._serialized_end=431
|
|
68
|
+
_globals['_GETUSERREQUEST']._serialized_start=433
|
|
69
|
+
_globals['_GETUSERREQUEST']._serialized_end=530
|
|
70
|
+
_globals['_LISTUSERSREQUEST']._serialized_start=533
|
|
71
|
+
_globals['_LISTUSERSREQUEST']._serialized_end=809
|
|
72
|
+
_globals['_LISTUSERSREQUEST_SORTING']._serialized_start=629
|
|
73
|
+
_globals['_LISTUSERSREQUEST_SORTING']._serialized_end=809
|
|
74
|
+
_globals['_LISTUSERSRESPONSE']._serialized_start=811
|
|
75
|
+
_globals['_LISTUSERSRESPONSE']._serialized_end=881
|
|
76
|
+
_globals['_SEARCHUSERSREQUEST']._serialized_start=884
|
|
77
|
+
_globals['_SEARCHUSERSREQUEST']._serialized_end=1186
|
|
78
|
+
_globals['_SEARCHUSERSREQUEST_SORTING']._serialized_start=629
|
|
79
|
+
_globals['_SEARCHUSERSREQUEST_SORTING']._serialized_end=809
|
|
80
|
+
_globals['_SEARCHUSERSRESPONSE']._serialized_start=1188
|
|
81
|
+
_globals['_SEARCHUSERSRESPONSE']._serialized_end=1260
|
|
82
|
+
_globals['_CREATEUSERREQUEST']._serialized_start=1262
|
|
83
|
+
_globals['_CREATEUSERREQUEST']._serialized_end=1338
|
|
84
|
+
_globals['_UPDATEUSERREQUEST']._serialized_start=1340
|
|
85
|
+
_globals['_UPDATEUSERREQUEST']._serialized_end=1416
|
|
86
|
+
_globals['_USERSERVICE']._serialized_start=1419
|
|
87
|
+
_globals['_USERSERVICE']._serialized_end=2121
|
|
88
88
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -25,7 +25,7 @@ _sym_db = _symbol_database.Default()
|
|
|
25
25
|
from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n meshtrade/iam/user/v1/user.proto\x12\x15meshtrade.iam.user.v1\x1a\x1b\x62uf/validate/validate.proto\"\
|
|
28
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n meshtrade/iam/user/v1/user.proto\x12\x15meshtrade.iam.user.v1\x1a\x1b\x62uf/validate/validate.proto\"\x9d\x03\n\x04User\x12\xba\x01\n\x04name\x18\x01 \x01(\tB\xa5\x01\xbaH\xa1\x01\xba\x01\x9d\x01\n\x14name.format.optional\x12\x32name must be empty or in the format users/{ULIDv2}\x1aQsize(this) == 0 || this.matches(\'^users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\')R\x04name\x12R\n\x05owner\x18\x02 \x01(\tB<\xbaH9r42/^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\x98\x01!\xc8\x01\x01R\x05owner\x12 \n\x05\x65mail\x18\x04 \x01(\tB\n\xbaH\x07r\x02`\x01\xc8\x01\x01R\x05\x65mail\x12\x62\n\x05roles\x18\x06 \x03(\tBL\xbaHI\x92\x01\x46\"DrB2=^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}/[1-9][0-9]{6}$\x98\x01)R\x05rolesBO\n\x1c\x63o.meshtrade.api.iam.user.v1Z/github.com/meshtrade/api/go/iam/user/v1;user_v1b\x06proto3')
|
|
29
29
|
|
|
30
30
|
_globals = globals()
|
|
31
31
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -40,7 +40,7 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
40
40
|
_globals['_USER'].fields_by_name['email']._loaded_options = None
|
|
41
41
|
_globals['_USER'].fields_by_name['email']._serialized_options = b'\272H\007r\002`\001\310\001\001'
|
|
42
42
|
_globals['_USER'].fields_by_name['roles']._loaded_options = None
|
|
43
|
-
_globals['_USER'].fields_by_name['roles']._serialized_options = b'\
|
|
43
|
+
_globals['_USER'].fields_by_name['roles']._serialized_options = b'\272HI\222\001F\"DrB2=^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}/[1-9][0-9]{6}$\230\001)'
|
|
44
44
|
_globals['_USER']._serialized_start=89
|
|
45
|
-
_globals['_USER']._serialized_end=
|
|
45
|
+
_globals['_USER']._serialized_end=502
|
|
46
46
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -13,8 +13,22 @@
|
|
|
13
13
|
# ===================================================================
|
|
14
14
|
|
|
15
15
|
# Generated protobuf imports
|
|
16
|
-
from .transaction_action_pb2 import TransactionAction
|
|
17
16
|
from .transaction_state_pb2 import TransactionState
|
|
17
|
+
from .service_pb2 import (
|
|
18
|
+
GetTransactionStateRequest,
|
|
19
|
+
GetTransactionStateResponse,
|
|
20
|
+
MonitorTransactionStateRequest,
|
|
21
|
+
MonitorTransactionStateResponse,
|
|
22
|
+
)
|
|
23
|
+
from .transaction_action_pb2 import TransactionAction
|
|
24
|
+
|
|
25
|
+
# Generated service imports
|
|
26
|
+
from .service_meshpy import (
|
|
27
|
+
TransactionService,
|
|
28
|
+
TransactionServiceGRPCClient,
|
|
29
|
+
TransactionServiceGRPCClientInterface,
|
|
30
|
+
)
|
|
31
|
+
from .service_options_meshpy import ClientOptions
|
|
18
32
|
|
|
19
33
|
# ===================================================================
|
|
20
34
|
# END OF AUTO-GENERATED SECTION
|
|
@@ -36,6 +50,14 @@ from .transaction_state_pb2 import TransactionState
|
|
|
36
50
|
# Combined auto-generated and manual exports
|
|
37
51
|
__all__ = [
|
|
38
52
|
# Generated exports
|
|
53
|
+
"ClientOptions",
|
|
54
|
+
"GetTransactionStateRequest",
|
|
55
|
+
"GetTransactionStateResponse",
|
|
56
|
+
"MonitorTransactionStateRequest",
|
|
57
|
+
"MonitorTransactionStateResponse",
|
|
39
58
|
"TransactionAction",
|
|
59
|
+
"TransactionService",
|
|
60
|
+
"TransactionServiceGRPCClient",
|
|
61
|
+
"TransactionServiceGRPCClientInterface",
|
|
40
62
|
"TransactionState",
|
|
41
63
|
]
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# Code generated by protoc-gen-meshpy. DO NOT EDIT.
|
|
2
|
+
# source: meshtrade/ledger/transaction/v1/service.proto
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
TransactionService gRPC service wrapper with authentication, timeouts, and resource management.
|
|
6
|
+
|
|
7
|
+
This module provides a high-level gRPC service for the TransactionService service that combines
|
|
8
|
+
the service interface with resource management capabilities, providing authentication,
|
|
9
|
+
timeouts, and proper connection handling.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from datetime import timedelta
|
|
13
|
+
from typing import Optional
|
|
14
|
+
|
|
15
|
+
from meshtrade.common import BaseGRPCClient
|
|
16
|
+
from meshtrade.iam.api_user.v1.api_credentials import find_credentials
|
|
17
|
+
|
|
18
|
+
from .service_options_meshpy import ServiceOptions
|
|
19
|
+
from .service_pb2 import (
|
|
20
|
+
GetTransactionStateRequest,
|
|
21
|
+
GetTransactionStateResponse,
|
|
22
|
+
MonitorTransactionStateRequest,
|
|
23
|
+
MonitorTransactionStateResponse,
|
|
24
|
+
)
|
|
25
|
+
from .service_pb2_grpc import TransactionServiceStub
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def _create_transactionservice_stub(channel):
|
|
29
|
+
"""Factory function to create TransactionServiceStub from gRPC channel."""
|
|
30
|
+
return TransactionServiceStub(channel)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class TransactionService(BaseGRPCClient):
|
|
34
|
+
"""TransactionService gRPC service with authentication, timeouts, and resource management.
|
|
35
|
+
|
|
36
|
+
This service provides a complete implementation of the TransactionService with proper authentication, timeout handling, and automatic resource cleanup.
|
|
37
|
+
|
|
38
|
+
Full Service documentation: https://meshtrade.github.io/api/docs/api-reference/ledger/transaction/v1
|
|
39
|
+
|
|
40
|
+
Basic service usage with default SDK Configuration:
|
|
41
|
+
```python
|
|
42
|
+
service = TransactionService()
|
|
43
|
+
|
|
44
|
+
with service: # `with` ensures proper clean up of underlying connection after use
|
|
45
|
+
response = service.get_api_user(request)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
With default configuration API credentials are searched for using the standard discovery hierarchy:
|
|
49
|
+
|
|
50
|
+
1. MESH_API_CREDENTIALS environment variable
|
|
51
|
+
|
|
52
|
+
2. Default credential file location:
|
|
53
|
+
|
|
54
|
+
- Linux: `$XDG_CONFIG_HOME/mesh/credentials.json` or fallback to `$HOME/.config/mesh/credentials.json`
|
|
55
|
+
- macOS: `$HOME/Library/Application Support/mesh/credentials.json`
|
|
56
|
+
- Windows: `C:\\Users\\<user>\\AppData\\Roaming\\mesh\\credentials.json`
|
|
57
|
+
|
|
58
|
+
For more information on authentication: https://meshtrade.github.io/api/docs/architecture/authentication
|
|
59
|
+
|
|
60
|
+
The service may also be configured with custom options:
|
|
61
|
+
```python
|
|
62
|
+
from .service_options_meshpy import ServiceOptions
|
|
63
|
+
from datetime import timedelta
|
|
64
|
+
|
|
65
|
+
options = ServiceOptions(
|
|
66
|
+
url="api.staging.example.com",
|
|
67
|
+
port=443,
|
|
68
|
+
api_key="your-api-key",
|
|
69
|
+
group="groups/your-group-id",
|
|
70
|
+
timeout=timedelta(seconds=60)
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
service = TransactionService(options)
|
|
74
|
+
|
|
75
|
+
with service: # `with` ensures proper clean up of underlying connection after use
|
|
76
|
+
response = service.get_api_user(request)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
For more information on service configuration: https://meshtrade.github.io/api/docs/architecture/sdk-configuration
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
def __init__(self, options: Optional[ServiceOptions] = None):
|
|
83
|
+
"""Construct and initialize the TransactionService service.
|
|
84
|
+
|
|
85
|
+
Full Service documentation: https://meshtrade.github.io/api/docs/api-reference/ledger/transaction/v1
|
|
86
|
+
|
|
87
|
+
Args:
|
|
88
|
+
options: Optional ServiceOptions for configuring the service.
|
|
89
|
+
If None, service is constructed with default configuration.
|
|
90
|
+
With default configuration API credentials are searched for using the standard discovery hierarchy:
|
|
91
|
+
|
|
92
|
+
1. MESH_API_CREDENTIALS environment variable
|
|
93
|
+
|
|
94
|
+
2. Default credential file location:
|
|
95
|
+
|
|
96
|
+
- Linux: `$XDG_CONFIG_HOME/mesh/credentials.json` or fallback to `$HOME/.config/mesh/credentials.json`
|
|
97
|
+
- macOS: `$HOME/Library/Application Support/mesh/credentials.json`
|
|
98
|
+
- Windows: `C:\\Users\\<user>\\AppData\\Roaming\\mesh\\credentials.json`
|
|
99
|
+
|
|
100
|
+
For more information on authentication: https://meshtrade.github.io/api/docs/architecture/authentication
|
|
101
|
+
|
|
102
|
+
For more information on service configuration: https://meshtrade.github.io/api/docs/architecture/sdk-configuration
|
|
103
|
+
|
|
104
|
+
Example:
|
|
105
|
+
```python
|
|
106
|
+
# construct with default configuration
|
|
107
|
+
service = TransactionService()
|
|
108
|
+
|
|
109
|
+
# construct with custom configuration
|
|
110
|
+
options = ServiceOptions(
|
|
111
|
+
url="api.example.com",
|
|
112
|
+
api_key="your-key",
|
|
113
|
+
group="groups/your-group"
|
|
114
|
+
)
|
|
115
|
+
service = TransactionService(options)
|
|
116
|
+
```
|
|
117
|
+
"""
|
|
118
|
+
if options is None:
|
|
119
|
+
options = ServiceOptions()
|
|
120
|
+
|
|
121
|
+
# Initialize the base client with all common functionality
|
|
122
|
+
super().__init__(
|
|
123
|
+
service_name="TransactionService",
|
|
124
|
+
stub_factory=_create_transactionservice_stub,
|
|
125
|
+
find_credentials_func=find_credentials,
|
|
126
|
+
url=options.url,
|
|
127
|
+
port=options.port,
|
|
128
|
+
api_key=options.api_key,
|
|
129
|
+
group=options.group,
|
|
130
|
+
timeout=options.timeout,
|
|
131
|
+
tls=options.tls,
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
def get_transaction_state(self, request: GetTransactionStateRequest, timeout: Optional[timedelta] = None) -> GetTransactionStateResponse:
|
|
135
|
+
"""GetTransactionState method.
|
|
136
|
+
|
|
137
|
+
Args:
|
|
138
|
+
request: The GetTransactionState request message
|
|
139
|
+
timeout: Optional timeout override for this call
|
|
140
|
+
|
|
141
|
+
Returns:
|
|
142
|
+
The GetTransactionState response message
|
|
143
|
+
|
|
144
|
+
Raises:
|
|
145
|
+
grpc.RpcError: If the gRPC call fails
|
|
146
|
+
ValueError: If authentication credentials are missing
|
|
147
|
+
"""
|
|
148
|
+
return self._execute_method("GetTransactionState", request, timeout)
|
|
149
|
+
|
|
150
|
+
def monitor_transaction_state(self, request: MonitorTransactionStateRequest, timeout: Optional[timedelta] = None):
|
|
151
|
+
"""MonitorTransactionState server-side streaming method with authentication and validation.
|
|
152
|
+
|
|
153
|
+
Args:
|
|
154
|
+
request: The MonitorTransactionState request message
|
|
155
|
+
timeout: Optional timeout override for this call
|
|
156
|
+
|
|
157
|
+
Yields:
|
|
158
|
+
MonitorTransactionStateResponse: Stream of response messages
|
|
159
|
+
|
|
160
|
+
Raises:
|
|
161
|
+
grpc.RpcError: If the gRPC call fails
|
|
162
|
+
ValueError: If authentication credentials are missing or request validation fails
|
|
163
|
+
|
|
164
|
+
Example:
|
|
165
|
+
>>> stream = service.monitor_transaction_state(request)
|
|
166
|
+
>>> for response in stream:
|
|
167
|
+
... # Process each response
|
|
168
|
+
... print(response)
|
|
169
|
+
"""
|
|
170
|
+
return self._execute_streaming_method("MonitorTransactionState", request, timeout)
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
# Create aliases to match expected exports
|
|
174
|
+
TransactionServiceGRPCClient = TransactionService
|
|
175
|
+
TransactionServiceGRPCClientInterface = TransactionService
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Code generated by protoc-gen-meshpy. DO NOT EDIT.
|
|
2
|
+
# source: meshtrade/ledger/transaction/v1/service.proto
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
Configuration options for TransactionService gRPC service.
|
|
6
|
+
This module provides a clean, extensible way to configure the service with optional
|
|
7
|
+
parameters while maintaining backward compatibility and readability.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from datetime import timedelta
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ServiceOptions:
|
|
14
|
+
"""Configuration options for TransactionService gRPC service.
|
|
15
|
+
|
|
16
|
+
This class provides a clean, extensible way to configure the service with optional
|
|
17
|
+
parameters while maintaining backward compatibility and readability.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
def __init__(
|
|
21
|
+
self,
|
|
22
|
+
tls: bool = True,
|
|
23
|
+
url: str | None = None,
|
|
24
|
+
port: int | None = None,
|
|
25
|
+
api_key: str | None = None,
|
|
26
|
+
group: str | None = None,
|
|
27
|
+
timeout: timedelta = timedelta(seconds=30),
|
|
28
|
+
):
|
|
29
|
+
"""Initialize service options.
|
|
30
|
+
|
|
31
|
+
Args:
|
|
32
|
+
tls: Whether to use TLS encryption for the gRPC connection.
|
|
33
|
+
When True, establishes a secure connection using TLS.
|
|
34
|
+
When False, uses an insecure connection.
|
|
35
|
+
Default: True (secure connection)
|
|
36
|
+
|
|
37
|
+
url: The server hostname or IP address (e.g., "api.example.com", "localhost").
|
|
38
|
+
Default: Uses DEFAULT_GRPC_URL from common module
|
|
39
|
+
|
|
40
|
+
port: The server port number (e.g., 443 for HTTPS, 8080 for development).
|
|
41
|
+
Default: Uses DEFAULT_GRPC_PORT from common module
|
|
42
|
+
|
|
43
|
+
api_key: The API key string (without "Bearer " prefix) for authentication.
|
|
44
|
+
The API key will be sent as a Bearer token in the Authorization header.
|
|
45
|
+
This is the primary authentication method for service-to-service communication.
|
|
46
|
+
|
|
47
|
+
group: The group resource name in format groups/{group_id} required for all API requests.
|
|
48
|
+
The group determines the authorization context for operations
|
|
49
|
+
and is sent as an "x-group" header with every request.
|
|
50
|
+
|
|
51
|
+
timeout: The default timeout for all gRPC method calls.
|
|
52
|
+
This timeout applies to individual method calls and helps prevent hanging requests.
|
|
53
|
+
If a request takes longer than the specified timeout, it will be cancelled.
|
|
54
|
+
Default: 30 seconds
|
|
55
|
+
"""
|
|
56
|
+
self.tls = tls
|
|
57
|
+
self.url = url
|
|
58
|
+
self.port = port
|
|
59
|
+
self.api_key = api_key
|
|
60
|
+
self.group = group
|
|
61
|
+
self.timeout = timeout
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
# Create alias to match expected exports
|
|
65
|
+
ClientOptions = ServiceOptions
|