meshtrade 1.5.0__py3-none-any.whl → 1.9.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.

Files changed (87) hide show
  1. meshtrade/compliance/client/v1/client_pb2.py +18 -4
  2. meshtrade/compliance/client/v1/client_pb2.pyi +8 -3
  3. meshtrade/compliance/client/v1/company_pb2.py +25 -8
  4. meshtrade/compliance/client/v1/company_pb2.pyi +1 -0
  5. meshtrade/compliance/client/v1/company_representative_pb2.py +9 -4
  6. meshtrade/compliance/client/v1/company_representative_pb2.pyi +1 -0
  7. meshtrade/compliance/client/v1/company_representative_role_pb2.py +2 -2
  8. meshtrade/compliance/client/v1/fund_pb2.py +13 -4
  9. meshtrade/compliance/client/v1/fund_pb2.pyi +1 -0
  10. meshtrade/compliance/client/v1/identification_document_type_pb2.py +2 -2
  11. meshtrade/compliance/client/v1/industry_classification_pb2.py +2 -2
  12. meshtrade/compliance/client/v1/natural_person_connection_type_pb2.py +2 -2
  13. meshtrade/compliance/client/v1/natural_person_pb2.py +19 -4
  14. meshtrade/compliance/client/v1/natural_person_pb2.pyi +1 -0
  15. meshtrade/compliance/client/v1/pep_status_pb2.py +2 -2
  16. meshtrade/compliance/client/v1/service_pb2.py +20 -15
  17. meshtrade/compliance/client/v1/service_pb2.pyi +1 -0
  18. meshtrade/compliance/client/v1/source_of_income_and_wealth_pb2.py +2 -2
  19. meshtrade/compliance/client/v1/tax_residency_pb2.py +9 -4
  20. meshtrade/compliance/client/v1/tax_residency_pb2.pyi +1 -0
  21. meshtrade/compliance/client/v1/trust_pb2.py +13 -4
  22. meshtrade/compliance/client/v1/trust_pb2.pyi +1 -0
  23. meshtrade/compliance/client/v1/verification_status_pb2.py +2 -2
  24. meshtrade/iam/api_user/v1/__init__.py +2 -0
  25. meshtrade/iam/api_user/v1/api_credentials_pb2.py +4 -4
  26. meshtrade/iam/api_user/v1/api_user_pb2.py +14 -10
  27. meshtrade/iam/api_user/v1/api_user_pb2.pyi +2 -4
  28. meshtrade/iam/api_user/v1/service_meshpy.py +17 -0
  29. meshtrade/iam/api_user/v1/service_pb2.py +44 -30
  30. meshtrade/iam/api_user/v1/service_pb2.pyi +8 -0
  31. meshtrade/iam/api_user/v1/service_pb2_grpc.py +48 -0
  32. meshtrade/iam/group/v1/group_pb2.py +8 -8
  33. meshtrade/iam/group/v1/group_pb2.pyi +2 -6
  34. meshtrade/iam/group/v1/service_pb2.py +11 -11
  35. meshtrade/iam/role/v1/role_pb2.py +3 -3
  36. meshtrade/iam/role/v1/role_pb2.pyi +24 -4
  37. meshtrade/iam/user/v1/__init__.py +17 -1
  38. meshtrade/iam/user/v1/service_meshpy.py +87 -0
  39. meshtrade/iam/user/v1/service_pb2.py +49 -12
  40. meshtrade/iam/user/v1/service_pb2.pyi +65 -6
  41. meshtrade/iam/user/v1/service_pb2_grpc.py +278 -4
  42. meshtrade/iam/user/v1/user_pb2.py +13 -4
  43. meshtrade/iam/user/v1/user_pb2.pyi +7 -2
  44. meshtrade/ledger/transaction/v1/transaction_action_pb2.py +2 -2
  45. meshtrade/ledger/transaction/v1/transaction_state_pb2.py +2 -2
  46. meshtrade/option/v1/method_type_pb2.py +2 -2
  47. meshtrade/reporting/account_report/v1/account_report_pb2.py +2 -2
  48. meshtrade/reporting/account_report/v1/disclaimer_pb2.py +2 -2
  49. meshtrade/reporting/account_report/v1/fee_entry_pb2.py +2 -2
  50. meshtrade/reporting/account_report/v1/income_entry_pb2.py +2 -2
  51. meshtrade/reporting/account_report/v1/service_pb2.py +26 -12
  52. meshtrade/reporting/account_report/v1/service_pb2_grpc.py +29 -25
  53. meshtrade/reporting/account_report/v1/trading_statement_entry_pb2.py +2 -2
  54. meshtrade/studio/instrument/v1/__init__.py +43 -0
  55. meshtrade/studio/instrument/v1/instrument_pb2.py +45 -0
  56. meshtrade/studio/instrument/v1/instrument_pb2.pyi +20 -0
  57. meshtrade/studio/instrument/v1/instrument_pb2_grpc.py +4 -0
  58. meshtrade/studio/instrument/v1/type_pb2.py +37 -0
  59. meshtrade/studio/instrument/v1/type_pb2.pyi +58 -0
  60. meshtrade/studio/instrument/v1/type_pb2_grpc.py +4 -0
  61. meshtrade/studio/instrument/v1/unit_pb2.py +37 -0
  62. meshtrade/studio/instrument/v1/unit_pb2.pyi +46 -0
  63. meshtrade/studio/instrument/v1/unit_pb2_grpc.py +4 -0
  64. meshtrade/trading/limit_order/v1/limit_order_pb2.py +2 -2
  65. meshtrade/trading/limit_order/v1/service_pb2.py +2 -2
  66. meshtrade/trading/market_order/v1/market_order_pb2.py +2 -2
  67. meshtrade/trading/market_order/v1/service_pb2.py +2 -2
  68. meshtrade/type/v1/address_pb2.py +2 -2
  69. meshtrade/type/v1/amount_pb2.py +2 -2
  70. meshtrade/type/v1/contact_details_pb2.py +2 -2
  71. meshtrade/type/v1/date_pb2.py +2 -2
  72. meshtrade/type/v1/decimal_pb2.py +2 -2
  73. meshtrade/type/v1/ledger_pb2.py +2 -2
  74. meshtrade/type/v1/sorting_pb2.py +2 -2
  75. meshtrade/type/v1/time_of_day_pb2.py +2 -2
  76. meshtrade/type/v1/token_pb2.py +2 -2
  77. meshtrade/wallet/account/v1/__init__.py +21 -1
  78. meshtrade/wallet/account/v1/account_pb2.py +28 -4
  79. meshtrade/wallet/account/v1/account_pb2.pyi +57 -3
  80. meshtrade/wallet/account/v1/service_meshpy.py +70 -0
  81. meshtrade/wallet/account/v1/service_pb2.py +64 -21
  82. meshtrade/wallet/account/v1/service_pb2.pyi +82 -19
  83. meshtrade/wallet/account/v1/service_pb2_grpc.py +244 -8
  84. {meshtrade-1.5.0.dist-info → meshtrade-1.9.0.dist-info}/METADATA +1 -1
  85. {meshtrade-1.5.0.dist-info → meshtrade-1.9.0.dist-info}/RECORD +87 -77
  86. {meshtrade-1.5.0.dist-info → meshtrade-1.9.0.dist-info}/WHEEL +0 -0
  87. {meshtrade-1.5.0.dist-info → meshtrade-1.9.0.dist-info}/top_level.txt +0 -0
@@ -1,3 +1,4 @@
1
+ from buf.validate import validate_pb2 as _validate_pb2
1
2
  from google.type import date_pb2 as _date_pb2
2
3
  from google.protobuf import descriptor as _descriptor
3
4
  from google.protobuf import message as _message
@@ -24,14 +24,14 @@ _sym_db = _symbol_database.Default()
24
24
 
25
25
 
26
26
 
27
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n8meshtrade/compliance/client/v1/verification_status.proto\x12\x1emeshtrade.compliance.client.v1*\xc1\x01\n\x12VerificationStatus\x12#\n\x1fVERIFICATION_STATUS_UNSPECIFIED\x10\x00\x12#\n\x1fVERIFICATION_STATUS_NOT_STARTED\x10\x01\x12\x1f\n\x1bVERIFICATION_STATUS_PENDING\x10\x02\x12 \n\x1cVERIFICATION_STATUS_VERIFIED\x10\x03\x12\x1e\n\x1aVERIFICATION_STATUS_FAILED\x10\x04\x42\x62\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1b\x06proto3')
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n8meshtrade/compliance/client/v1/verification_status.proto\x12\x1emeshtrade.compliance.client.v1*\xc1\x01\n\x12VerificationStatus\x12#\n\x1fVERIFICATION_STATUS_UNSPECIFIED\x10\x00\x12#\n\x1fVERIFICATION_STATUS_NOT_STARTED\x10\x01\x12\x1f\n\x1bVERIFICATION_STATUS_PENDING\x10\x02\x12 \n\x1cVERIFICATION_STATUS_VERIFIED\x10\x03\x12\x1e\n\x1aVERIFICATION_STATUS_FAILED\x10\x04\x42\x63\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1b\x06proto3')
28
28
 
