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.
- meshtrade/common/__init__.py +2 -4
- meshtrade/common/config.py +3 -4
- meshtrade/common/grpc_client.py +140 -0
- meshtrade/common/service_options.py +46 -0
- meshtrade/compliance/client/v1/__init__.py +0 -2
- meshtrade/compliance/client/v1/client_pb2.py +15 -4
- meshtrade/compliance/client/v1/client_pb2.pyi +1 -0
- meshtrade/compliance/client/v1/company_pb2.py +25 -8
- meshtrade/compliance/client/v1/company_pb2.pyi +1 -0
- meshtrade/compliance/client/v1/company_representative_pb2.py +9 -4
- meshtrade/compliance/client/v1/company_representative_pb2.pyi +1 -0
- meshtrade/compliance/client/v1/company_representative_role_pb2.py +2 -2
- meshtrade/compliance/client/v1/fund_pb2.py +13 -4
- meshtrade/compliance/client/v1/fund_pb2.pyi +1 -0
- meshtrade/compliance/client/v1/identification_document_type_pb2.py +2 -2
- meshtrade/compliance/client/v1/industry_classification_pb2.py +2 -2
- meshtrade/compliance/client/v1/natural_person_connection_type_pb2.py +2 -2
- meshtrade/compliance/client/v1/natural_person_pb2.py +19 -4
- meshtrade/compliance/client/v1/natural_person_pb2.pyi +1 -0
- meshtrade/compliance/client/v1/pep_status_pb2.py +2 -2
- meshtrade/compliance/client/v1/service_meshpy.py +2 -1
- meshtrade/compliance/client/v1/service_pb2.py +21 -17
- meshtrade/compliance/client/v1/service_pb2.pyi +2 -2
- meshtrade/compliance/client/v1/source_of_income_and_wealth_pb2.py +2 -2
- meshtrade/compliance/client/v1/tax_residency_pb2.py +9 -4
- meshtrade/compliance/client/v1/tax_residency_pb2.pyi +1 -0
- meshtrade/compliance/client/v1/trust_pb2.py +13 -4
- meshtrade/compliance/client/v1/trust_pb2.pyi +1 -0
- meshtrade/compliance/client/v1/verification_status_pb2.py +2 -2
- meshtrade/iam/api_user/v1/__init__.py +34 -26
- meshtrade/iam/api_user/v1/api_credentials_pb2.py +5 -5
- meshtrade/iam/api_user/v1/api_user_pb2.py +13 -9
- meshtrade/iam/api_user/v1/api_user_pb2.pyi +2 -4
- meshtrade/iam/api_user/v1/api_user_state_machine.py +104 -0
- meshtrade/iam/api_user/v1/service_meshpy.py +96 -61
- meshtrade/iam/api_user/v1/service_pb2.py +61 -40
- meshtrade/iam/api_user/v1/service_pb2.pyi +26 -11
- meshtrade/iam/api_user/v1/service_pb2_grpc.py +179 -135
- meshtrade/iam/group/v1/__init__.py +4 -2
- meshtrade/iam/group/v1/group_pb2.py +13 -4
- meshtrade/iam/group/v1/group_pb2.pyi +9 -2
- meshtrade/iam/group/v1/service_meshpy.py +41 -6
- meshtrade/iam/group/v1/service_pb2.py +47 -20
- meshtrade/iam/group/v1/service_pb2.pyi +46 -13
- meshtrade/iam/group/v1/service_pb2_grpc.py +151 -16
- meshtrade/iam/role/v1/__init__.py +17 -4
- meshtrade/iam/role/v1/role.py +162 -11
- meshtrade/iam/role/v1/role_pb2.py +4 -7
- meshtrade/iam/role/v1/role_pb2.pyi +53 -23
- meshtrade/iam/user/v1/__init__.py +22 -4
- meshtrade/iam/user/v1/service_meshpy.py +129 -7
- meshtrade/iam/user/v1/service_pb2.py +66 -16
- meshtrade/iam/user/v1/service_pb2.pyi +81 -9
- meshtrade/iam/user/v1/service_pb2_grpc.py +385 -14
- meshtrade/iam/user/v1/user_pb2.py +13 -4
- meshtrade/iam/user/v1/user_pb2.pyi +7 -2
- meshtrade/ledger/transaction/v1/__init__.py +25 -1
- meshtrade/ledger/transaction/v1/service_meshpy.py +176 -0
- meshtrade/ledger/transaction/v1/service_pb2.py +56 -0
- meshtrade/ledger/transaction/v1/service_pb2.pyi +32 -0
- meshtrade/ledger/transaction/v1/service_pb2_grpc.py +131 -0
- meshtrade/ledger/transaction/v1/transaction_action_pb2.py +2 -2
- meshtrade/ledger/transaction/v1/transaction_state_machine.py +75 -0
- meshtrade/ledger/transaction/v1/transaction_state_pb2.py +2 -2
- meshtrade/{reporting/income_report → market_data/price}/v1/__init__.py +11 -20
- meshtrade/market_data/price/v1/price_pb2.py +40 -0
- meshtrade/market_data/price/v1/price_pb2.pyi +23 -0
- meshtrade/market_data/price/v1/service_meshpy.py +152 -0
- meshtrade/market_data/price/v1/service_pb2.py +49 -0
- meshtrade/market_data/price/v1/service_pb2.pyi +18 -0
- meshtrade/market_data/price/v1/service_pb2_grpc.py +84 -0
- meshtrade/option/method_options/v1/__init__.py +41 -0
- meshtrade/option/method_options/v1/method_options_pb2.py +43 -0
- meshtrade/option/method_options/v1/method_options_pb2.pyi +40 -0
- meshtrade/reporting/account_report/v1/__init__.py +66 -0
- meshtrade/reporting/account_report/v1/account_report_pb2.py +46 -0
- meshtrade/reporting/account_report/v1/account_report_pb2.pyi +49 -0
- meshtrade/reporting/{income_report → account_report}/v1/disclaimer_pb2.py +7 -7
- meshtrade/reporting/account_report/v1/fee_entry_pb2.py +39 -0
- meshtrade/reporting/account_report/v1/fee_entry_pb2.pyi +26 -0
- meshtrade/reporting/account_report/v1/fee_entry_pb2_grpc.py +4 -0
- meshtrade/reporting/account_report/v1/income_entry.py +35 -0
- meshtrade/reporting/account_report/v1/income_entry_pb2.py +42 -0
- meshtrade/reporting/{income_report/v1/entry_pb2.pyi → account_report/v1/income_entry_pb2.pyi} +18 -10
- meshtrade/reporting/account_report/v1/income_entry_pb2_grpc.py +4 -0
- meshtrade/reporting/{income_report → account_report}/v1/service_meshpy.py +37 -36
- meshtrade/reporting/account_report/v1/service_pb2.py +72 -0
- meshtrade/reporting/account_report/v1/service_pb2.pyi +43 -0
- meshtrade/reporting/account_report/v1/service_pb2_grpc.py +161 -0
- meshtrade/reporting/account_report/v1/trading_statement_entry_pb2.py +39 -0
- meshtrade/reporting/account_report/v1/trading_statement_entry_pb2.pyi +30 -0
- meshtrade/reporting/account_report/v1/trading_statement_entry_pb2_grpc.py +4 -0
- meshtrade/studio/instrument/v1/__init__.py +43 -0
- meshtrade/studio/instrument/v1/instrument_pb2.py +45 -0
- meshtrade/studio/instrument/v1/instrument_pb2.pyi +20 -0
- meshtrade/studio/instrument/v1/instrument_pb2_grpc.py +4 -0
- meshtrade/studio/instrument/v1/instrument_type_pb2.py +37 -0
- meshtrade/studio/instrument/v1/instrument_type_pb2.pyi +64 -0
- meshtrade/studio/instrument/v1/instrument_type_pb2_grpc.py +4 -0
- meshtrade/studio/instrument/v1/unit_pb2.py +37 -0
- meshtrade/studio/instrument/v1/unit_pb2.pyi +46 -0
- meshtrade/studio/instrument/v1/unit_pb2_grpc.py +4 -0
- meshtrade/trading/limit_order/v1/__init__.py +22 -4
- meshtrade/trading/limit_order/v1/limit_order_pb2.py +24 -4
- meshtrade/trading/limit_order/v1/limit_order_pb2.pyi +55 -5
- meshtrade/trading/limit_order/v1/service_meshpy.py +113 -2
- meshtrade/trading/limit_order/v1/service_pb2.py +49 -9
- meshtrade/trading/limit_order/v1/service_pb2.pyi +67 -7
- meshtrade/trading/limit_order/v1/service_pb2_grpc.py +321 -4
- meshtrade/trading/market_order/v1/__init__.py +0 -2
- meshtrade/trading/market_order/v1/market_order_pb2.py +2 -2
- meshtrade/trading/market_order/v1/service_meshpy.py +3 -2
- meshtrade/trading/market_order/v1/service_pb2.py +8 -9
- meshtrade/trading/market_order/v1/service_pb2.pyi +1 -2
- meshtrade/type/v1/__init__.py +82 -12
- meshtrade/type/v1/address_pb2.py +2 -2
- meshtrade/type/v1/amount.py +429 -5
- meshtrade/type/v1/amount_pb2.py +2 -2
- meshtrade/type/v1/contact_details_pb2.py +2 -2
- meshtrade/type/v1/date_pb2.py +2 -2
- meshtrade/type/v1/decimal_built_in_conversions.py +8 -3
- meshtrade/type/v1/decimal_operations.py +354 -0
- meshtrade/type/v1/decimal_pb2.py +2 -2
- meshtrade/type/v1/ledger.py +76 -1
- meshtrade/type/v1/ledger_pb2.py +2 -2
- meshtrade/type/v1/sorting_pb2.py +2 -2
- meshtrade/type/v1/time_of_day_pb2.py +2 -2
- meshtrade/type/v1/token.py +144 -0
- meshtrade/type/v1/token_pb2.py +2 -2
- meshtrade/wallet/account/v1/__init__.py +21 -3
- meshtrade/wallet/account/v1/account_pb2.py +28 -4
- meshtrade/wallet/account/v1/account_pb2.pyi +57 -3
- meshtrade/wallet/account/v1/service_meshpy.py +72 -1
- meshtrade/wallet/account/v1/service_pb2.py +67 -23
- meshtrade/wallet/account/v1/service_pb2.pyi +81 -21
- meshtrade/wallet/account/v1/service_pb2_grpc.py +242 -8
- {meshtrade-1.0.1.dist-info → meshtrade-1.29.0.dist-info}/METADATA +1 -1
- meshtrade-1.29.0.dist-info/RECORD +217 -0
- meshtrade/compliance/client/v1/service_options_meshpy.py +0 -65
- meshtrade/iam/api_user/v1/service.py +0 -58
- meshtrade/iam/api_user/v1/service_options_meshpy.py +0 -65
- meshtrade/iam/group/v1/service_options_meshpy.py +0 -65
- meshtrade/iam/user/v1/service_options_meshpy.py +0 -65
- meshtrade/option/v1/method_type_pb2.py +0 -38
- meshtrade/option/v1/method_type_pb2.pyi +0 -17
- meshtrade/reporting/income_report/v1/entry_pb2.py +0 -42
- meshtrade/reporting/income_report/v1/income_report_pb2.py +0 -44
- meshtrade/reporting/income_report/v1/income_report_pb2.pyi +0 -42
- meshtrade/reporting/income_report/v1/service_options_meshpy.py +0 -65
- meshtrade/reporting/income_report/v1/service_pb2.py +0 -58
- meshtrade/reporting/income_report/v1/service_pb2.pyi +0 -37
- meshtrade/reporting/income_report/v1/service_pb2_grpc.py +0 -170
- meshtrade/trading/limit_order/v1/service_options_meshpy.py +0 -65
- meshtrade/trading/market_order/v1/service_options_meshpy.py +0 -65
- meshtrade/wallet/account/v1/service_options_meshpy.py +0 -65
- meshtrade-1.0.1.dist-info/RECORD +0 -191
- /meshtrade/{option/v1/method_type_pb2_grpc.py → market_data/price/v1/price_pb2_grpc.py} +0 -0
- /meshtrade/{reporting/income_report/v1/disclaimer_pb2_grpc.py → option/method_options/v1/method_options_pb2_grpc.py} +0 -0
- /meshtrade/reporting/{income_report/v1/entry_pb2_grpc.py → account_report/v1/account_report_pb2_grpc.py} +0 -0
- /meshtrade/reporting/{income_report → account_report}/v1/disclaimer_pb2.pyi +0 -0
- /meshtrade/reporting/{income_report/v1/income_report_pb2_grpc.py → account_report/v1/disclaimer_pb2_grpc.py} +0 -0
- {meshtrade-1.0.1.dist-info → meshtrade-1.29.0.dist-info}/WHEEL +0 -0
- {meshtrade-1.0.1.dist-info → meshtrade-1.29.0.dist-info}/top_level.txt +0 -0
|
@@ -1,19 +1,91 @@
|
|
|
1
1
|
from buf.validate import validate_pb2 as _validate_pb2
|
|
2
|
-
from meshtrade.iam.role.v1 import role_pb2 as _role_pb2
|
|
3
2
|
from meshtrade.iam.user.v1 import user_pb2 as _user_pb2
|
|
4
|
-
from meshtrade.option.v1 import
|
|
3
|
+
from meshtrade.option.method_options.v1 import method_options_pb2 as _method_options_pb2
|
|
4
|
+
from meshtrade.type.v1 import sorting_pb2 as _sorting_pb2
|
|
5
|
+
from google.protobuf.internal import containers as _containers
|
|
5
6
|
from google.protobuf import descriptor as _descriptor
|
|
6
7
|
from google.protobuf import message as _message
|
|
8
|
+
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
|
|
7
9
|
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
|
|
8
10
|
|
|
9
11
|
DESCRIPTOR: _descriptor.FileDescriptor
|
|
10
12
|
|
|
11
|
-
class
|
|
12
|
-
__slots__ = ("
|
|
13
|
+
class AssignRolesToUserRequest(_message.Message):
|
|
14
|
+
__slots__ = ("name", "roles")
|
|
15
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
16
|
+
ROLES_FIELD_NUMBER: _ClassVar[int]
|
|
17
|
+
name: str
|
|
18
|
+
roles: _containers.RepeatedScalarFieldContainer[str]
|
|
19
|
+
def __init__(self, name: _Optional[str] = ..., roles: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
20
|
+
|
|
21
|
+
class RevokeRolesFromUserRequest(_message.Message):
|
|
22
|
+
__slots__ = ("name", "roles")
|
|
23
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
24
|
+
ROLES_FIELD_NUMBER: _ClassVar[int]
|
|
25
|
+
name: str
|
|
26
|
+
roles: _containers.RepeatedScalarFieldContainer[str]
|
|
27
|
+
def __init__(self, name: _Optional[str] = ..., roles: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
28
|
+
|
|
29
|
+
class GetUserRequest(_message.Message):
|
|
30
|
+
__slots__ = ("name",)
|
|
31
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
32
|
+
name: str
|
|
33
|
+
def __init__(self, name: _Optional[str] = ...) -> None: ...
|
|
34
|
+
|
|
35
|
+
class GetUserByEmailRequest(_message.Message):
|
|
36
|
+
__slots__ = ("email",)
|
|
13
37
|
EMAIL_FIELD_NUMBER: _ClassVar[int]
|
|
14
|
-
GROUP_FIELD_NUMBER: _ClassVar[int]
|
|
15
|
-
ROLE_FIELD_NUMBER: _ClassVar[int]
|
|
16
38
|
email: str
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
39
|
+
def __init__(self, email: _Optional[str] = ...) -> None: ...
|
|
40
|
+
|
|
41
|
+
class ListUsersRequest(_message.Message):
|
|
42
|
+
__slots__ = ("sorting",)
|
|
43
|
+
class Sorting(_message.Message):
|
|
44
|
+
__slots__ = ("field", "order")
|
|
45
|
+
FIELD_FIELD_NUMBER: _ClassVar[int]
|
|
46
|
+
ORDER_FIELD_NUMBER: _ClassVar[int]
|
|
47
|
+
field: str
|
|
48
|
+
order: _sorting_pb2.SortingOrder
|
|
49
|
+
def __init__(self, field: _Optional[str] = ..., order: _Optional[_Union[_sorting_pb2.SortingOrder, str]] = ...) -> None: ...
|
|
50
|
+
SORTING_FIELD_NUMBER: _ClassVar[int]
|
|
51
|
+
sorting: ListUsersRequest.Sorting
|
|
52
|
+
def __init__(self, sorting: _Optional[_Union[ListUsersRequest.Sorting, _Mapping]] = ...) -> None: ...
|
|
53
|
+
|
|
54
|
+
class ListUsersResponse(_message.Message):
|
|
55
|
+
__slots__ = ("users",)
|
|
56
|
+
USERS_FIELD_NUMBER: _ClassVar[int]
|
|
57
|
+
users: _containers.RepeatedCompositeFieldContainer[_user_pb2.User]
|
|
58
|
+
def __init__(self, users: _Optional[_Iterable[_Union[_user_pb2.User, _Mapping]]] = ...) -> None: ...
|
|
59
|
+
|
|
60
|
+
class SearchUsersRequest(_message.Message):
|
|
61
|
+
__slots__ = ("email", "sorting")
|
|
62
|
+
class Sorting(_message.Message):
|
|
63
|
+
__slots__ = ("field", "order")
|
|
64
|
+
FIELD_FIELD_NUMBER: _ClassVar[int]
|
|
65
|
+
ORDER_FIELD_NUMBER: _ClassVar[int]
|
|
66
|
+
field: str
|
|
67
|
+
order: _sorting_pb2.SortingOrder
|
|
68
|
+
def __init__(self, field: _Optional[str] = ..., order: _Optional[_Union[_sorting_pb2.SortingOrder, str]] = ...) -> None: ...
|
|
69
|
+
EMAIL_FIELD_NUMBER: _ClassVar[int]
|
|
70
|
+
SORTING_FIELD_NUMBER: _ClassVar[int]
|
|
71
|
+
email: str
|
|
72
|
+
sorting: SearchUsersRequest.Sorting
|
|
73
|
+
def __init__(self, email: _Optional[str] = ..., sorting: _Optional[_Union[SearchUsersRequest.Sorting, _Mapping]] = ...) -> None: ...
|
|
74
|
+
|
|
75
|
+
class SearchUsersResponse(_message.Message):
|
|
76
|
+
__slots__ = ("users",)
|
|
77
|
+
USERS_FIELD_NUMBER: _ClassVar[int]
|
|
78
|
+
users: _containers.RepeatedCompositeFieldContainer[_user_pb2.User]
|
|
79
|
+
def __init__(self, users: _Optional[_Iterable[_Union[_user_pb2.User, _Mapping]]] = ...) -> None: ...
|
|
80
|
+
|
|
81
|
+
class CreateUserRequest(_message.Message):
|
|
82
|
+
__slots__ = ("user",)
|
|
83
|
+
USER_FIELD_NUMBER: _ClassVar[int]
|
|
84
|
+
user: _user_pb2.User
|
|
85
|
+
def __init__(self, user: _Optional[_Union[_user_pb2.User, _Mapping]] = ...) -> None: ...
|
|
86
|
+
|
|
87
|
+
class UpdateUserRequest(_message.Message):
|
|
88
|
+
__slots__ = ("user",)
|
|
89
|
+
USER_FIELD_NUMBER: _ClassVar[int]
|
|
90
|
+
user: _user_pb2.User
|
|
91
|
+
def __init__(self, user: _Optional[_Union[_user_pb2.User, _Mapping]] = ...) -> None: ...
|
|
@@ -7,7 +7,16 @@ from meshtrade.iam.user.v1 import user_pb2 as meshtrade_dot_iam_dot_user_dot_v1_
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class UserServiceStub(object):
|
|
10
|
-
"""
|
|
10
|
+
"""
|
|
11
|
+
UserService manages user lifecycle and identity operations within groups.
|
|
12
|
+
|
|
13
|
+
Users are individual identity entities that belong to specific groups and have
|
|
14
|
+
assigned roles that determine their permissions within that group context.
|
|
15
|
+
Each user has a unique email address and can be assigned multiple roles
|
|
16
|
+
across the group hierarchy for fine-grained access control.
|
|
17
|
+
|
|
18
|
+
All operations require appropriate IAM domain permissions and operate within
|
|
19
|
+
the authenticated group context.
|
|
11
20
|
"""
|
|
12
21
|
|
|
13
22
|
def __init__(self, channel):
|
|
@@ -16,19 +25,148 @@ class UserServiceStub(object):
|
|
|
16
25
|
Args:
|
|
17
26
|
channel: A grpc.Channel.
|
|
18
27
|
"""
|
|
19
|
-
self.
|
|
20
|
-
'/meshtrade.iam.user.v1.UserService/
|
|
21
|
-
request_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.
|
|
28
|
+
self.AssignRolesToUser = channel.unary_unary(
|
|
29
|
+
'/meshtrade.iam.user.v1.UserService/AssignRolesToUser',
|
|
30
|
+
request_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.AssignRolesToUserRequest.SerializeToString,
|
|
31
|
+
response_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.FromString,
|
|
32
|
+
_registered_method=True)
|
|
33
|
+
self.RevokeRolesFromUser = channel.unary_unary(
|
|
34
|
+
'/meshtrade.iam.user.v1.UserService/RevokeRolesFromUser',
|
|
35
|
+
request_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.RevokeRolesFromUserRequest.SerializeToString,
|
|
36
|
+
response_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.FromString,
|
|
37
|
+
_registered_method=True)
|
|
38
|
+
self.GetUser = channel.unary_unary(
|
|
39
|
+
'/meshtrade.iam.user.v1.UserService/GetUser',
|
|
40
|
+
request_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.GetUserRequest.SerializeToString,
|
|
41
|
+
response_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.FromString,
|
|
42
|
+
_registered_method=True)
|
|
43
|
+
self.GetUserByEmail = channel.unary_unary(
|
|
44
|
+
'/meshtrade.iam.user.v1.UserService/GetUserByEmail',
|
|
45
|
+
request_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.GetUserByEmailRequest.SerializeToString,
|
|
46
|
+
response_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.FromString,
|
|
47
|
+
_registered_method=True)
|
|
48
|
+
self.ListUsers = channel.unary_unary(
|
|
49
|
+
'/meshtrade.iam.user.v1.UserService/ListUsers',
|
|
50
|
+
request_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.ListUsersRequest.SerializeToString,
|
|
51
|
+
response_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.ListUsersResponse.FromString,
|
|
52
|
+
_registered_method=True)
|
|
53
|
+
self.SearchUsers = channel.unary_unary(
|
|
54
|
+
'/meshtrade.iam.user.v1.UserService/SearchUsers',
|
|
55
|
+
request_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.SearchUsersRequest.SerializeToString,
|
|
56
|
+
response_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.SearchUsersResponse.FromString,
|
|
57
|
+
_registered_method=True)
|
|
58
|
+
self.CreateUser = channel.unary_unary(
|
|
59
|
+
'/meshtrade.iam.user.v1.UserService/CreateUser',
|
|
60
|
+
request_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.CreateUserRequest.SerializeToString,
|
|
61
|
+
response_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.FromString,
|
|
62
|
+
_registered_method=True)
|
|
63
|
+
self.UpdateUser = channel.unary_unary(
|
|
64
|
+
'/meshtrade.iam.user.v1.UserService/UpdateUser',
|
|
65
|
+
request_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.UpdateUserRequest.SerializeToString,
|
|
22
66
|
response_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.FromString,
|
|
23
67
|
_registered_method=True)
|
|
24
68
|
|
|
25
69
|
|
|
26
70
|
class UserServiceServicer(object):
|
|
27
|
-
"""Service defines the RPC methods for interacting with the user resource,
|
|
28
71
|
"""
|
|
72
|
+
UserService manages user lifecycle and identity operations within groups.
|
|
73
|
+
|
|
74
|
+
Users are individual identity entities that belong to specific groups and have
|
|
75
|
+
assigned roles that determine their permissions within that group context.
|
|
76
|
+
Each user has a unique email address and can be assigned multiple roles
|
|
77
|
+
across the group hierarchy for fine-grained access control.
|
|
78
|
+
|
|
79
|
+
All operations require appropriate IAM domain permissions and operate within
|
|
80
|
+
the authenticated group context.
|
|
81
|
+
"""
|
|
82
|
+
|
|
83
|
+
def AssignRolesToUser(self, request, context):
|
|
84
|
+
"""
|
|
85
|
+
Assign roles to an existing user within the authenticated group context.
|
|
86
|
+
|
|
87
|
+
The role assignment enables the user to perform operations according
|
|
88
|
+
to the permissions associated with that role within the group hierarchy.
|
|
89
|
+
"""
|
|
90
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
91
|
+
context.set_details('Method not implemented!')
|
|
92
|
+
raise NotImplementedError('Method not implemented!')
|
|
93
|
+
|
|
94
|
+
def RevokeRolesFromUser(self, request, context):
|
|
95
|
+
"""
|
|
96
|
+
Revoke roles from an existing user within the authenticated group context.
|
|
29
97
|
|
|
30
|
-
|
|
31
|
-
|
|
98
|
+
The role revocation removes the permissions associated with that role from
|
|
99
|
+
the user within the group hierarchy. The user will no longer be able
|
|
100
|
+
to perform operations that require the revoked role.
|
|
101
|
+
"""
|
|
102
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
103
|
+
context.set_details('Method not implemented!')
|
|
104
|
+
raise NotImplementedError('Method not implemented!')
|
|
105
|
+
|
|
106
|
+
def GetUser(self, request, context):
|
|
107
|
+
"""
|
|
108
|
+
Retrieves a single user by their unique identifier.
|
|
109
|
+
|
|
110
|
+
Returns user details including name, email, ownership information,
|
|
111
|
+
and assigned roles within the authenticated group's access scope.
|
|
112
|
+
"""
|
|
113
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
114
|
+
context.set_details('Method not implemented!')
|
|
115
|
+
raise NotImplementedError('Method not implemented!')
|
|
116
|
+
|
|
117
|
+
def GetUserByEmail(self, request, context):
|
|
118
|
+
"""
|
|
119
|
+
Retrieves a single user by their email address.
|
|
120
|
+
|
|
121
|
+
Returns user details including name, email, ownership information,
|
|
122
|
+
and assigned roles within the authenticated group's access scope.
|
|
123
|
+
"""
|
|
124
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
125
|
+
context.set_details('Method not implemented!')
|
|
126
|
+
raise NotImplementedError('Method not implemented!')
|
|
127
|
+
|
|
128
|
+
def ListUsers(self, request, context):
|
|
129
|
+
"""
|
|
130
|
+
Returns all users accessible within the authenticated group's hierarchy.
|
|
131
|
+
|
|
132
|
+
Results include users directly owned and those accessible through the
|
|
133
|
+
group's hierarchical permissions, optionally sorted by email address.
|
|
134
|
+
"""
|
|
135
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
136
|
+
context.set_details('Method not implemented!')
|
|
137
|
+
raise NotImplementedError('Method not implemented!')
|
|
138
|
+
|
|
139
|
+
def SearchUsers(self, request, context):
|
|
140
|
+
"""
|
|
141
|
+
Searches for users by email address using substring matching.
|
|
142
|
+
|
|
143
|
+
Returns users whose email addresses contain the provided search term,
|
|
144
|
+
filtered by the authenticated group's access permissions and optionally
|
|
145
|
+
sorted by email address.
|
|
146
|
+
"""
|
|
147
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
148
|
+
context.set_details('Method not implemented!')
|
|
149
|
+
raise NotImplementedError('Method not implemented!')
|
|
150
|
+
|
|
151
|
+
def CreateUser(self, request, context):
|
|
152
|
+
"""
|
|
153
|
+
Creates a new user within the authenticated group context.
|
|
154
|
+
|
|
155
|
+
The user will be created with the provided email and group ownership,
|
|
156
|
+
with system-generated unique identifier and ownership hierarchy.
|
|
157
|
+
Additional roles can be assigned after creation.
|
|
158
|
+
"""
|
|
159
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
160
|
+
context.set_details('Method not implemented!')
|
|
161
|
+
raise NotImplementedError('Method not implemented!')
|
|
162
|
+
|
|
163
|
+
def UpdateUser(self, request, context):
|
|
164
|
+
"""
|
|
165
|
+
Updates an existing user with modified field values.
|
|
166
|
+
|
|
167
|
+
Only mutable fields can be updated while preserving system-generated
|
|
168
|
+
identifiers and ownership relationships. Role modifications should
|
|
169
|
+
use dedicated role management operations.
|
|
32
170
|
"""
|
|
33
171
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
34
172
|
context.set_details('Method not implemented!')
|
|
@@ -37,9 +175,44 @@ class UserServiceServicer(object):
|
|
|
37
175
|
|
|
38
176
|
def add_UserServiceServicer_to_server(servicer, server):
|
|
39
177
|
rpc_method_handlers = {
|
|
40
|
-
'
|
|
41
|
-
servicer.
|
|
42
|
-
request_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.
|
|
178
|
+
'AssignRolesToUser': grpc.unary_unary_rpc_method_handler(
|
|
179
|
+
servicer.AssignRolesToUser,
|
|
180
|
+
request_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.AssignRolesToUserRequest.FromString,
|
|
181
|
+
response_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.SerializeToString,
|
|
182
|
+
),
|
|
183
|
+
'RevokeRolesFromUser': grpc.unary_unary_rpc_method_handler(
|
|
184
|
+
servicer.RevokeRolesFromUser,
|
|
185
|
+
request_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.RevokeRolesFromUserRequest.FromString,
|
|
186
|
+
response_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.SerializeToString,
|
|
187
|
+
),
|
|
188
|
+
'GetUser': grpc.unary_unary_rpc_method_handler(
|
|
189
|
+
servicer.GetUser,
|
|
190
|
+
request_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.GetUserRequest.FromString,
|
|
191
|
+
response_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.SerializeToString,
|
|
192
|
+
),
|
|
193
|
+
'GetUserByEmail': grpc.unary_unary_rpc_method_handler(
|
|
194
|
+
servicer.GetUserByEmail,
|
|
195
|
+
request_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.GetUserByEmailRequest.FromString,
|
|
196
|
+
response_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.SerializeToString,
|
|
197
|
+
),
|
|
198
|
+
'ListUsers': grpc.unary_unary_rpc_method_handler(
|
|
199
|
+
servicer.ListUsers,
|
|
200
|
+
request_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.ListUsersRequest.FromString,
|
|
201
|
+
response_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.ListUsersResponse.SerializeToString,
|
|
202
|
+
),
|
|
203
|
+
'SearchUsers': grpc.unary_unary_rpc_method_handler(
|
|
204
|
+
servicer.SearchUsers,
|
|
205
|
+
request_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.SearchUsersRequest.FromString,
|
|
206
|
+
response_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.SearchUsersResponse.SerializeToString,
|
|
207
|
+
),
|
|
208
|
+
'CreateUser': grpc.unary_unary_rpc_method_handler(
|
|
209
|
+
servicer.CreateUser,
|
|
210
|
+
request_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.CreateUserRequest.FromString,
|
|
211
|
+
response_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.SerializeToString,
|
|
212
|
+
),
|
|
213
|
+
'UpdateUser': grpc.unary_unary_rpc_method_handler(
|
|
214
|
+
servicer.UpdateUser,
|
|
215
|
+
request_deserializer=meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.UpdateUserRequest.FromString,
|
|
43
216
|
response_serializer=meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.SerializeToString,
|
|
44
217
|
),
|
|
45
218
|
}
|
|
@@ -51,11 +224,209 @@ def add_UserServiceServicer_to_server(servicer, server):
|
|
|
51
224
|
|
|
52
225
|
# This class is part of an EXPERIMENTAL API.
|
|
53
226
|
class UserService(object):
|
|
54
|
-
"""Service defines the RPC methods for interacting with the user resource,
|
|
55
227
|
"""
|
|
228
|
+
UserService manages user lifecycle and identity operations within groups.
|
|
229
|
+
|
|
230
|
+
Users are individual identity entities that belong to specific groups and have
|
|
231
|
+
assigned roles that determine their permissions within that group context.
|
|
232
|
+
Each user has a unique email address and can be assigned multiple roles
|
|
233
|
+
across the group hierarchy for fine-grained access control.
|
|
234
|
+
|
|
235
|
+
All operations require appropriate IAM domain permissions and operate within
|
|
236
|
+
the authenticated group context.
|
|
237
|
+
"""
|
|
238
|
+
|
|
239
|
+
@staticmethod
|
|
240
|
+
def AssignRolesToUser(request,
|
|
241
|
+
target,
|
|
242
|
+
options=(),
|
|
243
|
+
channel_credentials=None,
|
|
244
|
+
call_credentials=None,
|
|
245
|
+
insecure=False,
|
|
246
|
+
compression=None,
|
|
247
|
+
wait_for_ready=None,
|
|
248
|
+
timeout=None,
|
|
249
|
+
metadata=None):
|
|
250
|
+
return grpc.experimental.unary_unary(
|
|
251
|
+
request,
|
|
252
|
+
target,
|
|
253
|
+
'/meshtrade.iam.user.v1.UserService/AssignRolesToUser',
|
|
254
|
+
meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.AssignRolesToUserRequest.SerializeToString,
|
|
255
|
+
meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.FromString,
|
|
256
|
+
options,
|
|
257
|
+
channel_credentials,
|
|
258
|
+
insecure,
|
|
259
|
+
call_credentials,
|
|
260
|
+
compression,
|
|
261
|
+
wait_for_ready,
|
|
262
|
+
timeout,
|
|
263
|
+
metadata,
|
|
264
|
+
_registered_method=True)
|
|
265
|
+
|
|
266
|
+
@staticmethod
|
|
267
|
+
def RevokeRolesFromUser(request,
|
|
268
|
+
target,
|
|
269
|
+
options=(),
|
|
270
|
+
channel_credentials=None,
|
|
271
|
+
call_credentials=None,
|
|
272
|
+
insecure=False,
|
|
273
|
+
compression=None,
|
|
274
|
+
wait_for_ready=None,
|
|
275
|
+
timeout=None,
|
|
276
|
+
metadata=None):
|
|
277
|
+
return grpc.experimental.unary_unary(
|
|
278
|
+
request,
|
|
279
|
+
target,
|
|
280
|
+
'/meshtrade.iam.user.v1.UserService/RevokeRolesFromUser',
|
|
281
|
+
meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.RevokeRolesFromUserRequest.SerializeToString,
|
|
282
|
+
meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.FromString,
|
|
283
|
+
options,
|
|
284
|
+
channel_credentials,
|
|
285
|
+
insecure,
|
|
286
|
+
call_credentials,
|
|
287
|
+
compression,
|
|
288
|
+
wait_for_ready,
|
|
289
|
+
timeout,
|
|
290
|
+
metadata,
|
|
291
|
+
_registered_method=True)
|
|
292
|
+
|
|
293
|
+
@staticmethod
|
|
294
|
+
def GetUser(request,
|
|
295
|
+
target,
|
|
296
|
+
options=(),
|
|
297
|
+
channel_credentials=None,
|
|
298
|
+
call_credentials=None,
|
|
299
|
+
insecure=False,
|
|
300
|
+
compression=None,
|
|
301
|
+
wait_for_ready=None,
|
|
302
|
+
timeout=None,
|
|
303
|
+
metadata=None):
|
|
304
|
+
return grpc.experimental.unary_unary(
|
|
305
|
+
request,
|
|
306
|
+
target,
|
|
307
|
+
'/meshtrade.iam.user.v1.UserService/GetUser',
|
|
308
|
+
meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.GetUserRequest.SerializeToString,
|
|
309
|
+
meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.FromString,
|
|
310
|
+
options,
|
|
311
|
+
channel_credentials,
|
|
312
|
+
insecure,
|
|
313
|
+
call_credentials,
|
|
314
|
+
compression,
|
|
315
|
+
wait_for_ready,
|
|
316
|
+
timeout,
|
|
317
|
+
metadata,
|
|
318
|
+
_registered_method=True)
|
|
319
|
+
|
|
320
|
+
@staticmethod
|
|
321
|
+
def GetUserByEmail(request,
|
|
322
|
+
target,
|
|
323
|
+
options=(),
|
|
324
|
+
channel_credentials=None,
|
|
325
|
+
call_credentials=None,
|
|
326
|
+
insecure=False,
|
|
327
|
+
compression=None,
|
|
328
|
+
wait_for_ready=None,
|
|
329
|
+
timeout=None,
|
|
330
|
+
metadata=None):
|
|
331
|
+
return grpc.experimental.unary_unary(
|
|
332
|
+
request,
|
|
333
|
+
target,
|
|
334
|
+
'/meshtrade.iam.user.v1.UserService/GetUserByEmail',
|
|
335
|
+
meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.GetUserByEmailRequest.SerializeToString,
|
|
336
|
+
meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.FromString,
|
|
337
|
+
options,
|
|
338
|
+
channel_credentials,
|
|
339
|
+
insecure,
|
|
340
|
+
call_credentials,
|
|
341
|
+
compression,
|
|
342
|
+
wait_for_ready,
|
|
343
|
+
timeout,
|
|
344
|
+
metadata,
|
|
345
|
+
_registered_method=True)
|
|
346
|
+
|
|
347
|
+
@staticmethod
|
|
348
|
+
def ListUsers(request,
|
|
349
|
+
target,
|
|
350
|
+
options=(),
|
|
351
|
+
channel_credentials=None,
|
|
352
|
+
call_credentials=None,
|
|
353
|
+
insecure=False,
|
|
354
|
+
compression=None,
|
|
355
|
+
wait_for_ready=None,
|
|
356
|
+
timeout=None,
|
|
357
|
+
metadata=None):
|
|
358
|
+
return grpc.experimental.unary_unary(
|
|
359
|
+
request,
|
|
360
|
+
target,
|
|
361
|
+
'/meshtrade.iam.user.v1.UserService/ListUsers',
|
|
362
|
+
meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.ListUsersRequest.SerializeToString,
|
|
363
|
+
meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.ListUsersResponse.FromString,
|
|
364
|
+
options,
|
|
365
|
+
channel_credentials,
|
|
366
|
+
insecure,
|
|
367
|
+
call_credentials,
|
|
368
|
+
compression,
|
|
369
|
+
wait_for_ready,
|
|
370
|
+
timeout,
|
|
371
|
+
metadata,
|
|
372
|
+
_registered_method=True)
|
|
373
|
+
|
|
374
|
+
@staticmethod
|
|
375
|
+
def SearchUsers(request,
|
|
376
|
+
target,
|
|
377
|
+
options=(),
|
|
378
|
+
channel_credentials=None,
|
|
379
|
+
call_credentials=None,
|
|
380
|
+
insecure=False,
|
|
381
|
+
compression=None,
|
|
382
|
+
wait_for_ready=None,
|
|
383
|
+
timeout=None,
|
|
384
|
+
metadata=None):
|
|
385
|
+
return grpc.experimental.unary_unary(
|
|
386
|
+
request,
|
|
387
|
+
target,
|
|
388
|
+
'/meshtrade.iam.user.v1.UserService/SearchUsers',
|
|
389
|
+
meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.SearchUsersRequest.SerializeToString,
|
|
390
|
+
meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.SearchUsersResponse.FromString,
|
|
391
|
+
options,
|
|
392
|
+
channel_credentials,
|
|
393
|
+
insecure,
|
|
394
|
+
call_credentials,
|
|
395
|
+
compression,
|
|
396
|
+
wait_for_ready,
|
|
397
|
+
timeout,
|
|
398
|
+
metadata,
|
|
399
|
+
_registered_method=True)
|
|
400
|
+
|
|
401
|
+
@staticmethod
|
|
402
|
+
def CreateUser(request,
|
|
403
|
+
target,
|
|
404
|
+
options=(),
|
|
405
|
+
channel_credentials=None,
|
|
406
|
+
call_credentials=None,
|
|
407
|
+
insecure=False,
|
|
408
|
+
compression=None,
|
|
409
|
+
wait_for_ready=None,
|
|
410
|
+
timeout=None,
|
|
411
|
+
metadata=None):
|
|
412
|
+
return grpc.experimental.unary_unary(
|
|
413
|
+
request,
|
|
414
|
+
target,
|
|
415
|
+
'/meshtrade.iam.user.v1.UserService/CreateUser',
|
|
416
|
+
meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.CreateUserRequest.SerializeToString,
|
|
417
|
+
meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.FromString,
|
|
418
|
+
options,
|
|
419
|
+
channel_credentials,
|
|
420
|
+
insecure,
|
|
421
|
+
call_credentials,
|
|
422
|
+
compression,
|
|
423
|
+
wait_for_ready,
|
|
424
|
+
timeout,
|
|
425
|
+
metadata,
|
|
426
|
+
_registered_method=True)
|
|
56
427
|
|
|
57
428
|
@staticmethod
|
|
58
|
-
def
|
|
429
|
+
def UpdateUser(request,
|
|
59
430
|
target,
|
|
60
431
|
options=(),
|
|
61
432
|
channel_credentials=None,
|
|
@@ -68,8 +439,8 @@ class UserService(object):
|
|
|
68
439
|
return grpc.experimental.unary_unary(
|
|
69
440
|
request,
|
|
70
441
|
target,
|
|
71
|
-
'/meshtrade.iam.user.v1.UserService/
|
|
72
|
-
meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.
|
|
442
|
+
'/meshtrade.iam.user.v1.UserService/UpdateUser',
|
|
443
|
+
meshtrade_dot_iam_dot_user_dot_v1_dot_service__pb2.UpdateUserRequest.SerializeToString,
|
|
73
444
|
meshtrade_dot_iam_dot_user_dot_v1_dot_user__pb2.User.FromString,
|
|
74
445
|
options,
|
|
75
446
|
channel_credentials,
|
|
@@ -22,16 +22,25 @@ _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
|
|
|
26
27
|
|
|
27
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n meshtrade/iam/user/v1/user.proto\x12\x15meshtrade.iam.user.v1\"
|
|
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\"\xa6\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\x03 \x01(\tB\n\xbaH\x07r\x02`\x01\xc8\x01\x01R\x05\x65mail\x12k\n\x05roles\x18\x04 \x03(\tBU\xbaHR\x92\x01O\"MrK\x10/\x18\x30\x32\x45^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}/roles/[1-9][0-9]{6,7}$R\x05rolesBO\n\x1c\x63o.meshtrade.api.iam.user.v1Z/github.com/meshtrade/api/go/iam/user/v1;user_v1b\x06proto3')
|
|
28
29
|
|
|
29
30
|
_globals = globals()
|
|
30
31
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
32
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.iam.user.v1.user_pb2', _globals)
|
|
32
33
|
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
34
|
_globals['DESCRIPTOR']._loaded_options = None
|
|
34
|
-
_globals['DESCRIPTOR']._serialized_options = b'\n\034co.meshtrade.api.iam.user.v1Z
|
|
35
|
-
_globals['_USER'].
|
|
36
|
-
_globals['_USER'].
|
|
35
|
+
_globals['DESCRIPTOR']._serialized_options = b'\n\034co.meshtrade.api.iam.user.v1Z/github.com/meshtrade/api/go/iam/user/v1;user_v1'
|
|
36
|
+
_globals['_USER'].fields_by_name['name']._loaded_options = None
|
|
37
|
+
_globals['_USER'].fields_by_name['name']._serialized_options = b'\272H\241\001\272\001\235\001\n\024name.format.optional\0222name must be empty or in the format users/{ULIDv2}\032Qsize(this) == 0 || this.matches(\'^users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\')'
|
|
38
|
+
_globals['_USER'].fields_by_name['owner']._loaded_options = None
|
|
39
|
+
_globals['_USER'].fields_by_name['owner']._serialized_options = b'\272H9r42/^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\230\001!\310\001\001'
|
|
40
|
+
_globals['_USER'].fields_by_name['email']._loaded_options = None
|
|
41
|
+
_globals['_USER'].fields_by_name['email']._serialized_options = b'\272H\007r\002`\001\310\001\001'
|
|
42
|
+
_globals['_USER'].fields_by_name['roles']._loaded_options = None
|
|
43
|
+
_globals['_USER'].fields_by_name['roles']._serialized_options = b'\272HR\222\001O\"MrK\020/\03002E^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}/roles/[1-9][0-9]{6,7}$'
|
|
44
|
+
_globals['_USER']._serialized_start=89
|
|
45
|
+
_globals['_USER']._serialized_end=511
|
|
37
46
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from buf.validate import validate_pb2 as _validate_pb2
|
|
1
2
|
from google.protobuf.internal import containers as _containers
|
|
2
3
|
from google.protobuf import descriptor as _descriptor
|
|
3
4
|
from google.protobuf import message as _message
|
|
@@ -7,9 +8,13 @@ from typing import ClassVar as _ClassVar, Optional as _Optional
|
|
|
7
8
|
DESCRIPTOR: _descriptor.FileDescriptor
|
|
8
9
|
|
|
9
10
|
class User(_message.Message):
|
|
10
|
-
__slots__ = ("email", "roles")
|
|
11
|
+
__slots__ = ("name", "owner", "email", "roles")
|
|
12
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
13
|
+
OWNER_FIELD_NUMBER: _ClassVar[int]
|
|
11
14
|
EMAIL_FIELD_NUMBER: _ClassVar[int]
|
|
12
15
|
ROLES_FIELD_NUMBER: _ClassVar[int]
|
|
16
|
+
name: str
|
|
17
|
+
owner: str
|
|
13
18
|
email: str
|
|
14
19
|
roles: _containers.RepeatedScalarFieldContainer[str]
|
|
15
|
-
def __init__(self, email: _Optional[str] = ..., roles: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
20
|
+
def __init__(self, name: _Optional[str] = ..., owner: _Optional[str] = ..., email: _Optional[str] = ..., roles: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
@@ -13,8 +13,21 @@
|
|
|
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
|
+
)
|
|
18
31
|
|
|
19
32
|
# ===================================================================
|
|
20
33
|
# END OF AUTO-GENERATED SECTION
|
|
@@ -30,12 +43,23 @@ from .transaction_state_pb2 import TransactionState
|
|
|
30
43
|
#
|
|
31
44
|
# ===================================================================
|
|
32
45
|
|
|
46
|
+
from .transaction_state_machine import transaction_state_can_perform_action_at_state
|
|
47
|
+
|
|
33
48
|
# ===================================================================
|
|
34
49
|
# MODULE EXPORTS
|
|
35
50
|
# ===================================================================
|
|
36
51
|
# Combined auto-generated and manual exports
|
|
37
52
|
__all__ = [
|
|
38
53
|
# Generated exports
|
|
54
|
+
"GetTransactionStateRequest",
|
|
55
|
+
"GetTransactionStateResponse",
|
|
56
|
+
"MonitorTransactionStateRequest",
|
|
57
|
+
"MonitorTransactionStateResponse",
|
|
39
58
|
"TransactionAction",
|
|
59
|
+
"TransactionService",
|
|
60
|
+
"TransactionServiceGRPCClient",
|
|
61
|
+
"TransactionServiceGRPCClientInterface",
|
|
40
62
|
"TransactionState",
|
|
63
|
+
# Manual exports
|
|
64
|
+
"transaction_state_can_perform_action_at_state",
|
|
41
65
|
]
|