otdf-python 0.4.1__tar.gz → 0.4.3__tar.gz

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 (286) hide show
  1. {otdf_python-0.4.1 → otdf_python-0.4.3}/.github/workflows/platform-integration-test.yaml +2 -2
  2. {otdf_python-0.4.1 → otdf_python-0.4.3}/.pre-commit-config.yaml +1 -1
  3. otdf_python-0.4.3/.release-please-manifest.json +3 -0
  4. {otdf_python-0.4.1 → otdf_python-0.4.3}/CHANGELOG.md +23 -0
  5. {otdf_python-0.4.1 → otdf_python-0.4.3}/PKG-INFO +3 -2
  6. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/buf.gen.yaml +1 -1
  7. otdf_python-0.4.1/otdf-python-proto/scripts/setup_connect_rpc.py → otdf_python-0.4.3/otdf-python-proto/generated/__init__.py +0 -0
  8. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/pyproject.toml +1 -1
  9. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/scripts/generate_connect_proto.py +4 -4
  10. otdf_python-0.4.1/tests/integration/test_data/empty_file.txt → otdf_python-0.4.3/otdf-python-proto/scripts/setup_connect_rpc.py +0 -0
  11. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/__init__.py +2 -6
  12. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/authorization/__init__.py +11 -0
  13. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/authorization/authorization_connect.py +250 -0
  14. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/authorization/v2/authorization_connect.py +315 -0
  15. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/entityresolution/__init__.py +11 -0
  16. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/entityresolution/entity_resolution_connect.py +185 -0
  17. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/entityresolution/v2/entity_resolution_connect.py +185 -0
  18. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/kas/__init__.py +2 -2
  19. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/kas/kas_connect.py +259 -0
  20. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/actions/__init__.py +11 -0
  21. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_connect.py +380 -0
  22. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/attributes/__init__.py +11 -0
  23. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_connect.py +1310 -0
  24. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/__init__.py +11 -0
  25. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_connect.py +912 -0
  26. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/keymanagement/__init__.py +11 -0
  27. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/keymanagement/key_management_connect.py +380 -0
  28. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/namespaces/__init__.py +11 -0
  29. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_connect.py +648 -0
  30. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/__init__.py +11 -0
  31. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_connect.py +770 -0
  32. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/resourcemapping/__init__.py +11 -0
  33. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/resourcemapping/resource_mapping_connect.py +790 -0
  34. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/__init__.py +11 -0
  35. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_connect.py +851 -0
  36. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/unsafe/__init__.py +11 -0
  37. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/policy/unsafe/unsafe_connect.py +705 -0
  38. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/wellknownconfiguration/__init__.py +11 -0
  39. otdf_python-0.4.3/otdf-python-proto/src/otdf_python_proto/wellknownconfiguration/wellknown_configuration_connect.py +124 -0
  40. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/uv.lock +123 -123
  41. {otdf_python-0.4.1 → otdf_python-0.4.3}/pyproject.toml +4 -2
  42. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/autoconfigure_utils.py +0 -2
  43. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/cli.py +50 -21
  44. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/collection_store.py +0 -1
  45. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/ecdh.py +0 -6
  46. otdf_python-0.4.3/src/otdf_python/kas_allowlist.py +182 -0
  47. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/kas_client.py +44 -2
  48. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/kas_connect_rpc_client.py +59 -19
  49. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/nanotdf.py +4 -14
  50. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/nanotdf_ecdsa_struct.py +0 -2
  51. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/nanotdf_type.py +1 -1
  52. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/sdk.py +31 -15
  53. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/sdk_builder.py +88 -8
  54. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/tdf.py +2 -2
  55. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/config_pydantic.py +3 -1
  56. otdf_python-0.4.3/tests/integration/test_data/empty_file.txt +0 -0
  57. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/support_otdfctl_args.py +2 -2
  58. otdf_python-0.4.3/tests/test_kas_allowlist.py +333 -0
  59. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_kas_client.py +40 -69
  60. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_nanotdf_type.py +1 -1
  61. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_sdk.py +0 -1
  62. otdf_python-0.4.3/uv.lock +849 -0
  63. otdf_python-0.4.1/.release-please-manifest.json +0 -3
  64. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/authorization/__init__.py +0 -1
  65. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/authorization/authorization_pb2_connect.py +0 -191
  66. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/authorization/v2/authorization_pb2_connect.py +0 -233
  67. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/entityresolution/__init__.py +0 -1
  68. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/entityresolution/entity_resolution_pb2_connect.py +0 -149
  69. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/entityresolution/v2/entity_resolution_pb2_connect.py +0 -149
  70. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/kas/kas_pb2_connect.py +0 -192
  71. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2_connect.py +0 -275
  72. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2_connect.py +0 -863
  73. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2_connect.py +0 -611
  74. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/policy/keymanagement/key_management_pb2_connect.py +0 -275
  75. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_pb2_connect.py +0 -443
  76. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2_connect.py +0 -527
  77. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/policy/resourcemapping/resource_mapping_pb2_connect.py +0 -527
  78. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2_connect.py +0 -569
  79. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/policy/unsafe/unsafe_pb2_connect.py +0 -485
  80. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/wellknownconfiguration/__init__.py +0 -1
  81. otdf_python-0.4.1/otdf-python-proto/src/otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2_connect.py +0 -107
  82. otdf_python-0.4.1/uv.lock +0 -1531
  83. {otdf_python-0.4.1 → otdf_python-0.4.3}/.github/check_entitlements.sh +0 -0
  84. {otdf_python-0.4.1 → otdf_python-0.4.3}/.github/start_opentdf_docker.sh +0 -0
  85. {otdf_python-0.4.1 → otdf_python-0.4.3}/.github/workflows/build-python.yaml +0 -0
  86. {otdf_python-0.4.1 → otdf_python-0.4.3}/.github/workflows/release-please.yaml +0 -0
  87. {otdf_python-0.4.1 → otdf_python-0.4.3}/.github/workflows/test-suite.yaml +0 -0
  88. {otdf_python-0.4.1 → otdf_python-0.4.3}/.gitignore +0 -0
  89. {otdf_python-0.4.1 → otdf_python-0.4.3}/.release-please-config-develop.json +0 -0
  90. {otdf_python-0.4.1 → otdf_python-0.4.3}/.release-please-config.json +0 -0
  91. {otdf_python-0.4.1 → otdf_python-0.4.3}/.release-please-manifest-develop.json +0 -0
  92. {otdf_python-0.4.1 → otdf_python-0.4.3}/.vscode/extensions.json +0 -0
  93. {otdf_python-0.4.1 → otdf_python-0.4.3}/.vscode/settings.json +0 -0
  94. {otdf_python-0.4.1 → otdf_python-0.4.3}/LICENSE +0 -0
  95. {otdf_python-0.4.1 → otdf_python-0.4.3}/README.md +0 -0
  96. {otdf_python-0.4.1 → otdf_python-0.4.3}/conftest.py +0 -0
  97. {otdf_python-0.4.1 → otdf_python-0.4.3}/docs/CONNECT_RPC.md +0 -0
  98. {otdf_python-0.4.1 → otdf_python-0.4.3}/docs/DEVELOPING.md +0 -0
  99. {otdf_python-0.4.1 → otdf_python-0.4.3}/docs/LEGACY_VERSION.md +0 -0
  100. {otdf_python-0.4.1 → otdf_python-0.4.3}/docs/RELEASES.md +0 -0
  101. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/README.md +0 -0
  102. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/buf.lock +0 -0
  103. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/buf.yaml +0 -0
  104. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/authorization/authorization.proto +0 -0
  105. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/authorization/v2/authorization.proto +0 -0
  106. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/common/common.proto +0 -0
  107. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/entity/entity.proto +0 -0
  108. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/entityresolution/entity_resolution.proto +0 -0
  109. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/entityresolution/v2/entity_resolution.proto +0 -0
  110. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/kas/kas.proto +0 -0
  111. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/logger/audit/test.proto +0 -0
  112. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/policy/actions/actions.proto +0 -0
  113. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/policy/attributes/attributes.proto +0 -0
  114. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/policy/kasregistry/key_access_server_registry.proto +0 -0
  115. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/policy/keymanagement/key_management.proto +0 -0
  116. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/policy/namespaces/namespaces.proto +0 -0
  117. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/policy/objects.proto +0 -0
  118. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/policy/registeredresources/registered_resources.proto +0 -0
  119. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/policy/resourcemapping/resource_mapping.proto +0 -0
  120. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/policy/selectors.proto +0 -0
  121. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/policy/subjectmapping/subject_mapping.proto +0 -0
  122. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/policy/unsafe/unsafe.proto +0 -0
  123. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/proto-files/wellknownconfiguration/wellknown_configuration.proto +0 -0
  124. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/scripts/build_connect_proto.sh +0 -0
  125. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/authorization/authorization_pb2.py +0 -0
  126. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/authorization/authorization_pb2.pyi +0 -0
  127. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/authorization/v2/authorization_pb2.py +0 -0
  128. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/authorization/v2/authorization_pb2.pyi +0 -0
  129. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/common/__init__.py +0 -0
  130. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/common/common_pb2.py +0 -0
  131. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/common/common_pb2.pyi +0 -0
  132. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/entity/__init__.py +0 -0
  133. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/entity/entity_pb2.py +0 -0
  134. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/entity/entity_pb2.pyi +0 -0
  135. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/entityresolution/entity_resolution_pb2.py +0 -0
  136. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/entityresolution/entity_resolution_pb2.pyi +0 -0
  137. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/entityresolution/v2/entity_resolution_pb2.py +0 -0
  138. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/entityresolution/v2/entity_resolution_pb2.pyi +0 -0
  139. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/kas/kas_pb2.py +0 -0
  140. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/kas/kas_pb2.pyi +0 -0
  141. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/__init__.py +0 -0
  142. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/authorization/authorization_pb2_grpc.py +0 -0
  143. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/authorization/v2/authorization_pb2_grpc.py +0 -0
  144. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/common/common_pb2_grpc.py +0 -0
  145. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/entity/entity_pb2_grpc.py +0 -0
  146. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/entityresolution/entity_resolution_pb2_grpc.py +0 -0
  147. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/entityresolution/v2/entity_resolution_pb2_grpc.py +0 -0
  148. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/kas/kas_pb2_grpc.py +0 -0
  149. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/logger/audit/test_pb2_grpc.py +0 -0
  150. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/actions/actions_pb2_grpc.py +0 -0
  151. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/attributes/attributes_pb2_grpc.py +0 -0
  152. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/kasregistry/key_access_server_registry_pb2_grpc.py +0 -0
  153. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/keymanagement/key_management_pb2_grpc.py +0 -0
  154. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/namespaces/namespaces_pb2_grpc.py +0 -0
  155. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/objects_pb2_grpc.py +0 -0
  156. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/registeredresources/registered_resources_pb2_grpc.py +0 -0
  157. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/resourcemapping/resource_mapping_pb2_grpc.py +0 -0
  158. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/selectors_pb2_grpc.py +0 -0
  159. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/subjectmapping/subject_mapping_pb2_grpc.py +0 -0
  160. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/unsafe/unsafe_pb2_grpc.py +0 -0
  161. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/legacy_grpc/wellknownconfiguration/wellknown_configuration_pb2_grpc.py +0 -0
  162. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/logger/__init__.py +0 -0
  163. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/logger/audit/test_pb2.py +0 -0
  164. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/logger/audit/test_pb2.pyi +0 -0
  165. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/__init__.py +0 -0
  166. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2.py +0 -0
  167. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2.pyi +0 -0
  168. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2.py +0 -0
  169. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2.pyi +0 -0
  170. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.py +0 -0
  171. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.pyi +0 -0
  172. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/keymanagement/key_management_pb2.py +0 -0
  173. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/keymanagement/key_management_pb2.pyi +0 -0
  174. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_pb2.py +0 -0
  175. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_pb2.pyi +0 -0
  176. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/objects_pb2.py +0 -0
  177. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/objects_pb2.pyi +0 -0
  178. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2.py +0 -0
  179. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2.pyi +0 -0
  180. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/resourcemapping/resource_mapping_pb2.py +0 -0
  181. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/resourcemapping/resource_mapping_pb2.pyi +0 -0
  182. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/selectors_pb2.py +0 -0
  183. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/selectors_pb2.pyi +0 -0
  184. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.py +0 -0
  185. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.pyi +0 -0
  186. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/unsafe/unsafe_pb2.py +0 -0
  187. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/policy/unsafe/unsafe_pb2.pyi +0 -0
  188. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2.py +0 -0
  189. {otdf_python-0.4.1 → otdf_python-0.4.3}/otdf-python-proto/src/otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2.pyi +0 -0
  190. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/__init__.py +0 -0
  191. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/__main__.py +0 -0
  192. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/address_normalizer.py +0 -0
  193. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/aesgcm.py +0 -0
  194. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/assertion_config.py +0 -0
  195. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/asym_crypto.py +0 -0
  196. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/auth_headers.py +0 -0
  197. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/collection_store_impl.py +0 -0
  198. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/config.py +0 -0
  199. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/connect_client.py +0 -0
  200. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/constants.py +0 -0
  201. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/crypto_utils.py +0 -0
  202. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/dpop.py +0 -0
  203. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/ecc_constants.py +0 -0
  204. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/ecc_mode.py +0 -0
  205. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/eckeypair.py +0 -0
  206. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/header.py +0 -0
  207. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/invalid_zip_exception.py +0 -0
  208. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/kas_info.py +0 -0
  209. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/kas_key_cache.py +0 -0
  210. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/key_type.py +0 -0
  211. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/key_type_constants.py +0 -0
  212. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/manifest.py +0 -0
  213. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/policy_binding_serializer.py +0 -0
  214. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/policy_info.py +0 -0
  215. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/policy_object.py +0 -0
  216. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/policy_stub.py +0 -0
  217. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/resource_locator.py +0 -0
  218. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/sdk_exceptions.py +0 -0
  219. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/symmetric_and_payload_config.py +0 -0
  220. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/tdf_reader.py +0 -0
  221. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/tdf_writer.py +0 -0
  222. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/token_source.py +0 -0
  223. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/version.py +0 -0
  224. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/zip_reader.py +0 -0
  225. {otdf_python-0.4.1 → otdf_python-0.4.3}/src/otdf_python/zip_writer.py +0 -0
  226. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/__init__.py +0 -0
  227. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/integration/conftest.py +0 -0
  228. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/integration/otdfctl_only/test_otdfctl_generated_fixtures.py +0 -0
  229. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/integration/otdfctl_to_python/test_cli_comparison.py +0 -0
  230. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/integration/otdfctl_to_python/test_cli_decrypt.py +0 -0
  231. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/integration/otdfctl_to_python/test_cli_inspect.py +0 -0
  232. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/integration/otdfctl_to_python/test_nanotdf_cli_comparison.py +0 -0
  233. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/integration/otdfctl_to_python/test_python_nanotdf_only.py +0 -0
  234. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/integration/otdfctl_to_python/test_tdf_reader_integration.py +0 -0
  235. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/integration/python_only/test_kas_client_integration.py +0 -0
  236. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/integration/support_sdk.py +0 -0
  237. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/integration/test_cli_integration.py +0 -0
  238. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/integration/test_cli_tdf_validation.py +0 -0
  239. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/integration/test_data/sample_binary.png +0 -0
  240. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/integration/test_data/sample_text.txt +0 -0
  241. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/integration/test_data/sample_with_attributes.txt +0 -0
  242. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/integration/test_pe_interaction.py +0 -0
  243. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/mock_crypto.py +0 -0
  244. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/server_logs.py +0 -0
  245. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/support_cli_args.py +0 -0
  246. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/support_common.py +0 -0
  247. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/support_otdfctl.py +0 -0
  248. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_address_normalizer.py +0 -0
  249. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_aesgcm.py +0 -0
  250. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_assertion_config.py +0 -0
  251. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_asym_encryption.py +0 -0
  252. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_autoconfigure_utils.py +0 -0
  253. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_cli.py +0 -0
  254. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_collection_store.py +0 -0
  255. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_config.py +0 -0
  256. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_crypto_utils.py +0 -0
  257. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_ecdh.py +0 -0
  258. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_eckeypair.py +0 -0
  259. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_header.py +0 -0
  260. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_inner_classes.py +0 -0
  261. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_kas_key_cache.py +0 -0
  262. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_kas_key_management.py +0 -0
  263. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_key_type.py +0 -0
  264. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_log_collection.py +0 -0
  265. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_manifest.py +0 -0
  266. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_manifest_format.py +0 -0
  267. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_nanotdf.py +0 -0
  268. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_nanotdf_ecdh.py +0 -0
  269. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_nanotdf_ecdsa_struct.py +0 -0
  270. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_nanotdf_integration.py +0 -0
  271. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_policy_object.py +0 -0
  272. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_sdk_builder.py +0 -0
  273. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_sdk_exceptions.py +0 -0
  274. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_sdk_mock.py +0 -0
  275. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_sdk_tdf_integration.py +0 -0
  276. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_tdf.py +0 -0
  277. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_tdf_key_management.py +0 -0
  278. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_tdf_reader.py +0 -0
  279. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_tdf_writer.py +0 -0
  280. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_token_source.py +0 -0
  281. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_url_normalization.py +0 -0
  282. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_use_plaintext_flow.py +0 -0
  283. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_validate_otdf_python.py +0 -0
  284. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_version.py +0 -0
  285. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_zip_reader.py +0 -0
  286. {otdf_python-0.4.1 → otdf_python-0.4.3}/tests/test_zip_writer.py +0 -0