29
29
  _globals = globals()
30
30
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
31
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.compliance.client.v1.verification_status_pb2', _globals)
32
32
  if not _descriptor._USE_C_DESCRIPTORS:
33
33
  _globals['DESCRIPTOR']._loaded_options = None
34
- _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z9github.com/meshtrade/api/go/compliance/client/v1;clientv1'
34
+ _globals['DESCRIPTOR']._serialized_options = b'\n%co.meshtrade.api.compliance.client.v1Z:github.com/meshtrade/api/go/compliance/client/v1;client_v1'
35
35
  _globals['_VERIFICATIONSTATUS']._serialized_start=93
36
36
  _globals['_VERIFICATIONSTATUS']._serialized_end=286
37
37
  # @@protoc_insertion_point(module_scope)
@@ -17,6 +17,7 @@ from .api_credentials_pb2 import APICredentials
17
17
  from .api_user_pb2 import APIUser, APIUserAction, APIUserState
18
18
  from .service_pb2 import (
19
19
  ActivateApiUserRequest,
20
+ AssignRoleToAPIUserRequest,
20
21
  CreateApiUserRequest,
21
22
  DeactivateApiUserRequest,
22
23
  GetApiUserByKeyHashRequest,
@@ -78,6 +79,7 @@ __all__ = [
78
79
  "ApiUserService",
79
80
  "ApiUserServiceGRPCClient",
80
81
  "ApiUserServiceGRPCClientInterface",
82
+ "AssignRoleToAPIUserRequest",
81
83
  "ClientOptions",
82
84
  "CreateApiUserRequest",
83
85
  "DeactivateApiUserRequest",
@@ -25,18 +25,18 @@ _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_credentials.proto\x12\x19meshtrade.iam.api_user.v1\x1a\x1b\x62uf/validate/validate.proto\"\x81\x05\n\x0e\x41PICredentials\x12\xbd\x02\n\x07\x61pi_key\x18\x01 \x01(\tB\xa3\x02\xbaH\x9f\x02r\x18\x32\x13^[A-Za-z0-9_-]{43}$\x98\x01+\xba\x01u\n\x10\x61pi_key.required\x12Oapi_key is required and must be exactly 43 characters (base64 URL-safe encoded)\x1a\x10size(this) == 43\xba\x01\x89\x01\n\x0e\x61pi_key.format\x12Rapi_key must be base64 URL-safe encoded (43 characters, alphanumeric plus _ and -)\x1a#this.matches(\'^[A-Za-z0-9_-]{43}$\')R\x06\x61piKey\x12\xae\x02\n\x05group\x18\x02 \x01(\tB\x97\x02\xbaH\x93\x02r\x1a\x32\x15^groups/[0-9A-Z]{26}$\x98\x01!\xba\x01Y\n\x0egroup.required\x12\x35group is required and must be in format groups/{ulid}\x1a\x10size(this) == 33\xba\x01\x97\x01\n\x0cgroup.format\x12`group must be in format groups/{ulid} where ulid is a 26-character ULID (uppercase alphanumeric)\x1a%this.matches(\'^groups/[0-9A-Z]{26}$\')R\x05groupBZ\n co.meshtrade.api.iam.api_user.v1Z6github.com/meshtrade/api/go/iam/api_user/v1;api_userv1b\x06proto3')
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/meshtrade/iam/api_user/v1/api_credentials.proto\x12\x19meshtrade.iam.api_user.v1\x1a\x1b\x62uf/validate/validate.proto\"\xb5\x05\n\x0e\x41PICredentials\x12\xbd\x02\n\x07\x61pi_key\x18\x01 \x01(\tB\xa3\x02\xbaH\x9f\x02r\x18\x32\x13^[A-Za-z0-9_-]{43}$\x98\x01+\xba\x01u\n\x10\x61pi_key.required\x12Oapi_key is required and must be exactly 43 characters (base64 URL-safe encoded)\x1a\x10size(this) == 43\xba\x01\x89\x01\n\x0e\x61pi_key.format\x12Rapi_key must be base64 URL-safe encoded (43 characters, alphanumeric plus _ and -)\x1a#this.matches(\'^[A-Za-z0-9_-]{43}$\')R\x06\x61piKey\x12\xe2\x02\n\x05group\x18\x02 \x01(\tB\xcb\x02\xbaH\xc7\x02r42/^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\x98\x01!\xba\x01Y\n\x0egroup.required\x12\x35group is required and must be in format groups/{ulid}\x1a\x10size(this) == 33\xba\x01\xb1\x01\n\x0cgroup.format\x12`group must be in format groups/{ulid} where ulid is a 26-character ULID (uppercase alphanumeric)\x1a?this.matches(\'^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\')R\x05groupB[\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)
32
32
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.iam.api_user.v1.api_credentials_pb2', _globals)
33
33
  if not _descriptor._USE_C_DESCRIPTORS:
34
34
  _globals['DESCRIPTOR']._loaded_options = None
35
- _globals['DESCRIPTOR']._serialized_options = b'\n co.meshtrade.api.iam.api_user.v1Z6github.com/meshtrade/api/go/iam/api_user/v1;api_userv1'
35
+ _globals['DESCRIPTOR']._serialized_options = b'\n co.meshtrade.api.iam.api_user.v1Z7github.com/meshtrade/api/go/iam/api_user/v1;api_user_v1'
36
36
  _globals['_APICREDENTIALS'].fields_by_name['api_key']._loaded_options = None
37
37
  _globals['_APICREDENTIALS'].fields_by_name['api_key']._serialized_options = b'\272H\237\002r\0302\023^[A-Za-z0-9_-]{43}$\230\001+\272\001u\n\020api_key.required\022Oapi_key is required and must be exactly 43 characters (base64 URL-safe encoded)\032\020size(this) == 43\272\001\211\001\n\016api_key.format\022Rapi_key must be base64 URL-safe encoded (43 characters, alphanumeric plus _ and -)\032#this.matches(\'^[A-Za-z0-9_-]{43}$\')'
38
38
  _globals['_APICREDENTIALS'].fields_by_name['group']._loaded_options = None
39
- _globals['_APICREDENTIALS'].fields_by_name['group']._serialized_options = b'\272H\223\002r\0322\025^groups/[0-9A-Z]{26}$\230\001!\272\001Y\n\016group.required\0225group is required and must be in format groups/{ulid}\032\020size(this) == 33\272\001\227\001\n\014group.format\022`group must be in format groups/{ulid} where ulid is a 26-character ULID (uppercase alphanumeric)\032%this.matches(\'^groups/[0-9A-Z]{26}$\')'
39
+ _globals['_APICREDENTIALS'].fields_by_name['group']._serialized_options = b'\272H\307\002r42/^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\230\001!\272\001Y\n\016group.required\0225group is required and must be in format groups/{ulid}\032\020size(this) == 33\272\001\261\001\n\014group.format\022`group must be in format groups/{ulid} where ulid is a 26-character ULID (uppercase alphanumeric)\032?this.matches(\'^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\')'
40
40
  _globals['_APICREDENTIALS']._serialized_start=108
41
- _globals['_APICREDENTIALS']._serialized_end=749
41
+ _globals['_APICREDENTIALS']._serialized_end=801
42
42
  # @@protoc_insertion_point(module_scope)
@@ -25,24 +25,28 @@ _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\"\xd9\x06\n\x07\x41PIUser\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\xfd\x02\n\x05owner\x18\x02 \x01(\tB\xe6\x02\xbaH\xe2\x02r4\x10\x01\x32\x30^groups/[a-zA-Z0-9]([a-zA-Z0-9_-]*[a-zA-Z0-9])?$\xba\x01[\n\x0eowner.required\x12\x39owner is required and must be in format groups/{group_id}\x1a\x0esize(this) > 0\xba\x01\xca\x01\n\x0cowner.format\x12xowner must be in format groups/{group_id} where group_id contains only alphanumeric characters, underscores, and hyphens\x1a@this.matches(\'^groups/[a-zA-Z0-9]([a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')R\x05owner\x12\x16\n\x06owners\x18\x03 \x03(\tR\x06owners\x12\xb1\x01\n\x0c\x64isplay_name\x18\x04 \x01(\tB\x8d\x01\xbaH\x89\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) <= 255R\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\x14\n\x05roles\x18\x06 \x03(\tR\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\x42Z\n co.meshtrade.api.iam.api_user.v1Z6github.com/meshtrade/api/go/iam/api_user/v1;api_userv1b\x06proto3')
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\"\x9e\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\xc2\x01\n\x05state\x18\x05 \x01(\x0e\x32\'.meshtrade.iam.api_user.v1.APIUserStateB\x82\x01\xbaH\x7f\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)\xc8\x01\x01R\x05state\x12\x65\n\x05roles\x18\x06 \x03(\tBO\xbaHL\x92\x01I\"GrE2@^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}/[123456][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)
32
32
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.iam.api_user.v1.api_user_pb2', _globals)
33
33
  if not _descriptor._USE_C_DESCRIPTORS:
34
34
  _globals['DESCRIPTOR']._loaded_options = None
35
- _globals['DESCRIPTOR']._serialized_options = b'\n co.meshtrade.api.iam.api_user.v1Z6github.com/meshtrade/api/go/iam/api_user/v1;api_userv1'
35
+ _globals['DESCRIPTOR']._serialized_options = b'\n co.meshtrade.api.iam.api_user.v1Z7github.com/meshtrade/api/go/iam/api_user/v1;api_user_v1'
36
+ _globals['_APIUSER'].fields_by_name['name']._loaded_options = None
37
+ _globals['_APIUSER'].fields_by_name['name']._serialized_options = b'\272H\251\001\272\001\245\001\n\024name.format.optional\0226name must be empty or in the format api_users/{ULIDv2}\032Usize(this) == 0 || this.matches(\'^api_users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\')'
36
38
  _globals['_APIUSER'].fields_by_name['owner']._loaded_options = None
37
- _globals['_APIUSER'].fields_by_name['owner']._serialized_options = b'\272H\342\002r4\020\00120^groups/[a-zA-Z0-9]([a-zA-Z0-9_-]*[a-zA-Z0-9])?$\272\001[\n\016owner.required\0229owner is required and must be in format groups/{group_id}\032\016size(this) > 0\272\001\312\001\n\014owner.format\022xowner must be in format groups/{group_id} where group_id contains only alphanumeric characters, underscores, and hyphens\032@this.matches(\'^groups/[a-zA-Z0-9]([a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')'
39
+ _globals['_APIUSER'].fields_by_name['owner']._serialized_options = b'\272H9r42/^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\230\001!\310\001\001'
38
40
  _globals['_APIUSER'].fields_by_name['display_name']._loaded_options = None
39
- _globals['_APIUSER'].fields_by_name['display_name']._serialized_options = b'\272H\211\001r\005\020\001\030\377\001\272\001\177\n\025display_name.required\022Adisplay name is required and must be between 1 and 255 characters\032#size(this) > 0 && size(this) <= 255'
41
+ _globals['_APIUSER'].fields_by_name['display_name']._serialized_options = b'\272H\214\001r\005\020\001\030\377\001\272\001\177\n\025display_name.required\022Adisplay name is required and must be between 1 and 255 characters\032#size(this) > 0 && size(this) <= 255\310\001\001'
40
42
  _globals['_APIUSER'].fields_by_name['state']._loaded_options = None
41
- _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)'
42
- _globals['_APIUSERSTATE']._serialized_start=960
43
- _globals['_APIUSERSTATE']._serialized_end=1062
44
- _globals['_APIUSERACTION']._serialized_start=1065
45
- _globals['_APIUSERACTION']._serialized_end=1231
43
+ _globals['_APIUSER'].fields_by_name['state']._serialized_options = b'\272H\177\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)\310\001\001'
44
+ _globals['_APIUSER'].fields_by_name['roles']._loaded_options = None
45
+ _globals['_APIUSER'].fields_by_name['roles']._serialized_options = b'\272HL\222\001I\"GrE2@^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}/[123456][0-9]{6}$\230\001)'
46
+ _globals['_APIUSERSTATE']._serialized_start=901
47
+ _globals['_APIUSERSTATE']._serialized_end=1003
48
+ _globals['_APIUSERACTION']._serialized_start=1006
49
+ _globals['_APIUSERACTION']._serialized_end=1172
46
50
  _globals['_APIUSER']._serialized_start=101
