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
@@ -6,9 +6,9 @@ from meshtrade.iam.api_user.v1 import api_user_pb2 as meshtrade_dot_iam_dot_api_
6
6
  from meshtrade.iam.api_user.v1 import service_pb2 as meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2
7
7
 
8
8
 
9
- class ApiUserServiceStub(object):
9
+ class APIUserServiceStub(object):
10
10
  """
11
- ApiUserService manages API user lifecycle and authentication credentials.
11
+ APIUserService manages API user lifecycle and authentication credentials.
12
12
 
13
13
  API users represent automated clients that can authenticate with API keys
14
14
  and perform operations within a specific group context. Each API user has:
@@ -27,46 +27,56 @@ class ApiUserServiceStub(object):
27
27
  Args:
28
28
  channel: A grpc.Channel.
29
29
  """
30
- self.GetApiUser = channel.unary_unary(
31
- '/meshtrade.iam.api_user.v1.ApiUserService/GetApiUser',
32
- request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.GetApiUserRequest.SerializeToString,
30
+ self.GetAPIUser = channel.unary_unary(
31
+ '/meshtrade.iam.api_user.v1.APIUserService/GetAPIUser',
32
+ request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.GetAPIUserRequest.SerializeToString,
33
33
  response_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.FromString,
34
34
  _registered_method=True)
35
- self.CreateApiUser = channel.unary_unary(
36
- '/meshtrade.iam.api_user.v1.ApiUserService/CreateApiUser',
37
- request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.CreateApiUserRequest.SerializeToString,
35
+ self.CreateAPIUser = channel.unary_unary(
36
+ '/meshtrade.iam.api_user.v1.APIUserService/CreateAPIUser',
37
+ request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.CreateAPIUserRequest.SerializeToString,
38
38
  response_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.FromString,
39
39
  _registered_method=True)
40
- self.ListApiUsers = channel.unary_unary(
41
- '/meshtrade.iam.api_user.v1.ApiUserService/ListApiUsers',
42
- request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ListApiUsersRequest.SerializeToString,
43
- response_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ListApiUsersResponse.FromString,
40
+ self.AssignRolesToAPIUser = channel.unary_unary(
41
+ '/meshtrade.iam.api_user.v1.APIUserService/AssignRolesToAPIUser',
42
+ request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.AssignRolesToAPIUserRequest.SerializeToString,
43
+ response_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.FromString,
44
+ _registered_method=True)
45
+ self.RevokeRolesFromAPIUser = channel.unary_unary(
46
+ '/meshtrade.iam.api_user.v1.APIUserService/RevokeRolesFromAPIUser',
47
+ request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.RevokeRolesFromAPIUserRequest.SerializeToString,
48
+ response_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.FromString,
44
49
  _registered_method=True)
45
- self.SearchApiUsers = channel.unary_unary(
46
- '/meshtrade.iam.api_user.v1.ApiUserService/SearchApiUsers',
47
- request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.SearchApiUsersRequest.SerializeToString,
48
- response_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.SearchApiUsersResponse.FromString,
50
+ self.ListAPIUsers = channel.unary_unary(
51
+ '/meshtrade.iam.api_user.v1.APIUserService/ListAPIUsers',
52
+ request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ListAPIUsersRequest.SerializeToString,
53
+ response_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ListAPIUsersResponse.FromString,
49
54
  _registered_method=True)
50
- self.ActivateApiUser = channel.unary_unary(
51
- '/meshtrade.iam.api_user.v1.ApiUserService/ActivateApiUser',
52
- request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ActivateApiUserRequest.SerializeToString,
55
+ self.SearchAPIUsers = channel.unary_unary(
56
+ '/meshtrade.iam.api_user.v1.APIUserService/SearchAPIUsers',
57
+ request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.SearchAPIUsersRequest.SerializeToString,
58
+ response_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.SearchAPIUsersResponse.FromString,
59
+ _registered_method=True)
60
+ self.ActivateAPIUser = channel.unary_unary(
61
+ '/meshtrade.iam.api_user.v1.APIUserService/ActivateAPIUser',
62
+ request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ActivateAPIUserRequest.SerializeToString,
53
63
  response_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.FromString,
54
64
  _registered_method=True)
55
- self.DeactivateApiUser = channel.unary_unary(
56
- '/meshtrade.iam.api_user.v1.ApiUserService/DeactivateApiUser',
57
- request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.DeactivateApiUserRequest.SerializeToString,
65
+ self.DeactivateAPIUser = channel.unary_unary(
66
+ '/meshtrade.iam.api_user.v1.APIUserService/DeactivateAPIUser',
67
+ request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.DeactivateAPIUserRequest.SerializeToString,
58
68
  response_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.FromString,
59
69
  _registered_method=True)
60
- self.GetApiUserByKeyHash = channel.unary_unary(
61
- '/meshtrade.iam.api_user.v1.ApiUserService/GetApiUserByKeyHash',
62
- request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.GetApiUserByKeyHashRequest.SerializeToString,
70
+ self.GetAPIUserByKeyHash = channel.unary_unary(
71
+ '/meshtrade.iam.api_user.v1.APIUserService/GetAPIUserByKeyHash',
72
+ request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.GetAPIUserByKeyHashRequest.SerializeToString,
63
73
  response_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.FromString,
64
74
  _registered_method=True)
65
75
 
66
76
 
67
- class ApiUserServiceServicer(object):
77
+ class APIUserServiceServicer(object):
68
78
  """
69
- ApiUserService manages API user lifecycle and authentication credentials.
79
+ APIUserService manages API user lifecycle and authentication credentials.
70
80
 
71
81
  API users represent automated clients that can authenticate with API keys
72
82
  and perform operations within a specific group context. Each API user has:
@@ -79,183 +89,163 @@ class ApiUserServiceServicer(object):
79
89
  the authenticated group context.
80
90
  """
81
91
 
82
- def GetApiUser(self, request, context):
92
+ def GetAPIUser(self, request, context):
83
93
  """
84
94
  Retrieves a single API user by its unique identifier.
85
-
86
- Parameters:
87
- - name: The resource name in format api_users/{api_user_id}
88
-
89
- Returns:
90
- - APIUser: Complete API user resource including metadata and roles
91
-
92
- Authorization: Requires ROLE_IAM_ADMIN or ROLE_IAM_VIEWER
93
95
  """
94
96
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
95
97
  context.set_details('Method not implemented!')
96
98
  raise NotImplementedError('Method not implemented!')
97
99
 
98
- def CreateApiUser(self, request, context):
100
+ def CreateAPIUser(self, request, context):
99
101
  """
100
102
  Creates a new API user with the specified configuration.
101
103
 
102
104
  The API user will be created in the authenticated group context
103
105
  and assigned the provided roles. The system generates a unique
104
106
  identifier and API key for authentication.
107
+ """
108
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
109
+ context.set_details('Method not implemented!')
110
+ raise NotImplementedError('Method not implemented!')
105
111
 
106
- Parameters:
107
- - api_user: APIUser configuration (name field ignored, assigned by system)
112
+ def AssignRolesToAPIUser(self, request, context):
113
+ """
114
+ Assign roles to an existing api user within the authenticated group context.
115
+
116
+ The role assignment enables the api user to perform operations according
117
+ to the permissions associated with that role within the group hierarchy.
118
+ """
119
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
120
+ context.set_details('Method not implemented!')
121
+ raise NotImplementedError('Method not implemented!')
108
122
 
109
- Returns:
110
- - APIUser: Newly created API user with generated name and API key
123
+ def RevokeRolesFromAPIUser(self, request, context):
124
+ """
125
+ Revoke roles from an existing API user within the authenticated group context.
111
126
 
112
- Authorization: Requires ROLE_IAM_ADMIN
127
+ The role revocation removes the permissions associated with that role from
128
+ the API user within the group hierarchy. The API user will no longer be able
129
+ to perform operations that require the revoked role.
113
130
  """
114
131
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
115
132
  context.set_details('Method not implemented!')
116
133
  raise NotImplementedError('Method not implemented!')
117
134
 
118
- def ListApiUsers(self, request, context):
135
+ def ListAPIUsers(self, request, context):
119
136
  """
120
137
  Lists all API users in the authenticated group context.
121
138
 
122
139
  Returns all API users that belong to the current group,
123
140
  regardless of their active/inactive state.
124
-
125
- Returns:
126
- - ListApiUsersResponse: Collection of API users in the group
127
-
128
- Authorization: Requires ROLE_IAM_ADMIN or ROLE_IAM_VIEWER
129
141
  """
130
142
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
131
143
  context.set_details('Method not implemented!')
132
144
  raise NotImplementedError('Method not implemented!')
133
145
 
134
- def SearchApiUsers(self, request, context):
146
+ def SearchAPIUsers(self, request, context):
135
147
  """
136
148
  Searches API users using display name filtering.
137
149
 
138
150
  Performs substring matching on API user display names
139
151
  within the authenticated group context.
140
-
141
- Parameters:
142
- - display_name: Substring to search for in display names
143
-
144
- Returns:
145
- - SearchApiUsersResponse: Collection of matching API users
146
-
147
- Authorization: Requires ROLE_IAM_ADMIN or ROLE_IAM_VIEWER
148
152
  """
149
153
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
150
154
  context.set_details('Method not implemented!')
151
155
  raise NotImplementedError('Method not implemented!')
152
156
 
153
- def ActivateApiUser(self, request, context):
157
+ def ActivateAPIUser(self, request, context):
154
158
  """
155
159
  Activates an API user, enabling API key authentication.
156
160
 
157
161
  Changes the API user state to active, allowing the associated
158
162
  API key to be used for authentication and authorization.
159
-
160
- Parameters:
161
- - name: The resource name in format api_users/{api_user_id}
162
-
163
- Returns:
164
- - APIUser: Updated API user with active state
165
-
166
- Authorization: Requires ROLE_IAM_ADMIN
167
163
  """
168
164
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
169
165
  context.set_details('Method not implemented!')
170
166
  raise NotImplementedError('Method not implemented!')
171
167
 
172
- def DeactivateApiUser(self, request, context):
168
+ def DeactivateAPIUser(self, request, context):
173
169
  """
174
170
  Deactivates an API user, disabling API key authentication.
175
171
 
176
172
  Changes the API user state to inactive, preventing the associated
177
173
  API key from being used for authentication.
178
-
179
- Parameters:
180
- - name: The resource name in format api_users/{api_user_id}
181
-
182
- Returns:
183
- - APIUser: Updated API user with inactive state
184
-
185
- Authorization: Requires ROLE_IAM_ADMIN
186
174
  """
187
175
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
188
176
  context.set_details('Method not implemented!')
189
177
  raise NotImplementedError('Method not implemented!')
190
178
 
191
- def GetApiUserByKeyHash(self, request, context):
179
+ def GetAPIUserByKeyHash(self, request, context):
192
180
  """
193
181
  Retrieves an API user using its API key hash.
194
182
 
195
183
  This method is used for authentication flows to lookup
196
184
  an API user based on the hash of their API key.
197
-
198
- Parameters:
199
- - key_hash: Hash of the API key to lookup
200
-
201
- Returns:
202
- - APIUser: Complete API user resource associated with the key
203
-
204
- Authorization: Requires ROLE_IAM_ADMIN or ROLE_IAM_VIEWER
205
185
  """
206
186
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
207
187
  context.set_details('Method not implemented!')
208
188
  raise NotImplementedError('Method not implemented!')
209
189
 
210
190
 
211
- def add_ApiUserServiceServicer_to_server(servicer, server):
191
+ def add_APIUserServiceServicer_to_server(servicer, server):
212
192
  rpc_method_handlers = {
213
- 'GetApiUser': grpc.unary_unary_rpc_method_handler(
214
- servicer.GetApiUser,
215
- request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.GetApiUserRequest.FromString,
193
+ 'GetAPIUser': grpc.unary_unary_rpc_method_handler(
194
+ servicer.GetAPIUser,
195
+ request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.GetAPIUserRequest.FromString,
216
196
  response_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.SerializeToString,
217
197
  ),
218
- 'CreateApiUser': grpc.unary_unary_rpc_method_handler(
219
- servicer.CreateApiUser,
220
- request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.CreateApiUserRequest.FromString,
198
+ 'CreateAPIUser': grpc.unary_unary_rpc_method_handler(
199
+ servicer.CreateAPIUser,
200
+ request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.CreateAPIUserRequest.FromString,
221
201
  response_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.SerializeToString,
222
202
  ),
223
- 'ListApiUsers': grpc.unary_unary_rpc_method_handler(
224
- servicer.ListApiUsers,
225
- request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ListApiUsersRequest.FromString,
226
- response_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ListApiUsersResponse.SerializeToString,
203
+ 'AssignRolesToAPIUser': grpc.unary_unary_rpc_method_handler(
204
+ servicer.AssignRolesToAPIUser,
205
+ request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.AssignRolesToAPIUserRequest.FromString,
206
+ response_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.SerializeToString,
207
+ ),
208
+ 'RevokeRolesFromAPIUser': grpc.unary_unary_rpc_method_handler(
209
+ servicer.RevokeRolesFromAPIUser,
210
+ request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.RevokeRolesFromAPIUserRequest.FromString,
211
+ response_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.SerializeToString,
227
212
  ),
228
- 'SearchApiUsers': grpc.unary_unary_rpc_method_handler(
229
- servicer.SearchApiUsers,
230
- request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.SearchApiUsersRequest.FromString,
231
- response_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.SearchApiUsersResponse.SerializeToString,
213
+ 'ListAPIUsers': grpc.unary_unary_rpc_method_handler(
214
+ servicer.ListAPIUsers,
215
+ request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ListAPIUsersRequest.FromString,
216
+ response_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ListAPIUsersResponse.SerializeToString,
232
217
  ),
233
- 'ActivateApiUser': grpc.unary_unary_rpc_method_handler(
234
- servicer.ActivateApiUser,
235
- request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ActivateApiUserRequest.FromString,
218
+ 'SearchAPIUsers': grpc.unary_unary_rpc_method_handler(
219
+ servicer.SearchAPIUsers,
220
+ request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.SearchAPIUsersRequest.FromString,
221
+ response_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.SearchAPIUsersResponse.SerializeToString,
222
+ ),
223
+ 'ActivateAPIUser': grpc.unary_unary_rpc_method_handler(
224
+ servicer.ActivateAPIUser,
225
+ request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ActivateAPIUserRequest.FromString,
236
226
  response_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.SerializeToString,
237
227
  ),
238
- 'DeactivateApiUser': grpc.unary_unary_rpc_method_handler(
239
- servicer.DeactivateApiUser,
240
- request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.DeactivateApiUserRequest.FromString,
228
+ 'DeactivateAPIUser': grpc.unary_unary_rpc_method_handler(
229
+ servicer.DeactivateAPIUser,
230
+ request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.DeactivateAPIUserRequest.FromString,
241
231
  response_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.SerializeToString,
242
232
  ),
243
- 'GetApiUserByKeyHash': grpc.unary_unary_rpc_method_handler(
244
- servicer.GetApiUserByKeyHash,
245
- request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.GetApiUserByKeyHashRequest.FromString,
233
+ 'GetAPIUserByKeyHash': grpc.unary_unary_rpc_method_handler(
234
+ servicer.GetAPIUserByKeyHash,
235
+ request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.GetAPIUserByKeyHashRequest.FromString,
246
236
  response_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.SerializeToString,
247
237
  ),
248
238
  }
249
239
  generic_handler = grpc.method_handlers_generic_handler(
250
- 'meshtrade.iam.api_user.v1.ApiUserService', rpc_method_handlers)
240
+ 'meshtrade.iam.api_user.v1.APIUserService', rpc_method_handlers)
251
241
  server.add_generic_rpc_handlers((generic_handler,))
252
- server.add_registered_method_handlers('meshtrade.iam.api_user.v1.ApiUserService', rpc_method_handlers)
242
+ server.add_registered_method_handlers('meshtrade.iam.api_user.v1.APIUserService', rpc_method_handlers)
253
243
 
254
244
 
255
245
  # This class is part of an EXPERIMENTAL API.
256
- class ApiUserService(object):
246
+ class APIUserService(object):
257
247
  """
258
- ApiUserService manages API user lifecycle and authentication credentials.
248
+ APIUserService manages API user lifecycle and authentication credentials.
259
249
 
260
250
  API users represent automated clients that can authenticate with API keys
261
251
  and perform operations within a specific group context. Each API user has:
@@ -269,7 +259,61 @@ class ApiUserService(object):
269
259
  """
270
260
 
271
261
  @staticmethod
272
- def GetApiUser(request,
262
+ def GetAPIUser(request,
263
+ target,
264
+ options=(),
265
+ channel_credentials=None,
266
+ call_credentials=None,
267
+ insecure=False,
268
+ compression=None,
269
+ wait_for_ready=None,
270
+ timeout=None,
271
+ metadata=None):
272
+ return grpc.experimental.unary_unary(
273
+ request,
274
+ target,
275
+ '/meshtrade.iam.api_user.v1.APIUserService/GetAPIUser',
276
+ meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.GetAPIUserRequest.SerializeToString,
277
+ meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.FromString,
278
+ options,
279
+ channel_credentials,
280
+ insecure,
281
+ call_credentials,
282
+ compression,
283
+ wait_for_ready,
284
+ timeout,
285
+ metadata,
286
+ _registered_method=True)
287
+
288
+ @staticmethod
289
+ def CreateAPIUser(request,
290
+ target,
291
+ options=(),
292
+ channel_credentials=None,
293
+ call_credentials=None,
294
+ insecure=False,
295
+ compression=None,
296
+ wait_for_ready=None,
297
+ timeout=None,
298
+ metadata=None):
299
+ return grpc.experimental.unary_unary(
300
+ request,
301
+ target,
302
+ '/meshtrade.iam.api_user.v1.APIUserService/CreateAPIUser',
303
+ meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.CreateAPIUserRequest.SerializeToString,
304
+ meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.FromString,
305
+ options,
306
+ channel_credentials,
307
+ insecure,
308
+ call_credentials,
309
+ compression,
310
+ wait_for_ready,
311
+ timeout,
312
+ metadata,
313
+ _registered_method=True)
314
+
315
+ @staticmethod
316
+ def AssignRolesToAPIUser(request,
273
317
  target,
274
318
  options=(),
275
319
  channel_credentials=None,
@@ -282,8 +326,8 @@ class ApiUserService(object):
282
326
  return grpc.experimental.unary_unary(
283
327
  request,
284
328
  target,
285
- '/meshtrade.iam.api_user.v1.ApiUserService/GetApiUser',
286
- meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.GetApiUserRequest.SerializeToString,
329
+ '/meshtrade.iam.api_user.v1.APIUserService/AssignRolesToAPIUser',
330
+ meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.AssignRolesToAPIUserRequest.SerializeToString,
287
331
  meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.FromString,
288
332
  options,
289
333
  channel_credentials,
@@ -296,7 +340,7 @@ class ApiUserService(object):
296
340
  _registered_method=True)
297
341
 
298
342
  @staticmethod
299
- def CreateApiUser(request,
343
+ def RevokeRolesFromAPIUser(request,
300
344
  target,
301
345
  options=(),
302
346
  channel_credentials=None,
@@ -309,8 +353,8 @@ class ApiUserService(object):
309
353
  return grpc.experimental.unary_unary(
310
354
  request,
311
355
  target,
312
- '/meshtrade.iam.api_user.v1.ApiUserService/CreateApiUser',
313
- meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.CreateApiUserRequest.SerializeToString,
356
+ '/meshtrade.iam.api_user.v1.APIUserService/RevokeRolesFromAPIUser',
357
+ meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.RevokeRolesFromAPIUserRequest.SerializeToString,
314
358
  meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.FromString,
315
359
  options,
316
360
  channel_credentials,
@@ -323,7 +367,7 @@ class ApiUserService(object):
323
367
  _registered_method=True)
324
368
 
325
369
  @staticmethod
326
- def ListApiUsers(request,
370
+ def ListAPIUsers(request,
327
371
  target,
328
372
  options=(),
329
373
  channel_credentials=None,
@@ -336,9 +380,9 @@ class ApiUserService(object):
336
380
  return grpc.experimental.unary_unary(
337
381
  request,
338
382
  target,
339
- '/meshtrade.iam.api_user.v1.ApiUserService/ListApiUsers',
340
- meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ListApiUsersRequest.SerializeToString,
341
- meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ListApiUsersResponse.FromString,
383
+ '/meshtrade.iam.api_user.v1.APIUserService/ListAPIUsers',
384
+ meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ListAPIUsersRequest.SerializeToString,
385
+ meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ListAPIUsersResponse.FromString,
342
386
  options,
343
387
  channel_credentials,
344
388
  insecure,
@@ -350,7 +394,7 @@ class ApiUserService(object):
350
394
  _registered_method=True)
351
395
 
352
396
  @staticmethod
353
- def SearchApiUsers(request,
397
+ def SearchAPIUsers(request,
354
398
  target,
355
399
  options=(),
356
400
  channel_credentials=None,
@@ -363,9 +407,9 @@ class ApiUserService(object):
363
407
  return grpc.experimental.unary_unary(
364
408
  request,
365
409
  target,
366
- '/meshtrade.iam.api_user.v1.ApiUserService/SearchApiUsers',
367
- meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.SearchApiUsersRequest.SerializeToString,
368
- meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.SearchApiUsersResponse.FromString,
410
+ '/meshtrade.iam.api_user.v1.APIUserService/SearchAPIUsers',
411
+ meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.SearchAPIUsersRequest.SerializeToString,
412
+ meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.SearchAPIUsersResponse.FromString,
369
413
  options,
370
414
  channel_credentials,
371
415
  insecure,
@@ -377,7 +421,7 @@ class ApiUserService(object):
377
421
  _registered_method=True)
378
422
 
379
423
  @staticmethod
380
- def ActivateApiUser(request,
424
+ def ActivateAPIUser(request,
381
425
  target,
382
426
  options=(),
383
427
  channel_credentials=None,
@@ -390,8 +434,8 @@ class ApiUserService(object):
390
434
  return grpc.experimental.unary_unary(
391
435
  request,
392
436
  target,
393
- '/meshtrade.iam.api_user.v1.ApiUserService/ActivateApiUser',
394
- meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ActivateApiUserRequest.SerializeToString,
437
+ '/meshtrade.iam.api_user.v1.APIUserService/ActivateAPIUser',
438
+ meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ActivateAPIUserRequest.SerializeToString,
395
439
  meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.FromString,
396
440
  options,
397
441
  channel_credentials,
@@ -404,7 +448,7 @@ class ApiUserService(object):
404
448
  _registered_method=True)
405
449
 
406
450
  @staticmethod
407
- def DeactivateApiUser(request,
451
+ def DeactivateAPIUser(request,
408
452
  target,
409
453
  options=(),
410
454
  channel_credentials=None,
@@ -417,8 +461,8 @@ class ApiUserService(object):
417
461
  return grpc.experimental.unary_unary(
418
462
  request,
419
463
  target,
420
- '/meshtrade.iam.api_user.v1.ApiUserService/DeactivateApiUser',
421
- meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.DeactivateApiUserRequest.SerializeToString,
464
+ '/meshtrade.iam.api_user.v1.APIUserService/DeactivateAPIUser',
465
+ meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.DeactivateAPIUserRequest.SerializeToString,
422
466
  meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.FromString,
423
467
  options,
424
468
  channel_credentials,
@@ -431,7 +475,7 @@ class ApiUserService(object):
431
475
  _registered_method=True)
432
476
 
433
477
  @staticmethod
434
- def GetApiUserByKeyHash(request,
478
+ def GetAPIUserByKeyHash(request,
435
479
  target,
436
480
  options=(),
437
481
  channel_credentials=None,
@@ -444,8 +488,8 @@ class ApiUserService(object):
444
488
  return grpc.experimental.unary_unary(
445
489
  request,
446
490
  target,
447
- '/meshtrade.iam.api_user.v1.ApiUserService/GetApiUserByKeyHash',
448
- meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.GetApiUserByKeyHashRequest.SerializeToString,
491
+ '/meshtrade.iam.api_user.v1.APIUserService/GetAPIUserByKeyHash',
492
+ meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.GetAPIUserByKeyHashRequest.SerializeToString,
449
493
  meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.FromString,
450
494
  options,
451
495
  channel_credentials,
@@ -15,11 +15,13 @@
15
15
  # Generated protobuf imports
16
16
  from .group_pb2 import Group
17
17
  from .service_pb2 import (
18
+ CreateGroupRequest,
18
19
  GetGroupRequest,
19
20
  ListGroupsRequest,
20
21
  ListGroupsResponse,
21
22
  SearchGroupsRequest,
22
23
  SearchGroupsResponse,
24
+ UpdateGroupRequest,
23
25
  )
24
26
 
25
27
  # Generated service imports
@@ -28,7 +30,6 @@ from .service_meshpy import (
28
30
  GroupServiceGRPCClient,
29
31
  GroupServiceGRPCClientInterface,
30
32
  )
31
- from .service_options_meshpy import ClientOptions
32
33
 
33
34
  # ===================================================================
34
35
  # END OF AUTO-GENERATED SECTION
@@ -50,7 +51,7 @@ from .service_options_meshpy import ClientOptions
50
51
  # Combined auto-generated and manual exports
51
52
  __all__ = [
52
53
  # Generated exports
53
- "ClientOptions",
54
+ "CreateGroupRequest",
54
55
  "GetGroupRequest",
55
56
  "Group",
56
57
  "GroupService",
@@ -60,4 +61,5 @@ __all__ = [
60
61
  "ListGroupsResponse",
61
62
  "SearchGroupsRequest",
62
63
  "SearchGroupsResponse",
64
+ "UpdateGroupRequest",
63
65
  ]
@@ -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/group/v1/group.proto\x12\x16meshtrade.iam.group.v1\"\x1b\n\x05Group\x12\x12\n\x04name\x18\x01 \x01(\tR\x04nameBQ\n\x1d\x63o.meshtrade.api.iam.group.v1Z0github.com/meshtrade/api/go/iam/group/v1;groupv1b\x06proto3')
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"meshtrade/iam/group/v1/group.proto\x12\x16meshtrade.iam.group.v1\x1a\x1b\x62uf/validate/validate.proto\"\xf8\x02\n\x05Group\x12\xbc\x01\n\x04name\x18\x01 \x01(\tB\xa7\x01\xbaH\xa3\x01\xba\x01\x9f\x01\n\x14name.format.optional\x12\x33name must be empty or in the format groups/{ULIDv2}\x1aRsize(this) == 0 || this.matches(\'^groups/[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\x04 \x01(\tB\r\xbaH\nr\x05\x10\x01\x18\xff\x01\xc8\x01\x01R\x0b\x64isplayName\x12*\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\x18\xe8\x07R\x0b\x64\x65scriptionBR\n\x1d\x63o.meshtrade.api.iam.group.v1Z1github.com/meshtrade/api/go/iam/group/v1;group_v1b\x06proto3')
28
29
 
29
30
  _globals = globals()
30
31
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
32
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.iam.group.v1.group_pb2', _globals)
32
33
  if not _descriptor._USE_C_DESCRIPTORS:
33
34
  _globals['DESCRIPTOR']._loaded_options = None
34
- _globals['DESCRIPTOR']._serialized_options = b'\n\035co.meshtrade.api.iam.group.v1Z0github.com/meshtrade/api/go/iam/group/v1;groupv1'
35
- _globals['_GROUP']._serialized_start=62
36
- _globals['_GROUP']._serialized_end=89
35
+ _globals['DESCRIPTOR']._serialized_options = b'\n\035co.meshtrade.api.iam.group.v1Z1github.com/meshtrade/api/go/iam/group/v1;group_v1'
36
+ _globals['_GROUP'].fields_by_name['name']._loaded_options = None
37
+ _globals['_GROUP'].fields_by_name['name']._serialized_options = b'\272H\243\001\272\001\237\001\n\024name.format.optional\0223name must be empty or in the format groups/{ULIDv2}\032Rsize(this) == 0 || this.matches(\'^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\')'
38
+ _globals['_GROUP'].fields_by_name['owner']._loaded_options = None
39
+ _globals['_GROUP'].fields_by_name['owner']._serialized_options = b'\272H9r42/^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\230\001!\310\001\001'
40
+ _globals['_GROUP'].fields_by_name['display_name']._loaded_options = None
41
+ _globals['_GROUP'].fields_by_name['display_name']._serialized_options = b'\272H\nr\005\020\001\030\377\001\310\001\001'
42
+ _globals['_GROUP'].fields_by_name['description']._loaded_options = None
43
+ _globals['_GROUP'].fields_by_name['description']._serialized_options = b'\272H\005r\003\030\350\007'
44
+ _globals['_GROUP']._serialized_start=92
45
+ _globals['_GROUP']._serialized_end=468
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 import descriptor as _descriptor
2
3
  from google.protobuf import message as _message
3
4
  from typing import ClassVar as _ClassVar, Optional as _Optional
@@ -5,7 +6,13 @@ from typing import ClassVar as _ClassVar, Optional as _Optional
5
6
  DESCRIPTOR: _descriptor.FileDescriptor
6
7
 
7
8
  class Group(_message.Message):
8
- __slots__ = ("name",)
9
+ __slots__ = ("name", "owner", "display_name", "description")
9
10
  NAME_FIELD_NUMBER: _ClassVar[int]
11
+ OWNER_FIELD_NUMBER: _ClassVar[int]
12
+ DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
13
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
10
14
  name: str
11
- def __init__(self, name: _Optional[str] = ...) -> None: ...
15
+ owner: str
16
+ display_name: str
17
+ description: str
18
+ def __init__(self, name: _Optional[str] = ..., owner: _Optional[str] = ..., display_name: _Optional[str] = ..., description: _Optional[str] = ...) -> None: ...