otdf-python 0.5.0__tar.gz → 0.9.1__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.
- {otdf_python-0.5.0 → otdf_python-0.9.1}/PKG-INFO +4 -8
- {otdf_python-0.5.0 → otdf_python-0.9.1}/README.md +1 -1
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/authorization/authorization_connect.py +5 -2
- otdf_python-0.9.1/_proto/otdf_python_proto/authorization/authorization_pb2.py +73 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/authorization/authorization_pb2.pyi +0 -1
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/authorization/v2/authorization_connect.py +5 -2
- otdf_python-0.9.1/_proto/otdf_python_proto/authorization/v2/authorization_pb2.py +113 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/authorization/v2/authorization_pb2.pyi +16 -8
- otdf_python-0.9.1/_proto/otdf_python_proto/common/common_pb2.py +69 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/common/common_pb2.pyi +17 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/entityresolution/entity_resolution_connect.py +5 -2
- otdf_python-0.9.1/_proto/otdf_python_proto/entityresolution/entity_resolution_pb2.py +52 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/entityresolution/entity_resolution_pb2.pyi +1 -2
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/entityresolution/v2/entity_resolution_connect.py +5 -2
- otdf_python-0.9.1/_proto/otdf_python_proto/entityresolution/v2/entity_resolution_pb2.py +58 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/entityresolution/v2/entity_resolution_pb2.pyi +17 -4
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/kas/kas_connect.py +5 -2
- otdf_python-0.9.1/_proto/otdf_python_proto/kas/kas_pb2.py +93 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/kas/kas_pb2.pyi +0 -2
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/policy/attributes/attributes_pb2_grpc.py +11 -4
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/policy/namespaces/namespaces_pb2_grpc.py +4 -1
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/policy/obligations/obligations_pb2_grpc.py +87 -1
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/actions/actions_connect.py +5 -2
- otdf_python-0.9.1/_proto/otdf_python_proto/policy/actions/actions_pb2.py +93 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/actions/actions_pb2.pyi +18 -6
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/attributes/attributes_connect.py +5 -2
- otdf_python-0.9.1/_proto/otdf_python_proto/policy/attributes/attributes_pb2.py +250 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/attributes/attributes_pb2.pyi +47 -11
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/kasregistry/key_access_server_registry_connect.py +5 -2
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.py +133 -114
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.pyi +55 -7
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/keymanagement/key_management_connect.py +5 -2
- otdf_python-0.9.1/_proto/otdf_python_proto/policy/keymanagement/key_management_pb2.py +85 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/keymanagement/key_management_pb2.pyi +12 -6
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/namespaces/namespaces_connect.py +5 -2
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/namespaces/namespaces_pb2.py +49 -35
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/namespaces/namespaces_pb2.pyi +26 -2
- otdf_python-0.9.1/_proto/otdf_python_proto/policy/objects_pb2.py +164 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/objects_pb2.pyi +80 -26
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/obligations/obligations_connect.py +143 -2
- otdf_python-0.9.1/_proto/otdf_python_proto/policy/obligations/obligations_pb2.py +215 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/obligations/obligations_pb2.pyi +101 -28
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/registeredresources/registered_resources_connect.py +5 -2
- otdf_python-0.9.1/_proto/otdf_python_proto/policy/registeredresources/registered_resources_pb2.py +167 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/registeredresources/registered_resources_pb2.pyi +40 -6
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/resourcemapping/resource_mapping_connect.py +5 -2
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/selectors_pb2.py +3 -1
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/selectors_pb2.pyi +10 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/subjectmapping/subject_mapping_connect.py +5 -2
- otdf_python-0.9.1/_proto/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.py +171 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.pyi +63 -8
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/unsafe/unsafe_connect.py +5 -2
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/unsafe/unsafe_pb2.py +44 -43
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/unsafe/unsafe_pb2.pyi +5 -2
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/wellknownconfiguration/wellknown_configuration_connect.py +5 -2
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2.py +12 -13
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2.pyi +0 -1
- otdf_python-0.9.1/hatch_build.py +34 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/auth_headers.py +1 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/kas_client.py +4 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/kas_connect_rpc_client.py +29 -28
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/kas_info.py +1 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/key_type_constants.py +1 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/nanotdf_ecdsa_struct.py +1 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/policy_binding_serializer.py +1 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/sdk.py +2 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/sdk_builder.py +1 -1
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/tdf_reader.py +1 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/token_source.py +1 -1
- otdf_python-0.9.1/pyproject.toml +70 -0
- otdf_python-0.5.0/.gemini/config.yaml +0 -4
- otdf_python-0.5.0/.github/check_entitlements.sh +0 -62
- otdf_python-0.5.0/.github/start_opentdf_docker.sh +0 -61
- otdf_python-0.5.0/.github/workflows/build-python.yaml +0 -39
- otdf_python-0.5.0/.github/workflows/platform-integration-test.yaml +0 -214
- otdf_python-0.5.0/.github/workflows/release-please.yaml +0 -139
- otdf_python-0.5.0/.github/workflows/test-suite.yaml +0 -141
- otdf_python-0.5.0/.pre-commit-config.yaml +0 -48
- otdf_python-0.5.0/.release-please-config-develop.json +0 -44
- otdf_python-0.5.0/.release-please-config.json +0 -42
- otdf_python-0.5.0/.release-please-manifest-develop.json +0 -3
- otdf_python-0.5.0/.release-please-manifest.json +0 -3
- otdf_python-0.5.0/.vscode/extensions.json +0 -5
- otdf_python-0.5.0/.vscode/settings.json +0 -8
- otdf_python-0.5.0/CHANGELOG.md +0 -102
- otdf_python-0.5.0/LICENSE +0 -21
- otdf_python-0.5.0/conftest.py +0 -66
- otdf_python-0.5.0/docs/CONNECT_RPC.md +0 -156
- otdf_python-0.5.0/docs/DEVELOPING.md +0 -95
- otdf_python-0.5.0/docs/LEGACY_VERSION.md +0 -20
- otdf_python-0.5.0/docs/RELEASES.md +0 -205
- otdf_python-0.5.0/otdf-python-proto/README.md +0 -186
- otdf_python-0.5.0/otdf-python-proto/buf.gen.yaml +0 -28
- otdf_python-0.5.0/otdf-python-proto/buf.lock +0 -12
- otdf_python-0.5.0/otdf-python-proto/buf.yaml +0 -24
- otdf_python-0.5.0/otdf-python-proto/proto-files/authorization/authorization.proto +0 -305
- otdf_python-0.5.0/otdf-python-proto/proto-files/authorization/v2/authorization.proto +0 -180
- otdf_python-0.5.0/otdf-python-proto/proto-files/common/common.proto +0 -41
- otdf_python-0.5.0/otdf-python-proto/proto-files/entity/entity.proto +0 -41
- otdf_python-0.5.0/otdf-python-proto/proto-files/entityresolution/entity_resolution.proto +0 -124
- otdf_python-0.5.0/otdf-python-proto/proto-files/entityresolution/v2/entity_resolution.proto +0 -46
- otdf_python-0.5.0/otdf-python-proto/proto-files/kas/kas.proto +0 -160
- otdf_python-0.5.0/otdf-python-proto/proto-files/logger/audit/test.proto +0 -40
- otdf_python-0.5.0/otdf-python-proto/proto-files/policy/actions/actions.proto +0 -108
- otdf_python-0.5.0/otdf-python-proto/proto-files/policy/attributes/attributes.proto +0 -464
- otdf_python-0.5.0/otdf-python-proto/proto-files/policy/kasregistry/key_access_server_registry.proto +0 -695
- otdf_python-0.5.0/otdf-python-proto/proto-files/policy/keymanagement/key_management.proto +0 -84
- otdf_python-0.5.0/otdf-python-proto/proto-files/policy/namespaces/namespaces.proto +0 -200
- otdf_python-0.5.0/otdf-python-proto/proto-files/policy/objects.proto +0 -600
- otdf_python-0.5.0/otdf-python-proto/proto-files/policy/obligations/obligations.proto +0 -260
- otdf_python-0.5.0/otdf-python-proto/proto-files/policy/registeredresources/registered_resources.proto +0 -330
- otdf_python-0.5.0/otdf-python-proto/proto-files/policy/resourcemapping/resource_mapping.proto +0 -276
- otdf_python-0.5.0/otdf-python-proto/proto-files/policy/selectors.proto +0 -70
- otdf_python-0.5.0/otdf-python-proto/proto-files/policy/subjectmapping/subject_mapping.proto +0 -215
- otdf_python-0.5.0/otdf-python-proto/proto-files/policy/unsafe/unsafe.proto +0 -216
- otdf_python-0.5.0/otdf-python-proto/proto-files/wellknownconfiguration/wellknown_configuration.proto +0 -23
- otdf_python-0.5.0/otdf-python-proto/pyproject.toml +0 -37
- otdf_python-0.5.0/otdf-python-proto/scripts/build_connect_proto.sh +0 -91
- otdf_python-0.5.0/otdf-python-proto/scripts/generate_connect_proto.py +0 -309
- otdf_python-0.5.0/otdf-python-proto/scripts/setup_connect_rpc.py +0 -26
- otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/authorization/authorization_pb2.py +0 -80
- otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/authorization/v2/authorization_pb2.py +0 -107
- otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/common/common_pb2.py +0 -52
- otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/entityresolution/entity_resolution_pb2.py +0 -57
- otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/entityresolution/v2/entity_resolution_pb2.py +0 -55
- otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/kas/kas_pb2.py +0 -103
- otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2.py +0 -75
- otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2.py +0 -234
- otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/policy/keymanagement/key_management_pb2.py +0 -79
- otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/policy/objects_pb2.py +0 -156
- otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/policy/obligations/__init__.py +0 -0
- otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/policy/obligations/obligations_pb2.py +0 -110
- otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2.py +0 -139
- otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.py +0 -127
- otdf_python-0.5.0/otdf-python-proto/tests/__init__.py +0 -0
- otdf_python-0.5.0/otdf-python-proto/tests/test_generate_connect_proto.py +0 -355
- otdf_python-0.5.0/otdf-python-proto/tests/test_package_imports.py +0 -66
- otdf_python-0.5.0/otdf-python-proto/uv.lock +0 -465
- otdf_python-0.5.0/pyproject.toml +0 -115
- otdf_python-0.5.0/tests/__init__.py +0 -1
- otdf_python-0.5.0/tests/config_pydantic.py +0 -103
- otdf_python-0.5.0/tests/integration/conftest.py +0 -72
- otdf_python-0.5.0/tests/integration/otdfctl_only/test_otdfctl_generated_fixtures.py +0 -111
- otdf_python-0.5.0/tests/integration/otdfctl_to_python/test_cli_comparison.py +0 -174
- otdf_python-0.5.0/tests/integration/otdfctl_to_python/test_cli_decrypt.py +0 -182
- otdf_python-0.5.0/tests/integration/otdfctl_to_python/test_cli_inspect.py +0 -115
- otdf_python-0.5.0/tests/integration/otdfctl_to_python/test_nanotdf_cli_comparison.py +0 -370
- otdf_python-0.5.0/tests/integration/otdfctl_to_python/test_python_nanotdf_only.py +0 -103
- otdf_python-0.5.0/tests/integration/otdfctl_to_python/test_tdf_reader_integration.py +0 -267
- otdf_python-0.5.0/tests/integration/python_only/test_kas_client_integration.py +0 -242
- otdf_python-0.5.0/tests/integration/support_sdk.py +0 -74
- otdf_python-0.5.0/tests/integration/test_cli_integration.py +0 -292
- otdf_python-0.5.0/tests/integration/test_cli_tdf_validation.py +0 -561
- otdf_python-0.5.0/tests/integration/test_data/empty_file.txt +0 -0
- otdf_python-0.5.0/tests/integration/test_data/sample_binary.png +0 -0
- otdf_python-0.5.0/tests/integration/test_data/sample_text.txt +0 -5
- otdf_python-0.5.0/tests/integration/test_data/sample_with_attributes.txt +0 -4
- otdf_python-0.5.0/tests/integration/test_pe_interaction.py +0 -94
- otdf_python-0.5.0/tests/mock_crypto.py +0 -35
- otdf_python-0.5.0/tests/server_logs.py +0 -95
- otdf_python-0.5.0/tests/support_cli_args.py +0 -177
- otdf_python-0.5.0/tests/support_common.py +0 -89
- otdf_python-0.5.0/tests/support_otdfctl.py +0 -24
- otdf_python-0.5.0/tests/support_otdfctl_args.py +0 -276
- otdf_python-0.5.0/tests/test_address_normalizer.py +0 -71
- otdf_python-0.5.0/tests/test_aesgcm.py +0 -35
- otdf_python-0.5.0/tests/test_assertion_config.py +0 -56
- otdf_python-0.5.0/tests/test_asym_encryption.py +0 -12
- otdf_python-0.5.0/tests/test_autoconfigure_utils.py +0 -50
- otdf_python-0.5.0/tests/test_cli.py +0 -185
- otdf_python-0.5.0/tests/test_collection_store.py +0 -43
- otdf_python-0.5.0/tests/test_config.py +0 -35
- otdf_python-0.5.0/tests/test_crypto_utils.py +0 -38
- otdf_python-0.5.0/tests/test_ecdh.py +0 -433
- otdf_python-0.5.0/tests/test_eckeypair.py +0 -34
- otdf_python-0.5.0/tests/test_header.py +0 -41
- otdf_python-0.5.0/tests/test_inner_classes.py +0 -88
- otdf_python-0.5.0/tests/test_kas_allowlist.py +0 -333
- otdf_python-0.5.0/tests/test_kas_client.py +0 -511
- otdf_python-0.5.0/tests/test_kas_key_cache.py +0 -47
- otdf_python-0.5.0/tests/test_kas_key_management.py +0 -123
- otdf_python-0.5.0/tests/test_key_type.py +0 -38
- otdf_python-0.5.0/tests/test_log_collection.py +0 -38
- otdf_python-0.5.0/tests/test_manifest.py +0 -67
- otdf_python-0.5.0/tests/test_manifest_format.py +0 -100
- otdf_python-0.5.0/tests/test_nanotdf.py +0 -65
- otdf_python-0.5.0/tests/test_nanotdf_ecdh.py +0 -319
- otdf_python-0.5.0/tests/test_nanotdf_ecdsa_struct.py +0 -89
- otdf_python-0.5.0/tests/test_nanotdf_integration.py +0 -45
- otdf_python-0.5.0/tests/test_nanotdf_type.py +0 -53
- otdf_python-0.5.0/tests/test_policy_object.py +0 -45
- otdf_python-0.5.0/tests/test_sdk.py +0 -106
- otdf_python-0.5.0/tests/test_sdk_builder.py +0 -212
- otdf_python-0.5.0/tests/test_sdk_exceptions.py +0 -28
- otdf_python-0.5.0/tests/test_sdk_mock.py +0 -44
- otdf_python-0.5.0/tests/test_sdk_tdf_integration.py +0 -261
- otdf_python-0.5.0/tests/test_tdf.py +0 -62
- otdf_python-0.5.0/tests/test_tdf_key_management.py +0 -153
- otdf_python-0.5.0/tests/test_tdf_reader.py +0 -153
- otdf_python-0.5.0/tests/test_tdf_writer.py +0 -68
- otdf_python-0.5.0/tests/test_token_source.py +0 -42
- otdf_python-0.5.0/tests/test_url_normalization.py +0 -44
- otdf_python-0.5.0/tests/test_use_plaintext_flow.py +0 -98
- otdf_python-0.5.0/tests/test_validate_otdf_python.py +0 -188
- otdf_python-0.5.0/tests/test_version.py +0 -47
- otdf_python-0.5.0/tests/test_zip_reader.py +0 -78
- otdf_python-0.5.0/tests/test_zip_writer.py +0 -41
- otdf_python-0.5.0/uv.lock +0 -849
- {otdf_python-0.5.0 → otdf_python-0.9.1}/.gitignore +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/authorization/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/generated → otdf_python-0.9.1/_proto/otdf_python_proto/authorization/v2}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/common/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/entity/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/entity/entity_pb2.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/entity/entity_pb2.pyi +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/entityresolution/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/authorization → otdf_python-0.9.1/_proto/otdf_python_proto/entityresolution}/v2/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/kas/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/entityresolution/v2 → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/authorization}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/authorization/authorization_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/authorization → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/authorization/v2}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/authorization/v2/authorization_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/authorization/v2 → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/common}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/common/common_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/common → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/entity}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/entity/entity_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/entity → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/entityresolution}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/entityresolution/entity_resolution_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/entityresolution → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/entityresolution/v2}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/entityresolution/v2/entity_resolution_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/entityresolution/v2 → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/kas}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/kas/kas_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/kas → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/logger}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/logger → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/logger/audit}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/logger/audit/test_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/logger/audit → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/policy}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/policy/actions}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/policy/actions/actions_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/actions → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/policy/attributes}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/attributes → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/policy/kasregistry}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/policy/kasregistry/key_access_server_registry_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/kasregistry → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/policy/keymanagement}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/policy/keymanagement/key_management_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/keymanagement → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/policy/namespaces}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/policy/objects_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/namespaces → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/policy/obligations}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/obligations → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/policy/registeredresources}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/policy/registeredresources/registered_resources_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/registeredresources → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/policy/resourcemapping}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/policy/resourcemapping/resource_mapping_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/policy/selectors_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/resourcemapping → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/policy/subjectmapping}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/policy/subjectmapping/subject_mapping_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/subjectmapping → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/policy/unsafe}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/policy/unsafe/unsafe_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/unsafe → otdf_python-0.9.1/_proto/otdf_python_proto/legacy_grpc/wellknownconfiguration}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/legacy_grpc/wellknownconfiguration/wellknown_configuration_pb2_grpc.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/logger/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/legacy_grpc/wellknownconfiguration → otdf_python-0.9.1/_proto/otdf_python_proto/logger/audit}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/logger/audit/test_pb2.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/logger/audit/test_pb2.pyi +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/actions/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/attributes/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/kasregistry/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/keymanagement/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/namespaces/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src/otdf_python_proto/logger/audit → otdf_python-0.9.1/_proto/otdf_python_proto/policy/obligations}/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/registeredresources/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/resourcemapping/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/resourcemapping/resource_mapping_pb2.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/resourcemapping/resource_mapping_pb2.pyi +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/subjectmapping/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/policy/unsafe/__init__.py +0 -0
- {otdf_python-0.5.0/otdf-python-proto/src → otdf_python-0.9.1/_proto}/otdf_python_proto/wellknownconfiguration/__init__.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/__init__.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/__main__.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/address_normalizer.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/aesgcm.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/assertion_config.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/asym_crypto.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/autoconfigure_utils.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/cli.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/collection_store.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/collection_store_impl.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/config.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/connect_client.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/constants.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/crypto_utils.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/dpop.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/ecc_constants.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/ecc_mode.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/ecdh.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/eckeypair.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/header.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/invalid_zip_exception.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/kas_allowlist.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/kas_key_cache.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/key_type.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/manifest.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/nanotdf.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/nanotdf_type.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/policy_info.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/policy_object.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/policy_stub.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/resource_locator.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/sdk_exceptions.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/symmetric_and_payload_config.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/tdf.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/tdf_writer.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/version.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/zip_reader.py +0 -0
- {otdf_python-0.5.0/src → otdf_python-0.9.1}/otdf_python/zip_writer.py +0 -0
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: otdf-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.1
|
|
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
|
|
7
7
|
Project-URL: Issues, https://github.com/b-long/opentdf-python-sdk/issues
|
|
8
8
|
Author-email: b-long <b-long@users.noreply.github.com>
|
|
9
|
-
License-File: LICENSE
|
|
10
9
|
Classifier: Development Status :: 4 - Beta
|
|
11
10
|
Classifier: Intended Audience :: Developers
|
|
12
11
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -22,15 +21,12 @@ Classifier: Topic :: Security :: Cryptography
|
|
|
22
21
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
22
|
Classifier: Typing :: Typed
|
|
24
23
|
Requires-Python: >=3.10
|
|
25
|
-
Requires-Dist: connect-python
|
|
24
|
+
Requires-Dist: connect-python>=0.9.0
|
|
26
25
|
Requires-Dist: cryptography>=45.0.4
|
|
27
26
|
Requires-Dist: grpcio-status>=1.74.0
|
|
28
|
-
Requires-Dist: grpcio-tools>=1.74.0
|
|
29
27
|
Requires-Dist: grpcio>=1.74.0
|
|
30
|
-
Requires-Dist:
|
|
28
|
+
Requires-Dist: httpx2>=2.3.0
|
|
31
29
|
Requires-Dist: protobuf>=6.31.1
|
|
32
|
-
Requires-Dist: protoc-gen-connect-python<0.7,>=0.6.0
|
|
33
|
-
Requires-Dist: protoc-gen-openapiv2>=0.0.1
|
|
34
30
|
Requires-Dist: pyjwt>=2.10.1
|
|
35
31
|
Requires-Dist: typing-extensions>=4.14.1
|
|
36
32
|
Description-Content-Type: text/markdown
|
|
@@ -137,7 +133,7 @@ with open("decrypted.txt", "wb") as f:
|
|
|
137
133
|
## Project Structure
|
|
138
134
|
|
|
139
135
|
```
|
|
140
|
-
src/otdf_python/
|
|
136
|
+
packages/otdf-python/src/otdf_python/
|
|
141
137
|
├── sdk.py # Main SDK interface
|
|
142
138
|
├── config.py # Configuration management
|
|
143
139
|
├── tdf.py # TDF format handling
|
|
@@ -100,7 +100,7 @@ with open("decrypted.txt", "wb") as f:
|
|
|
100
100
|
## Project Structure
|
|
101
101
|
|
|
102
102
|
```
|
|
103
|
-
src/otdf_python/
|
|
103
|
+
packages/otdf-python/src/otdf_python/
|
|
104
104
|
├── sdk.py # Main SDK interface
|
|
105
105
|
├── config.py # Configuration management
|
|
106
106
|
├── tdf.py # TDF format handling
|
|
@@ -7,6 +7,7 @@ from typing import Protocol
|
|
|
7
7
|
|
|
8
8
|
from connectrpc.client import ConnectClient, ConnectClientSync
|
|
9
9
|
from connectrpc.code import Code
|
|
10
|
+
from connectrpc.compression import Compression
|
|
10
11
|
from connectrpc.errors import ConnectError
|
|
11
12
|
from connectrpc.interceptor import Interceptor, InterceptorSync
|
|
12
13
|
from connectrpc.method import IdempotencyLevel, MethodInfo
|
|
@@ -27,7 +28,7 @@ class AuthorizationService(Protocol):
|
|
|
27
28
|
|
|
28
29
|
|
|
29
30
|
class AuthorizationServiceASGIApplication(ConnectASGIApplication[AuthorizationService]):
|
|
30
|
-
def __init__(self, service: AuthorizationService | AsyncGenerator[AuthorizationService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
|
|
31
|
+
def __init__(self, service: AuthorizationService | AsyncGenerator[AuthorizationService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None) -> None:
|
|
31
32
|
super().__init__(
|
|
32
33
|
service=service,
|
|
33
34
|
endpoints=lambda svc: {
|
|
@@ -64,6 +65,7 @@ class AuthorizationServiceASGIApplication(ConnectASGIApplication[AuthorizationSe
|
|
|
64
65
|
},
|
|
65
66
|
interceptors=interceptors,
|
|
66
67
|
read_max_bytes=read_max_bytes,
|
|
68
|
+
compressions=compressions,
|
|
67
69
|
)
|
|
68
70
|
|
|
69
71
|
@property
|
|
@@ -144,7 +146,7 @@ class AuthorizationServiceSync(Protocol):
|
|
|
144
146
|
|
|
145
147
|
|
|
146
148
|
class AuthorizationServiceWSGIApplication(ConnectWSGIApplication):
|
|
147
|
-
def __init__(self, service: AuthorizationServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None:
|
|
149
|
+
def __init__(self, service: AuthorizationServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None) -> None:
|
|
148
150
|
super().__init__(
|
|
149
151
|
endpoints={
|
|
150
152
|
"/authorization.AuthorizationService/GetDecisions": EndpointSync.unary(
|
|
@@ -180,6 +182,7 @@ class AuthorizationServiceWSGIApplication(ConnectWSGIApplication):
|
|
|
180
182
|
},
|
|
181
183
|
interceptors=interceptors,
|
|
182
184
|
read_max_bytes=read_max_bytes,
|
|
185
|
+
compressions=compressions,
|
|
183
186
|
)
|
|
184
187
|
|
|
185
188
|
@property
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: authorization/authorization.proto
|
|
5
|
+
# Protobuf Python Version: 6.31.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
6,
|
|
15
|
+
31,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'authorization/authorization.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
|
|
26
|
+
from policy import objects_pb2 as policy_dot_objects__pb2
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!authorization/authorization.proto\x12\rauthorization\x1a\x19google/protobuf/any.proto\x1a\x14policy/objects.proto\")\n\x05Token\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03jwt\x18\x02 \x01(\tR\x03jwt\"\xc9\x03\n\x06\x45ntity\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12%\n\remail_address\x18\x02 \x01(\tH\x00R\x0c\x65mailAddress\x12\x1d\n\tuser_name\x18\x03 \x01(\tH\x00R\x08userName\x12,\n\x11remote_claims_url\x18\x04 \x01(\tH\x00R\x0fremoteClaimsUrl\x12\x14\n\x04uuid\x18\x05 \x01(\tH\x00R\x04uuid\x12.\n\x06\x63laims\x18\x06 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00R\x06\x63laims\x12\x35\n\x06\x63ustom\x18\x07 \x01(\x0b\x32\x1b.authorization.EntityCustomH\x00R\x06\x63ustom\x12\x1d\n\tclient_id\x18\x08 \x01(\tH\x00R\x08\x63lientId\x12:\n\x08\x63\x61tegory\x18\t \x01(\x0e\x32\x1e.authorization.Entity.CategoryR\x08\x63\x61tegory\"T\n\x08\x43\x61tegory\x12\x18\n\x14\x43\x41TEGORY_UNSPECIFIED\x10\x00\x12\x14\n\x10\x43\x41TEGORY_SUBJECT\x10\x01\x12\x18\n\x14\x43\x41TEGORY_ENVIRONMENT\x10\x02\x42\r\n\x0b\x65ntity_type\"B\n\x0c\x45ntityCustom\x12\x32\n\textension\x18\x01 \x01(\x0b\x32\x14.google.protobuf.AnyR\textension\"P\n\x0b\x45ntityChain\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x31\n\x08\x65ntities\x18\x02 \x03(\x0b\x32\x15.authorization.EntityR\x08\x65ntities\"\xcf\x01\n\x0f\x44\x65\x63isionRequest\x12(\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x0e.policy.ActionR\x07\x61\x63tions\x12?\n\rentity_chains\x18\x02 \x03(\x0b\x32\x1a.authorization.EntityChainR\x0c\x65ntityChains\x12Q\n\x13resource_attributes\x18\x03 \x03(\x0b\x32 .authorization.ResourceAttributeR\x12resourceAttributes\"\xce\x02\n\x10\x44\x65\x63isionResponse\x12&\n\x0f\x65ntity_chain_id\x18\x01 \x01(\tR\rentityChainId\x12\x34\n\x16resource_attributes_id\x18\x02 \x01(\tR\x14resourceAttributesId\x12&\n\x06\x61\x63tion\x18\x03 \x01(\x0b\x32\x0e.policy.ActionR\x06\x61\x63tion\x12\x44\n\x08\x64\x65\x63ision\x18\x04 \x01(\x0e\x32(.authorization.DecisionResponse.DecisionR\x08\x64\x65\x63ision\x12 \n\x0bobligations\x18\x05 \x03(\tR\x0bobligations\"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\"b\n\x13GetDecisionsRequest\x12K\n\x11\x64\x65\x63ision_requests\x18\x01 \x03(\x0b\x32\x1e.authorization.DecisionRequestR\x10\x64\x65\x63isionRequests\"f\n\x14GetDecisionsResponse\x12N\n\x12\x64\x65\x63ision_responses\x18\x01 \x03(\x0b\x32\x1f.authorization.DecisionResponseR\x11\x64\x65\x63isionResponses\"\xfa\x01\n\x16GetEntitlementsRequest\x12\x31\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x15.authorization.EntityR\x08\x65ntities\x12;\n\x05scope\x18\x02 \x01(\x0b\x32 .authorization.ResourceAttributeH\x00R\x05scope\x88\x01\x01\x12\x45\n\x1cwith_comprehensive_hierarchy\x18\x03 \x01(\x08H\x01R\x1awithComprehensiveHierarchy\x88\x01\x01\x42\x08\n\x06_scopeB\x1f\n\x1d_with_comprehensive_hierarchy\"c\n\x12\x45ntityEntitlements\x12\x1b\n\tentity_id\x18\x01 \x01(\tR\x08\x65ntityId\x12\x30\n\x14\x61ttribute_value_fqns\x18\x02 \x03(\tR\x12\x61ttributeValueFqns\"{\n\x11ResourceAttribute\x12\x34\n\x16resource_attributes_id\x18\x01 \x01(\tR\x14resourceAttributesId\x12\x30\n\x14\x61ttribute_value_fqns\x18\x02 \x03(\tR\x12\x61ttributeValueFqns\"`\n\x17GetEntitlementsResponse\x12\x45\n\x0c\x65ntitlements\x18\x01 \x03(\x0b\x32!.authorization.EntityEntitlementsR\x0c\x65ntitlements\"\xc1\x01\n\x14TokenDecisionRequest\x12(\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x0e.policy.ActionR\x07\x61\x63tions\x12,\n\x06tokens\x18\x02 \x03(\x0b\x32\x14.authorization.TokenR\x06tokens\x12Q\n\x13resource_attributes\x18\x03 \x03(\x0b\x32 .authorization.ResourceAttributeR\x12resourceAttributes\"n\n\x1aGetDecisionsByTokenRequest\x12P\n\x11\x64\x65\x63ision_requests\x18\x01 \x03(\x0b\x32#.authorization.TokenDecisionRequestR\x10\x64\x65\x63isionRequests\"m\n\x1bGetDecisionsByTokenResponse\x12N\n\x12\x64\x65\x63ision_responses\x18\x01 \x03(\x0b\x32\x1f.authorization.DecisionResponseR\x11\x64\x65\x63isionResponses2\xc5\x02\n\x14\x41uthorizationService\x12Y\n\x0cGetDecisions\x12\".authorization.GetDecisionsRequest\x1a#.authorization.GetDecisionsResponse\"\x00\x12n\n\x13GetDecisionsByToken\x12).authorization.GetDecisionsByTokenRequest\x1a*.authorization.GetDecisionsByTokenResponse\"\x00\x12\x62\n\x0fGetEntitlements\x12%.authorization.GetEntitlementsRequest\x1a&.authorization.GetEntitlementsResponse\"\x00\x42{\n\x11\x63om.authorizationB\x12\x41uthorizationProtoP\x01\xa2\x02\x03\x41XX\xaa\x02\rAuthorization\xca\x02\rAuthorization\xe2\x02\x19\x41uthorization\\GPBMetadata\xea\x02\rAuthorizationb\x06proto3')
|
|
30
|
+
|
|
31
|
+
_globals = globals()
|
|
32
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
33
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'authorization.authorization_pb2', _globals)
|
|
34
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
35
|
+
_globals['DESCRIPTOR']._loaded_options = None
|
|
36
|
+
_globals['DESCRIPTOR']._serialized_options = b'\n\021com.authorizationB\022AuthorizationProtoP\001\242\002\003AXX\252\002\rAuthorization\312\002\rAuthorization\342\002\031Authorization\\GPBMetadata\352\002\rAuthorization'
|
|
37
|
+
_globals['_TOKEN']._serialized_start=101
|
|
38
|
+
_globals['_TOKEN']._serialized_end=142
|
|
39
|
+
_globals['_ENTITY']._serialized_start=145
|
|
40
|
+
_globals['_ENTITY']._serialized_end=602
|
|
41
|
+
_globals['_ENTITY_CATEGORY']._serialized_start=503
|
|
42
|
+
_globals['_ENTITY_CATEGORY']._serialized_end=587
|
|
43
|
+
_globals['_ENTITYCUSTOM']._serialized_start=604
|
|
44
|
+
_globals['_ENTITYCUSTOM']._serialized_end=670
|
|
45
|
+
_globals['_ENTITYCHAIN']._serialized_start=672
|
|
46
|
+
_globals['_ENTITYCHAIN']._serialized_end=752
|
|
47
|
+
_globals['_DECISIONREQUEST']._serialized_start=755
|
|
48
|
+
_globals['_DECISIONREQUEST']._serialized_end=962
|
|
49
|
+
_globals['_DECISIONRESPONSE']._serialized_start=965
|
|
50
|
+
_globals['_DECISIONRESPONSE']._serialized_end=1299
|
|
51
|
+
_globals['_DECISIONRESPONSE_DECISION']._serialized_start=1223
|
|
52
|
+
_globals['_DECISIONRESPONSE_DECISION']._serialized_end=1299
|
|
53
|
+
_globals['_GETDECISIONSREQUEST']._serialized_start=1301
|
|
54
|
+
_globals['_GETDECISIONSREQUEST']._serialized_end=1399
|
|
55
|
+
_globals['_GETDECISIONSRESPONSE']._serialized_start=1401
|
|
56
|
+
_globals['_GETDECISIONSRESPONSE']._serialized_end=1503
|
|
57
|
+
_globals['_GETENTITLEMENTSREQUEST']._serialized_start=1506
|
|
58
|
+
_globals['_GETENTITLEMENTSREQUEST']._serialized_end=1756
|
|
59
|
+
_globals['_ENTITYENTITLEMENTS']._serialized_start=1758
|
|
60
|
+
_globals['_ENTITYENTITLEMENTS']._serialized_end=1857
|
|
61
|
+
_globals['_RESOURCEATTRIBUTE']._serialized_start=1859
|
|
62
|
+
_globals['_RESOURCEATTRIBUTE']._serialized_end=1982
|
|
63
|
+
_globals['_GETENTITLEMENTSRESPONSE']._serialized_start=1984
|
|
64
|
+
_globals['_GETENTITLEMENTSRESPONSE']._serialized_end=2080
|
|
65
|
+
_globals['_TOKENDECISIONREQUEST']._serialized_start=2083
|
|
66
|
+
_globals['_TOKENDECISIONREQUEST']._serialized_end=2276
|
|
67
|
+
_globals['_GETDECISIONSBYTOKENREQUEST']._serialized_start=2278
|
|
68
|
+
_globals['_GETDECISIONSBYTOKENREQUEST']._serialized_end=2388
|
|
69
|
+
_globals['_GETDECISIONSBYTOKENRESPONSE']._serialized_start=2390
|
|
70
|
+
_globals['_GETDECISIONSBYTOKENRESPONSE']._serialized_end=2499
|
|
71
|
+
_globals['_AUTHORIZATIONSERVICE']._serialized_start=2502
|
|
72
|
+
_globals['_AUTHORIZATIONSERVICE']._serialized_end=2827
|
|
73
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -7,6 +7,7 @@ from typing import Protocol
|
|
|
7
7
|
|
|
8
8
|
from connectrpc.client import ConnectClient, ConnectClientSync
|
|
9
9
|
from connectrpc.code import Code
|
|
10
|
+
from connectrpc.compression import Compression
|
|
10
11
|
from connectrpc.errors import ConnectError
|
|
11
12
|
from connectrpc.interceptor import Interceptor, InterceptorSync
|
|
12
13
|
from connectrpc.method import IdempotencyLevel, MethodInfo
|
|
@@ -30,7 +31,7 @@ class AuthorizationService(Protocol):
|
|
|
30
31
|
|
|
31
32
|
|
|
32
33
|
class AuthorizationServiceASGIApplication(ConnectASGIApplication[AuthorizationService]):
|
|
33
|
-
def __init__(self, service: AuthorizationService | AsyncGenerator[AuthorizationService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
|
|
34
|
+
def __init__(self, service: AuthorizationService | AsyncGenerator[AuthorizationService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None) -> None:
|
|
34
35
|
super().__init__(
|
|
35
36
|
service=service,
|
|
36
37
|
endpoints=lambda svc: {
|
|
@@ -77,6 +78,7 @@ class AuthorizationServiceASGIApplication(ConnectASGIApplication[AuthorizationSe
|
|
|
77
78
|
},
|
|
78
79
|
interceptors=interceptors,
|
|
79
80
|
read_max_bytes=read_max_bytes,
|
|
81
|
+
compressions=compressions,
|
|
80
82
|
)
|
|
81
83
|
|
|
82
84
|
@property
|
|
@@ -179,7 +181,7 @@ class AuthorizationServiceSync(Protocol):
|
|
|
179
181
|
|
|
180
182
|
|
|
181
183
|
class AuthorizationServiceWSGIApplication(ConnectWSGIApplication):
|
|
182
|
-
def __init__(self, service: AuthorizationServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None:
|
|
184
|
+
def __init__(self, service: AuthorizationServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None) -> None:
|
|
183
185
|
super().__init__(
|
|
184
186
|
endpoints={
|
|
185
187
|
"/authorization.v2.AuthorizationService/GetDecision": EndpointSync.unary(
|
|
@@ -225,6 +227,7 @@ class AuthorizationServiceWSGIApplication(ConnectWSGIApplication):
|
|
|
225
227
|
},
|
|
226
228
|
interceptors=interceptors,
|
|
227
229
|
read_max_bytes=read_max_bytes,
|
|
230
|
+
compressions=compressions,
|
|
228
231
|
)
|
|
229
232
|
|
|
230
233
|
@property
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: authorization/v2/authorization.proto
|
|
5
|
+
# Protobuf Python Version: 6.31.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
6,
|
|
15
|
+
31,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'authorization/v2/authorization.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
|
|
26
|
+
from entity import entity_pb2 as entity_dot_entity__pb2
|
|
27
|
+
from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
|
|
28
|
+
from policy import objects_pb2 as policy_dot_objects__pb2
|
|
29
|
+
|
|
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\"\x87\x05\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\x05token\x12\xab\x01\n\x12with_request_token\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValueB_\xbaH\\\xba\x01Y\n\x1fwith_request_token_must_be_true\x12(with_request_token must be true when set\x1a\x0cthis == trueH\x00R\x10withRequestTokenB\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\"\xb1\x01\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\x12\x31\n\x14required_obligations\x18\x03 \x03(\tR\x13requiredObligations\"\xd6\x04\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\x12\x8f\x02\n\x1b\x66ulfillable_obligation_fqns\x18\x04 \x03(\tB\xce\x01\xbaH\xca\x01\xba\x01\xc6\x01\n\x1bobligation_value_fqns_valid\x12^if provided, fulfillable_obligation_fqns must be between 1 and 50 in count with all valid FQNs\x1aGthis.size() == 0 || (this.size() <= 50 && this.all(item, item.isUri()))R\x19\x66ulfillableObligationFqns: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\"\xf0\x04\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\x12\x8f\x02\n\x1b\x66ulfillable_obligation_fqns\x18\x04 \x03(\tB\xce\x01\xbaH\xca\x01\xba\x01\xc6\x01\n\x1bobligation_value_fqns_valid\x12^if provided, fulfillable_obligation_fqns must be between 1 and 50 in count with all valid FQNs\x1aGthis.size() == 0 || (this.size() <= 50 && this.all(item, item.isUri()))R\x19\x66ulfillableObligationFqns: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
|
+
|
|
33
|
+
_globals = globals()
|
|
34
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
35
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'authorization.v2.authorization_pb2', _globals)
|
|
36
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
37
|
+
_globals['DESCRIPTOR']._loaded_options = None
|
|
38
|
+
_globals['DESCRIPTOR']._serialized_options = b'\n\024com.authorization.v2B\022AuthorizationProtoP\001\242\002\003AXX\252\002\020Authorization.V2\312\002\020Authorization\\V2\342\002\034Authorization\\V2\\GPBMetadata\352\002\021Authorization::V2'
|
|
39
|
+
_globals['_ENTITYIDENTIFIER'].oneofs_by_name['identifier']._loaded_options = None
|
|
40
|
+
_globals['_ENTITYIDENTIFIER'].oneofs_by_name['identifier']._serialized_options = b'\272H\002\010\001'
|
|
41
|
+
_globals['_ENTITYIDENTIFIER'].fields_by_name['entity_chain']._loaded_options = None
|
|
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
|
+
_globals['_ENTITYIDENTIFIER'].fields_by_name['registered_resource_value_fqn']._loaded_options = None
|
|
44
|
+
_globals['_ENTITYIDENTIFIER'].fields_by_name['registered_resource_value_fqn']._serialized_options = b'\272H\007r\005\020\001\210\001\001'
|
|
45
|
+
_globals['_ENTITYIDENTIFIER'].fields_by_name['token']._loaded_options = None
|
|
46
|
+
_globals['_ENTITYIDENTIFIER'].fields_by_name['token']._serialized_options = b'\272HQ\272\001N\n\016token_required\022\026token must be provided\032$has(this.jwt) && this.jwt.size() > 0'
|
|
47
|
+
_globals['_ENTITYIDENTIFIER'].fields_by_name['with_request_token']._loaded_options = None
|
|
48
|
+
_globals['_ENTITYIDENTIFIER'].fields_by_name['with_request_token']._serialized_options = b'\272H\\\272\001Y\n\037with_request_token_must_be_true\022(with_request_token must be true when set\032\014this == true'
|
|
49
|
+
_globals['_ENTITYENTITLEMENTS_ACTIONSPERATTRIBUTEVALUEFQNENTRY']._loaded_options = None
|
|
50
|
+
_globals['_ENTITYENTITLEMENTS_ACTIONSPERATTRIBUTEVALUEFQNENTRY']._serialized_options = b'8\001'
|
|
51
|
+
_globals['_RESOURCE'].fields_by_name['attribute_values']._loaded_options = None
|
|
52
|
+
_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())'
|
|
53
|
+
_globals['_RESOURCE'].fields_by_name['registered_resource_value_fqn']._loaded_options = None
|
|
54
|
+
_globals['_RESOURCE'].fields_by_name['registered_resource_value_fqn']._serialized_options = b'\272H\007r\005\020\001\210\001\001'
|
|
55
|
+
_globals['_GETDECISIONREQUEST'].fields_by_name['entity_identifier']._loaded_options = None
|
|
56
|
+
_globals['_GETDECISIONREQUEST'].fields_by_name['entity_identifier']._serialized_options = b'\272H\003\310\001\001'
|
|
57
|
+
_globals['_GETDECISIONREQUEST'].fields_by_name['action']._loaded_options = None
|
|
58
|
+
_globals['_GETDECISIONREQUEST'].fields_by_name['action']._serialized_options = b'\272H\003\310\001\001'
|
|
59
|
+
_globals['_GETDECISIONREQUEST'].fields_by_name['resource']._loaded_options = None
|
|
60
|
+
_globals['_GETDECISIONREQUEST'].fields_by_name['resource']._serialized_options = b'\272H\003\310\001\001'
|
|
61
|
+
_globals['_GETDECISIONREQUEST'].fields_by_name['fulfillable_obligation_fqns']._loaded_options = None
|
|
62
|
+
_globals['_GETDECISIONREQUEST'].fields_by_name['fulfillable_obligation_fqns']._serialized_options = b'\272H\312\001\272\001\306\001\n\033obligation_value_fqns_valid\022^if provided, fulfillable_obligation_fqns must be between 1 and 50 in count with all valid FQNs\032Gthis.size() == 0 || (this.size() <= 50 && this.all(item, item.isUri()))'
|
|
63
|
+
_globals['_GETDECISIONREQUEST']._loaded_options = None
|
|
64
|
+
_globals['_GETDECISIONREQUEST']._serialized_options = b'\272Hb\032`\n)get_decision_request.action_name_required\022\034action.name must be provided\032\025has(this.action.name)'
|
|
65
|
+
_globals['_GETDECISIONMULTIRESOURCEREQUEST'].fields_by_name['entity_identifier']._loaded_options = None
|
|
66
|
+
_globals['_GETDECISIONMULTIRESOURCEREQUEST'].fields_by_name['entity_identifier']._serialized_options = b'\272H\003\310\001\001'
|
|
67
|
+
_globals['_GETDECISIONMULTIRESOURCEREQUEST'].fields_by_name['action']._loaded_options = None
|
|
68
|
+
_globals['_GETDECISIONMULTIRESOURCEREQUEST'].fields_by_name['action']._serialized_options = b'\272H\003\310\001\001'
|
|
69
|
+
_globals['_GETDECISIONMULTIRESOURCEREQUEST'].fields_by_name['resources']._loaded_options = None
|
|
70
|
+
_globals['_GETDECISIONMULTIRESOURCEREQUEST'].fields_by_name['resources']._serialized_options = b'\272H\010\222\001\005\010\001\020\350\007'
|
|
71
|
+
_globals['_GETDECISIONMULTIRESOURCEREQUEST'].fields_by_name['fulfillable_obligation_fqns']._loaded_options = None
|
|
72
|
+
_globals['_GETDECISIONMULTIRESOURCEREQUEST'].fields_by_name['fulfillable_obligation_fqns']._serialized_options = b'\272H\312\001\272\001\306\001\n\033obligation_value_fqns_valid\022^if provided, fulfillable_obligation_fqns must be between 1 and 50 in count with all valid FQNs\032Gthis.size() == 0 || (this.size() <= 50 && this.all(item, item.isUri()))'
|
|
73
|
+
_globals['_GETDECISIONMULTIRESOURCEREQUEST']._loaded_options = None
|
|
74
|
+
_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)'
|
|
75
|
+
_globals['_GETDECISIONBULKREQUEST'].fields_by_name['decision_requests']._loaded_options = None
|
|
76
|
+
_globals['_GETDECISIONBULKREQUEST'].fields_by_name['decision_requests']._serialized_options = b'\272H\010\222\001\005\010\001\020\310\001'
|
|
77
|
+
_globals['_GETENTITLEMENTSREQUEST'].fields_by_name['entity_identifier']._loaded_options = None
|
|
78
|
+
_globals['_GETENTITLEMENTSREQUEST'].fields_by_name['entity_identifier']._serialized_options = b'\272H\003\310\001\001'
|
|
79
|
+
_globals['_DECISION']._serialized_start=3950
|
|
80
|
+
_globals['_DECISION']._serialized_end=4026
|
|
81
|
+
_globals['_ENTITYIDENTIFIER']._serialized_start=163
|
|
82
|
+
_globals['_ENTITYIDENTIFIER']._serialized_end=810
|
|
83
|
+
_globals['_ENTITYENTITLEMENTS']._serialized_start=813
|
|
84
|
+
_globals['_ENTITYENTITLEMENTS']._serialized_end=1198
|
|
85
|
+
_globals['_ENTITYENTITLEMENTS_ACTIONSLIST']._serialized_start=1012
|
|
86
|
+
_globals['_ENTITYENTITLEMENTS_ACTIONSLIST']._serialized_end=1067
|
|
87
|
+
_globals['_ENTITYENTITLEMENTS_ACTIONSPERATTRIBUTEVALUEFQNENTRY']._serialized_start=1070
|
|
88
|
+
_globals['_ENTITYENTITLEMENTS_ACTIONSPERATTRIBUTEVALUEFQNENTRY']._serialized_end=1198
|
|
89
|
+
_globals['_RESOURCE']._serialized_start=1201
|
|
90
|
+
_globals['_RESOURCE']._serialized_end=1685
|
|
91
|
+
_globals['_RESOURCE_ATTRIBUTEVALUES']._serialized_start=1636
|
|
92
|
+
_globals['_RESOURCE_ATTRIBUTEVALUES']._serialized_end=1673
|
|
93
|
+
_globals['_RESOURCEDECISION']._serialized_start=1688
|
|
94
|
+
_globals['_RESOURCEDECISION']._serialized_end=1865
|
|
95
|
+
_globals['_GETDECISIONREQUEST']._serialized_start=1868
|
|
96
|
+
_globals['_GETDECISIONREQUEST']._serialized_end=2466
|
|
97
|
+
_globals['_GETDECISIONRESPONSE']._serialized_start=2468
|
|
98
|
+
_globals['_GETDECISIONRESPONSE']._serialized_end=2553
|
|
99
|
+
_globals['_GETDECISIONMULTIRESOURCEREQUEST']._serialized_start=2556
|
|
100
|
+
_globals['_GETDECISIONMULTIRESOURCEREQUEST']._serialized_end=3180
|
|
101
|
+
_globals['_GETDECISIONMULTIRESOURCERESPONSE']._serialized_start=3183
|
|
102
|
+
_globals['_GETDECISIONMULTIRESOURCERESPONSE']._serialized_end=3365
|
|
103
|
+
_globals['_GETDECISIONBULKREQUEST']._serialized_start=3368
|
|
104
|
+
_globals['_GETDECISIONBULKREQUEST']._serialized_end=3501
|
|
105
|
+
_globals['_GETDECISIONBULKRESPONSE']._serialized_start=3503
|
|
106
|
+
_globals['_GETDECISIONBULKRESPONSE']._serialized_end=3627
|
|
107
|
+
_globals['_GETENTITLEMENTSREQUEST']._serialized_start=3630
|
|
108
|
+
_globals['_GETENTITLEMENTSREQUEST']._serialized_end=3847
|
|
109
|
+
_globals['_GETENTITLEMENTSRESPONSE']._serialized_start=3849
|
|
110
|
+
_globals['_GETENTITLEMENTSRESPONSE']._serialized_end=3948
|
|
111
|
+
_globals['_AUTHORIZATIONSERVICE']._serialized_start=4029
|
|
112
|
+
_globals['_AUTHORIZATIONSERVICE']._serialized_end=4491
|
|
113
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -21,14 +21,16 @@ DECISION_DENY: Decision
|
|
|
21
21
|
DECISION_PERMIT: Decision
|
|
22
22
|
|
|
23
23
|
class EntityIdentifier(_message.Message):
|
|
24
|
-
__slots__ = ("entity_chain", "registered_resource_value_fqn", "token")
|
|
24
|
+
__slots__ = ("entity_chain", "registered_resource_value_fqn", "token", "with_request_token")
|
|
25
25
|
ENTITY_CHAIN_FIELD_NUMBER: _ClassVar[int]
|
|
26
26
|
REGISTERED_RESOURCE_VALUE_FQN_FIELD_NUMBER: _ClassVar[int]
|
|
27
27
|
TOKEN_FIELD_NUMBER: _ClassVar[int]
|
|
28
|
+
WITH_REQUEST_TOKEN_FIELD_NUMBER: _ClassVar[int]
|
|
28
29
|
entity_chain: _entity_pb2.EntityChain
|
|
29
30
|
registered_resource_value_fqn: str
|
|
30
31
|
token: _entity_pb2.Token
|
|
31
|
-
|
|
32
|
+
with_request_token: _wrappers_pb2.BoolValue
|
|
33
|
+
def __init__(self, entity_chain: _Optional[_Union[_entity_pb2.EntityChain, _Mapping]] = ..., registered_resource_value_fqn: _Optional[str] = ..., token: _Optional[_Union[_entity_pb2.Token, _Mapping]] = ..., with_request_token: _Optional[_Union[_wrappers_pb2.BoolValue, _Mapping]] = ...) -> None: ...
|
|
32
34
|
|
|
33
35
|
class EntityEntitlements(_message.Message):
|
|
34
36
|
__slots__ = ("ephemeral_id", "actions_per_attribute_value_fqn")
|
|
@@ -66,22 +68,26 @@ class Resource(_message.Message):
|
|
|
66
68
|
def __init__(self, ephemeral_id: _Optional[str] = ..., attribute_values: _Optional[_Union[Resource.AttributeValues, _Mapping]] = ..., registered_resource_value_fqn: _Optional[str] = ...) -> None: ...
|
|
67
69
|
|
|
68
70
|
class ResourceDecision(_message.Message):
|
|
69
|
-
__slots__ = ("ephemeral_resource_id", "decision")
|
|
71
|
+
__slots__ = ("ephemeral_resource_id", "decision", "required_obligations")
|
|
70
72
|
EPHEMERAL_RESOURCE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
71
73
|
DECISION_FIELD_NUMBER: _ClassVar[int]
|
|
74
|
+
REQUIRED_OBLIGATIONS_FIELD_NUMBER: _ClassVar[int]
|
|
72
75
|
ephemeral_resource_id: str
|
|
73
76
|
decision: Decision
|
|
74
|
-
|
|
77
|
+
required_obligations: _containers.RepeatedScalarFieldContainer[str]
|
|
78
|
+
def __init__(self, ephemeral_resource_id: _Optional[str] = ..., decision: _Optional[_Union[Decision, str]] = ..., required_obligations: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
75
79
|
|
|
76
80
|
class GetDecisionRequest(_message.Message):
|
|
77
|
-
__slots__ = ("entity_identifier", "action", "resource")
|
|
81
|
+
__slots__ = ("entity_identifier", "action", "resource", "fulfillable_obligation_fqns")
|
|
78
82
|
ENTITY_IDENTIFIER_FIELD_NUMBER: _ClassVar[int]
|
|
79
83
|
ACTION_FIELD_NUMBER: _ClassVar[int]
|
|
80
84
|
RESOURCE_FIELD_NUMBER: _ClassVar[int]
|
|
85
|
+
FULFILLABLE_OBLIGATION_FQNS_FIELD_NUMBER: _ClassVar[int]
|
|
81
86
|
entity_identifier: EntityIdentifier
|
|
82
87
|
action: _objects_pb2.Action
|
|
83
88
|
resource: Resource
|
|
84
|
-
|
|
89
|
+
fulfillable_obligation_fqns: _containers.RepeatedScalarFieldContainer[str]
|
|
90
|
+
def __init__(self, entity_identifier: _Optional[_Union[EntityIdentifier, _Mapping]] = ..., action: _Optional[_Union[_objects_pb2.Action, _Mapping]] = ..., resource: _Optional[_Union[Resource, _Mapping]] = ..., fulfillable_obligation_fqns: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
85
91
|
|
|
86
92
|
class GetDecisionResponse(_message.Message):
|
|
87
93
|
__slots__ = ("decision",)
|
|
@@ -90,14 +96,16 @@ class GetDecisionResponse(_message.Message):
|
|
|
90
96
|
def __init__(self, decision: _Optional[_Union[ResourceDecision, _Mapping]] = ...) -> None: ...
|
|
91
97
|
|
|
92
98
|
class GetDecisionMultiResourceRequest(_message.Message):
|
|
93
|
-
__slots__ = ("entity_identifier", "action", "resources")
|
|
99
|
+
__slots__ = ("entity_identifier", "action", "resources", "fulfillable_obligation_fqns")
|
|
94
100
|
ENTITY_IDENTIFIER_FIELD_NUMBER: _ClassVar[int]
|
|
95
101
|
ACTION_FIELD_NUMBER: _ClassVar[int]
|
|
96
102
|
RESOURCES_FIELD_NUMBER: _ClassVar[int]
|
|
103
|
+
FULFILLABLE_OBLIGATION_FQNS_FIELD_NUMBER: _ClassVar[int]
|
|
97
104
|
entity_identifier: EntityIdentifier
|
|
98
105
|
action: _objects_pb2.Action
|
|
99
106
|
resources: _containers.RepeatedCompositeFieldContainer[Resource]
|
|
100
|
-
|
|
107
|
+
fulfillable_obligation_fqns: _containers.RepeatedScalarFieldContainer[str]
|
|
108
|
+
def __init__(self, entity_identifier: _Optional[_Union[EntityIdentifier, _Mapping]] = ..., action: _Optional[_Union[_objects_pb2.Action, _Mapping]] = ..., resources: _Optional[_Iterable[_Union[Resource, _Mapping]]] = ..., fulfillable_obligation_fqns: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
101
109
|
|
|
102
110
|
class GetDecisionMultiResourceResponse(_message.Message):
|
|
103
111
|
__slots__ = ("all_permitted", "resource_decisions")
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: common/common.proto
|
|
5
|
+
# Protobuf Python Version: 6.31.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
6,
|
|
15
|
+
31,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'common/common.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
|
26
|
+
from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13\x63ommon/common.proto\x12\x06\x63ommon\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1b\x62uf/validate/validate.proto\"\xd2\x02\n\x10IdNameIdentifier\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x90\x02\n\x04name\x18\x02 \x01(\tB\xfb\x01\xbaH\xf7\x01r\x05\x10\x01\x18\xfd\x01\xba\x01\xec\x01\n\x0bname_format\x12\x9f\x01Name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')R\x04name:\x11\xbaH\x0e\"\x0c\n\x02id\n\x04name\x10\x01\"[\n\x0fIdFqnIdentifier\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x1c\n\x03\x66qn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x03\x66qn:\x10\xbaH\r\"\x0b\n\x02id\n\x03\x66qn\x10\x01\"\xf1\x01\n\x08Metadata\x12\x39\n\ncreated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x34\n\x06labels\x18\x03 \x03(\x0b\x32\x1c.common.Metadata.LabelsEntryR\x06labels\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x89\x01\n\x0fMetadataMutable\x12;\n\x06labels\x18\x03 \x03(\x0b\x32#.common.MetadataMutable.LabelsEntryR\x06labels\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01*}\n\x12MetadataUpdateEnum\x12$\n METADATA_UPDATE_ENUM_UNSPECIFIED\x10\x00\x12\x1f\n\x1bMETADATA_UPDATE_ENUM_EXTEND\x10\x01\x12 \n\x1cMETADATA_UPDATE_ENUM_REPLACE\x10\x02*\x8d\x01\n\x0f\x41\x63tiveStateEnum\x12!\n\x1d\x41\x43TIVE_STATE_ENUM_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x41\x43TIVE_STATE_ENUM_ACTIVE\x10\x01\x12\x1e\n\x1a\x41\x43TIVE_STATE_ENUM_INACTIVE\x10\x02\x12\x19\n\x15\x41\x43TIVE_STATE_ENUM_ANY\x10\x03\x42Q\n\ncom.commonB\x0b\x43ommonProtoP\x01\xa2\x02\x03\x43XX\xaa\x02\x06\x43ommon\xca\x02\x06\x43ommon\xe2\x02\x12\x43ommon\\GPBMetadata\xea\x02\x06\x43ommonb\x06proto3')
|
|
30
|
+
|
|
31
|
+
_globals = globals()
|
|
32
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
33
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'common.common_pb2', _globals)
|
|
34
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
35
|
+
_globals['DESCRIPTOR']._loaded_options = None
|
|
36
|
+
_globals['DESCRIPTOR']._serialized_options = b'\n\ncom.commonB\013CommonProtoP\001\242\002\003CXX\252\002\006Common\312\002\006Common\342\002\022Common\\GPBMetadata\352\002\006Common'
|
|
37
|
+
_globals['_IDNAMEIDENTIFIER'].fields_by_name['id']._loaded_options = None
|
|
38
|
+
_globals['_IDNAMEIDENTIFIER'].fields_by_name['id']._serialized_options = b'\272H\005r\003\260\001\001'
|
|
39
|
+
_globals['_IDNAMEIDENTIFIER'].fields_by_name['name']._loaded_options = None
|
|
40
|
+
_globals['_IDNAMEIDENTIFIER'].fields_by_name['name']._serialized_options = b'\272H\367\001r\005\020\001\030\375\001\272\001\354\001\n\013name_format\022\237\001Name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.\032;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')'
|
|
41
|
+
_globals['_IDNAMEIDENTIFIER']._loaded_options = None
|
|
42
|
+
_globals['_IDNAMEIDENTIFIER']._serialized_options = b'\272H\016\"\014\n\002id\n\004name\020\001'
|
|
43
|
+
_globals['_IDFQNIDENTIFIER'].fields_by_name['id']._loaded_options = None
|
|
44
|
+
_globals['_IDFQNIDENTIFIER'].fields_by_name['id']._serialized_options = b'\272H\005r\003\260\001\001'
|
|
45
|
+
_globals['_IDFQNIDENTIFIER'].fields_by_name['fqn']._loaded_options = None
|
|
46
|
+
_globals['_IDFQNIDENTIFIER'].fields_by_name['fqn']._serialized_options = b'\272H\007r\005\020\001\210\001\001'
|
|
47
|
+
_globals['_IDFQNIDENTIFIER']._loaded_options = None
|
|
48
|
+
_globals['_IDFQNIDENTIFIER']._serialized_options = b'\272H\r\"\013\n\002id\n\003fqn\020\001'
|
|
49
|
+
_globals['_METADATA_LABELSENTRY']._loaded_options = None
|
|
50
|
+
_globals['_METADATA_LABELSENTRY']._serialized_options = b'8\001'
|
|
51
|
+
_globals['_METADATAMUTABLE_LABELSENTRY']._loaded_options = None
|
|
52
|
+
_globals['_METADATAMUTABLE_LABELSENTRY']._serialized_options = b'8\001'
|
|
53
|
+
_globals['_METADATAUPDATEENUM']._serialized_start=911
|
|
54
|
+
_globals['_METADATAUPDATEENUM']._serialized_end=1036
|
|
55
|
+
_globals['_ACTIVESTATEENUM']._serialized_start=1039
|
|
56
|
+
_globals['_ACTIVESTATEENUM']._serialized_end=1180
|
|
57
|
+
_globals['_IDNAMEIDENTIFIER']._serialized_start=94
|
|
58
|
+
_globals['_IDNAMEIDENTIFIER']._serialized_end=432
|
|
59
|
+
_globals['_IDFQNIDENTIFIER']._serialized_start=434
|
|
60
|
+
_globals['_IDFQNIDENTIFIER']._serialized_end=525
|
|
61
|
+
_globals['_METADATA']._serialized_start=528
|
|
62
|
+
_globals['_METADATA']._serialized_end=769
|
|
63
|
+
_globals['_METADATA_LABELSENTRY']._serialized_start=712
|
|
64
|
+
_globals['_METADATA_LABELSENTRY']._serialized_end=769
|
|
65
|
+
_globals['_METADATAMUTABLE']._serialized_start=772
|
|
66
|
+
_globals['_METADATAMUTABLE']._serialized_end=909
|
|
67
|
+
_globals['_METADATAMUTABLE_LABELSENTRY']._serialized_start=712
|
|
68
|
+
_globals['_METADATAMUTABLE_LABELSENTRY']._serialized_end=769
|
|
69
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import datetime
|
|
2
2
|
|
|
3
3
|
from google.protobuf import timestamp_pb2 as _timestamp_pb2
|
|
4
|
+
from buf.validate import validate_pb2 as _validate_pb2
|
|
4
5
|
from google.protobuf.internal import containers as _containers
|
|
5
6
|
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
|
|
6
7
|
from google.protobuf import descriptor as _descriptor
|
|
@@ -30,6 +31,22 @@ ACTIVE_STATE_ENUM_ACTIVE: ActiveStateEnum
|
|
|
30
31
|
ACTIVE_STATE_ENUM_INACTIVE: ActiveStateEnum
|
|
31
32
|
ACTIVE_STATE_ENUM_ANY: ActiveStateEnum
|
|
32
33
|
|
|
34
|
+
class IdNameIdentifier(_message.Message):
|
|
35
|
+
__slots__ = ("id", "name")
|
|
36
|
+
ID_FIELD_NUMBER: _ClassVar[int]
|
|
37
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
38
|
+
id: str
|
|
39
|
+
name: str
|
|
40
|
+
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ...
|
|
41
|
+
|
|
42
|
+
class IdFqnIdentifier(_message.Message):
|
|
43
|
+
__slots__ = ("id", "fqn")
|
|
44
|
+
ID_FIELD_NUMBER: _ClassVar[int]
|
|
45
|
+
FQN_FIELD_NUMBER: _ClassVar[int]
|
|
46
|
+
id: str
|
|
47
|
+
fqn: str
|
|
48
|
+
def __init__(self, id: _Optional[str] = ..., fqn: _Optional[str] = ...) -> None: ...
|
|
49
|
+
|
|
33
50
|
class Metadata(_message.Message):
|
|
34
51
|
__slots__ = ("created_at", "updated_at", "labels")
|
|
35
52
|
class LabelsEntry(_message.Message):
|
|
@@ -7,6 +7,7 @@ from typing import Protocol
|
|
|
7
7
|
|
|
8
8
|
from connectrpc.client import ConnectClient, ConnectClientSync
|
|
9
9
|
from connectrpc.code import Code
|
|
10
|
+
from connectrpc.compression import Compression
|
|
10
11
|
from connectrpc.errors import ConnectError
|
|
11
12
|
from connectrpc.interceptor import Interceptor, InterceptorSync
|
|
12
13
|
from connectrpc.method import IdempotencyLevel, MethodInfo
|
|
@@ -24,7 +25,7 @@ class EntityResolutionService(Protocol):
|
|
|
24
25
|
|
|
25
26
|
|
|
26
27
|
class EntityResolutionServiceASGIApplication(ConnectASGIApplication[EntityResolutionService]):
|
|
27
|
-
def __init__(self, service: EntityResolutionService | AsyncGenerator[EntityResolutionService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
|
|
28
|
+
def __init__(self, service: EntityResolutionService | AsyncGenerator[EntityResolutionService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None) -> None:
|
|
28
29
|
super().__init__(
|
|
29
30
|
service=service,
|
|
30
31
|
endpoints=lambda svc: {
|
|
@@ -51,6 +52,7 @@ class EntityResolutionServiceASGIApplication(ConnectASGIApplication[EntityResolu
|
|
|
51
52
|
},
|
|
52
53
|
interceptors=interceptors,
|
|
53
54
|
read_max_bytes=read_max_bytes,
|
|
55
|
+
compressions=compressions,
|
|
54
56
|
)
|
|
55
57
|
|
|
56
58
|
@property
|
|
@@ -109,7 +111,7 @@ class EntityResolutionServiceSync(Protocol):
|
|
|
109
111
|
|
|
110
112
|
|
|
111
113
|
class EntityResolutionServiceWSGIApplication(ConnectWSGIApplication):
|
|
112
|
-
def __init__(self, service: EntityResolutionServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None:
|
|
114
|
+
def __init__(self, service: EntityResolutionServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None) -> None:
|
|
113
115
|
super().__init__(
|
|
114
116
|
endpoints={
|
|
115
117
|
"/entityresolution.EntityResolutionService/ResolveEntities": EndpointSync.unary(
|
|
@@ -135,6 +137,7 @@ class EntityResolutionServiceWSGIApplication(ConnectWSGIApplication):
|
|
|
135
137
|
},
|
|
136
138
|
interceptors=interceptors,
|
|
137
139
|
read_max_bytes=read_max_bytes,
|
|
140
|
+
compressions=compressions,
|
|
138
141
|
)
|
|
139
142
|
|
|
140
143
|
@property
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: entityresolution/entity_resolution.proto
|
|
5
|
+
# Protobuf Python Version: 6.31.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
6,
|
|
15
|
+
31,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'entityresolution/entity_resolution.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from authorization import authorization_pb2 as authorization_dot_authorization__pb2
|
|
26
|
+
from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
|
|
27
|
+
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(entityresolution/entity_resolution.proto\x12\x10\x65ntityresolution\x1a!authorization/authorization.proto\x1a\x19google/protobuf/any.proto\x1a\x1cgoogle/protobuf/struct.proto\"K\n\x16ResolveEntitiesRequest\x12\x31\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x15.authorization.EntityR\x08\x65ntities\"{\n\x14\x45ntityRepresentation\x12\x42\n\x10\x61\x64\x64itional_props\x18\x01 \x03(\x0b\x32\x17.google.protobuf.StructR\x0f\x61\x64\x64itionalProps\x12\x1f\n\x0boriginal_id\x18\x02 \x01(\tR\noriginalId\"x\n\x17ResolveEntitiesResponse\x12]\n\x16\x65ntity_representations\x18\x01 \x03(\x0b\x32&.entityresolution.EntityRepresentationR\x15\x65ntityRepresentations\"\x8b\x01\n\x13\x45ntityNotFoundError\x12\x12\n\x04\x63ode\x18\x01 \x01(\x05R\x04\x63ode\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12.\n\x07\x64\x65tails\x18\x03 \x03(\x0b\x32\x14.google.protobuf.AnyR\x07\x64\x65tails\x12\x16\n\x06\x65ntity\x18\x04 \x01(\tR\x06\x65ntity\"O\n\x1f\x43reateEntityChainFromJwtRequest\x12,\n\x06tokens\x18\x01 \x03(\x0b\x32\x14.authorization.TokenR\x06tokens\"c\n CreateEntityChainFromJwtResponse\x12?\n\rentity_chains\x18\x01 \x03(\x0b\x32\x1a.authorization.EntityChainR\x0c\x65ntityChains2\x89\x02\n\x17\x45ntityResolutionService\x12h\n\x0fResolveEntities\x12(.entityresolution.ResolveEntitiesRequest\x1a).entityresolution.ResolveEntitiesResponse\"\x00\x12\x83\x01\n\x18\x43reateEntityChainFromJwt\x12\x31.entityresolution.CreateEntityChainFromJwtRequest\x1a\x32.entityresolution.CreateEntityChainFromJwtResponse\"\x00\x42\x8d\x01\n\x14\x63om.entityresolutionB\x15\x45ntityResolutionProtoP\x01\xa2\x02\x03\x45XX\xaa\x02\x10\x45ntityresolution\xca\x02\x10\x45ntityresolution\xe2\x02\x1c\x45ntityresolution\\GPBMetadata\xea\x02\x10\x45ntityresolutionb\x06proto3')
|
|
31
|
+
|
|
32
|
+
_globals = globals()
|
|
33
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
34
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'entityresolution.entity_resolution_pb2', _globals)
|
|
35
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
36
|
+
_globals['DESCRIPTOR']._loaded_options = None
|
|
37
|
+
_globals['DESCRIPTOR']._serialized_options = b'\n\024com.entityresolutionB\025EntityResolutionProtoP\001\242\002\003EXX\252\002\020Entityresolution\312\002\020Entityresolution\342\002\034Entityresolution\\GPBMetadata\352\002\020Entityresolution'
|
|
38
|
+
_globals['_RESOLVEENTITIESREQUEST']._serialized_start=154
|
|
39
|
+
_globals['_RESOLVEENTITIESREQUEST']._serialized_end=229
|
|
40
|
+
_globals['_ENTITYREPRESENTATION']._serialized_start=231
|
|
41
|
+
_globals['_ENTITYREPRESENTATION']._serialized_end=354
|
|
42
|
+
_globals['_RESOLVEENTITIESRESPONSE']._serialized_start=356
|
|
43
|
+
_globals['_RESOLVEENTITIESRESPONSE']._serialized_end=476
|
|
44
|
+
_globals['_ENTITYNOTFOUNDERROR']._serialized_start=479
|
|
45
|
+
_globals['_ENTITYNOTFOUNDERROR']._serialized_end=618
|
|
46
|
+
_globals['_CREATEENTITYCHAINFROMJWTREQUEST']._serialized_start=620
|
|
47
|
+
_globals['_CREATEENTITYCHAINFROMJWTREQUEST']._serialized_end=699
|
|
48
|
+
_globals['_CREATEENTITYCHAINFROMJWTRESPONSE']._serialized_start=701
|
|
49
|
+
_globals['_CREATEENTITYCHAINFROMJWTRESPONSE']._serialized_end=800
|
|
50
|
+
_globals['_ENTITYRESOLUTIONSERVICE']._serialized_start=803
|
|
51
|
+
_globals['_ENTITYRESOLUTIONSERVICE']._serialized_end=1068
|
|
52
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from authorization import authorization_pb2 as _authorization_pb2
|
|
2
|
-
from google.protobuf import struct_pb2 as _struct_pb2
|
|
3
2
|
from google.protobuf import any_pb2 as _any_pb2
|
|
4
|
-
from google.
|
|
3
|
+
from google.protobuf import struct_pb2 as _struct_pb2
|
|
5
4
|
from google.protobuf.internal import containers as _containers
|
|
6
5
|
from google.protobuf import descriptor as _descriptor
|
|
7
6
|
from google.protobuf import message as _message
|