@@ -33,7 +33,7 @@ jobs:
33
33
  uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
34
34
  with:
35
35
  repository: opentdf/platform
36
- ref: main
36
+ ref: service/v0.8.2
37
37
  path: platform
38
38
  - name: Set up go
39
39
  uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
@@ -132,7 +132,7 @@ jobs:
132
132
  grpcurl -plaintext localhost:8080 kas.AccessService/PublicKey
133
133
 
134
134
  - name: Install otdfctl
135
- run: go install github.com/opentdf/otdfctl@latest
135
+ run: go install github.com/opentdf/otdfctl@v0.28.0
136
136
  shell: bash
137
137
 
138
138
  - name: Create creds.json for otdfctl
@@ -34,7 +34,7 @@ repos:
34
34
 
35
35
  - repo: https://github.com/astral-sh/ruff-pre-commit
36
36
  # Ruff version.
37
- rev: v0.14.8
37
+ rev: v0.15.0
38
38
  hooks:
39
39
  # Run the linter.
40
40
  - id: ruff-check
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.4.3"
3
+ }
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.4.3](https://github.com/b-long/opentdf-python-sdk/compare/otdf-python-v0.4.2...otdf-python-v0.4.3) (2026-02-05)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * implement KAS allowlist functionality ([#129](https://github.com/b-long/opentdf-python-sdk/issues/129)) ([c1306da](https://github.com/b-long/opentdf-python-sdk/commit/c1306da24eb27f80bb3f1c11cea0f24175b5fd23))
9
+
10
+ ## [0.4.2](https://github.com/b-long/opentdf-python-sdk/compare/otdf-python-v0.4.1...otdf-python-v0.4.2) (2026-01-07)
11
+
12
+
13
+ ### ⚠ BREAKING CHANGES
14
+
15
+ * **main:** Upgrade from connect-python 0.4.2 to 0.6.0
16
+
17
+ ### Bug Fixes
18
+
19
+ * **main:** ensure compatibility with the latest `connect-python` ([#123](https://github.com/b-long/opentdf-python-sdk/issues/123)) ([4d160db](https://github.com/b-long/opentdf-python-sdk/commit/4d160dbed2bdedc4baaa807f97903aad710de943))
20
+
21
+
22
+ ### Miscellaneous Chores
23
+
24
+ * release 0.4.2 ([a840f28](https://github.com/b-long/opentdf-python-sdk/commit/a840f284bed82a4b7de170ca1224bd232108047b))
25
+
3
26
  ## [0.4.1](https://github.com/b-long/opentdf-python-sdk/compare/otdf-python-v0.4.0...otdf-python-v0.4.1) (2025-12-09)
4
27
 
5
28
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: otdf-python
3
- Version: 0.4.1
3
+ Version: 0.4.3
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
@@ -22,13 +22,14 @@ Classifier: Topic :: Security :: Cryptography
22
22
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
23
  Classifier: Typing :: Typed
24
24
  Requires-Python: >=3.10
25
- Requires-Dist: connect-python[compiler]<0.5,>=0.4.2
25
+ Requires-Dist: connect-python<0.7,>=0.6.0
26
26
  Requires-Dist: cryptography>=45.0.4
27
27
  Requires-Dist: grpcio-status>=1.74.0
28
28
  Requires-Dist: grpcio-tools>=1.74.0
29
29
  Requires-Dist: grpcio>=1.74.0
30
30
  Requires-Dist: httpx>=0.28.1
31
31
  Requires-Dist: protobuf>=6.31.1
32
+ Requires-Dist: protoc-gen-connect-python<0.7,>=0.6.0
32
33
  Requires-Dist: protoc-gen-openapiv2>=0.0.1
33
34
  Requires-Dist: pyjwt>=2.10.1
34
35
  Requires-Dist: typing-extensions>=4.14.1
@@ -18,7 +18,7 @@ plugins:
18
18
  out: src/otdf_python_proto
19
19
 
20
20
  # Connect Python client generation (preferred)
21
- - local: ../.venv/bin/protoc-gen-connect_python
21
+ - local: ../.venv/bin/protoc-gen-connect-python
22
22
  out: src/otdf_python_proto
23
23
  opt:
24
24
  - paths=source_relative
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "otdf-python-proto"
3
- version = "0.4.1"
3
+ version = "0.4.3"
4
4
  description = "Generated protobuf files for OpenTDF Python SDK"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -37,7 +37,7 @@ def check_dependencies() -> bool:
37
37
  print(" # macOS: brew install bufbuild/buf/buf")
38
38
  print(" # Or: go install github.com/bufbuild/buf/cmd/buf@latest")
39
39
  elif dep == "connect-python":
40
- print(" uv add connect-python[compiler]")
40
+ print(" uv add connect-python protoc-gen-connect-python")
41
41
  return False
42
42
 
43
43
  return True
@@ -141,9 +141,9 @@ def run_buf_generate(proto_gen_dir: Path) -> bool:
141
141
  print("Generating protobuf and Connect RPC files...")
142
142
 
143
143
  try:
144
- # First, get the path to protoc-gen-connect_python
144
+ # First, get the path to protoc-gen-connect-python
145
145
  result = subprocess.run(
146
- ["uv", "run", "which", "protoc-gen-connect_python"],
146
+ ["uv", "run", "which", "protoc-gen-connect-python"],
147
147
  cwd=proto_gen_dir,
148
148
  capture_output=True,
149
149
  text=True,
@@ -159,7 +159,7 @@ def run_buf_generate(proto_gen_dir: Path) -> bool:
159
159
 
160
160
  # Replace the local plugin path
161
161
  updated_content = content.replace(
162
- "- local: protoc-gen-connect_python", f"- local: {connect_plugin_path}"
162
+ "- local: protoc-gen-connect-python", f"- local: {connect_plugin_path}"
163
163
  )
164
164
 
165
165
  with buf_gen_path.open("w") as f:
@@ -13,25 +13,21 @@ except metadata.PackageNotFoundError:
13
13
  __version__ = "0.0.0"
14
14
 
15
15
  # Import submodules to make them available
16
- from . import authorization
16
+ # Note: authorization, entityresolution, wellknownconfiguration and policy subdirectories
17
+ # are imported lazily to avoid import errors from generated protobuf files
17
18
  from . import common
18
19
  from . import entity
19
- from . import entityresolution
20
20
  from . import kas
21
21
  from . import legacy_grpc
22
22
  from . import logger
23
23
  from . import policy
24
- from . import wellknownconfiguration
25
24
 
26
25
  # Export main module categories
27
26
  __all__ = [
28
- "authorization",
29
27
  "common",
30
28
  "entity",
31
- "entityresolution",
32
29
  "kas",
33
30
  "legacy_grpc",
34
31
  "logger",
35
32
  "policy",
36
- "wellknownconfiguration",
37
33
  ]
@@ -0,0 +1,11 @@
1
+ """authorization protobuf definitions."""
2
+
3
+ from .authorization_connect import (
4
+ AuthorizationServiceClient,
5
+ AuthorizationServiceClientSync,
6
+ )
7
+
8
+ __all__ = [
9
+ "AuthorizationServiceClient",
10
+ "AuthorizationServiceClientSync",
11
+ ]
@@ -0,0 +1,250 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT!
3
+ # source: authorization/authorization.proto
4
+
5
+ from collections.abc import AsyncGenerator, AsyncIterator, Iterable, Iterator, Mapping
6
+ from typing import Protocol
7
+
8
+ from connectrpc.client import ConnectClient, ConnectClientSync
9
+ from connectrpc.code import Code
10
+ from connectrpc.errors import ConnectError
11
+ from connectrpc.interceptor import Interceptor, InterceptorSync
12
+ from connectrpc.method import IdempotencyLevel, MethodInfo
13
+ from connectrpc.request import Headers, RequestContext
14
+ from connectrpc.server import ConnectASGIApplication, ConnectWSGIApplication, Endpoint, EndpointSync
15
+ from . import authorization_pb2 as authorization_dot_authorization__pb2
16
+
17
+
18
+ class AuthorizationService(Protocol):
19
+ async def get_decisions(self, request: authorization_dot_authorization__pb2.GetDecisionsRequest, ctx: RequestContext) -> authorization_dot_authorization__pb2.GetDecisionsResponse:
20
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
21
+
22
+ async def get_decisions_by_token(self, request: authorization_dot_authorization__pb2.GetDecisionsByTokenRequest, ctx: RequestContext) -> authorization_dot_authorization__pb2.GetDecisionsByTokenResponse:
23
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
24
+
25
+ async def get_entitlements(self, request: authorization_dot_authorization__pb2.GetEntitlementsRequest, ctx: RequestContext) -> authorization_dot_authorization__pb2.GetEntitlementsResponse:
26
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
27
+
28
+
29
+ class AuthorizationServiceASGIApplication(ConnectASGIApplication[AuthorizationService]):
30
+ def __init__(self, service: AuthorizationService | AsyncGenerator[AuthorizationService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
31
+ super().__init__(
32
+ service=service,
33
+ endpoints=lambda svc: {
34
+ "/authorization.AuthorizationService/GetDecisions": Endpoint.unary(
35
+ method=MethodInfo(
36
+ name="GetDecisions",
37
+ service_name="authorization.AuthorizationService",
38
+ input=authorization_dot_authorization__pb2.GetDecisionsRequest,
39
+ output=authorization_dot_authorization__pb2.GetDecisionsResponse,
40
+ idempotency_level=IdempotencyLevel.UNKNOWN,
41
+ ),
42
+ function=svc.get_decisions,
43
+ ),
44
+ "/authorization.AuthorizationService/GetDecisionsByToken": Endpoint.unary(
45
+ method=MethodInfo(
46
+ name="GetDecisionsByToken",
47
+ service_name="authorization.AuthorizationService",
48
+ input=authorization_dot_authorization__pb2.GetDecisionsByTokenRequest,
49
+ output=authorization_dot_authorization__pb2.GetDecisionsByTokenResponse,
50
+ idempotency_level=IdempotencyLevel.UNKNOWN,
51
+ ),
52
+ function=svc.get_decisions_by_token,
53
+ ),
54
+ "/authorization.AuthorizationService/GetEntitlements": Endpoint.unary(
55
+ method=MethodInfo(
56
+ name="GetEntitlements",
57
+ service_name="authorization.AuthorizationService",
58
+ input=authorization_dot_authorization__pb2.GetEntitlementsRequest,
59
+ output=authorization_dot_authorization__pb2.GetEntitlementsResponse,
60
+ idempotency_level=IdempotencyLevel.UNKNOWN,
61
+ ),
62
+ function=svc.get_entitlements,
63
+ ),
64
+ },
65
+ interceptors=interceptors,
66
+ read_max_bytes=read_max_bytes,
67
+ )
68
+
69
+ @property
70
+ def path(self) -> str:
71
+ """Returns the URL path to mount the application to when serving multiple applications."""
72
+ return "/authorization.AuthorizationService"
73
+
74
+
75
+ class AuthorizationServiceClient(ConnectClient):
76
+ async def get_decisions(
77
+ self,
78
+ request: authorization_dot_authorization__pb2.GetDecisionsRequest,
79
+ *,
80
+ headers: Headers | Mapping[str, str] | None = None,
81
+ timeout_ms: int | None = None,
82
+ ) -> authorization_dot_authorization__pb2.GetDecisionsResponse:
83
+ return await self.execute_unary(
84
+ request=request,
85
+ method=MethodInfo(
86
+ name="GetDecisions",
87
+ service_name="authorization.AuthorizationService",
88
+ input=authorization_dot_authorization__pb2.GetDecisionsRequest,
89
+ output=authorization_dot_authorization__pb2.GetDecisionsResponse,
90
+ idempotency_level=IdempotencyLevel.UNKNOWN,
91
+ ),
92
+ headers=headers,
93
+ timeout_ms=timeout_ms,
94
+ )
95
+
96
+ async def get_decisions_by_token(
97
+ self,
98
+ request: authorization_dot_authorization__pb2.GetDecisionsByTokenRequest,
99
+ *,
100
+ headers: Headers | Mapping[str, str] | None = None,
101
+ timeout_ms: int | None = None,
102
+ ) -> authorization_dot_authorization__pb2.GetDecisionsByTokenResponse:
103
+ return await self.execute_unary(
104
+ request=request,
105
+ method=MethodInfo(
106
+ name="GetDecisionsByToken",
107
+ service_name="authorization.AuthorizationService",
108
+ input=authorization_dot_authorization__pb2.GetDecisionsByTokenRequest,
109
+ output=authorization_dot_authorization__pb2.GetDecisionsByTokenResponse,
110
+ idempotency_level=IdempotencyLevel.UNKNOWN,
111
+ ),
112
+ headers=headers,
113
+ timeout_ms=timeout_ms,
114
+ )
115
+
116
+ async def get_entitlements(
117
+ self,
118
+ request: authorization_dot_authorization__pb2.GetEntitlementsRequest,
119
+ *,
120
+ headers: Headers | Mapping[str, str] | None = None,
121
+ timeout_ms: int | None = None,
122
+ ) -> authorization_dot_authorization__pb2.GetEntitlementsResponse:
123
+ return await self.execute_unary(
124
+ request=request,
125
+ method=MethodInfo(
126
+ name="GetEntitlements",
127
+ service_name="authorization.AuthorizationService",
128
+ input=authorization_dot_authorization__pb2.GetEntitlementsRequest,
129
+ output=authorization_dot_authorization__pb2.GetEntitlementsResponse,
130
+ idempotency_level=IdempotencyLevel.UNKNOWN,
131
+ ),
132
+ headers=headers,
133
+ timeout_ms=timeout_ms,
134
+ )
135
+
136
+
137
+ class AuthorizationServiceSync(Protocol):
138
+ def get_decisions(self, request: authorization_dot_authorization__pb2.GetDecisionsRequest, ctx: RequestContext) -> authorization_dot_authorization__pb2.GetDecisionsResponse:
139
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
140
+ def get_decisions_by_token(self, request: authorization_dot_authorization__pb2.GetDecisionsByTokenRequest, ctx: RequestContext) -> authorization_dot_authorization__pb2.GetDecisionsByTokenResponse:
141
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
142
+ def get_entitlements(self, request: authorization_dot_authorization__pb2.GetEntitlementsRequest, ctx: RequestContext) -> authorization_dot_authorization__pb2.GetEntitlementsResponse:
143
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
144
+
145
+
146
+ class AuthorizationServiceWSGIApplication(ConnectWSGIApplication):
147
+ def __init__(self, service: AuthorizationServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None:
148
+ super().__init__(
149
+ endpoints={
150
+ "/authorization.AuthorizationService/GetDecisions": EndpointSync.unary(
151
+ method=MethodInfo(
152
+ name="GetDecisions",
153
+ service_name="authorization.AuthorizationService",
154
+ input=authorization_dot_authorization__pb2.GetDecisionsRequest,
155
+ output=authorization_dot_authorization__pb2.GetDecisionsResponse,
156
+ idempotency_level=IdempotencyLevel.UNKNOWN,
157
+ ),
158
+ function=service.get_decisions,
159
+ ),
160
+ "/authorization.AuthorizationService/GetDecisionsByToken": EndpointSync.unary(
161
+ method=MethodInfo(
162
+ name="GetDecisionsByToken",
163
+ service_name="authorization.AuthorizationService",
164
+ input=authorization_dot_authorization__pb2.GetDecisionsByTokenRequest,
165
+ output=authorization_dot_authorization__pb2.GetDecisionsByTokenResponse,
166
+ idempotency_level=IdempotencyLevel.UNKNOWN,
167
+ ),
168
+ function=service.get_decisions_by_token,
169
+ ),
170
+ "/authorization.AuthorizationService/GetEntitlements": EndpointSync.unary(
171
+ method=MethodInfo(
172
+ name="GetEntitlements",
173
+ service_name="authorization.AuthorizationService",
174
+ input=authorization_dot_authorization__pb2.GetEntitlementsRequest,
175
+ output=authorization_dot_authorization__pb2.GetEntitlementsResponse,
176
+ idempotency_level=IdempotencyLevel.UNKNOWN,
177
+ ),
178
+ function=service.get_entitlements,
179
+ ),
180
+ },
181
+ interceptors=interceptors,
182
+ read_max_bytes=read_max_bytes,
183
+ )
184
+
185
+ @property
186
+ def path(self) -> str:
187
+ """Returns the URL path to mount the application to when serving multiple applications."""
188
+ return "/authorization.AuthorizationService"
189
+
190
+
191
+ class AuthorizationServiceClientSync(ConnectClientSync):
192
+ def get_decisions(
193
+ self,
194
+ request: authorization_dot_authorization__pb2.GetDecisionsRequest,
195
+ *,
196
+ headers: Headers | Mapping[str, str] | None = None,
197
+ timeout_ms: int | None = None,
198
+ ) -> authorization_dot_authorization__pb2.GetDecisionsResponse:
199
+ return self.execute_unary(
200
+ request=request,
201
+ method=MethodInfo(
202
+ name="GetDecisions",
203
+ service_name="authorization.AuthorizationService",
204
+ input=authorization_dot_authorization__pb2.GetDecisionsRequest,
205
+ output=authorization_dot_authorization__pb2.GetDecisionsResponse,
206
+ idempotency_level=IdempotencyLevel.UNKNOWN,
207
+ ),
208
+ headers=headers,
209
+ timeout_ms=timeout_ms,
210
+ )
211
+
212
+ def get_decisions_by_token(
213
+ self,
214
+ request: authorization_dot_authorization__pb2.GetDecisionsByTokenRequest,
215
+ *,
216
+ headers: Headers | Mapping[str, str] | None = None,
217
+ timeout_ms: int | None = None,
218
+ ) -> authorization_dot_authorization__pb2.GetDecisionsByTokenResponse:
219
+ return self.execute_unary(
220
+ request=request,
221
+ method=MethodInfo(
222
+ name="GetDecisionsByToken",
223
+ service_name="authorization.AuthorizationService",
224
+ input=authorization_dot_authorization__pb2.GetDecisionsByTokenRequest,
225
+ output=authorization_dot_authorization__pb2.GetDecisionsByTokenResponse,
226
+ idempotency_level=IdempotencyLevel.UNKNOWN,
227
+ ),
228
+ headers=headers,
229
+ timeout_ms=timeout_ms,
230
+ )
231
+
232
+ def get_entitlements(
233
+ self,
234
+ request: authorization_dot_authorization__pb2.GetEntitlementsRequest,
235
+ *,
236
+ headers: Headers | Mapping[str, str] | None = None,
237
+ timeout_ms: int | None = None,
238
+ ) -> authorization_dot_authorization__pb2.GetEntitlementsResponse:
239
+ return self.execute_unary(
240
+ request=request,
241
+ method=MethodInfo(
242
+ name="GetEntitlements",
243
+ service_name="authorization.AuthorizationService",
244
+ input=authorization_dot_authorization__pb2.GetEntitlementsRequest,
245
+ output=authorization_dot_authorization__pb2.GetEntitlementsResponse,
246
+ idempotency_level=IdempotencyLevel.UNKNOWN,
247
+ ),
248
+ headers=headers,
249
+ timeout_ms=timeout_ms,
250
+ )