otdf-python 0.4.4__py3-none-any.whl → 0.5.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 (47) hide show
  1. {otdf_python-0.4.4.dist-info → otdf_python-0.5.0.dist-info}/METADATA +1 -1
  2. {otdf_python-0.4.4.dist-info → otdf_python-0.5.0.dist-info}/RECORD +47 -18
  3. otdf_python_proto/__init__.py +52 -2
  4. otdf_python_proto/authorization/authorization_connect.py +1 -1
  5. otdf_python_proto/authorization/v2/__init__.py +0 -0
  6. otdf_python_proto/authorization/v2/authorization_pb2.py +39 -37
  7. otdf_python_proto/entityresolution/entity_resolution_connect.py +1 -1
  8. otdf_python_proto/entityresolution/v2/__init__.py +0 -0
  9. otdf_python_proto/kas/kas_connect.py +1 -1
  10. otdf_python_proto/legacy_grpc/authorization/__init__.py +0 -0
  11. otdf_python_proto/legacy_grpc/authorization/v2/__init__.py +0 -0
  12. otdf_python_proto/legacy_grpc/common/__init__.py +0 -0
  13. otdf_python_proto/legacy_grpc/entity/__init__.py +0 -0
  14. otdf_python_proto/legacy_grpc/entityresolution/__init__.py +0 -0
  15. otdf_python_proto/legacy_grpc/entityresolution/v2/__init__.py +0 -0
  16. otdf_python_proto/legacy_grpc/kas/__init__.py +0 -0
  17. otdf_python_proto/legacy_grpc/logger/__init__.py +0 -0
  18. otdf_python_proto/legacy_grpc/logger/audit/__init__.py +0 -0
  19. otdf_python_proto/legacy_grpc/policy/__init__.py +0 -0
  20. otdf_python_proto/legacy_grpc/policy/actions/__init__.py +0 -0
  21. otdf_python_proto/legacy_grpc/policy/attributes/__init__.py +0 -0
  22. otdf_python_proto/legacy_grpc/policy/kasregistry/__init__.py +0 -0
  23. otdf_python_proto/legacy_grpc/policy/kasregistry/key_access_server_registry_pb2_grpc.py +44 -0
  24. otdf_python_proto/legacy_grpc/policy/keymanagement/__init__.py +0 -0
  25. otdf_python_proto/legacy_grpc/policy/namespaces/__init__.py +0 -0
  26. otdf_python_proto/legacy_grpc/policy/obligations/__init__.py +0 -0
  27. otdf_python_proto/legacy_grpc/policy/obligations/obligations_pb2_grpc.py +680 -0
  28. otdf_python_proto/legacy_grpc/policy/registeredresources/__init__.py +0 -0
  29. otdf_python_proto/legacy_grpc/policy/resourcemapping/__init__.py +0 -0
  30. otdf_python_proto/legacy_grpc/policy/subjectmapping/__init__.py +0 -0
  31. otdf_python_proto/legacy_grpc/policy/unsafe/__init__.py +0 -0
  32. otdf_python_proto/legacy_grpc/wellknownconfiguration/__init__.py +0 -0
  33. otdf_python_proto/logger/audit/__init__.py +0 -0
  34. otdf_python_proto/policy/kasregistry/key_access_server_registry_connect.py +65 -0
  35. otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.py +53 -41
  36. otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.pyi +40 -0
  37. otdf_python_proto/policy/objects_pb2.py +33 -27
  38. otdf_python_proto/policy/objects_pb2.pyi +40 -0
  39. otdf_python_proto/policy/obligations/__init__.py +0 -0
  40. otdf_python_proto/policy/obligations/obligations_connect.py +920 -0
  41. otdf_python_proto/policy/obligations/obligations_pb2.py +110 -0
  42. otdf_python_proto/policy/obligations/obligations_pb2.pyi +224 -0
  43. otdf_python_proto/policy/unsafe/unsafe_pb2.py +10 -6
  44. otdf_python_proto/policy/unsafe/unsafe_pb2.pyi +8 -4
  45. otdf_python_proto/wellknownconfiguration/wellknown_configuration_connect.py +1 -1
  46. {otdf_python-0.4.4.dist-info → otdf_python-0.5.0.dist-info}/WHEEL +0 -0
  47. {otdf_python-0.4.4.dist-info → otdf_python-0.5.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: otdf-python
3
- Version: 0.4.4
3
+ Version: 0.5.0
4
4
  Summary: Unofficial OpenTDF SDK for Python
5
5
  Project-URL: Homepage, https://github.com/b-long/opentdf-python-sdk
6
6
  Project-URL: Repository, https://github.com/b-long/opentdf-python-sdk
@@ -47,13 +47,14 @@ otdf_python/token_source.py,sha256=YHbP7deSSXo1CvzVGJX7DkOuBgqwfP_Ockm8CE-MN0o,1
47
47
  otdf_python/version.py,sha256=uDKJKsSQoaEH-JlqAwiXDxceLRX9hkG4I3NVLEfDCHA,2025
48
48
  otdf_python/zip_reader.py,sha256=qrHv-ecs09tz99ZKdOMiWaciYf2XsQOUTiXy1JHjuEY,1705
49
49
  otdf_python/zip_writer.py,sha256=5-KChgEXCf4TKAAML-R8cqpAiap85ur1l2lJCCac6BE,2405
50
- otdf_python_proto/__init__.py,sha256=nZXR7jFOxpw52PahIE5PzTm5xEmH01xphIq5PTH_Qhc,925
50
+ otdf_python_proto/__init__.py,sha256=dK3iYz7kos_DmjPzmboF1QkojrA0jFNFgmSEljgReR4,3211
51
51
  otdf_python_proto/authorization/__init__.py,sha256=PQ8pNK86JNhOg7rcvbOQzAx5nm0hdjQqj-xIwDD4izY,237
52
- otdf_python_proto/authorization/authorization_connect.py,sha256=Z4Xnz39cc9Dp74HBWc4uM-3aKRdSD0fcBoz2OCNbppw,12287
52
+ otdf_python_proto/authorization/authorization_connect.py,sha256=3qRlwHQj9VHJCePQrr1tNEVwgL0sMaFSEaRfwTGb_u0,12294
53
53
  otdf_python_proto/authorization/authorization_pb2.py,sha256=VxRCF1popd01Po0uC-H3Uz85Z6y39ICuzwjFuRWkDoE,9085
54
54
  otdf_python_proto/authorization/authorization_pb2.pyi,sha256=43mV-jbbgxjvzuKkJE-tcLg4JrqtqoQwB5WT9k4j3Ew,8927
55
+ otdf_python_proto/authorization/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
56
  otdf_python_proto/authorization/v2/authorization_connect.py,sha256=K5yRvu3JfA9ljtbTsXJ3KMx9GAUypLpqiI8IPPgiIZs,16310
56
- otdf_python_proto/authorization/v2/authorization_pb2.py,sha256=pz5GE1cBmcyWHCG3ba46_We-ywY7dx2oxZwHgvtJJtA,12998
57
+ otdf_python_proto/authorization/v2/authorization_pb2.py,sha256=zpJhqIlSXlaXuse7d9y6c9JgYBdvtZ5SLHpwhQo7XKc,13561
57
58
  otdf_python_proto/authorization/v2/authorization_pb2.pyi,sha256=0azk9XIOxBU5u0b8_PnHnfaGM13tQPBgN4i42oRSI2Q,7497
58
59
  otdf_python_proto/common/__init__.py,sha256=cJlVANj7I0xoLUerst-2su60AFtywyrFHPOIKIzS65Q,35
59
60
  otdf_python_proto/common/common_pb2.py,sha256=F2Ap8Lf-LJGnk_-BsrAfoidYtkkTsc24OvZgikBigDs,3599
@@ -62,43 +63,67 @@ otdf_python_proto/entity/__init__.py,sha256=Q5bx_n1hD8DQR8f78iflJzw90RJZLeIj--Q6
62
63
  otdf_python_proto/entity/entity_pb2.py,sha256=LpdkNpqn-L808SfYI6JWATfmud_9oYRpHbnX02qXQB8,3178
63
64
  otdf_python_proto/entity/entity_pb2.pyi,sha256=vkQau-BYeQvGV_Sr0YqqPDgiLuecErOey_Dn0zpHTN4,2423
64
65
  otdf_python_proto/entityresolution/__init__.py,sha256=ehWfHEQ42uXht7gxRIr4jlwGq-OcYZUDLqwyhDo9-oI,228
65
- otdf_python_proto/entityresolution/entity_resolution_connect.py,sha256=XniXuD9UVp44ZNt8DE7DEp4Y75sYjLYFvpikzN8uavU,9547
66
+ otdf_python_proto/entityresolution/entity_resolution_connect.py,sha256=Vd5O3y8AzBkQu1c6JbMQQgKaYqkaTb0WKdkPrWiibrg,9557
66
67
  otdf_python_proto/entityresolution/entity_resolution_pb2.py,sha256=XrPNnZ7GvHE0w0iHharpSte30l_DjhDlNE__mJigWTg,5032
67
68
  otdf_python_proto/entityresolution/entity_resolution_pb2.pyi,sha256=Yn8snkOsfkYPb4CngTMJcTe75RdOJUT_Yo4rk-mMTaM,3001
69
+ otdf_python_proto/entityresolution/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
70
  otdf_python_proto/entityresolution/v2/entity_resolution_connect.py,sha256=VCu9jytqWuF__a08LX5iIo_kFbJEbXfkYsuAu_xoaik,9948
69
71
  otdf_python_proto/entityresolution/v2/entity_resolution_pb2.py,sha256=G_CHQ76xCYAV6hfY1-tbncOCu7FqtdLH2FzOwO0vlvM,4680
70
72
  otdf_python_proto/entityresolution/v2/entity_resolution_pb2.pyi,sha256=wRcDT1bcKvyjMgPi8-MrQYLUDEaWjy2MY0YbsxF3Gjo,2942
71
73
  otdf_python_proto/kas/__init__.py,sha256=k72BA06RTfm0yGAL-H6dDkQFBUiZJXT3RHnIQIRpwhs,220
72
- otdf_python_proto/kas/kas_connect.py,sha256=aBPlxHUcB_XAPgLi4ElXyrefdnrrrYKFb_PbDw9Yg_w,10860
74
+ otdf_python_proto/kas/kas_connect.py,sha256=UWAmnW2xQBfiv-8TKSDQHkjerWkBIxcabpM7fcwaElU,10857
73
75
  otdf_python_proto/kas/kas_pb2.py,sha256=FuWeaQYjICzKFmovm1sqdAPCcDn-tariNUs4CHHNUV8,11431
74
76
  otdf_python_proto/kas/kas_pb2.pyi,sha256=w-S-AoFOZn3jn39iLyLFW4Sw4bKxr0GA8OSVF-SnR-s,8594
75
77
  otdf_python_proto/legacy_grpc/__init__.py,sha256=zpWWFl-aIfDdJqBnMFk6lDSzsKfZ4pjkp2LYxGE1S9c,40
78
+ otdf_python_proto/legacy_grpc/authorization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
79
  otdf_python_proto/legacy_grpc/authorization/authorization_pb2_grpc.py,sha256=Xn_jbL7EyOKolHp_0wxOqN3Eqm0eWjb4meB6X8xJPM0,6922
80
+ otdf_python_proto/legacy_grpc/authorization/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
81
  otdf_python_proto/legacy_grpc/authorization/v2/authorization_pb2_grpc.py,sha256=i6SlVNT3uRfKr11hIZGGwPmmCZag-28kUzJjj8h_Zy0,9109
82
+ otdf_python_proto/legacy_grpc/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
83
  otdf_python_proto/legacy_grpc/common/common_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
84
+ otdf_python_proto/legacy_grpc/entity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
85
  otdf_python_proto/legacy_grpc/entity/entity_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
86
+ otdf_python_proto/legacy_grpc/entityresolution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
87
  otdf_python_proto/legacy_grpc/entityresolution/entity_resolution_pb2_grpc.py,sha256=uU_nscm2_PmQ1lk1Y4e1Nzj1Vcp8ReYxe7l93JXCSiw,5261
88
+ otdf_python_proto/legacy_grpc/entityresolution/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
89
  otdf_python_proto/legacy_grpc/entityresolution/v2/entity_resolution_pb2_grpc.py,sha256=HqYKJ3j5sJv8EAzdtZAfmrB1Fi4Xtrv-v3wud0JdieQ,5422
90
+ otdf_python_proto/legacy_grpc/kas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
91
  otdf_python_proto/legacy_grpc/kas/kas_pb2_grpc.py,sha256=zZpTeIk_EKPv1ds4kzo4L_otI0PDwpzO1o7qTqrOVTk,6422
92
+ otdf_python_proto/legacy_grpc/logger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
+ otdf_python_proto/legacy_grpc/logger/audit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
94
  otdf_python_proto/legacy_grpc/logger/audit/test_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
95
+ otdf_python_proto/legacy_grpc/policy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
96
  otdf_python_proto/legacy_grpc/policy/objects_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
85
97
  otdf_python_proto/legacy_grpc/policy/selectors_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
98
+ otdf_python_proto/legacy_grpc/policy/actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
99
  otdf_python_proto/legacy_grpc/policy/actions/actions_pb2_grpc.py,sha256=cwsrUzJrypSl4NaImV9FzM8TIy8u8kpj-r_M1beI8_8,10380
100
+ otdf_python_proto/legacy_grpc/policy/attributes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
101
  otdf_python_proto/legacy_grpc/policy/attributes/attributes_pb2_grpc.py,sha256=1c1v8No6eqkgYGuoU6im5OVQbcdW9MV4m36pAQhABEQ,40356
88
- otdf_python_proto/legacy_grpc/policy/kasregistry/key_access_server_registry_pb2_grpc.py,sha256=ZNncnAVLfGe_oY8hK6MzZDD1ReiKJ-hgyuHpYalI1lo,28509
102
+ otdf_python_proto/legacy_grpc/policy/kasregistry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
+ otdf_python_proto/legacy_grpc/policy/kasregistry/key_access_server_registry_pb2_grpc.py,sha256=VYUxb0IY7K0K1TTgwd1QsHEnsMVLbOGxLi1t_je13WY,30624
104
+ otdf_python_proto/legacy_grpc/policy/keymanagement/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
105
  otdf_python_proto/legacy_grpc/policy/keymanagement/key_management_pb2_grpc.py,sha256=LynB9ChgzqaLUw1NGVk0ONdRIeEA7WT44-yv64sxMg0,11526
106
+ otdf_python_proto/legacy_grpc/policy/namespaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
107
  otdf_python_proto/legacy_grpc/policy/namespaces/namespaces_pb2_grpc.py,sha256=SPdWNt23Kty6z0NIIDvfBq7ACedGQAaQzBlqQ8gFwr4,19665
108
+ otdf_python_proto/legacy_grpc/policy/obligations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
+ otdf_python_proto/legacy_grpc/policy/obligations/obligations_pb2_grpc.py,sha256=oK2qf4IbVsngHrUAQMmjXY4ZPqlVgGRC2B9gnqWQ5Fk,28787
110
+ otdf_python_proto/legacy_grpc/policy/registeredresources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
111
  otdf_python_proto/legacy_grpc/policy/registeredresources/registered_resources_pb2_grpc.py,sha256=Bz6kkWw_exluCLkn8JqQ5drDS_Cu_v0ostNQJ_7yVCI,26156
112
+ otdf_python_proto/legacy_grpc/policy/resourcemapping/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
113
  otdf_python_proto/legacy_grpc/policy/resourcemapping/resource_mapping_pb2_grpc.py,sha256=AZhmHCiR9yILQHR30sH1norFwy4oSU4TtnbjpCQQmuw,24868
114
+ otdf_python_proto/legacy_grpc/policy/subjectmapping/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
115
  otdf_python_proto/legacy_grpc/policy/subjectmapping/subject_mapping_pb2_grpc.py,sha256=GZgqhIieGaXqVVuMpD17JjmSsqyc3PzBXry514gvbP0,26820
116
+ otdf_python_proto/legacy_grpc/policy/unsafe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
117
  otdf_python_proto/legacy_grpc/policy/unsafe/unsafe_pb2_grpc.py,sha256=OE4D6SySpinZAkaVlUIkqqYImDUQSbWFA6HZu7to-0I,21295
118
+ otdf_python_proto/legacy_grpc/wellknownconfiguration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
119
  otdf_python_proto/legacy_grpc/wellknownconfiguration/wellknown_configuration_pb2_grpc.py,sha256=dCFsCFxcDzT9RZ2M09pX-zu4qZazu_1UGSNJjS7JhzU,3348
96
120
  otdf_python_proto/logger/__init__.py,sha256=gMDNk1OB1THsKqwevYeQERG-DCJ-PspkYdo9jnqLyas,35
121
+ otdf_python_proto/logger/audit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
122
  otdf_python_proto/logger/audit/test_pb2.py,sha256=FbhQNp-ENPvhFlYtGqPaq9aaFLxXn_NaxOO0PJzvFzI,3028
98
123
  otdf_python_proto/logger/audit/test_pb2.pyi,sha256=uqHbuyrpKspEObm4F3edJthw2IZSdojaoBalXEQgA1U,2346
99
124
  otdf_python_proto/policy/__init__.py,sha256=yrbwH5e3KjoqN4PSnFcOfC4xV9YuvzPa8OxDlGoOfkk,35
100
- otdf_python_proto/policy/objects_pb2.py,sha256=4izyxIYyD_9q6Bj3hff5cfjgvYIGW6ewZpsQ_MZE26E,22589
101
- otdf_python_proto/policy/objects_pb2.pyi,sha256=nuK89_2Z1R6I1xE0EokL2lUdEIEuzVFne0IqykpC7uI,24523
125
+ otdf_python_proto/policy/objects_pb2.py,sha256=5tyXq0l-X8Iw8MS6m4KE2h97OHdWp6kvJ1TxOHxUjDU,23915
126
+ otdf_python_proto/policy/objects_pb2.pyi,sha256=trXzTPsMbe7sBxh1qXAU4kS_-CK0WMNzTsJI01E8D-0,26621
102
127
  otdf_python_proto/policy/selectors_pb2.py,sha256=uqgIS0DtfOYDqzJ6WNq9D9aLa-RnTpN9a5o7YGMF7xM,5301
103
128
  otdf_python_proto/policy/selectors_pb2.pyi,sha256=FdC8ZLkgBBspwdjA1JlaeSgPo3R2qUIDws-9vNRXAUs,5162
104
129
  otdf_python_proto/policy/actions/__init__.py,sha256=GPRrOk6_i6Jgj9PrWX8tCdqYoVKdJJp7ucu1XtY3iFU,208
@@ -110,9 +135,9 @@ otdf_python_proto/policy/attributes/attributes_connect.py,sha256=r-_r5pqiFr_CCQ0
110
135
  otdf_python_proto/policy/attributes/attributes_pb2.py,sha256=wnK1qsuOVOePneFfDGtBDxiyvP9S8XA48mMTexybYBE,33029
111
136
  otdf_python_proto/policy/attributes/attributes_pb2.pyi,sha256=lpxvoxiRhSn1LEupx1fOcBc6pOdWcrTXAx_boHvGFZY,16259
112
137
  otdf_python_proto/policy/kasregistry/__init__.py,sha256=zj_8G65KIhOSiOeMkyMEZFomWYkfD9E5aWASgwV4n3M,295
113
- otdf_python_proto/policy/kasregistry/key_access_server_registry_connect.py,sha256=L5r5ZAMnM8gfEdPXZiQ61MrCxtlzvpaxjJGZj5MsEQk,52727
114
- otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.py,sha256=5RRqC6MsfBM9TEmPedRZYKMjdVWptMXXTUolUU4FPXI,45921
115
- otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.pyi,sha256=hpIgoFXZtY6HsjfHPi_Ybxm0CddK_AYy8YTlfdzR1Jk,24030
138
+ otdf_python_proto/policy/kasregistry/key_access_server_registry_connect.py,sha256=EEU9fDmKiTFyAmYBTtnWfogc5y9iKNNrwMgH5Dd0bgg,56582
139
+ otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.py,sha256=deNmAhWSwG7o5geVnAp903iL4n0KFByHU-osiE9DaHE,48012
140
+ otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.pyi,sha256=rGwP30SozAskwtoygnTPjpJwViSTUo9pqq5A6HLYzks,26269
116
141
  otdf_python_proto/policy/keymanagement/__init__.py,sha256=baBSBdjBbaErAIjjn0GxUPfYYRq7R4MfsrvpK02uews,245
117
142
  otdf_python_proto/policy/keymanagement/key_management_connect.py,sha256=-e1fc4S3-xJ_Tdy9T0JMMTXIFhMeN7qx0sls-gMUjeM,20883
118
143
  otdf_python_proto/policy/keymanagement/key_management_pb2.py,sha256=MVAJKkR_B2nqN9jqWg7JLWByKFFfoi4unj1hbToByCE,8129
@@ -121,6 +146,10 @@ otdf_python_proto/policy/namespaces/__init__.py,sha256=JIdic8yq55x9BrQzaJtgEp3J7
121
146
  otdf_python_proto/policy/namespaces/namespaces_connect.py,sha256=gJmN8r8bCDX9KTyEJc7X5RnvgxPiANfRvTTFNom06wk,35163
122
147
  otdf_python_proto/policy/namespaces/namespaces_pb2.py,sha256=NTdUbii-WF0VNiVvM29ZmAni7W4dgmNkOGq2ytP31pk,15222
123
148
  otdf_python_proto/policy/namespaces/namespaces_pb2.pyi,sha256=plOpaSBszfi7p71XKZvTg1e1nJUhvoz1wrcYDX9cByQ,7148
149
+ otdf_python_proto/policy/obligations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
150
+ otdf_python_proto/policy/obligations/obligations_connect.py,sha256=KLUichI7H8aLPTeePSvAeECK3QRats4iqqO8Rm6DuM4,48793
151
+ otdf_python_proto/policy/obligations/obligations_pb2.py,sha256=kAkzx4hJQkc5RXPbt2OI2DpSPo_B2BaxS89pGbQ-RHI,13727
152
+ otdf_python_proto/policy/obligations/obligations_pb2.pyi,sha256=rSuJddzYA3yL6wX_DQ3tSdKGHg42WqSuxk49K9cUrz4,10453
124
153
  otdf_python_proto/policy/registeredresources/__init__.py,sha256=U6A5CRMFUhwjxOdxaRpgfIBx9bJZ7KcnBNKPQouSaeI,281
125
154
  otdf_python_proto/policy/registeredresources/registered_resources_connect.py,sha256=FVJPkbH7vO_oUiJRW6qW2nkJhmomO_9YQ1yDCEYYhQ8,48569
126
155
  otdf_python_proto/policy/registeredresources/registered_resources_pb2.py,sha256=5pb4vm0SEOG-U8FORKa9Z1Fe2tbgcWEEJworZE_LS00,23112
@@ -135,13 +164,13 @@ otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.py,sha256=iNZp_sHDLX
135
164
  otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.pyi,sha256=kPkRm8xw3KiEu9LiUmKCbouHVryeEFWyk19Eo6L6rus,10903
136
165
  otdf_python_proto/policy/unsafe/__init__.py,sha256=1TYTtYZyHxNQ2HaMCONHJ1U9dZDp3ZoZv19wZ78NhBI,202
137
166
  otdf_python_proto/policy/unsafe/unsafe_connect.py,sha256=f-WA7NClXBfxs9wkdSVKUf7LwvK5WfDGkNsqboZ2k2g,37202
138
- otdf_python_proto/policy/unsafe/unsafe_pb2.py,sha256=j8J3FGM6nL6VDJvZUdrq6MAQ0GvHCDRH1q3-Djw5NfE,14936
139
- otdf_python_proto/policy/unsafe/unsafe_pb2.pyi,sha256=Pu72GtZTZWdD_L9SqqyeV8SQu9VXdVEEAGECrzHFmWs,5879
167
+ otdf_python_proto/policy/unsafe/unsafe_pb2.py,sha256=9Qp5xNjaxYtWat1wiZ39VtOkecGNFTR5y0RazhdDXPo,15477
168
+ otdf_python_proto/policy/unsafe/unsafe_pb2.pyi,sha256=GvEzEsbSCVyGlgKSMJeIO7vv4AoMiotNeFkHil_j-I8,6068
140
169
  otdf_python_proto/wellknownconfiguration/__init__.py,sha256=xK8XUrwCL9elWuMTx6vVgWdWdcACugoF0b5OYsFclj4,240
141
- otdf_python_proto/wellknownconfiguration/wellknown_configuration_connect.py,sha256=fVQfo4OsTK8e63ytmiGyMe1AxgirktNqI_O3rQ6o6Nc,6342
170
+ otdf_python_proto/wellknownconfiguration/wellknown_configuration_connect.py,sha256=wnfZ7K9vAB_Rub25KrdnKIfx5Yxq8yCc8c6zHjBtFH8,6358
142
171
  otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2.py,sha256=g9xSm9TxX0IPMqiFCaridJvI2TrL8PrXVFPgu8tX9VM,3863
143
172
  otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2.pyi,sha256=Zw4vROvTgomnFqsalJrYda632ojXH0FVXSzTXxerybw,1490
144
- otdf_python-0.4.4.dist-info/METADATA,sha256=O-bgJ7b_XIN6tH66EOmIuEr9m85RXkU6GRTYhf5GsIQ,5175
145
- otdf_python-0.4.4.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
146
- otdf_python-0.4.4.dist-info/licenses/LICENSE,sha256=DPrPHdI6tfZcqk9kzQ37vh1Ftk7LJYdMrUtwKl7L3Pw,1074
147
- otdf_python-0.4.4.dist-info/RECORD,,
173
+ otdf_python-0.5.0.dist-info/METADATA,sha256=IHabFJEAxTGVxuCzqZpESHKDZx9qa-nmTWc-SV1WoQ4,5175
174
+ otdf_python-0.5.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
175
+ otdf_python-0.5.0.dist-info/licenses/LICENSE,sha256=DPrPHdI6tfZcqk9kzQ37vh1Ftk7LJYdMrUtwKl7L3Pw,1074
176
+ otdf_python-0.5.0.dist-info/RECORD,,
@@ -4,6 +4,9 @@ This package contains generated Python code from OpenTDF protocol buffer definit
4
4
  It includes modules for authorization, common types, entities, policy management,
5
5
  and other OpenTDF services.
6
6
  """
7
+ import sys
8
+ import types
9
+ from pathlib import Path
7
10
  from importlib import metadata
8
11
 
9
12
  try:
@@ -12,9 +15,52 @@ except metadata.PackageNotFoundError:
12
15
  # package is not installed, e.g., in development
13
16
  __version__ = "0.0.0"
14
17
 
15
- # Import submodules to make them available
18
+ # Marker attribute placed on stub modules created by _register_subpackage_aliases.
19
+ # Used to distinguish our stubs from pre-existing third-party packages so we never
20
+ # clobber the latter.
21
+ _STUB_ATTR = "_otdf_python_proto_stub"
22
+
23
+
24
+ def _register_subpackage_aliases() -> None:
25
+ # connect-generated files use absolute top-level imports (e.g. `import kas.kas_pb2`).
26
+ # Register each subpackage as a top-level sys.modules alias so those imports resolve
27
+ # without mutating sys.path for the whole process.
28
+ #
29
+ # Called twice: before the explicit imports below (creates lightweight stubs so that
30
+ # load-time absolute imports inside connect files succeed) and after (upgrades stubs
31
+ # to the fully-initialised module objects).
32
+ pkg_dir = Path(__file__).parent
33
+ for child in pkg_dir.iterdir():
34
+ if not child.is_dir() or not (child / "__init__.py").exists() or child.name.startswith("_"):
35
+ continue
36
+ name = child.name
37
+ current = sys.modules.get(name)
38
+ # Never overwrite a pre-existing entry that we did not create.
39
+ if current is not None and not getattr(current, _STUB_ATTR, False):
40
+ continue
41
+ full_name = f"otdf_python_proto.{name}"
42
+ if full_name in sys.modules:
43
+ # Real module is loaded; point the alias at it.
44
+ sys.modules[name] = sys.modules[full_name]
45
+ else:
46
+ # Subpackage not yet imported; create a lightweight stub with __path__ set
47
+ # so sub-imports like `import authorization.authorization_pb2` can locate
48
+ # modules on disk without needing sys.path mutation.
49
+ stub = types.ModuleType(name)
50
+ stub.__path__ = [str(child)] # type: ignore[attr-defined]
51
+ stub.__package__ = name
52
+ stub.__file__ = str(child / "__init__.py")
53
+ setattr(stub, _STUB_ATTR, True)
54
+ sys.modules[name] = stub
55
+
56
+
57
+ # First pass: create stubs so that connect-generated files can resolve absolute
58
+ # top-level imports (e.g. `import kas.kas_pb2`) at subpackage load time.
59
+ _register_subpackage_aliases()
60
+
61
+ # Import submodules to make them available.
16
62
  # Note: authorization, entityresolution, wellknownconfiguration and policy subdirectories
17
- # are imported lazily to avoid import errors from generated protobuf files
63
+ # are imported lazily to avoid import errors from generated protobuf files.
18
64
  from . import common
19
65
  from . import entity
20
66
  from . import kas
@@ -22,6 +68,10 @@ from . import legacy_grpc
22
68
  from . import logger
23
69
  from . import policy
24
70
 
71
+ # Second pass: upgrade stubs for the explicitly imported subpackages to the
72
+ # fully-initialised module objects.
73
+ _register_subpackage_aliases()
74
+
25
75
  # Export main module categories
26
76
  __all__ = [
27
77
  "common",
@@ -12,7 +12,7 @@ from connectrpc.interceptor import Interceptor, InterceptorSync
12
12
  from connectrpc.method import IdempotencyLevel, MethodInfo
13
13
  from connectrpc.request import Headers, RequestContext
14
14
  from connectrpc.server import ConnectASGIApplication, ConnectWSGIApplication, Endpoint, EndpointSync
15
- from . import authorization_pb2 as authorization_dot_authorization__pb2
15
+ import authorization.authorization_pb2 as authorization_dot_authorization__pb2
16
16
 
17
17
 
18
18
  class AuthorizationService(Protocol):
File without changes
@@ -28,7 +28,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb
28
28
  from policy import objects_pb2 as policy_dot_objects__pb2
29
29
 
30
30
 
31
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$authorization/v2/authorization.proto\x12\x10\x61uthorization.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x13\x65ntity/entity.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x14policy/objects.proto\"\x9a\x03\n\x10\x45ntityIdentifier\x12\xa2\x01\n\x0c\x65ntity_chain\x18\x01 \x01(\x0b\x32\x13.entity.EntityChainBh\xbaHe\xba\x01\x62\n\x15\x65ntity_chain_required\x12\x19\x65ntities must be provided\x1a.has(this.entities) && this.entities.size() > 0H\x00R\x0b\x65ntityChain\x12O\n\x1dregistered_resource_value_fqn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x1aregisteredResourceValueFqn\x12{\n\x05token\x18\x03 \x01(\x0b\x32\r.entity.TokenBT\xbaHQ\xba\x01N\n\x0etoken_required\x12\x16token must be provided\x1a$has(this.jwt) && this.jwt.size() > 0H\x00R\x05tokenB\x13\n\nidentifier\x12\x05\xbaH\x02\x08\x01\"\x81\x03\n\x12\x45ntityEntitlements\x12!\n\x0c\x65phemeral_id\x18\x01 \x01(\tR\x0b\x65phemeralId\x12\x8b\x01\n\x1f\x61\x63tions_per_attribute_value_fqn\x18\x02 \x03(\x0b\x32\x45.authorization.v2.EntityEntitlements.ActionsPerAttributeValueFqnEntryR\x1b\x61\x63tionsPerAttributeValueFqn\x1a\x37\n\x0b\x41\x63tionsList\x12(\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x0e.policy.ActionR\x07\x61\x63tions\x1a\x80\x01\n ActionsPerAttributeValueFqnEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x30.authorization.v2.EntityEntitlements.ActionsListR\x05value:\x02\x38\x01\"\xa6\x03\n\x08Resource\x12!\n\x0c\x65phemeral_id\x18\x01 \x01(\tR\x0b\x65phemeralId\x12\xf2\x01\n\x10\x61ttribute_values\x18\x02 \x01(\x0b\x32*.authorization.v2.Resource.AttributeValuesB\x98\x01\xbaH\x94\x01\xba\x01\x90\x01\n\x19\x61ttribute_values_required\x12\x38if provided, resource.attribute_values must not be empty\x1a\x39this.fqns.size() > 0 && this.fqns.all(item, item.isUri())H\x00R\x0f\x61ttributeValues\x12O\n\x1dregistered_resource_value_fqn\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x1aregisteredResourceValueFqn\x1a%\n\x0f\x41ttributeValues\x12\x12\n\x04\x66qns\x18\x01 \x03(\tR\x04\x66qnsB\n\n\x08resource\"~\n\x10ResourceDecision\x12\x32\n\x15\x65phemeral_resource_id\x18\x01 \x01(\tR\x13\x65phemeralResourceId\x12\x36\n\x08\x64\x65\x63ision\x18\x02 \x01(\x0e\x32\x1a.authorization.v2.DecisionR\x08\x64\x65\x63ision\"\xc4\x02\n\x12GetDecisionRequest\x12W\n\x11\x65ntity_identifier\x18\x01 \x01(\x0b\x32\".authorization.v2.EntityIdentifierB\x06\xbaH\x03\xc8\x01\x01R\x10\x65ntityIdentifier\x12.\n\x06\x61\x63tion\x18\x02 \x01(\x0b\x32\x0e.policy.ActionB\x06\xbaH\x03\xc8\x01\x01R\x06\x61\x63tion\x12>\n\x08resource\x18\x03 \x01(\x0b\x32\x1a.authorization.v2.ResourceB\x06\xbaH\x03\xc8\x01\x01R\x08resource:e\xbaHb\x1a`\n)get_decision_request.action_name_required\x12\x1c\x61\x63tion.name must be provided\x1a\x15has(this.action.name)\"U\n\x13GetDecisionResponse\x12>\n\x08\x64\x65\x63ision\x18\x01 \x01(\x0b\x32\".authorization.v2.ResourceDecisionR\x08\x64\x65\x63ision\"\xde\x02\n\x1fGetDecisionMultiResourceRequest\x12W\n\x11\x65ntity_identifier\x18\x01 \x01(\x0b\x32\".authorization.v2.EntityIdentifierB\x06\xbaH\x03\xc8\x01\x01R\x10\x65ntityIdentifier\x12.\n\x06\x61\x63tion\x18\x02 \x01(\x0b\x32\x0e.policy.ActionB\x06\xbaH\x03\xc8\x01\x01R\x06\x61\x63tion\x12\x45\n\tresources\x18\x03 \x03(\x0b\x32\x1a.authorization.v2.ResourceB\x0b\xbaH\x08\x92\x01\x02\x08\x01\xc8\x01\x01R\tresources:k\xbaHh\x1a\x66\n/get_decision_multi_request.action_name_required\x12\x1c\x61\x63tion.name must be provided\x1a\x15has(this.action.name)\"\xb6\x01\n GetDecisionMultiResourceResponse\x12?\n\rall_permitted\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x0c\x61llPermitted\x12Q\n\x12resource_decisions\x18\x02 \x03(\x0b\x32\".authorization.v2.ResourceDecisionR\x11resourceDecisions\"x\n\x16GetDecisionBulkRequest\x12^\n\x11\x64\x65\x63ision_requests\x18\x01 \x03(\x0b\x32\x31.authorization.v2.GetDecisionMultiResourceRequestR\x10\x64\x65\x63isionRequests\"|\n\x17GetDecisionBulkResponse\x12\x61\n\x12\x64\x65\x63ision_responses\x18\x01 \x03(\x0b\x32\x32.authorization.v2.GetDecisionMultiResourceResponseR\x11\x64\x65\x63isionResponses\"\xd9\x01\n\x16GetEntitlementsRequest\x12W\n\x11\x65ntity_identifier\x18\x01 \x01(\x0b\x32\".authorization.v2.EntityIdentifierB\x06\xbaH\x03\xc8\x01\x01R\x10\x65ntityIdentifier\x12\x45\n\x1cwith_comprehensive_hierarchy\x18\x02 \x01(\x08H\x00R\x1awithComprehensiveHierarchy\x88\x01\x01\x42\x1f\n\x1d_with_comprehensive_hierarchy\"c\n\x17GetEntitlementsResponse\x12H\n\x0c\x65ntitlements\x18\x01 \x03(\x0b\x32$.authorization.v2.EntityEntitlementsR\x0c\x65ntitlements*L\n\x08\x44\x65\x63ision\x12\x18\n\x14\x44\x45\x43ISION_UNSPECIFIED\x10\x00\x12\x11\n\rDECISION_DENY\x10\x01\x12\x13\n\x0f\x44\x45\x43ISION_PERMIT\x10\x02\x32\xce\x03\n\x14\x41uthorizationService\x12\\\n\x0bGetDecision\x12$.authorization.v2.GetDecisionRequest\x1a%.authorization.v2.GetDecisionResponse\"\x00\x12\x83\x01\n\x18GetDecisionMultiResource\x12\x31.authorization.v2.GetDecisionMultiResourceRequest\x1a\x32.authorization.v2.GetDecisionMultiResourceResponse\"\x00\x12h\n\x0fGetDecisionBulk\x12(.authorization.v2.GetDecisionBulkRequest\x1a).authorization.v2.GetDecisionBulkResponse\"\x00\x12h\n\x0fGetEntitlements\x12(.authorization.v2.GetEntitlementsRequest\x1a).authorization.v2.GetEntitlementsResponse\"\x00\x42\x8b\x01\n\x14\x63om.authorization.v2B\x12\x41uthorizationProtoP\x01\xa2\x02\x03\x41XX\xaa\x02\x10\x41uthorization.V2\xca\x02\x10\x41uthorization\\V2\xe2\x02\x1c\x41uthorization\\V2\\GPBMetadata\xea\x02\x11\x41uthorization::V2b\x06proto3')
31
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$authorization/v2/authorization.proto\x12\x10\x61uthorization.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x13\x65ntity/entity.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x14policy/objects.proto\"\xd9\x03\n\x10\x45ntityIdentifier\x12\xe1\x01\n\x0c\x65ntity_chain\x18\x01 \x01(\x0b\x32\x13.entity.EntityChainB\xa6\x01\xbaH\xa2\x01\xba\x01\x9e\x01\n\x15\x65ntity_chain_required\x12\x37\x65ntities must be provided and between 1 and 10 in count\x1aLhas(this.entities) && this.entities.size() > 0 && this.entities.size() <= 10H\x00R\x0b\x65ntityChain\x12O\n\x1dregistered_resource_value_fqn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x1aregisteredResourceValueFqn\x12{\n\x05token\x18\x03 \x01(\x0b\x32\r.entity.TokenBT\xbaHQ\xba\x01N\n\x0etoken_required\x12\x16token must be provided\x1a$has(this.jwt) && this.jwt.size() > 0H\x00R\x05tokenB\x13\n\nidentifier\x12\x05\xbaH\x02\x08\x01\"\x81\x03\n\x12\x45ntityEntitlements\x12!\n\x0c\x65phemeral_id\x18\x01 \x01(\tR\x0b\x65phemeralId\x12\x8b\x01\n\x1f\x61\x63tions_per_attribute_value_fqn\x18\x02 \x03(\x0b\x32\x45.authorization.v2.EntityEntitlements.ActionsPerAttributeValueFqnEntryR\x1b\x61\x63tionsPerAttributeValueFqn\x1a\x37\n\x0b\x41\x63tionsList\x12(\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x0e.policy.ActionR\x07\x61\x63tions\x1a\x80\x01\n ActionsPerAttributeValueFqnEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x30.authorization.v2.EntityEntitlements.ActionsListR\x05value:\x02\x38\x01\"\xe4\x03\n\x08Resource\x12!\n\x0c\x65phemeral_id\x18\x01 \x01(\tR\x0b\x65phemeralId\x12\xb0\x02\n\x10\x61ttribute_values\x18\x02 \x01(\x0b\x32*.authorization.v2.Resource.AttributeValuesB\xd6\x01\xbaH\xd2\x01\xba\x01\xce\x01\n\x19\x61ttribute_values_required\x12\\if provided, resource.attribute_values must be between 1 and 20 in count with all valid FQNs\x1aSthis.fqns.size() > 0 && this.fqns.size() <= 20 && this.fqns.all(item, item.isUri())H\x00R\x0f\x61ttributeValues\x12O\n\x1dregistered_resource_value_fqn\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x1aregisteredResourceValueFqn\x1a%\n\x0f\x41ttributeValues\x12\x12\n\x04\x66qns\x18\x01 \x03(\tR\x04\x66qnsB\n\n\x08resource\"~\n\x10ResourceDecision\x12\x32\n\x15\x65phemeral_resource_id\x18\x01 \x01(\tR\x13\x65phemeralResourceId\x12\x36\n\x08\x64\x65\x63ision\x18\x02 \x01(\x0e\x32\x1a.authorization.v2.DecisionR\x08\x64\x65\x63ision\"\xc4\x02\n\x12GetDecisionRequest\x12W\n\x11\x65ntity_identifier\x18\x01 \x01(\x0b\x32\".authorization.v2.EntityIdentifierB\x06\xbaH\x03\xc8\x01\x01R\x10\x65ntityIdentifier\x12.\n\x06\x61\x63tion\x18\x02 \x01(\x0b\x32\x0e.policy.ActionB\x06\xbaH\x03\xc8\x01\x01R\x06\x61\x63tion\x12>\n\x08resource\x18\x03 \x01(\x0b\x32\x1a.authorization.v2.ResourceB\x06\xbaH\x03\xc8\x01\x01R\x08resource:e\xbaHb\x1a`\n)get_decision_request.action_name_required\x12\x1c\x61\x63tion.name must be provided\x1a\x15has(this.action.name)\"U\n\x13GetDecisionResponse\x12>\n\x08\x64\x65\x63ision\x18\x01 \x01(\x0b\x32\".authorization.v2.ResourceDecisionR\x08\x64\x65\x63ision\"\xde\x02\n\x1fGetDecisionMultiResourceRequest\x12W\n\x11\x65ntity_identifier\x18\x01 \x01(\x0b\x32\".authorization.v2.EntityIdentifierB\x06\xbaH\x03\xc8\x01\x01R\x10\x65ntityIdentifier\x12.\n\x06\x61\x63tion\x18\x02 \x01(\x0b\x32\x0e.policy.ActionB\x06\xbaH\x03\xc8\x01\x01R\x06\x61\x63tion\x12\x45\n\tresources\x18\x03 \x03(\x0b\x32\x1a.authorization.v2.ResourceB\x0b\xbaH\x08\x92\x01\x05\x08\x01\x10\xe8\x07R\tresources:k\xbaHh\x1a\x66\n/get_decision_multi_request.action_name_required\x12\x1c\x61\x63tion.name must be provided\x1a\x15has(this.action.name)\"\xb6\x01\n GetDecisionMultiResourceResponse\x12?\n\rall_permitted\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x0c\x61llPermitted\x12Q\n\x12resource_decisions\x18\x02 \x03(\x0b\x32\".authorization.v2.ResourceDecisionR\x11resourceDecisions\"\x85\x01\n\x16GetDecisionBulkRequest\x12k\n\x11\x64\x65\x63ision_requests\x18\x01 \x03(\x0b\x32\x31.authorization.v2.GetDecisionMultiResourceRequestB\x0b\xbaH\x08\x92\x01\x05\x08\x01\x10\xc8\x01R\x10\x64\x65\x63isionRequests\"|\n\x17GetDecisionBulkResponse\x12\x61\n\x12\x64\x65\x63ision_responses\x18\x01 \x03(\x0b\x32\x32.authorization.v2.GetDecisionMultiResourceResponseR\x11\x64\x65\x63isionResponses\"\xd9\x01\n\x16GetEntitlementsRequest\x12W\n\x11\x65ntity_identifier\x18\x01 \x01(\x0b\x32\".authorization.v2.EntityIdentifierB\x06\xbaH\x03\xc8\x01\x01R\x10\x65ntityIdentifier\x12\x45\n\x1cwith_comprehensive_hierarchy\x18\x02 \x01(\x08H\x00R\x1awithComprehensiveHierarchy\x88\x01\x01\x42\x1f\n\x1d_with_comprehensive_hierarchy\"c\n\x17GetEntitlementsResponse\x12H\n\x0c\x65ntitlements\x18\x01 \x03(\x0b\x32$.authorization.v2.EntityEntitlementsR\x0c\x65ntitlements*L\n\x08\x44\x65\x63ision\x12\x18\n\x14\x44\x45\x43ISION_UNSPECIFIED\x10\x00\x12\x11\n\rDECISION_DENY\x10\x01\x12\x13\n\x0f\x44\x45\x43ISION_PERMIT\x10\x02\x32\xce\x03\n\x14\x41uthorizationService\x12\\\n\x0bGetDecision\x12$.authorization.v2.GetDecisionRequest\x1a%.authorization.v2.GetDecisionResponse\"\x00\x12\x83\x01\n\x18GetDecisionMultiResource\x12\x31.authorization.v2.GetDecisionMultiResourceRequest\x1a\x32.authorization.v2.GetDecisionMultiResourceResponse\"\x00\x12h\n\x0fGetDecisionBulk\x12(.authorization.v2.GetDecisionBulkRequest\x1a).authorization.v2.GetDecisionBulkResponse\"\x00\x12h\n\x0fGetEntitlements\x12(.authorization.v2.GetEntitlementsRequest\x1a).authorization.v2.GetEntitlementsResponse\"\x00\x42\x8b\x01\n\x14\x63om.authorization.v2B\x12\x41uthorizationProtoP\x01\xa2\x02\x03\x41XX\xaa\x02\x10\x41uthorization.V2\xca\x02\x10\x41uthorization\\V2\xe2\x02\x1c\x41uthorization\\V2\\GPBMetadata\xea\x02\x11\x41uthorization::V2b\x06proto3')
32
32
 
33
33
  _globals = globals()
34
34
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -39,7 +39,7 @@ if not _descriptor._USE_C_DESCRIPTORS:
39
39
  _globals['_ENTITYIDENTIFIER'].oneofs_by_name['identifier']._loaded_options = None
40
40
  _globals['_ENTITYIDENTIFIER'].oneofs_by_name['identifier']._serialized_options = b'\272H\002\010\001'
41
41
  _globals['_ENTITYIDENTIFIER'].fields_by_name['entity_chain']._loaded_options = None
42
- _globals['_ENTITYIDENTIFIER'].fields_by_name['entity_chain']._serialized_options = b'\272He\272\001b\n\025entity_chain_required\022\031entities must be provided\032.has(this.entities) && this.entities.size() > 0'
42
+ _globals['_ENTITYIDENTIFIER'].fields_by_name['entity_chain']._serialized_options = b'\272H\242\001\272\001\236\001\n\025entity_chain_required\0227entities must be provided and between 1 and 10 in count\032Lhas(this.entities) && this.entities.size() > 0 && this.entities.size() <= 10'
43
43
  _globals['_ENTITYIDENTIFIER'].fields_by_name['registered_resource_value_fqn']._loaded_options = None
44
44
  _globals['_ENTITYIDENTIFIER'].fields_by_name['registered_resource_value_fqn']._serialized_options = b'\272H\007r\005\020\001\210\001\001'
45
45
  _globals['_ENTITYIDENTIFIER'].fields_by_name['token']._loaded_options = None
@@ -47,7 +47,7 @@ if not _descriptor._USE_C_DESCRIPTORS:
47
47
  _globals['_ENTITYENTITLEMENTS_ACTIONSPERATTRIBUTEVALUEFQNENTRY']._loaded_options = None
48
48
  _globals['_ENTITYENTITLEMENTS_ACTIONSPERATTRIBUTEVALUEFQNENTRY']._serialized_options = b'8\001'
49
49
  _globals['_RESOURCE'].fields_by_name['attribute_values']._loaded_options = None
50
- _globals['_RESOURCE'].fields_by_name['attribute_values']._serialized_options = b'\272H\224\001\272\001\220\001\n\031attribute_values_required\0228if provided, resource.attribute_values must not be empty\0329this.fqns.size() > 0 && this.fqns.all(item, item.isUri())'
50
+ _globals['_RESOURCE'].fields_by_name['attribute_values']._serialized_options = b'\272H\322\001\272\001\316\001\n\031attribute_values_required\022\\if provided, resource.attribute_values must be between 1 and 20 in count with all valid FQNs\032Sthis.fqns.size() > 0 && this.fqns.size() <= 20 && this.fqns.all(item, item.isUri())'
51
51
  _globals['_RESOURCE'].fields_by_name['registered_resource_value_fqn']._loaded_options = None
52
52
  _globals['_RESOURCE'].fields_by_name['registered_resource_value_fqn']._serialized_options = b'\272H\007r\005\020\001\210\001\001'
53
53
  _globals['_GETDECISIONREQUEST'].fields_by_name['entity_identifier']._loaded_options = None
@@ -63,43 +63,45 @@ if not _descriptor._USE_C_DESCRIPTORS:
63
63
  _globals['_GETDECISIONMULTIRESOURCEREQUEST'].fields_by_name['action']._loaded_options = None
64
64
  _globals['_GETDECISIONMULTIRESOURCEREQUEST'].fields_by_name['action']._serialized_options = b'\272H\003\310\001\001'
65
65
  _globals['_GETDECISIONMULTIRESOURCEREQUEST'].fields_by_name['resources']._loaded_options = None
66
- _globals['_GETDECISIONMULTIRESOURCEREQUEST'].fields_by_name['resources']._serialized_options = b'\272H\010\222\001\002\010\001\310\001\001'
66
+ _globals['_GETDECISIONMULTIRESOURCEREQUEST'].fields_by_name['resources']._serialized_options = b'\272H\010\222\001\005\010\001\020\350\007'
67
67
  _globals['_GETDECISIONMULTIRESOURCEREQUEST']._loaded_options = None
68
68
  _globals['_GETDECISIONMULTIRESOURCEREQUEST']._serialized_options = b'\272Hh\032f\n/get_decision_multi_request.action_name_required\022\034action.name must be provided\032\025has(this.action.name)'
69
+ _globals['_GETDECISIONBULKREQUEST'].fields_by_name['decision_requests']._loaded_options = None
70
+ _globals['_GETDECISIONBULKREQUEST'].fields_by_name['decision_requests']._serialized_options = b'\272H\010\222\001\005\010\001\020\310\001'
69
71
  _globals['_GETENTITLEMENTSREQUEST'].fields_by_name['entity_identifier']._loaded_options = None
70
72
  _globals['_GETENTITLEMENTSREQUEST'].fields_by_name['entity_identifier']._serialized_options = b'\272H\003\310\001\001'
71
- _globals['_DECISION']._serialized_start=3037
72
- _globals['_DECISION']._serialized_end=3113
73
+ _globals['_DECISION']._serialized_start=3176
74
+ _globals['_DECISION']._serialized_end=3252
73
75
  _globals['_ENTITYIDENTIFIER']._serialized_start=163
74
- _globals['_ENTITYIDENTIFIER']._serialized_end=573
75
- _globals['_ENTITYENTITLEMENTS']._serialized_start=576
76
- _globals['_ENTITYENTITLEMENTS']._serialized_end=961
77
- _globals['_ENTITYENTITLEMENTS_ACTIONSLIST']._serialized_start=775
78
- _globals['_ENTITYENTITLEMENTS_ACTIONSLIST']._serialized_end=830
79
- _globals['_ENTITYENTITLEMENTS_ACTIONSPERATTRIBUTEVALUEFQNENTRY']._serialized_start=833
80
- _globals['_ENTITYENTITLEMENTS_ACTIONSPERATTRIBUTEVALUEFQNENTRY']._serialized_end=961
81
- _globals['_RESOURCE']._serialized_start=964
82
- _globals['_RESOURCE']._serialized_end=1386
83
- _globals['_RESOURCE_ATTRIBUTEVALUES']._serialized_start=1337
84
- _globals['_RESOURCE_ATTRIBUTEVALUES']._serialized_end=1374
85
- _globals['_RESOURCEDECISION']._serialized_start=1388
86
- _globals['_RESOURCEDECISION']._serialized_end=1514
87
- _globals['_GETDECISIONREQUEST']._serialized_start=1517
88
- _globals['_GETDECISIONREQUEST']._serialized_end=1841
89
- _globals['_GETDECISIONRESPONSE']._serialized_start=1843
90
- _globals['_GETDECISIONRESPONSE']._serialized_end=1928
91
- _globals['_GETDECISIONMULTIRESOURCEREQUEST']._serialized_start=1931
92
- _globals['_GETDECISIONMULTIRESOURCEREQUEST']._serialized_end=2281
93
- _globals['_GETDECISIONMULTIRESOURCERESPONSE']._serialized_start=2284
94
- _globals['_GETDECISIONMULTIRESOURCERESPONSE']._serialized_end=2466
95
- _globals['_GETDECISIONBULKREQUEST']._serialized_start=2468
96
- _globals['_GETDECISIONBULKREQUEST']._serialized_end=2588
97
- _globals['_GETDECISIONBULKRESPONSE']._serialized_start=2590
98
- _globals['_GETDECISIONBULKRESPONSE']._serialized_end=2714
99
- _globals['_GETENTITLEMENTSREQUEST']._serialized_start=2717
100
- _globals['_GETENTITLEMENTSREQUEST']._serialized_end=2934
101
- _globals['_GETENTITLEMENTSRESPONSE']._serialized_start=2936
102
- _globals['_GETENTITLEMENTSRESPONSE']._serialized_end=3035
103
- _globals['_AUTHORIZATIONSERVICE']._serialized_start=3116
104
- _globals['_AUTHORIZATIONSERVICE']._serialized_end=3578
76
+ _globals['_ENTITYIDENTIFIER']._serialized_end=636
77
+ _globals['_ENTITYENTITLEMENTS']._serialized_start=639
78
+ _globals['_ENTITYENTITLEMENTS']._serialized_end=1024
79
+ _globals['_ENTITYENTITLEMENTS_ACTIONSLIST']._serialized_start=838
80
+ _globals['_ENTITYENTITLEMENTS_ACTIONSLIST']._serialized_end=893
81
+ _globals['_ENTITYENTITLEMENTS_ACTIONSPERATTRIBUTEVALUEFQNENTRY']._serialized_start=896
82
+ _globals['_ENTITYENTITLEMENTS_ACTIONSPERATTRIBUTEVALUEFQNENTRY']._serialized_end=1024
83
+ _globals['_RESOURCE']._serialized_start=1027
84
+ _globals['_RESOURCE']._serialized_end=1511
85
+ _globals['_RESOURCE_ATTRIBUTEVALUES']._serialized_start=1462
86
+ _globals['_RESOURCE_ATTRIBUTEVALUES']._serialized_end=1499
87
+ _globals['_RESOURCEDECISION']._serialized_start=1513
88
+ _globals['_RESOURCEDECISION']._serialized_end=1639
89
+ _globals['_GETDECISIONREQUEST']._serialized_start=1642
90
+ _globals['_GETDECISIONREQUEST']._serialized_end=1966
91
+ _globals['_GETDECISIONRESPONSE']._serialized_start=1968
92
+ _globals['_GETDECISIONRESPONSE']._serialized_end=2053
93
+ _globals['_GETDECISIONMULTIRESOURCEREQUEST']._serialized_start=2056
94
+ _globals['_GETDECISIONMULTIRESOURCEREQUEST']._serialized_end=2406
95
+ _globals['_GETDECISIONMULTIRESOURCERESPONSE']._serialized_start=2409
96
+ _globals['_GETDECISIONMULTIRESOURCERESPONSE']._serialized_end=2591
97
+ _globals['_GETDECISIONBULKREQUEST']._serialized_start=2594
98
+ _globals['_GETDECISIONBULKREQUEST']._serialized_end=2727
99
+ _globals['_GETDECISIONBULKRESPONSE']._serialized_start=2729
100
+ _globals['_GETDECISIONBULKRESPONSE']._serialized_end=2853
101
+ _globals['_GETENTITLEMENTSREQUEST']._serialized_start=2856
102
+ _globals['_GETENTITLEMENTSREQUEST']._serialized_end=3073
103
+ _globals['_GETENTITLEMENTSRESPONSE']._serialized_start=3075
104
+ _globals['_GETENTITLEMENTSRESPONSE']._serialized_end=3174
105
+ _globals['_AUTHORIZATIONSERVICE']._serialized_start=3255
106
+ _globals['_AUTHORIZATIONSERVICE']._serialized_end=3717
105
107
  # @@protoc_insertion_point(module_scope)
@@ -12,7 +12,7 @@ from connectrpc.interceptor import Interceptor, InterceptorSync
12
12
  from connectrpc.method import IdempotencyLevel, MethodInfo
13
13
  from connectrpc.request import Headers, RequestContext
14
14
  from connectrpc.server import ConnectASGIApplication, ConnectWSGIApplication, Endpoint, EndpointSync
15
- from . import entity_resolution_pb2 as entityresolution_dot_entity__resolution__pb2
15
+ import entityresolution.entity_resolution_pb2 as entityresolution_dot_entity__resolution__pb2
16
16
 
17
17
 
18
18
  class EntityResolutionService(Protocol):
File without changes
@@ -13,7 +13,7 @@ from connectrpc.method import IdempotencyLevel, MethodInfo
13
13
  from connectrpc.request import Headers, RequestContext
14
14
  from connectrpc.server import ConnectASGIApplication, ConnectWSGIApplication, Endpoint, EndpointSync
15
15
  import google.protobuf.wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
16
- from . import kas_pb2 as kas_dot_kas__pb2
16
+ import kas.kas_pb2 as kas_dot_kas__pb2
17
17
 
18
18
 
19
19
  class AccessService(Protocol):
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -79,6 +79,11 @@ class KeyAccessServerRegistryServiceStub(object):
79
79
  request_serializer=policy_dot_kasregistry_dot_key__access__server__registry__pb2.GetBaseKeyRequest.SerializeToString,
80
80
  response_deserializer=policy_dot_kasregistry_dot_key__access__server__registry__pb2.GetBaseKeyResponse.FromString,
81
81
  _registered_method=True)
82
+ self.ListKeyMappings = channel.unary_unary(
83
+ '/policy.kasregistry.KeyAccessServerRegistryService/ListKeyMappings',
84
+ request_serializer=policy_dot_kasregistry_dot_key__access__server__registry__pb2.ListKeyMappingsRequest.SerializeToString,
85
+ response_deserializer=policy_dot_kasregistry_dot_key__access__server__registry__pb2.ListKeyMappingsResponse.FromString,
86
+ _registered_method=True)
82
87
 
83
88
 
84
89
  class KeyAccessServerRegistryServiceServicer(object):
@@ -171,6 +176,13 @@ class KeyAccessServerRegistryServiceServicer(object):
171
176
  context.set_details('Method not implemented!')
172
177
  raise NotImplementedError('Method not implemented!')
173
178
 
179
+ def ListKeyMappings(self, request, context):
180
+ """Request to list key mappings in the Key Access Service.
181
+ """
182
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
183
+ context.set_details('Method not implemented!')
184
+ raise NotImplementedError('Method not implemented!')
185
+
174
186
 
175
187
  def add_KeyAccessServerRegistryServiceServicer_to_server(servicer, server):
176
188
  rpc_method_handlers = {
@@ -239,6 +251,11 @@ def add_KeyAccessServerRegistryServiceServicer_to_server(servicer, server):
239
251
  request_deserializer=policy_dot_kasregistry_dot_key__access__server__registry__pb2.GetBaseKeyRequest.FromString,
240
252
  response_serializer=policy_dot_kasregistry_dot_key__access__server__registry__pb2.GetBaseKeyResponse.SerializeToString,
241
253
  ),
254
+ 'ListKeyMappings': grpc.unary_unary_rpc_method_handler(
255
+ servicer.ListKeyMappings,
256
+ request_deserializer=policy_dot_kasregistry_dot_key__access__server__registry__pb2.ListKeyMappingsRequest.FromString,
257
+ response_serializer=policy_dot_kasregistry_dot_key__access__server__registry__pb2.ListKeyMappingsResponse.SerializeToString,
258
+ ),
242
259
  }
243
260
  generic_handler = grpc.method_handlers_generic_handler(
244
261
  'policy.kasregistry.KeyAccessServerRegistryService', rpc_method_handlers)
@@ -600,3 +617,30 @@ class KeyAccessServerRegistryService(object):
600
617
  timeout,
601
618
  metadata,
602
619
  _registered_method=True)
620
+
621
+ @staticmethod
622
+ def ListKeyMappings(request,
623
+ target,
624
+ options=(),
625
+ channel_credentials=None,
626
+ call_credentials=None,
627
+ insecure=False,
628
+ compression=None,
629
+ wait_for_ready=None,
630
+ timeout=None,
631
+ metadata=None):
632
+ return grpc.experimental.unary_unary(
633
+ request,
634
+ target,
635
+ '/policy.kasregistry.KeyAccessServerRegistryService/ListKeyMappings',
636
+ policy_dot_kasregistry_dot_key__access__server__registry__pb2.ListKeyMappingsRequest.SerializeToString,
637
+ policy_dot_kasregistry_dot_key__access__server__registry__pb2.ListKeyMappingsResponse.FromString,
638
+ options,
639
+ channel_credentials,
640
+ insecure,
641
+ call_credentials,
642
+ compression,
643
+ wait_for_ready,
644
+ timeout,
645
+ metadata,
646
+ _registered_method=True)