47
- _globals['_APIUSER']._serialized_end=958
51
+ _globals['_APIUSER']._serialized_end=899
48
52
  # @@protoc_insertion_point(module_scope)
@@ -31,19 +31,17 @@ API_USER_ACTION_CREATE: APIUserAction
31
31
  API_USER_ACTION_UPDATE: APIUserAction
32
32
 
33
33
  class APIUser(_message.Message):
34
- __slots__ = ("name", "owner", "owners", "display_name", "state", "roles", "api_key")
34
+ __slots__ = ("name", "owner", "display_name", "state", "roles", "api_key")
35
35
  NAME_FIELD_NUMBER: _ClassVar[int]
36
36
  OWNER_FIELD_NUMBER: _ClassVar[int]
37
- OWNERS_FIELD_NUMBER: _ClassVar[int]
38
37
  DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
39
38
  STATE_FIELD_NUMBER: _ClassVar[int]
40
39
  ROLES_FIELD_NUMBER: _ClassVar[int]
41
40
  API_KEY_FIELD_NUMBER: _ClassVar[int]
42
41
  name: str
43
42
  owner: str
44
- owners: _containers.RepeatedScalarFieldContainer[str]
45
43
  display_name: str
46
44
  state: APIUserState
47
45
  roles: _containers.RepeatedScalarFieldContainer[str]
48
46
  api_key: str
49
- def __init__(self, name: _Optional[str] = ..., owner: _Optional[str] = ..., owners: _Optional[_Iterable[str]] = ..., display_name: _Optional[str] = ..., state: _Optional[_Union[APIUserState, str]] = ..., roles: _Optional[_Iterable[str]] = ..., api_key: _Optional[str] = ...) -> None: ...
47
+ def __init__(self, name: _Optional[str] = ..., owner: _Optional[str] = ..., display_name: _Optional[str] = ..., state: _Optional[_Union[APIUserState, str]] = ..., roles: _Optional[_Iterable[str]] = ..., api_key: _Optional[str] = ...) -> None: ...
@@ -19,6 +19,7 @@ from .api_user_pb2 import APIUser
19
19
  from .service_options_meshpy import ServiceOptions
20
20
  from .service_pb2 import (
21
21
  ActivateApiUserRequest,
22
+ AssignRoleToAPIUserRequest,
22
23
  CreateApiUserRequest,
23
24
  DeactivateApiUserRequest,
24
25
  GetApiUserByKeyHashRequest,
@@ -169,6 +170,22 @@ class ApiUserService(BaseGRPCClient):
169
170
  """
170
171
  return self._execute_method("CreateApiUser", request, timeout)
171
172
 
173
+ def assign_role_to_apiuser(self, request: AssignRoleToAPIUserRequest, timeout: Optional[timedelta] = None) -> APIUser:
174
+ """AssignRoleToAPIUser method.
175
+
176
+ Args:
177
+ request: The AssignRoleToAPIUser request message
178
+ timeout: Optional timeout override for this call
179
+
180
+ Returns:
181
+ The AssignRoleToAPIUser response message
182
+
183
+ Raises:
184
+ grpc.RpcError: If the gRPC call fails
185
+ ValueError: If authentication credentials are missing
186
+ """
187
+ return self._execute_method("AssignRoleToAPIUser", request, timeout)
188
+
172
189
  def list_api_users(self, request: ListApiUsersRequest, timeout: Optional[timedelta] = None) -> ListApiUsersResponse:
173
190
  """ListApiUsers method.
174
191
 
@@ -28,50 +28,64 @@ 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\"\'\n\x11GetApiUserRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"7\n\x1aGetApiUserByKeyHashRequest\x12\x19\n\x08key_hash\x18\x01 \x01(\tR\x07keyHash\"U\n\x14\x43reateApiUserRequest\x12=\n\x08\x61pi_user\x18\x01 \x01(\x0b\x32\".meshtrade.iam.api_user.v1.APIUserR\x07\x61piUser\"\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\"\xd9\x01\n\x16\x41\x63tivateApiUserRequest\x12\xbe\x01\n\x04name\x18\x01 \x01(\tB\xa9\x01\xbaH\xa5\x01r&\x10\x01\x32\"^api_users/[0-9A-HJKMNP-TV-Z]{26}$\xba\x01z\n\rname.required\x12\x35name is required and must be in format api_users/{id}\x1a\x32this.matches(\'^api_users/[0-9A-HJKMNP-TV-Z]{26}$\')R\x04name\"\xdb\x01\n\x18\x44\x65\x61\x63tivateApiUserRequest\x12\xbe\x01\n\x04name\x18\x01 \x01(\tB\xa9\x01\xbaH\xa5\x01r&\x10\x01\x32\"^api_users/[0-9A-HJKMNP-TV-Z]{26}$\xba\x01z\n\rname.required\x12\x35name is required and must be in format api_users/{id}\x1a\x32this.matches(\'^api_users/[0-9A-HJKMNP-TV-Z]{26}$\')R\x04name2\x8b\x07\n\x0e\x41piUserService\x12r\n\nGetApiUser\x12,.meshtrade.iam.api_user.v1.GetApiUserRequest\x1a\".meshtrade.iam.api_user.v1.APIUser\"\x12\xa0\xb5\x18\x01\xaa\xb5\x18\n\n\x08\xc0\x8d\xb7\x01\xc1\x8d\xb7\x01\x12t\n\rCreateApiUser\x12/.meshtrade.iam.api_user.v1.CreateApiUserRequest\x1a\".meshtrade.iam.api_user.v1.APIUser\"\x0e\xa0\xb5\x18\x02\xaa\xb5\x18\x06\n\x04\xc0\x8d\xb7\x01\x12\x83\x01\n\x0cListApiUsers\x12..meshtrade.iam.api_user.v1.ListApiUsersRequest\x1a/.meshtrade.iam.api_user.v1.ListApiUsersResponse\"\x12\xa0\xb5\x18\x01\xaa\xb5\x18\n\n\x08\xc0\x8d\xb7\x01\xc1\x8d\xb7\x01\x12\x89\x01\n\x0eSearchApiUsers\x12\x30.meshtrade.iam.api_user.v1.SearchApiUsersRequest\x1a\x31.meshtrade.iam.api_user.v1.SearchApiUsersResponse\"\x12\xa0\xb5\x18\x01\xaa\xb5\x18\n\n\x08\xc0\x8d\xb7\x01\xc1\x8d\xb7\x01\x12x\n\x0f\x41\x63tivateApiUser\x12\x31.meshtrade.iam.api_user.v1.ActivateApiUserRequest\x1a\".meshtrade.iam.api_user.v1.APIUser\"\x0e\xa0\xb5\x18\x02\xaa\xb5\x18\x06\n\x04\xc0\x8d\xb7\x01\x12|\n\x11\x44\x65\x61\x63tivateApiUser\x12\x33.meshtrade.iam.api_user.v1.DeactivateApiUserRequest\x1a\".meshtrade.iam.api_user.v1.APIUser\"\x0e\xa0\xb5\x18\x02\xaa\xb5\x18\x06\n\x04\xc0\x8d\xb7\x01\x12\x84\x01\n\x13GetApiUserByKeyHash\x12\x35.meshtrade.iam.api_user.v1.GetApiUserByKeyHashRequest\x1a\".meshtrade.iam.api_user.v1.APIUser\"\x12\xa0\xb5\x18\x01\xaa\xb5\x18\n\n\x08\xc0\x8d\xb7\x01\xc1\x8d\xb7\x01\x42Z\n co.meshtrade.api.iam.api_user.v1Z6github.com/meshtrade/api/go/iam/api_user/v1;api_userv1b\x06proto3')
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\"D\n\x1aGetApiUserByKeyHashRequest\x12&\n\x08key_hash\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\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\x12P\n\x04name\x18\x01 \x01(\tB<\xbaH9r722^api_users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\x98\x01$R\x04name\x12\x61\n\x04role\x18\x04 \x01(\tBM\xbaHJrE2@^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}/[123456][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\xbf\x08\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\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)
35
35
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.iam.api_user.v1.service_pb2', _globals)
36
36
  if not _descriptor._USE_C_DESCRIPTORS:
37
37
  _globals['DESCRIPTOR']._loaded_options = None
38
- _globals['DESCRIPTOR']._serialized_options = b'\n co.meshtrade.api.iam.api_user.v1Z6github.com/meshtrade/api/go/iam/api_user/v1;api_userv1'
38
+ _globals['DESCRIPTOR']._serialized_options = b'\n co.meshtrade.api.iam.api_user.v1Z7github.com/meshtrade/api/go/iam/api_user/v1;api_user_v1'
39
+ _globals['_GETAPIUSERREQUEST'].fields_by_name['name']._loaded_options = None
40
+ _globals['_GETAPIUSERREQUEST'].fields_by_name['name']._serialized_options = b'\272H<r722^api_users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\230\001$\310\001\001'
41
+ _globals['_GETAPIUSERBYKEYHASHREQUEST'].fields_by_name['key_hash']._loaded_options = None
42
+ _globals['_GETAPIUSERBYKEYHASHREQUEST'].fields_by_name['key_hash']._serialized_options = b'\272H\010r\003\230\001,\310\001\001'
43
+ _globals['_CREATEAPIUSERREQUEST'].fields_by_name['api_user']._loaded_options = None
44
+ _globals['_CREATEAPIUSERREQUEST'].fields_by_name['api_user']._serialized_options = b'\272H\003\310\001\001'
45
+ _globals['_ASSIGNROLETOAPIUSERREQUEST'].fields_by_name['name']._loaded_options = None
46
+ _globals['_ASSIGNROLETOAPIUSERREQUEST'].fields_by_name['name']._serialized_options = b'\272H9r722^api_users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\230\001$'
47
+ _globals['_ASSIGNROLETOAPIUSERREQUEST'].fields_by_name['role']._loaded_options = None
48
+ _globals['_ASSIGNROLETOAPIUSERREQUEST'].fields_by_name['role']._serialized_options = b'\272HJrE2@^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}/[123456][0-9]{6}$\230\001)\310\001\001'
39
49
  _globals['_ACTIVATEAPIUSERREQUEST'].fields_by_name['name']._loaded_options = None
40
- _globals['_ACTIVATEAPIUSERREQUEST'].fields_by_name['name']._serialized_options = b'\272H\245\001r&\020\0012\"^api_users/[0-9A-HJKMNP-TV-Z]{26}$\272\001z\n\rname.required\0225name is required and must be in format api_users/{id}\0322this.matches(\'^api_users/[0-9A-HJKMNP-TV-Z]{26}$\')'
50
+ _globals['_ACTIVATEAPIUSERREQUEST'].fields_by_name['name']._serialized_options = b'\272H<r722^api_users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\230\001$\310\001\001'
41
51
  _globals['_DEACTIVATEAPIUSERREQUEST'].fields_by_name['name']._loaded_options = None
42
- _globals['_DEACTIVATEAPIUSERREQUEST'].fields_by_name['name']._serialized_options = b'\272H\245\001r&\020\0012\"^api_users/[0-9A-HJKMNP-TV-Z]{26}$\272\001z\n\rname.required\0225name is required and must be in format api_users/{id}\0322this.matches(\'^api_users/[0-9A-HJKMNP-TV-Z]{26}$\')'
52
+ _globals['_DEACTIVATEAPIUSERREQUEST'].fields_by_name['name']._serialized_options = b'\272H<r722^api_users/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\230\001$\310\001\001'
43
53
  _globals['_APIUSERSERVICE'].methods_by_name['GetApiUser']._loaded_options = None
44
- _globals['_APIUSERSERVICE'].methods_by_name['GetApiUser']._serialized_options = b'\240\265\030\001\252\265\030\n\n\010\300\215\267\001\301\215\267\001'
54
+ _globals['_APIUSERSERVICE'].methods_by_name['GetApiUser']._serialized_options = b'\240\265\030\001\252\265\030\022\n\020\300\215\267\001\301\215\267\001\302\215\267\001\303\215\267\001'
45
55
  _globals['_APIUSERSERVICE'].methods_by_name['CreateApiUser']._loaded_options = None
46
- _globals['_APIUSERSERVICE'].methods_by_name['CreateApiUser']._serialized_options = b'\240\265\030\002\252\265\030\006\n\004\300\215\267\001'
56
+ _globals['_APIUSERSERVICE'].methods_by_name['CreateApiUser']._serialized_options = b'\240\265\030\002\252\265\030\n\n\010\300\215\267\001\302\215\267\001'
57
+ _globals['_APIUSERSERVICE'].methods_by_name['AssignRoleToAPIUser']._loaded_options = None
58
+ _globals['_APIUSERSERVICE'].methods_by_name['AssignRoleToAPIUser']._serialized_options = b'\240\265\030\002\252\265\030\n\n\010\300\215\267\001\302\215\267\001'
47
59
  _globals['_APIUSERSERVICE'].methods_by_name['ListApiUsers']._loaded_options = None
48
- _globals['_APIUSERSERVICE'].methods_by_name['ListApiUsers']._serialized_options = b'\240\265\030\001\252\265\030\n\n\010\300\215\267\001\301\215\267\001'
60
+ _globals['_APIUSERSERVICE'].methods_by_name['ListApiUsers']._serialized_options = b'\240\265\030\001\252\265\030\022\n\020\300\215\267\001\301\215\267\001\302\215\267\001\303\215\267\001'
49
61
  _globals['_APIUSERSERVICE'].methods_by_name['SearchApiUsers']._loaded_options = None
50
- _globals['_APIUSERSERVICE'].methods_by_name['SearchApiUsers']._serialized_options = b'\240\265\030\001\252\265\030\n\n\010\300\215\267\001\301\215\267\001'
62
+ _globals['_APIUSERSERVICE'].methods_by_name['SearchApiUsers']._serialized_options = b'\240\265\030\001\252\265\030\022\n\020\300\215\267\001\301\215\267\001\302\215\267\001\303\215\267\001'
51
63
  _globals['_APIUSERSERVICE'].methods_by_name['ActivateApiUser']._loaded_options = None
52
- _globals['_APIUSERSERVICE'].methods_by_name['ActivateApiUser']._serialized_options = b'\240\265\030\002\252\265\030\006\n\004\300\215\267\001'
64
+ _globals['_APIUSERSERVICE'].methods_by_name['ActivateApiUser']._serialized_options = b'\240\265\030\002\252\265\030\n\n\010\300\215\267\001\302\215\267\001'
53
65
  _globals['_APIUSERSERVICE'].methods_by_name['DeactivateApiUser']._loaded_options = None
54
- _globals['_APIUSERSERVICE'].methods_by_name['DeactivateApiUser']._serialized_options = b'\240\265\030\002\252\265\030\006\n\004\300\215\267\001'
66
+ _globals['_APIUSERSERVICE'].methods_by_name['DeactivateApiUser']._serialized_options = b'\240\265\030\002\252\265\030\n\n\010\300\215\267\001\302\215\267\001'
55
67
  _globals['_APIUSERSERVICE'].methods_by_name['GetApiUserByKeyHash']._loaded_options = None
56
- _globals['_APIUSERSERVICE'].methods_by_name['GetApiUserByKeyHash']._serialized_options = b'\240\265\030\001\252\265\030\n\n\010\300\215\267\001\301\215\267\001'
68
+ _globals['_APIUSERSERVICE'].methods_by_name['GetApiUserByKeyHash']._serialized_options = b'\240\265\030\001\252\265\030\022\n\020\300\215\267\001\301\215\267\001\302\215\267\001\303\215\267\001'
57
69
  _globals['_GETAPIUSERREQUEST']._serialized_start=214
58
- _globals['_GETAPIUSERREQUEST']._serialized_end=253
59
- _globals['_GETAPIUSERBYKEYHASHREQUEST']._serialized_start=255
60
- _globals['_GETAPIUSERBYKEYHASHREQUEST']._serialized_end=310
61
- _globals['_CREATEAPIUSERREQUEST']._serialized_start=312
62
- _globals['_CREATEAPIUSERREQUEST']._serialized_end=397
63
- _globals['_LISTAPIUSERSREQUEST']._serialized_start=399
64
- _globals['_LISTAPIUSERSREQUEST']._serialized_end=420
65
- _globals['_LISTAPIUSERSRESPONSE']._serialized_start=422
66
- _globals['_LISTAPIUSERSRESPONSE']._serialized_end=509
67
- _globals['_SEARCHAPIUSERSREQUEST']._serialized_start=511
68
- _globals['_SEARCHAPIUSERSREQUEST']._serialized_end=569
69
- _globals['_SEARCHAPIUSERSRESPONSE']._serialized_start=571
70
- _globals['_SEARCHAPIUSERSRESPONSE']._serialized_end=660
71
- _globals['_ACTIVATEAPIUSERREQUEST']._serialized_start=663
72
- _globals['_ACTIVATEAPIUSERREQUEST']._serialized_end=880
73
- _globals['_DEACTIVATEAPIUSERREQUEST']._serialized_start=883
74
- _globals['_DEACTIVATEAPIUSERREQUEST']._serialized_end=1102
75
- _globals['_APIUSERSERVICE']._serialized_start=1105
76
- _globals['_APIUSERSERVICE']._serialized_end=2012
70
+ _globals['_GETAPIUSERREQUEST']._serialized_end=318
71
+ _globals['_GETAPIUSERBYKEYHASHREQUEST']._serialized_start=320
72
+ _globals['_GETAPIUSERBYKEYHASHREQUEST']._serialized_end=388
73
+ _globals['_CREATEAPIUSERREQUEST']._serialized_start=390
74
+ _globals['_CREATEAPIUSERREQUEST']._serialized_end=483
75
+ _globals['_ASSIGNROLETOAPIUSERREQUEST']._serialized_start=486
76
+ _globals['_ASSIGNROLETOAPIUSERREQUEST']._serialized_end=695
77
+ _globals['_LISTAPIUSERSREQUEST']._serialized_start=697
78
+ _globals['_LISTAPIUSERSREQUEST']._serialized_end=718
79
+ _globals['_LISTAPIUSERSRESPONSE']._serialized_start=720
80
+ _globals['_LISTAPIUSERSRESPONSE']._serialized_end=807
81
+ _globals['_SEARCHAPIUSERSREQUEST']._serialized_start=809
82
+ _globals['_SEARCHAPIUSERSREQUEST']._serialized_end=867
83
+ _globals['_SEARCHAPIUSERSRESPONSE']._serialized_start=869
84
+ _globals['_SEARCHAPIUSERSRESPONSE']._serialized_end=958
85
+ _globals['_ACTIVATEAPIUSERREQUEST']._serialized_start=960
86
+ _globals['_ACTIVATEAPIUSERREQUEST']._serialized_end=1069
87
+ _globals['_DEACTIVATEAPIUSERREQUEST']._serialized_start=1071
88
+ _globals['_DEACTIVATEAPIUSERREQUEST']._serialized_end=1182
89
+ _globals['_APIUSERSERVICE']._serialized_start=1185
90
+ _globals['_APIUSERSERVICE']._serialized_end=2272
77
91
  # @@protoc_insertion_point(module_scope)
@@ -28,6 +28,14 @@ class CreateApiUserRequest(_message.Message):
28
28
  api_user: _api_user_pb2.APIUser
29
29
  def __init__(self, api_user: _Optional[_Union[_api_user_pb2.APIUser, _Mapping]] = ...) -> None: ...
30
30
 
31
+ class AssignRoleToAPIUserRequest(_message.Message):
32
+ __slots__ = ("name", "role")
33
+ NAME_FIELD_NUMBER: _ClassVar[int]
34
+ ROLE_FIELD_NUMBER: _ClassVar[int]
35
+ name: str
36
+ role: str
37
+ def __init__(self, name: _Optional[str] = ..., role: _Optional[str] = ...) -> None: ...
38
+
31
39
  class ListApiUsersRequest(_message.Message):
32
40
  __slots__ = ()
33
41
  def __init__(self) -> None: ...
@@ -37,6 +37,11 @@ class ApiUserServiceStub(object):
37
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.AssignRoleToAPIUser = channel.unary_unary(
41
+ '/meshtrade.iam.api_user.v1.ApiUserService/AssignRoleToAPIUser',
42
+ request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.AssignRoleToAPIUserRequest.SerializeToString,
43
+ response_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.FromString,
44
+ _registered_method=True)
40
45
  self.ListApiUsers = channel.unary_unary(
41
46
  '/meshtrade.iam.api_user.v1.ApiUserService/ListApiUsers',
42
47
  request_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ListApiUsersRequest.SerializeToString,
@@ -99,6 +104,17 @@ class ApiUserServiceServicer(object):
99
104
  context.set_details('Method not implemented!')
100
105
  raise NotImplementedError('Method not implemented!')
101
106
 
107
+ def AssignRoleToAPIUser(self, request, context):
108
+ """
109
+ Assigns a role to an existing api user within the authenticated group context.
110
+
111
+ The role assignment enables the api user to perform operations according
112
+ to the permissions associated with that role within the group hierarchy.
113
+ """
114
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
115
+ context.set_details('Method not implemented!')
116
+ raise NotImplementedError('Method not implemented!')
117
+
102
118
  def ListApiUsers(self, request, context):
103
119
  """
104
120
  Lists all API users in the authenticated group context.
@@ -167,6 +183,11 @@ def add_ApiUserServiceServicer_to_server(servicer, server):
167
183
  request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.CreateApiUserRequest.FromString,
168
184
  response_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.SerializeToString,
169
185
  ),
186
+ 'AssignRoleToAPIUser': grpc.unary_unary_rpc_method_handler(
187
+ servicer.AssignRoleToAPIUser,
188
+ request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.AssignRoleToAPIUserRequest.FromString,
189
+ response_serializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.SerializeToString,
190
+ ),
170
191
  'ListApiUsers': grpc.unary_unary_rpc_method_handler(
171
192
  servicer.ListApiUsers,
172
193
  request_deserializer=meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.ListApiUsersRequest.FromString,
@@ -269,6 +290,33 @@ class ApiUserService(object):
269
290
  metadata,
270
291
  _registered_method=True)
271
292
 
293
+ @staticmethod
294
+ def AssignRoleToAPIUser(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.api_user.v1.ApiUserService/AssignRoleToAPIUser',
308
+ meshtrade_dot_iam_dot_api__user_dot_v1_dot_service__pb2.AssignRoleToAPIUserRequest.SerializeToString,
309
+ meshtrade_dot_iam_dot_api__user_dot_v1_dot_api__user__pb2.APIUser.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
+
272
320
  @staticmethod
273
321
  def ListApiUsers(request,
274
322
  target,
@@ -25,22 +25,22 @@ _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/group/v1/group.proto\x12\x16meshtrade.iam.group.v1\x1a\x1b\x62uf/validate/validate.proto\"\xf3\x06\n\x05Group\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\xb1\x02\n\x05owner\x18\x02 \x01(\tB\x9a\x02\xbaH\x96\x02r\x19\x10\x01\x32\x15^groups/[0-9A-Z]{26}$\xba\x01Y\n\x0eowner.required\x12\x37owner is required and must be in format groups/{ULIDv2}\x1a\x0esize(this) > 0\xba\x01\x9b\x01\n\x0cowner.format\x12\x64owner must be in format groups/{ULIDv2} where ULIDv2 is exactly 26 uppercase alphanumeric characters\x1a%this.matches(\'^groups/[0-9A-Z]{26}$\')R\x05owner\x12\xe4\x01\n\x06owners\x18\x03 \x03(\tB\xcb\x01\xbaH\xc7\x01\x92\x01\xc3\x01\"\xc0\x01r\x19\x10\x01\x32\x15^groups/[0-9A-Z]{26}$\xba\x01\xa1\x01\n\rowners.format\x12ieach owner must be in format groups/{ULIDv2} where ULIDv2 is exactly 26 uppercase alphanumeric characters\x1a%this.matches(\'^groups/[0-9A-Z]{26}$\')R\x06owners\x12\xb1\x01\n\x0c\x64isplay_name\x18\x04 \x01(\tB\x8d\x01\xbaH\x89\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) <= 255R\x0b\x64isplayName\x12\x86\x01\n\x0b\x64\x65scription\x18\x05 \x01(\tBd\xbaHar\x03\x18\xe8\x07\xba\x01Y\n\x16\x64\x65scription.max_length\x12+description must not exceed 1000 characters\x1a\x12size(this) <= 1000R\x0b\x64\x65scriptionBQ\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')
29
29
 
30
30
  _globals = globals()
31
31
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
32
32
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.iam.group.v1.group_pb2', _globals)
33
33
  if not _descriptor._USE_C_DESCRIPTORS:
34
34
  _globals['DESCRIPTOR']._loaded_options = None
35
- _globals['DESCRIPTOR']._serialized_options = b'\n\035co.meshtrade.api.iam.group.v1Z0github.com/meshtrade/api/go/iam/group/v1;groupv1'
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}$\')'
36
38
  _globals['_GROUP'].fields_by_name['owner']._loaded_options = None
37
- _globals['_GROUP'].fields_by_name['owner']._serialized_options = b'\272H\226\002r\031\020\0012\025^groups/[0-9A-Z]{26}$\272\001Y\n\016owner.required\0227owner is required and must be in format groups/{ULIDv2}\032\016size(this) > 0\272\001\233\001\n\014owner.format\022downer must be in format groups/{ULIDv2} where ULIDv2 is exactly 26 uppercase alphanumeric characters\032%this.matches(\'^groups/[0-9A-Z]{26}$\')'
38
- _globals['_GROUP'].fields_by_name['owners']._loaded_options = None
39
- _globals['_GROUP'].fields_by_name['owners']._serialized_options = b'\272H\307\001\222\001\303\001\"\300\001r\031\020\0012\025^groups/[0-9A-Z]{26}$\272\001\241\001\n\rowners.format\022ieach owner must be in format groups/{ULIDv2} where ULIDv2 is exactly 26 uppercase alphanumeric characters\032%this.matches(\'^groups/[0-9A-Z]{26}$\')'
39
+ _globals['_GROUP'].fields_by_name['owner']._serialized_options = b'\272H9r42/^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\230\001!\310\001\001'
40
40
  _globals['_GROUP'].fields_by_name['display_name']._loaded_options = None
41
- _globals['_GROUP'].fields_by_name['display_name']._serialized_options = b'\272H\211\001r\005\020\001\030\377\001\272\001\177\n\025display_name.required\022Adisplay name is required and must be between 1 and 255 characters\032#size(this) > 0 && size(this) <= 255'
41
+ _globals['_GROUP'].fields_by_name['display_name']._serialized_options = b'\272H\nr\005\020\001\030\377\001\310\001\001'
42
42
  _globals['_GROUP'].fields_by_name['description']._loaded_options = None
43
- _globals['_GROUP'].fields_by_name['description']._serialized_options = b'\272Har\003\030\350\007\272\001Y\n\026description.max_length\022+description must not exceed 1000 characters\032\022size(this) <= 1000'
43
+ _globals['_GROUP'].fields_by_name['description']._serialized_options = b'\272H\005r\003\030\350\007'
44
44
  _globals['_GROUP']._serialized_start=92
45
- _globals['_GROUP']._serialized_end=975
45
+ _globals['_GROUP']._serialized_end=468
46
46
  # @@protoc_insertion_point(module_scope)
@@ -1,22 +1,18 @@
1
1
  from buf.validate import validate_pb2 as _validate_pb2
2
- from google.protobuf.internal import containers as _containers
3
2
  from google.protobuf import descriptor as _descriptor
4
3
  from google.protobuf import message as _message
5
- from collections.abc import Iterable as _Iterable
6
4
  from typing import ClassVar as _ClassVar, Optional as _Optional
7
5
 
8
6
  DESCRIPTOR: _descriptor.FileDescriptor
9
7
 
10
8
  class Group(_message.Message):
11
- __slots__ = ("name", "owner", "owners", "display_name", "description")
9
+ __slots__ = ("name", "owner", "display_name", "description")
12
10
  NAME_FIELD_NUMBER: _ClassVar[int]
13
11
  OWNER_FIELD_NUMBER: _ClassVar[int]
14
- OWNERS_FIELD_NUMBER: _ClassVar[int]
15
12
  DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
16
13
  DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
17
14
  name: str
18
15
  owner: str
19
- owners: _containers.RepeatedScalarFieldContainer[str]
20
16
  display_name: str
21
17
  description: str
22
- def __init__(self, name: _Optional[str] = ..., owner: _Optional[str] = ..., owners: _Optional[_Iterable[str]] = ..., display_name: _Optional[str] = ..., description: _Optional[str] = ...) -> None: ...
18
+ def __init__(self, name: _Optional[str] = ..., owner: _Optional[str] = ..., display_name: _Optional[str] = ..., description: _Optional[str] = ...) -> None: ...
@@ -29,14 +29,14 @@ 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/group/v1/service.proto\x12\x16meshtrade.iam.group.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\"meshtrade/iam/group/v1/group.proto\x1a meshtrade/iam/role/v1/role.proto\x1a%meshtrade/option/v1/method_type.proto\x1a\x1fmeshtrade/type/v1/sorting.proto\"Q\n\x12\x43reateGroupRequest\x12;\n\x05group\x18\x01 \x01(\x0b\x32\x1d.meshtrade.iam.group.v1.GroupB\x06\xbaH\x03\xc8\x01\x01R\x05group\"Q\n\x12UpdateGroupRequest\x12;\n\x05group\x18\x01 \x01(\x0b\x32\x1d.meshtrade.iam.group.v1.GroupB\x06\xbaH\x03\xc8\x01\x01R\x05group\"\xc3\x02\n\x11ListGroupsRequest\x12K\n\x07sorting\x18\x01 \x01(\x0b\x32\x31.meshtrade.iam.group.v1.ListGroupsRequest.SortingR\x07sorting\x1a\xe0\x01\n\x07Sorting\x12\x9d\x01\n\x05\x66ield\x18\x01 \x01(\tB\x86\x01\xbaH\x82\x01r\x16R\x00R\x04nameR\x0c\x64isplay_name\xba\x01g\n\x0b\x66ield.valid\x12\x32\x66ield must be one of: name, display_name, or empty\x1a$this in [\'\', \'name\', \'display_name\']R\x05\x66ield\x12\x35\n\x05order\x18\x02 \x01(\x0e\x32\x1f.meshtrade.type.v1.SortingOrderR\x05order\"K\n\x12ListGroupsResponse\x12\x35\n\x06groups\x18\x01 \x03(\x0b\x32\x1d.meshtrade.iam.group.v1.GroupR\x06groups\"\xf0\x04\n\x13SearchGroupsRequest\x12\x93\x01\n\x0c\x64isplay_name\x18\x01 \x01(\tBp\xbaHmr\x03\x18\xff\x01\xba\x01\x65\n\x17\x64isplay_name.max_length\x12\x37\x64isplay_name search term must not exceed 255 characters\x1a\x11size(this) <= 255R\x0b\x64isplayName\x12\x90\x01\n\x0b\x64\x65scription\x18\x02 \x01(\tBn\xbaHkr\x03\x18\xff\x01\xba\x01\x63\n\x16\x64\x65scription.max_length\x12\x36\x64\x65scription search term must not exceed 255 characters\x1a\x11size(this) <= 255R\x0b\x64\x65scription\x12M\n\x07sorting\x18\x03 \x01(\x0b\x32\x33.meshtrade.iam.group.v1.SearchGroupsRequest.SortingR\x07sorting\x1a\xe0\x01\n\x07Sorting\x12\x9d\x01\n\x05\x66ield\x18\x01 \x01(\tB\x86\x01\xbaH\x82\x01r\x16R\x00R\x04nameR\x0c\x64isplay_name\xba\x01g\n\x0b\x66ield.valid\x12\x32\x66ield must be one of: name, display_name, or empty\x1a$this in [\'\', \'name\', \'display_name\']R\x05\x66ield\x12\x35\n\x05order\x18\x02 \x01(\x0e\x32\x1f.meshtrade.type.v1.SortingOrderR\x05order\"M\n\x14SearchGroupsResponse\x12\x35\n\x06groups\x18\x01 \x03(\x0b\x32\x1d.meshtrade.iam.group.v1.GroupR\x06groups\"\xbf\x02\n\x0fGetGroupRequest\x12\xab\x02\n\x04name\x18\x01 \x01(\tB\x96\x02\xbaH\x92\x02r\x19\x10\x01\x32\x15^groups/[0-9A-Z]{26}$\xba\x01W\n\rname.required\x12\x36name is required and must be in format groups/{ULIDv2}\x1a\x0esize(this) > 0\xba\x01\x99\x01\n\x0bname.format\x12\x63name must be in format groups/{ULIDv2} where ulidv2 is exactly 26 uppercase alphanumeric characters\x1a%this.matches(\'^groups/[0-9A-Z]{26}$\')R\x04name2\xe3\x04\n\x0cGroupService\x12l\n\x0b\x43reateGroup\x12*.meshtrade.iam.group.v1.CreateGroupRequest\x1a\x1d.meshtrade.iam.group.v1.Group\"\x12\xa0\xb5\x18\x02\xaa\xb5\x18\n\n\x08\xc0\x8d\xb7\x01\xc2\x8d\xb7\x01\x12l\n\x0bUpdateGroup\x12*.meshtrade.iam.group.v1.UpdateGroupRequest\x1a\x1d.meshtrade.iam.group.v1.Group\"\x12\xa0\xb5\x18\x02\xaa\xb5\x18\n\n\x08\xc0\x8d\xb7\x01\xc2\x8d\xb7\x01\x12\x7f\n\nListGroups\x12).meshtrade.iam.group.v1.ListGroupsRequest\x1a*.meshtrade.iam.group.v1.ListGroupsResponse\"\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\x85\x01\n\x0cSearchGroups\x12+.meshtrade.iam.group.v1.SearchGroupsRequest\x1a,.meshtrade.iam.group.v1.SearchGroupsResponse\"\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\x12n\n\x08GetGroup\x12\'.meshtrade.iam.group.v1.GetGroupRequest\x1a\x1d.meshtrade.iam.group.v1.Group\"\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\x42Q\n\x1d\x63o.meshtrade.api.iam.group.v1Z0github.com/meshtrade/api/go/iam/group/v1;groupv1b\x06proto3')
32
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$meshtrade/iam/group/v1/service.proto\x12\x16meshtrade.iam.group.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\"meshtrade/iam/group/v1/group.proto\x1a meshtrade/iam/role/v1/role.proto\x1a%meshtrade/option/v1/method_type.proto\x1a\x1fmeshtrade/type/v1/sorting.proto\"Q\n\x12\x43reateGroupRequest\x12;\n\x05group\x18\x01 \x01(\x0b\x32\x1d.meshtrade.iam.group.v1.GroupB\x06\xbaH\x03\xc8\x01\x01R\x05group\"Q\n\x12UpdateGroupRequest\x12;\n\x05group\x18\x01 \x01(\x0b\x32\x1d.meshtrade.iam.group.v1.GroupB\x06\xbaH\x03\xc8\x01\x01R\x05group\"\xc3\x02\n\x11ListGroupsRequest\x12K\n\x07sorting\x18\x01 \x01(\x0b\x32\x31.meshtrade.iam.group.v1.ListGroupsRequest.SortingR\x07sorting\x1a\xe0\x01\n\x07Sorting\x12\x9d\x01\n\x05\x66ield\x18\x01 \x01(\tB\x86\x01\xbaH\x82\x01r\x16R\x00R\x04nameR\x0c\x64isplay_name\xba\x01g\n\x0b\x66ield.valid\x12\x32\x66ield must be one of: name, display_name, or empty\x1a$this in [\'\', \'name\', \'display_name\']R\x05\x66ield\x12\x35\n\x05order\x18\x02 \x01(\x0e\x32\x1f.meshtrade.type.v1.SortingOrderR\x05order\"K\n\x12ListGroupsResponse\x12\x35\n\x06groups\x18\x01 \x03(\x0b\x32\x1d.meshtrade.iam.group.v1.GroupR\x06groups\"\xf0\x04\n\x13SearchGroupsRequest\x12\x93\x01\n\x0c\x64isplay_name\x18\x01 \x01(\tBp\xbaHmr\x03\x18\xff\x01\xba\x01\x65\n\x17\x64isplay_name.max_length\x12\x37\x64isplay_name search term must not exceed 255 characters\x1a\x11size(this) <= 255R\x0b\x64isplayName\x12\x90\x01\n\x0b\x64\x65scription\x18\x02 \x01(\tBn\xbaHkr\x03\x18\xff\x01\xba\x01\x63\n\x16\x64\x65scription.max_length\x12\x36\x64\x65scription search term must not exceed 255 characters\x1a\x11size(this) <= 255R\x0b\x64\x65scription\x12M\n\x07sorting\x18\x03 \x01(\x0b\x32\x33.meshtrade.iam.group.v1.SearchGroupsRequest.SortingR\x07sorting\x1a\xe0\x01\n\x07Sorting\x12\x9d\x01\n\x05\x66ield\x18\x01 \x01(\tB\x86\x01\xbaH\x82\x01r\x16R\x00R\x04nameR\x0c\x64isplay_name\xba\x01g\n\x0b\x66ield.valid\x12\x32\x66ield must be one of: name, display_name, or empty\x1a$this in [\'\', \'name\', \'display_name\']R\x05\x66ield\x12\x35\n\x05order\x18\x02 \x01(\x0e\x32\x1f.meshtrade.type.v1.SortingOrderR\x05order\"M\n\x14SearchGroupsResponse\x12\x35\n\x06groups\x18\x01 \x03(\x0b\x32\x1d.meshtrade.iam.group.v1.GroupR\x06groups\"\xf3\x02\n\x0fGetGroupRequest\x12\xdf\x02\n\x04name\x18\x01 \x01(\tB\xca\x02\xbaH\xc6\x02r3\x10\x01\x32/^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\xba\x01W\n\rname.required\x12\x36name is required and must be in format groups/{ULIDv2}\x1a\x0esize(this) > 0\xba\x01\xb3\x01\n\x0bname.format\x12\x63name must be in format groups/{ULIDv2} where ulidv2 is exactly 26 uppercase alphanumeric characters\x1a?this.matches(\'^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\')R\x04name2\xe3\x04\n\x0cGroupService\x12l\n\x0b\x43reateGroup\x12*.meshtrade.iam.group.v1.CreateGroupRequest\x1a\x1d.meshtrade.iam.group.v1.Group\"\x12\xa0\xb5\x18\x02\xaa\xb5\x18\n\n\x08\xc0\x8d\xb7\x01\xc4\x8d\xb7\x01\x12l\n\x0bUpdateGroup\x12*.meshtrade.iam.group.v1.UpdateGroupRequest\x1a\x1d.meshtrade.iam.group.v1.Group\"\x12\xa0\xb5\x18\x02\xaa\xb5\x18\n\n\x08\xc0\x8d\xb7\x01\xc4\x8d\xb7\x01\x12\x7f\n\nListGroups\x12).meshtrade.iam.group.v1.ListGroupsRequest\x1a*.meshtrade.iam.group.v1.ListGroupsResponse\"\x1a\xa0\xb5\x18\x01\xaa\xb5\x18\x12\n\x10\xc0\x8d\xb7\x01\xc1\x8d\xb7\x01\xc4\x8d\xb7\x01\xc5\x8d\xb7\x01\x12\x85\x01\n\x0cSearchGroups\x12+.meshtrade.iam.group.v1.SearchGroupsRequest\x1a,.meshtrade.iam.group.v1.SearchGroupsResponse\"\x1a\xa0\xb5\x18\x01\xaa\xb5\x18\x12\n\x10\xc0\x8d\xb7\x01\xc1\x8d\xb7\x01\xc4\x8d\xb7\x01\xc5\x8d\xb7\x01\x12n\n\x08GetGroup\x12\'.meshtrade.iam.group.v1.GetGroupRequest\x1a\x1d.meshtrade.iam.group.v1.Group\"\x1a\xa0\xb5\x18\x01\xaa\xb5\x18\x12\n\x10\xc0\x8d\xb7\x01\xc1\x8d\xb7\x01\xc4\x8d\xb7\x01\xc5\x8d\xb7\x01\x42R\n\x1d\x63o.meshtrade.api.iam.group.v1Z1github.com/meshtrade/api/go/iam/group/v1;group_v1b\x06proto3')
33
33
 
34
34
  _globals = globals()
35
35
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
36
36
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.iam.group.v1.service_pb2', _globals)
37
37
  if not _descriptor._USE_C_DESCRIPTORS:
38
38
  _globals['DESCRIPTOR']._loaded_options = None
39
- _globals['DESCRIPTOR']._serialized_options = b'\n\035co.meshtrade.api.iam.group.v1Z0github.com/meshtrade/api/go/iam/group/v1;groupv1'
39
+ _globals['DESCRIPTOR']._serialized_options = b'\n\035co.meshtrade.api.iam.group.v1Z1github.com/meshtrade/api/go/iam/group/v1;group_v1'
40
40
  _globals['_CREATEGROUPREQUEST'].fields_by_name['group']._loaded_options = None
41
41
  _globals['_CREATEGROUPREQUEST'].fields_by_name['group']._serialized_options = b'\272H\003\310\001\001'
42
42
  _globals['_UPDATEGROUPREQUEST'].fields_by_name['group']._loaded_options = None
@@ -50,17 +50,17 @@ if not _descriptor._USE_C_DESCRIPTORS:
50
50
  _globals['_SEARCHGROUPSREQUEST'].fields_by_name['description']._loaded_options = None
51
51
  _globals['_SEARCHGROUPSREQUEST'].fields_by_name['description']._serialized_options = b'\272Hkr\003\030\377\001\272\001c\n\026description.max_length\0226description search term must not exceed 255 characters\032\021size(this) <= 255'
52
52
  _globals['_GETGROUPREQUEST'].fields_by_name['name']._loaded_options = None
53
- _globals['_GETGROUPREQUEST'].fields_by_name['name']._serialized_options = b'\272H\222\002r\031\020\0012\025^groups/[0-9A-Z]{26}$\272\001W\n\rname.required\0226name is required and must be in format groups/{ULIDv2}\032\016size(this) > 0\272\001\231\001\n\013name.format\022cname must be in format groups/{ULIDv2} where ulidv2 is exactly 26 uppercase alphanumeric characters\032%this.matches(\'^groups/[0-9A-Z]{26}$\')'
53
+ _globals['_GETGROUPREQUEST'].fields_by_name['name']._serialized_options = b'\272H\306\002r3\020\0012/^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\272\001W\n\rname.required\0226name is required and must be in format groups/{ULIDv2}\032\016size(this) > 0\272\001\263\001\n\013name.format\022cname must be in format groups/{ULIDv2} where ulidv2 is exactly 26 uppercase alphanumeric characters\032?this.matches(\'^groups/[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$\')'
54
54
  _globals['_GROUPSERVICE'].methods_by_name['CreateGroup']._loaded_options = None
55
- _globals['_GROUPSERVICE'].methods_by_name['CreateGroup']._serialized_options = b'\240\265\030\002\252\265\030\n\n\010\300\215\267\001\302\215\267\001'
55
+ _globals['_GROUPSERVICE'].methods_by_name['CreateGroup']._serialized_options = b'\240\265\030\002\252\265\030\n\n\010\300\215\267\001\304\215\267\001'
56
56
  _globals['_GROUPSERVICE'].methods_by_name['UpdateGroup']._loaded_options = None
57
- _globals['_GROUPSERVICE'].methods_by_name['UpdateGroup']._serialized_options = b'\240\265\030\002\252\265\030\n\n\010\300\215\267\001\302\215\267\001'
57
+ _globals['_GROUPSERVICE'].methods_by_name['UpdateGroup']._serialized_options = b'\240\265\030\002\252\265\030\n\n\010\300\215\267\001\304\215\267\001'
58
58
  _globals['_GROUPSERVICE'].methods_by_name['ListGroups']._loaded_options = None
59
- _globals['_GROUPSERVICE'].methods_by_name['ListGroups']._serialized_options = b'\240\265\030\001\252\265\030\022\n\020\300\215\267\001\301\215\267\001\302\215\267\001\303\215\267\001'
59
+ _globals['_GROUPSERVICE'].methods_by_name['ListGroups']._serialized_options = b'\240\265\030\001\252\265\030\022\n\020\300\215\267\001\301\215\267\001\304\215\267\001\305\215\267\001'
60
60
  _globals['_GROUPSERVICE'].methods_by_name['SearchGroups']._loaded_options = None
61
- _globals['_GROUPSERVICE'].methods_by_name['SearchGroups']._serialized_options = b'\240\265\030\001\252\265\030\022\n\020\300\215\267\001\301\215\267\001\302\215\267\001\303\215\267\001'
61
+ _globals['_GROUPSERVICE'].methods_by_name['SearchGroups']._serialized_options = b'\240\265\030\001\252\265\030\022\n\020\300\215\267\001\301\215\267\001\304\215\267\001\305\215\267\001'
62
62
  _globals['_GROUPSERVICE'].methods_by_name['GetGroup']._loaded_options = None
63
- _globals['_GROUPSERVICE'].methods_by_name['GetGroup']._serialized_options = b'\240\265\030\001\252\265\030\022\n\020\300\215\267\001\301\215\267\001\302\215\267\001\303\215\267\001'
63
+ _globals['_GROUPSERVICE'].methods_by_name['GetGroup']._serialized_options = b'\240\265\030\001\252\265\030\022\n\020\300\215\267\001\301\215\267\001\304\215\267\001\305\215\267\001'
64
64
  _globals['_CREATEGROUPREQUEST']._serialized_start=235
65
65
  _globals['_CREATEGROUPREQUEST']._serialized_end=316
66
66
  _globals['_UPDATEGROUPREQUEST']._serialized_start=318
@@ -78,7 +78,7 @@ if not _descriptor._USE_C_DESCRIPTORS:
78
78
  _globals['_SEARCHGROUPSRESPONSE']._serialized_start=1431
79
79
  _globals['_SEARCHGROUPSRESPONSE']._serialized_end=1508
80
80
  _globals['_GETGROUPREQUEST']._serialized_start=1511
81
- _globals['_GETGROUPREQUEST']._serialized_end=1830
82
- _globals['_GROUPSERVICE']._serialized_start=1833
83
- _globals['_GROUPSERVICE']._serialized_end=2444
81
+ _globals['_GETGROUPREQUEST']._serialized_end=1882
82
+ _globals['_GROUPSERVICE']._serialized_start=1885
83
+ _globals['_GROUPSERVICE']._serialized_end=2496
84
84
  # @@protoc_insertion_point(module_scope)
@@ -25,16 +25,16 @@ _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*\xa7\x03\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\x1b\n\x15ROLE_COMPLIANCE_ADMIN\x10\x80\x89z\x12\x1c\n\x16ROLE_COMPLIANCE_VIEWER\x10\x81\x89z\x12\x15\n\x0eROLE_IAM_ADMIN\x10\xc0\x8d\xb7\x01\x12\x16\n\x0fROLE_IAM_VIEWER\x10\xc1\x8d\xb7\x01\x12\x1b\n\x14ROLE_IAM_GROUP_ADMIN\x10\xc2\x8d\xb7\x01\x12\x1c\n\x15ROLE_IAM_GROUP_VIEWER\x10\xc3\x8d\xb7\x01\x12\x1e\n\x17ROLE_ISSUANCE_HUB_ADMIN\x10\x80\x92\xf4\x01\x12\x1f\n\x18ROLE_ISSUANCE_HUB_VIEWER\x10\x81\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:f\n\x0estandard_roles\x12\x1c.google.protobuf.FileOptions\x18\xd3\x86\x03 \x01(\x0b\x32\x1f.meshtrade.iam.role.v1.RoleListR\rstandardRoles:W\n\x05roles\x12\x1e.google.protobuf.MethodOptions\x18\xd5\x86\x03 \x01(\x0b\x32\x1f.meshtrade.iam.role.v1.RoleListR\x05rolesBN\n\x1c\x63o.meshtrade.api.iam.role.v1Z.github.com/meshtrade/api/go/iam/role/v1;rolev1b\x06proto3')
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*\xec\x05\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:f\n\x0estandard_roles\x12\x1c.google.protobuf.FileOptions\x18\xd3\x86\x03 \x01(\x0b\x32\x1f.meshtrade.iam.role.v1.RoleListR\rstandardRoles: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)
32
32
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'meshtrade.iam.role.v1.role_pb2', _globals)
33
33
  if not _descriptor._USE_C_DESCRIPTORS:
34
34
  _globals['DESCRIPTOR']._loaded_options = None
35
- _globals['DESCRIPTOR']._serialized_options = b'\n\034co.meshtrade.api.iam.role.v1Z.github.com/meshtrade/api/go/iam/role/v1;rolev1'
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=580
37
+ _globals['_ROLE']._serialized_end=905
38
38
  _globals['_ROLELIST']._serialized_start=93
39
39
  _globals['_ROLELIST']._serialized_end=154
40
40
  # @@protoc_insertion_point(module_scope)