otdf-python 0.1.10__py3-none-any.whl → 0.3.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. otdf_python/__init__.py +25 -0
  2. otdf_python/__main__.py +12 -0
  3. otdf_python/address_normalizer.py +84 -0
  4. otdf_python/aesgcm.py +55 -0
  5. otdf_python/assertion_config.py +84 -0
  6. otdf_python/asym_crypto.py +198 -0
  7. otdf_python/auth_headers.py +33 -0
  8. otdf_python/autoconfigure_utils.py +113 -0
  9. otdf_python/cli.py +569 -0
  10. otdf_python/collection_store.py +41 -0
  11. otdf_python/collection_store_impl.py +22 -0
  12. otdf_python/config.py +69 -0
  13. otdf_python/connect_client.py +0 -0
  14. otdf_python/constants.py +1 -0
  15. otdf_python/crypto_utils.py +78 -0
  16. otdf_python/dpop.py +81 -0
  17. otdf_python/ecc_constants.py +176 -0
  18. otdf_python/ecc_mode.py +83 -0
  19. otdf_python/ecdh.py +317 -0
  20. otdf_python/eckeypair.py +75 -0
  21. otdf_python/header.py +181 -0
  22. otdf_python/invalid_zip_exception.py +8 -0
  23. otdf_python/kas_client.py +709 -0
  24. otdf_python/kas_connect_rpc_client.py +213 -0
  25. otdf_python/kas_info.py +25 -0
  26. otdf_python/kas_key_cache.py +52 -0
  27. otdf_python/key_type.py +31 -0
  28. otdf_python/key_type_constants.py +43 -0
  29. otdf_python/manifest.py +215 -0
  30. otdf_python/nanotdf.py +863 -0
  31. otdf_python/nanotdf_ecdsa_struct.py +132 -0
  32. otdf_python/nanotdf_type.py +43 -0
  33. otdf_python/policy_binding_serializer.py +39 -0
  34. otdf_python/policy_info.py +55 -0
  35. otdf_python/policy_object.py +22 -0
  36. otdf_python/policy_stub.py +2 -0
  37. otdf_python/resource_locator.py +172 -0
  38. otdf_python/sdk.py +436 -0
  39. otdf_python/sdk_builder.py +416 -0
  40. otdf_python/sdk_exceptions.py +16 -0
  41. otdf_python/symmetric_and_payload_config.py +30 -0
  42. otdf_python/tdf.py +480 -0
  43. otdf_python/tdf_reader.py +153 -0
  44. otdf_python/tdf_writer.py +23 -0
  45. otdf_python/token_source.py +34 -0
  46. otdf_python/version.py +57 -0
  47. otdf_python/zip_reader.py +47 -0
  48. otdf_python/zip_writer.py +70 -0
  49. otdf_python-0.3.5.dist-info/METADATA +153 -0
  50. otdf_python-0.3.5.dist-info/RECORD +137 -0
  51. {otdf_python-0.1.10.dist-info → otdf_python-0.3.5.dist-info}/WHEEL +1 -2
  52. {otdf_python-0.1.10.dist-info → otdf_python-0.3.5.dist-info/licenses}/LICENSE +1 -1
  53. otdf_python_proto/__init__.py +37 -0
  54. otdf_python_proto/authorization/__init__.py +1 -0
  55. otdf_python_proto/authorization/authorization_pb2.py +80 -0
  56. otdf_python_proto/authorization/authorization_pb2.pyi +161 -0
  57. otdf_python_proto/authorization/authorization_pb2_connect.py +191 -0
  58. otdf_python_proto/authorization/v2/authorization_pb2.py +105 -0
  59. otdf_python_proto/authorization/v2/authorization_pb2.pyi +134 -0
  60. otdf_python_proto/authorization/v2/authorization_pb2_connect.py +233 -0
  61. otdf_python_proto/common/__init__.py +1 -0
  62. otdf_python_proto/common/common_pb2.py +52 -0
  63. otdf_python_proto/common/common_pb2.pyi +61 -0
  64. otdf_python_proto/entity/__init__.py +1 -0
  65. otdf_python_proto/entity/entity_pb2.py +47 -0
  66. otdf_python_proto/entity/entity_pb2.pyi +50 -0
  67. otdf_python_proto/entityresolution/__init__.py +1 -0
  68. otdf_python_proto/entityresolution/entity_resolution_pb2.py +57 -0
  69. otdf_python_proto/entityresolution/entity_resolution_pb2.pyi +55 -0
  70. otdf_python_proto/entityresolution/entity_resolution_pb2_connect.py +149 -0
  71. otdf_python_proto/entityresolution/v2/entity_resolution_pb2.py +55 -0
  72. otdf_python_proto/entityresolution/v2/entity_resolution_pb2.pyi +55 -0
  73. otdf_python_proto/entityresolution/v2/entity_resolution_pb2_connect.py +149 -0
  74. otdf_python_proto/kas/__init__.py +9 -0
  75. otdf_python_proto/kas/kas_pb2.py +103 -0
  76. otdf_python_proto/kas/kas_pb2.pyi +170 -0
  77. otdf_python_proto/kas/kas_pb2_connect.py +192 -0
  78. otdf_python_proto/legacy_grpc/__init__.py +1 -0
  79. otdf_python_proto/legacy_grpc/authorization/authorization_pb2_grpc.py +163 -0
  80. otdf_python_proto/legacy_grpc/authorization/v2/authorization_pb2_grpc.py +206 -0
  81. otdf_python_proto/legacy_grpc/common/common_pb2_grpc.py +4 -0
  82. otdf_python_proto/legacy_grpc/entity/entity_pb2_grpc.py +4 -0
  83. otdf_python_proto/legacy_grpc/entityresolution/entity_resolution_pb2_grpc.py +122 -0
  84. otdf_python_proto/legacy_grpc/entityresolution/v2/entity_resolution_pb2_grpc.py +120 -0
  85. otdf_python_proto/legacy_grpc/kas/kas_pb2_grpc.py +172 -0
  86. otdf_python_proto/legacy_grpc/logger/audit/test_pb2_grpc.py +4 -0
  87. otdf_python_proto/legacy_grpc/policy/actions/actions_pb2_grpc.py +249 -0
  88. otdf_python_proto/legacy_grpc/policy/attributes/attributes_pb2_grpc.py +873 -0
  89. otdf_python_proto/legacy_grpc/policy/kasregistry/key_access_server_registry_pb2_grpc.py +602 -0
  90. otdf_python_proto/legacy_grpc/policy/keymanagement/key_management_pb2_grpc.py +251 -0
  91. otdf_python_proto/legacy_grpc/policy/namespaces/namespaces_pb2_grpc.py +427 -0
  92. otdf_python_proto/legacy_grpc/policy/objects_pb2_grpc.py +4 -0
  93. otdf_python_proto/legacy_grpc/policy/registeredresources/registered_resources_pb2_grpc.py +524 -0
  94. otdf_python_proto/legacy_grpc/policy/resourcemapping/resource_mapping_pb2_grpc.py +516 -0
  95. otdf_python_proto/legacy_grpc/policy/selectors_pb2_grpc.py +4 -0
  96. otdf_python_proto/legacy_grpc/policy/subjectmapping/subject_mapping_pb2_grpc.py +551 -0
  97. otdf_python_proto/legacy_grpc/policy/unsafe/unsafe_pb2_grpc.py +485 -0
  98. otdf_python_proto/legacy_grpc/wellknownconfiguration/wellknown_configuration_pb2_grpc.py +77 -0
  99. otdf_python_proto/logger/__init__.py +1 -0
  100. otdf_python_proto/logger/audit/test_pb2.py +43 -0
  101. otdf_python_proto/logger/audit/test_pb2.pyi +45 -0
  102. otdf_python_proto/policy/__init__.py +1 -0
  103. otdf_python_proto/policy/actions/actions_pb2.py +75 -0
  104. otdf_python_proto/policy/actions/actions_pb2.pyi +87 -0
  105. otdf_python_proto/policy/actions/actions_pb2_connect.py +275 -0
  106. otdf_python_proto/policy/attributes/attributes_pb2.py +234 -0
  107. otdf_python_proto/policy/attributes/attributes_pb2.pyi +328 -0
  108. otdf_python_proto/policy/attributes/attributes_pb2_connect.py +863 -0
  109. otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.py +266 -0
  110. otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.pyi +450 -0
  111. otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2_connect.py +611 -0
  112. otdf_python_proto/policy/keymanagement/key_management_pb2.py +79 -0
  113. otdf_python_proto/policy/keymanagement/key_management_pb2.pyi +87 -0
  114. otdf_python_proto/policy/keymanagement/key_management_pb2_connect.py +275 -0
  115. otdf_python_proto/policy/namespaces/namespaces_pb2.py +117 -0
  116. otdf_python_proto/policy/namespaces/namespaces_pb2.pyi +147 -0
  117. otdf_python_proto/policy/namespaces/namespaces_pb2_connect.py +443 -0
  118. otdf_python_proto/policy/objects_pb2.py +150 -0
  119. otdf_python_proto/policy/objects_pb2.pyi +464 -0
  120. otdf_python_proto/policy/registeredresources/registered_resources_pb2.py +139 -0
  121. otdf_python_proto/policy/registeredresources/registered_resources_pb2.pyi +196 -0
  122. otdf_python_proto/policy/registeredresources/registered_resources_pb2_connect.py +527 -0
  123. otdf_python_proto/policy/resourcemapping/resource_mapping_pb2.py +139 -0
  124. otdf_python_proto/policy/resourcemapping/resource_mapping_pb2.pyi +194 -0
  125. otdf_python_proto/policy/resourcemapping/resource_mapping_pb2_connect.py +527 -0
  126. otdf_python_proto/policy/selectors_pb2.py +57 -0
  127. otdf_python_proto/policy/selectors_pb2.pyi +90 -0
  128. otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.py +127 -0
  129. otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.pyi +189 -0
  130. otdf_python_proto/policy/subjectmapping/subject_mapping_pb2_connect.py +569 -0
  131. otdf_python_proto/policy/unsafe/unsafe_pb2.py +113 -0
  132. otdf_python_proto/policy/unsafe/unsafe_pb2.pyi +145 -0
  133. otdf_python_proto/policy/unsafe/unsafe_pb2_connect.py +485 -0
  134. otdf_python_proto/wellknownconfiguration/__init__.py +1 -0
  135. otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2.py +51 -0
  136. otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2.pyi +32 -0
  137. otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2_connect.py +107 -0
  138. otdf_python/_gotdf_python.cpython-312-darwin.so +0 -0
  139. otdf_python/build.py +0 -190
  140. otdf_python/go.py +0 -1478
  141. otdf_python/gotdf_python.py +0 -383
  142. otdf_python-0.1.10.dist-info/METADATA +0 -149
  143. otdf_python-0.1.10.dist-info/RECORD +0 -10
  144. otdf_python-0.1.10.dist-info/top_level.txt +0 -1
@@ -0,0 +1,149 @@
1
+ # Generated Connect client code
2
+
3
+ from __future__ import annotations
4
+ from collections.abc import AsyncIterator
5
+ from collections.abc import Iterator
6
+ from collections.abc import Iterable
7
+ import aiohttp
8
+ import urllib3
9
+ import typing
10
+ import sys
11
+
12
+ from connectrpc.client_async import AsyncConnectClient
13
+ from connectrpc.client_sync import ConnectClient
14
+ from connectrpc.client_protocol import ConnectProtocol
15
+ from connectrpc.client_connect import ConnectProtocolError
16
+ from connectrpc.headers import HeaderInput
17
+ from connectrpc.server import ClientRequest
18
+ from connectrpc.server import ClientStream
19
+ from connectrpc.server import ServerResponse
20
+ from connectrpc.server import ServerStream
21
+ from connectrpc.server_sync import ConnectWSGI
22
+ from connectrpc.streams import StreamInput
23
+ from connectrpc.streams import AsyncStreamOutput
24
+ from connectrpc.streams import StreamOutput
25
+ from connectrpc.unary import UnaryOutput
26
+ from connectrpc.unary import ClientStreamingOutput
27
+
28
+ if typing.TYPE_CHECKING:
29
+ # wsgiref.types was added in Python 3.11.
30
+ if sys.version_info >= (3, 11):
31
+ from wsgiref.types import WSGIApplication
32
+ else:
33
+ from _typeshed.wsgi import WSGIApplication
34
+
35
+ import entityresolution.entity_resolution_pb2
36
+
37
+ class EntityResolutionServiceClient:
38
+ def __init__(
39
+ self,
40
+ base_url: str,
41
+ http_client: urllib3.PoolManager | None = None,
42
+ protocol: ConnectProtocol = ConnectProtocol.CONNECT_PROTOBUF,
43
+ ):
44
+ self.base_url = base_url
45
+ self._connect_client = ConnectClient(http_client, protocol)
46
+ def call_resolve_entities(
47
+ self, req: entityresolution.entity_resolution_pb2.ResolveEntitiesRequest,extra_headers: HeaderInput | None=None, timeout_seconds: float | None=None
48
+ ) -> UnaryOutput[entityresolution.entity_resolution_pb2.ResolveEntitiesResponse]:
49
+ """Low-level method to call ResolveEntities, granting access to errors and metadata"""
50
+ url = self.base_url + "/entityresolution.EntityResolutionService/ResolveEntities"
51
+ return self._connect_client.call_unary(url, req, entityresolution.entity_resolution_pb2.ResolveEntitiesResponse,extra_headers, timeout_seconds)
52
+
53
+
54
+ def resolve_entities(
55
+ self, req: entityresolution.entity_resolution_pb2.ResolveEntitiesRequest,extra_headers: HeaderInput | None=None, timeout_seconds: float | None=None
56
+ ) -> entityresolution.entity_resolution_pb2.ResolveEntitiesResponse:
57
+ response = self.call_resolve_entities(req, extra_headers, timeout_seconds)
58
+ err = response.error()
59
+ if err is not None:
60
+ raise err
61
+ msg = response.message()
62
+ if msg is None:
63
+ raise ConnectProtocolError('missing response message')
64
+ return msg
65
+
66
+ def call_create_entity_chain_from_jwt(
67
+ self, req: entityresolution.entity_resolution_pb2.CreateEntityChainFromJwtRequest,extra_headers: HeaderInput | None=None, timeout_seconds: float | None=None
68
+ ) -> UnaryOutput[entityresolution.entity_resolution_pb2.CreateEntityChainFromJwtResponse]:
69
+ """Low-level method to call CreateEntityChainFromJwt, granting access to errors and metadata"""
70
+ url = self.base_url + "/entityresolution.EntityResolutionService/CreateEntityChainFromJwt"
71
+ return self._connect_client.call_unary(url, req, entityresolution.entity_resolution_pb2.CreateEntityChainFromJwtResponse,extra_headers, timeout_seconds)
72
+
73
+
74
+ def create_entity_chain_from_jwt(
75
+ self, req: entityresolution.entity_resolution_pb2.CreateEntityChainFromJwtRequest,extra_headers: HeaderInput | None=None, timeout_seconds: float | None=None
76
+ ) -> entityresolution.entity_resolution_pb2.CreateEntityChainFromJwtResponse:
77
+ response = self.call_create_entity_chain_from_jwt(req, extra_headers, timeout_seconds)
78
+ err = response.error()
79
+ if err is not None:
80
+ raise err
81
+ msg = response.message()
82
+ if msg is None:
83
+ raise ConnectProtocolError('missing response message')
84
+ return msg
85
+
86
+
87
+ class AsyncEntityResolutionServiceClient:
88
+ def __init__(
89
+ self,
90
+ base_url: str,
91
+ http_client: aiohttp.ClientSession,
92
+ protocol: ConnectProtocol = ConnectProtocol.CONNECT_PROTOBUF,
93
+ ):
94
+ self.base_url = base_url
95
+ self._connect_client = AsyncConnectClient(http_client, protocol)
96
+
97
+ async def call_resolve_entities(
98
+ self, req: entityresolution.entity_resolution_pb2.ResolveEntitiesRequest,extra_headers: HeaderInput | None=None, timeout_seconds: float | None=None
99
+ ) -> UnaryOutput[entityresolution.entity_resolution_pb2.ResolveEntitiesResponse]:
100
+ """Low-level method to call ResolveEntities, granting access to errors and metadata"""
101
+ url = self.base_url + "/entityresolution.EntityResolutionService/ResolveEntities"
102
+ return await self._connect_client.call_unary(url, req, entityresolution.entity_resolution_pb2.ResolveEntitiesResponse,extra_headers, timeout_seconds)
103
+
104
+ async def resolve_entities(
105
+ self, req: entityresolution.entity_resolution_pb2.ResolveEntitiesRequest,extra_headers: HeaderInput | None=None, timeout_seconds: float | None=None
106
+ ) -> entityresolution.entity_resolution_pb2.ResolveEntitiesResponse:
107
+ response = await self.call_resolve_entities(req, extra_headers, timeout_seconds)
108
+ err = response.error()
109
+ if err is not None:
110
+ raise err
111
+ msg = response.message()
112
+ if msg is None:
113
+ raise ConnectProtocolError('missing response message')
114
+ return msg
115
+
116
+ async def call_create_entity_chain_from_jwt(
117
+ self, req: entityresolution.entity_resolution_pb2.CreateEntityChainFromJwtRequest,extra_headers: HeaderInput | None=None, timeout_seconds: float | None=None
118
+ ) -> UnaryOutput[entityresolution.entity_resolution_pb2.CreateEntityChainFromJwtResponse]:
119
+ """Low-level method to call CreateEntityChainFromJwt, granting access to errors and metadata"""
120
+ url = self.base_url + "/entityresolution.EntityResolutionService/CreateEntityChainFromJwt"
121
+ return await self._connect_client.call_unary(url, req, entityresolution.entity_resolution_pb2.CreateEntityChainFromJwtResponse,extra_headers, timeout_seconds)
122
+
123
+ async def create_entity_chain_from_jwt(
124
+ self, req: entityresolution.entity_resolution_pb2.CreateEntityChainFromJwtRequest,extra_headers: HeaderInput | None=None, timeout_seconds: float | None=None
125
+ ) -> entityresolution.entity_resolution_pb2.CreateEntityChainFromJwtResponse:
126
+ response = await self.call_create_entity_chain_from_jwt(req, extra_headers, timeout_seconds)
127
+ err = response.error()
128
+ if err is not None:
129
+ raise err
130
+ msg = response.message()
131
+ if msg is None:
132
+ raise ConnectProtocolError('missing response message')
133
+ return msg
134
+
135
+
136
+ @typing.runtime_checkable
137
+ class EntityResolutionServiceProtocol(typing.Protocol):
138
+ def resolve_entities(self, req: ClientRequest[entityresolution.entity_resolution_pb2.ResolveEntitiesRequest]) -> ServerResponse[entityresolution.entity_resolution_pb2.ResolveEntitiesResponse]:
139
+ ...
140
+ def create_entity_chain_from_jwt(self, req: ClientRequest[entityresolution.entity_resolution_pb2.CreateEntityChainFromJwtRequest]) -> ServerResponse[entityresolution.entity_resolution_pb2.CreateEntityChainFromJwtResponse]:
141
+ ...
142
+
143
+ ENTITY_RESOLUTION_SERVICE_PATH_PREFIX = "/entityresolution.EntityResolutionService"
144
+
145
+ def wsgi_entity_resolution_service(implementation: EntityResolutionServiceProtocol) -> WSGIApplication:
146
+ app = ConnectWSGI()
147
+ app.register_unary_rpc("/entityresolution.EntityResolutionService/ResolveEntities", implementation.resolve_entities, entityresolution.entity_resolution_pb2.ResolveEntitiesRequest)
148
+ app.register_unary_rpc("/entityresolution.EntityResolutionService/CreateEntityChainFromJwt", implementation.create_entity_chain_from_jwt, entityresolution.entity_resolution_pb2.CreateEntityChainFromJwtRequest)
149
+ return app
@@ -0,0 +1,55 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: entityresolution/v2/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/v2/entity_resolution.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 any_pb2 as google_dot_protobuf_dot_any__pb2
28
+ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
29
+
30
+
31
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+entityresolution/v2/entity_resolution.proto\x12\x13\x65ntityresolution.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x13\x65ntity/entity.proto\x1a\x19google/protobuf/any.proto\x1a\x1cgoogle/protobuf/struct.proto\"{\n\x14\x45ntityRepresentation\x12\x1f\n\x0boriginal_id\x18\x01 \x01(\tR\noriginalId\x12\x42\n\x10\x61\x64\x64itional_props\x18\x02 \x03(\x0b\x32\x17.google.protobuf.StructR\x0f\x61\x64\x64itionalProps\"Q\n\x16ResolveEntitiesRequest\x12\x37\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x0e.entity.EntityB\x0b\xbaH\x08\x92\x01\x02\x08\x01\xc8\x01\x01R\x08\x65ntities\"{\n\x17ResolveEntitiesResponse\x12`\n\x16\x65ntity_representations\x18\x01 \x03(\x0b\x32).entityresolution.v2.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\"L\n#CreateEntityChainsFromTokensRequest\x12%\n\x06tokens\x18\x01 \x03(\x0b\x32\r.entity.TokenR\x06tokens\"`\n$CreateEntityChainsFromTokensResponse\x12\x38\n\rentity_chains\x18\x01 \x03(\x0b\x32\x13.entity.EntityChainR\x0c\x65ntityChains2\xa1\x02\n\x17\x45ntityResolutionService\x12n\n\x0fResolveEntities\x12+.entityresolution.v2.ResolveEntitiesRequest\x1a,.entityresolution.v2.ResolveEntitiesResponse\"\x00\x12\x95\x01\n\x1c\x43reateEntityChainsFromTokens\x12\x38.entityresolution.v2.CreateEntityChainsFromTokensRequest\x1a\x39.entityresolution.v2.CreateEntityChainsFromTokensResponse\"\x00\x42\x9d\x01\n\x17\x63om.entityresolution.v2B\x15\x45ntityResolutionProtoP\x01\xa2\x02\x03\x45XX\xaa\x02\x13\x45ntityresolution.V2\xca\x02\x13\x45ntityresolution\\V2\xe2\x02\x1f\x45ntityresolution\\V2\\GPBMetadata\xea\x02\x14\x45ntityresolution::V2b\x06proto3')
32
+
33
+ _globals = globals()
34
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
35
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'entityresolution.v2.entity_resolution_pb2', _globals)
36
+ if not _descriptor._USE_C_DESCRIPTORS:
37
+ _globals['DESCRIPTOR']._loaded_options = None
38
+ _globals['DESCRIPTOR']._serialized_options = b'\n\027com.entityresolution.v2B\025EntityResolutionProtoP\001\242\002\003EXX\252\002\023Entityresolution.V2\312\002\023Entityresolution\\V2\342\002\037Entityresolution\\V2\\GPBMetadata\352\002\024Entityresolution::V2'
39
+ _globals['_RESOLVEENTITIESREQUEST'].fields_by_name['entities']._loaded_options = None
40
+ _globals['_RESOLVEENTITIESREQUEST'].fields_by_name['entities']._serialized_options = b'\272H\010\222\001\002\010\001\310\001\001'
41
+ _globals['_ENTITYREPRESENTATION']._serialized_start=175
42
+ _globals['_ENTITYREPRESENTATION']._serialized_end=298
43
+ _globals['_RESOLVEENTITIESREQUEST']._serialized_start=300
44
+ _globals['_RESOLVEENTITIESREQUEST']._serialized_end=381
45
+ _globals['_RESOLVEENTITIESRESPONSE']._serialized_start=383
46
+ _globals['_RESOLVEENTITIESRESPONSE']._serialized_end=506
47
+ _globals['_ENTITYNOTFOUNDERROR']._serialized_start=509
48
+ _globals['_ENTITYNOTFOUNDERROR']._serialized_end=648
49
+ _globals['_CREATEENTITYCHAINSFROMTOKENSREQUEST']._serialized_start=650
50
+ _globals['_CREATEENTITYCHAINSFROMTOKENSREQUEST']._serialized_end=726
51
+ _globals['_CREATEENTITYCHAINSFROMTOKENSRESPONSE']._serialized_start=728
52
+ _globals['_CREATEENTITYCHAINSFROMTOKENSRESPONSE']._serialized_end=824
53
+ _globals['_ENTITYRESOLUTIONSERVICE']._serialized_start=827
54
+ _globals['_ENTITYRESOLUTIONSERVICE']._serialized_end=1116
55
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,55 @@
1
+ from buf.validate import validate_pb2 as _validate_pb2
2
+ from entity import entity_pb2 as _entity_pb2
3
+ from google.protobuf import any_pb2 as _any_pb2
4
+ from google.protobuf import struct_pb2 as _struct_pb2
5
+ from google.protobuf.internal import containers as _containers
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import message as _message
8
+ from collections.abc import Iterable as _Iterable, Mapping as _Mapping
9
+ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
10
+
11
+ DESCRIPTOR: _descriptor.FileDescriptor
12
+
13
+ class EntityRepresentation(_message.Message):
14
+ __slots__ = ("original_id", "additional_props")
15
+ ORIGINAL_ID_FIELD_NUMBER: _ClassVar[int]
16
+ ADDITIONAL_PROPS_FIELD_NUMBER: _ClassVar[int]
17
+ original_id: str
18
+ additional_props: _containers.RepeatedCompositeFieldContainer[_struct_pb2.Struct]
19
+ def __init__(self, original_id: _Optional[str] = ..., additional_props: _Optional[_Iterable[_Union[_struct_pb2.Struct, _Mapping]]] = ...) -> None: ...
20
+
21
+ class ResolveEntitiesRequest(_message.Message):
22
+ __slots__ = ("entities",)
23
+ ENTITIES_FIELD_NUMBER: _ClassVar[int]
24
+ entities: _containers.RepeatedCompositeFieldContainer[_entity_pb2.Entity]
25
+ def __init__(self, entities: _Optional[_Iterable[_Union[_entity_pb2.Entity, _Mapping]]] = ...) -> None: ...
26
+
27
+ class ResolveEntitiesResponse(_message.Message):
28
+ __slots__ = ("entity_representations",)
29
+ ENTITY_REPRESENTATIONS_FIELD_NUMBER: _ClassVar[int]
30
+ entity_representations: _containers.RepeatedCompositeFieldContainer[EntityRepresentation]
31
+ def __init__(self, entity_representations: _Optional[_Iterable[_Union[EntityRepresentation, _Mapping]]] = ...) -> None: ...
32
+
33
+ class EntityNotFoundError(_message.Message):
34
+ __slots__ = ("code", "message", "details", "entity")
35
+ CODE_FIELD_NUMBER: _ClassVar[int]
36
+ MESSAGE_FIELD_NUMBER: _ClassVar[int]
37
+ DETAILS_FIELD_NUMBER: _ClassVar[int]
38
+ ENTITY_FIELD_NUMBER: _ClassVar[int]
39
+ code: int
40
+ message: str
41
+ details: _containers.RepeatedCompositeFieldContainer[_any_pb2.Any]
42
+ entity: str
43
+ def __init__(self, code: _Optional[int] = ..., message: _Optional[str] = ..., details: _Optional[_Iterable[_Union[_any_pb2.Any, _Mapping]]] = ..., entity: _Optional[str] = ...) -> None: ...
44
+
45
+ class CreateEntityChainsFromTokensRequest(_message.Message):
46
+ __slots__ = ("tokens",)
47
+ TOKENS_FIELD_NUMBER: _ClassVar[int]
48
+ tokens: _containers.RepeatedCompositeFieldContainer[_entity_pb2.Token]
49
+ def __init__(self, tokens: _Optional[_Iterable[_Union[_entity_pb2.Token, _Mapping]]] = ...) -> None: ...
50
+
51
+ class CreateEntityChainsFromTokensResponse(_message.Message):
52
+ __slots__ = ("entity_chains",)
53
+ ENTITY_CHAINS_FIELD_NUMBER: _ClassVar[int]
54
+ entity_chains: _containers.RepeatedCompositeFieldContainer[_entity_pb2.EntityChain]
55
+ def __init__(self, entity_chains: _Optional[_Iterable[_Union[_entity_pb2.EntityChain, _Mapping]]] = ...) -> None: ...
@@ -0,0 +1,149 @@
1
+ # Generated Connect client code
2
+
3
+ from __future__ import annotations
4
+ from collections.abc import AsyncIterator
5
+ from collections.abc import Iterator
6
+ from collections.abc import Iterable
7
+ import aiohttp
8
+ import urllib3
9
+ import typing
10
+ import sys
11
+
12
+ from connectrpc.client_async import AsyncConnectClient
13
+ from connectrpc.client_sync import ConnectClient
14
+ from connectrpc.client_protocol import ConnectProtocol
15
+ from connectrpc.client_connect import ConnectProtocolError
16
+ from connectrpc.headers import HeaderInput
17
+ from connectrpc.server import ClientRequest
18
+ from connectrpc.server import ClientStream
19
+ from connectrpc.server import ServerResponse
20
+ from connectrpc.server import ServerStream
21
+ from connectrpc.server_sync import ConnectWSGI
22
+ from connectrpc.streams import StreamInput
23
+ from connectrpc.streams import AsyncStreamOutput
24
+ from connectrpc.streams import StreamOutput
25
+ from connectrpc.unary import UnaryOutput
26
+ from connectrpc.unary import ClientStreamingOutput
27
+
28
+ if typing.TYPE_CHECKING:
29
+ # wsgiref.types was added in Python 3.11.
30
+ if sys.version_info >= (3, 11):
31
+ from wsgiref.types import WSGIApplication
32
+ else:
33
+ from _typeshed.wsgi import WSGIApplication
34
+
35
+ import entityresolution.v2.entity_resolution_pb2
36
+
37
+ class EntityResolutionServiceClient:
38
+ def __init__(
39
+ self,
40
+ base_url: str,
41
+ http_client: urllib3.PoolManager | None = None,
42
+ protocol: ConnectProtocol = ConnectProtocol.CONNECT_PROTOBUF,
43
+ ):
44
+ self.base_url = base_url
45
+ self._connect_client = ConnectClient(http_client, protocol)
46
+ def call_resolve_entities(
47
+ self, req: entityresolution.v2.entity_resolution_pb2.ResolveEntitiesRequest,extra_headers: HeaderInput | None=None, timeout_seconds: float | None=None
48
+ ) -> UnaryOutput[entityresolution.v2.entity_resolution_pb2.ResolveEntitiesResponse]:
49
+ """Low-level method to call ResolveEntities, granting access to errors and metadata"""
50
+ url = self.base_url + "/entityresolution.v2.EntityResolutionService/ResolveEntities"
51
+ return self._connect_client.call_unary(url, req, entityresolution.v2.entity_resolution_pb2.ResolveEntitiesResponse,extra_headers, timeout_seconds)
52
+
53
+
54
+ def resolve_entities(
55
+ self, req: entityresolution.v2.entity_resolution_pb2.ResolveEntitiesRequest,extra_headers: HeaderInput | None=None, timeout_seconds: float | None=None
56
+ ) -> entityresolution.v2.entity_resolution_pb2.ResolveEntitiesResponse:
57
+ response = self.call_resolve_entities(req, extra_headers, timeout_seconds)
58
+ err = response.error()
59
+ if err is not None:
60
+ raise err
61
+ msg = response.message()
62
+ if msg is None:
63
+ raise ConnectProtocolError('missing response message')
64
+ return msg
65
+
66
+ def call_create_entity_chains_from_tokens(
67
+ self, req: entityresolution.v2.entity_resolution_pb2.CreateEntityChainsFromTokensRequest,extra_headers: HeaderInput | None=None, timeout_seconds: float | None=None
68
+ ) -> UnaryOutput[entityresolution.v2.entity_resolution_pb2.CreateEntityChainsFromTokensResponse]:
69
+ """Low-level method to call CreateEntityChainsFromTokens, granting access to errors and metadata"""
70
+ url = self.base_url + "/entityresolution.v2.EntityResolutionService/CreateEntityChainsFromTokens"
71
+ return self._connect_client.call_unary(url, req, entityresolution.v2.entity_resolution_pb2.CreateEntityChainsFromTokensResponse,extra_headers, timeout_seconds)
72
+
73
+
74
+ def create_entity_chains_from_tokens(
75
+ self, req: entityresolution.v2.entity_resolution_pb2.CreateEntityChainsFromTokensRequest,extra_headers: HeaderInput | None=None, timeout_seconds: float | None=None
76
+ ) -> entityresolution.v2.entity_resolution_pb2.CreateEntityChainsFromTokensResponse:
77
+ response = self.call_create_entity_chains_from_tokens(req, extra_headers, timeout_seconds)
78
+ err = response.error()
79
+ if err is not None:
80
+ raise err
81
+ msg = response.message()
82
+ if msg is None:
83
+ raise ConnectProtocolError('missing response message')
84
+ return msg
85
+
86
+
87
+ class AsyncEntityResolutionServiceClient:
88
+ def __init__(
89
+ self,
90
+ base_url: str,
91
+ http_client: aiohttp.ClientSession,
92
+ protocol: ConnectProtocol = ConnectProtocol.CONNECT_PROTOBUF,
93
+ ):
94
+ self.base_url = base_url
95
+ self._connect_client = AsyncConnectClient(http_client, protocol)
96
+
97
+ async def call_resolve_entities(
98
+ self, req: entityresolution.v2.entity_resolution_pb2.ResolveEntitiesRequest,extra_headers: HeaderInput | None=None, timeout_seconds: float | None=None
99
+ ) -> UnaryOutput[entityresolution.v2.entity_resolution_pb2.ResolveEntitiesResponse]:
100
+ """Low-level method to call ResolveEntities, granting access to errors and metadata"""
101
+ url = self.base_url + "/entityresolution.v2.EntityResolutionService/ResolveEntities"
102
+ return await self._connect_client.call_unary(url, req, entityresolution.v2.entity_resolution_pb2.ResolveEntitiesResponse,extra_headers, timeout_seconds)
103
+
104
+ async def resolve_entities(
105
+ self, req: entityresolution.v2.entity_resolution_pb2.ResolveEntitiesRequest,extra_headers: HeaderInput | None=None, timeout_seconds: float | None=None
106
+ ) -> entityresolution.v2.entity_resolution_pb2.ResolveEntitiesResponse:
107
+ response = await self.call_resolve_entities(req, extra_headers, timeout_seconds)
108
+ err = response.error()
109
+ if err is not None:
110
+ raise err
111
+ msg = response.message()
112
+ if msg is None:
113
+ raise ConnectProtocolError('missing response message')
114
+ return msg
115
+
116
+ async def call_create_entity_chains_from_tokens(
117
+ self, req: entityresolution.v2.entity_resolution_pb2.CreateEntityChainsFromTokensRequest,extra_headers: HeaderInput | None=None, timeout_seconds: float | None=None
118
+ ) -> UnaryOutput[entityresolution.v2.entity_resolution_pb2.CreateEntityChainsFromTokensResponse]:
119
+ """Low-level method to call CreateEntityChainsFromTokens, granting access to errors and metadata"""
120
+ url = self.base_url + "/entityresolution.v2.EntityResolutionService/CreateEntityChainsFromTokens"
121
+ return await self._connect_client.call_unary(url, req, entityresolution.v2.entity_resolution_pb2.CreateEntityChainsFromTokensResponse,extra_headers, timeout_seconds)
122
+
123
+ async def create_entity_chains_from_tokens(
124
+ self, req: entityresolution.v2.entity_resolution_pb2.CreateEntityChainsFromTokensRequest,extra_headers: HeaderInput | None=None, timeout_seconds: float | None=None
125
+ ) -> entityresolution.v2.entity_resolution_pb2.CreateEntityChainsFromTokensResponse:
126
+ response = await self.call_create_entity_chains_from_tokens(req, extra_headers, timeout_seconds)
127
+ err = response.error()
128
+ if err is not None:
129
+ raise err
130
+ msg = response.message()
131
+ if msg is None:
132
+ raise ConnectProtocolError('missing response message')
133
+ return msg
134
+
135
+
136
+ @typing.runtime_checkable
137
+ class EntityResolutionServiceProtocol(typing.Protocol):
138
+ def resolve_entities(self, req: ClientRequest[entityresolution.v2.entity_resolution_pb2.ResolveEntitiesRequest]) -> ServerResponse[entityresolution.v2.entity_resolution_pb2.ResolveEntitiesResponse]:
139
+ ...
140
+ def create_entity_chains_from_tokens(self, req: ClientRequest[entityresolution.v2.entity_resolution_pb2.CreateEntityChainsFromTokensRequest]) -> ServerResponse[entityresolution.v2.entity_resolution_pb2.CreateEntityChainsFromTokensResponse]:
141
+ ...
142
+
143
+ ENTITY_RESOLUTION_SERVICE_PATH_PREFIX = "/entityresolution.v2.EntityResolutionService"
144
+
145
+ def wsgi_entity_resolution_service(implementation: EntityResolutionServiceProtocol) -> WSGIApplication:
146
+ app = ConnectWSGI()
147
+ app.register_unary_rpc("/entityresolution.v2.EntityResolutionService/ResolveEntities", implementation.resolve_entities, entityresolution.v2.entity_resolution_pb2.ResolveEntitiesRequest)
148
+ app.register_unary_rpc("/entityresolution.v2.EntityResolutionService/CreateEntityChainsFromTokens", implementation.create_entity_chains_from_tokens, entityresolution.v2.entity_resolution_pb2.CreateEntityChainsFromTokensRequest)
149
+ return app
@@ -0,0 +1,9 @@
1
+ """KAS (Key Access Service) protobuf definitions."""
2
+
3
+ from .kas_pb2 import *
4
+ from .kas_pb2_connect import AccessServiceClient, AsyncAccessServiceClient
5
+
6
+ __all__ = [
7
+ "AccessServiceClient",
8
+ "AsyncAccessServiceClient",
9
+ ]
@@ -0,0 +1,103 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: kas/kas.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
+ 'kas/kas.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
26
+ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
27
+ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
28
+ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2
29
+
30
+
31
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rkas/kas.proto\x12\x03kas\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\r\n\x0bInfoRequest\"(\n\x0cInfoResponse\x12\x18\n\x07version\x18\x01 \x01(\tR\x07version\"6\n\x16LegacyPublicKeyRequest\x12\x1c\n\talgorithm\x18\x01 \x01(\tR\talgorithm\";\n\rPolicyBinding\x12\x16\n\talgorithm\x18\x01 \x01(\tR\x03\x61lg\x12\x12\n\x04hash\x18\x02 \x01(\tR\x04hash\"\xd3\x02\n\tKeyAccess\x12-\n\x12\x65ncrypted_metadata\x18\x01 \x01(\tR\x11\x65ncryptedMetadata\x12\x39\n\x0epolicy_binding\x18\x02 \x01(\x0b\x32\x12.kas.PolicyBindingR\rpolicyBinding\x12\x1a\n\x08protocol\x18\x03 \x01(\tR\x08protocol\x12\x16\n\x08key_type\x18\x04 \x01(\tR\x04type\x12\x14\n\x07kas_url\x18\x05 \x01(\tR\x03url\x12\x10\n\x03kid\x18\x06 \x01(\tR\x03kid\x12\x15\n\x08split_id\x18\x07 \x01(\tR\x03sid\x12\x1f\n\x0bwrapped_key\x18\x08 \x01(\x0cR\nwrappedKey\x12\x16\n\x06header\x18\t \x01(\x0cR\x06header\x12\x30\n\x14\x65phemeral_public_key\x18\n \x01(\tR\x12\x65phemeralPublicKey\"\x86\x05\n\x15UnsignedRewrapRequest\x12*\n\x11\x63lient_public_key\x18\x01 \x01(\tR\x0f\x63lientPublicKey\x12H\n\x08requests\x18\x02 \x03(\x0b\x32,.kas.UnsignedRewrapRequest.WithPolicyRequestR\x08requests\x12\x31\n\nkey_access\x18\x03 \x01(\x0b\x32\x0e.kas.KeyAccessB\x02\x18\x01R\tkeyAccess\x12\x1a\n\x06policy\x18\x04 \x01(\tB\x02\x18\x01R\x06policy\x12 \n\talgorithm\x18\x05 \x01(\tB\x02\x18\x01R\talgorithm\x1a\x30\n\nWithPolicy\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04\x62ody\x18\x02 \x01(\tR\x04\x62ody\x1a\x82\x01\n\x13WithKeyAccessObject\x12/\n\x14key_access_object_id\x18\x01 \x01(\tR\x11keyAccessObjectId\x12:\n\x11key_access_object\x18\x02 \x01(\x0b\x32\x0e.kas.KeyAccessR\x0fkeyAccessObject\x1a\xce\x01\n\x11WithPolicyRequest\x12\\\n\x12key_access_objects\x18\x01 \x03(\x0b\x32..kas.UnsignedRewrapRequest.WithKeyAccessObjectR\x10keyAccessObjects\x12=\n\x06policy\x18\x02 \x01(\x0b\x32%.kas.UnsignedRewrapRequest.WithPolicyR\x06policy\x12\x1c\n\talgorithm\x18\x03 \x01(\tR\talgorithm\"\xb1\x01\n\x10PublicKeyRequest\x12Q\n\talgorithm\x18\x01 \x01(\tB3\x92\x41\x30\x32.algorithm type rsa:<keysize> or ec:<curvename>R\talgorithm\x12&\n\x03\x66mt\x18\x02 \x01(\tB\x14\x92\x41\x11\x32\x0fresponse formatR\x03\x66mt\x12\"\n\x01v\x18\x03 \x01(\tB\x14\x92\x41\x11\x32\x0frequest versionR\x01v\"D\n\x11PublicKeyResponse\x12\x1d\n\npublic_key\x18\x01 \x01(\tR\tpublicKey\x12\x10\n\x03kid\x18\x02 \x01(\tR\x03kid\"O\n\rRewrapRequest\x12\x30\n\x14signed_request_token\x18\x01 \x01(\tR\x12signedRequestTokenJ\x04\x08\x02\x10\x03R\x06\x62\x65\x61rer\"\xc7\x02\n\x15KeyAccessRewrapResult\x12\x44\n\x08metadata\x18\x01 \x03(\x0b\x32(.kas.KeyAccessRewrapResult.MetadataEntryR\x08metadata\x12/\n\x14key_access_object_id\x18\x02 \x01(\tR\x11keyAccessObjectId\x12\x16\n\x06status\x18\x03 \x01(\tR\x06status\x12(\n\x0fkas_wrapped_key\x18\x04 \x01(\x0cH\x00R\rkasWrappedKey\x12\x16\n\x05\x65rror\x18\x05 \x01(\tH\x00R\x05\x65rror\x1aS\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value:\x02\x38\x01\x42\x08\n\x06result\"g\n\x12PolicyRewrapResult\x12\x1b\n\tpolicy_id\x18\x01 \x01(\tR\x08policyId\x12\x34\n\x07results\x18\x02 \x03(\x0b\x32\x1a.kas.KeyAccessRewrapResultR\x07results\"\xea\x02\n\x0eRewrapResponse\x12\x41\n\x08metadata\x18\x01 \x03(\x0b\x32!.kas.RewrapResponse.MetadataEntryB\x02\x18\x01R\x08metadata\x12\x30\n\x12\x65ntity_wrapped_key\x18\x02 \x01(\x0c\x42\x02\x18\x01R\x10\x65ntityWrappedKey\x12,\n\x12session_public_key\x18\x03 \x01(\tR\x10sessionPublicKey\x12)\n\x0eschema_version\x18\x04 \x01(\tB\x02\x18\x01R\rschemaVersion\x12\x35\n\tresponses\x18\x05 \x03(\x0b\x32\x17.kas.PolicyRewrapResultR\tresponses\x1aS\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value:\x02\x38\x01\x32\xd1\x02\n\rAccessService\x12i\n\tPublicKey\x12\x15.kas.PublicKeyRequest\x1a\x16.kas.PublicKeyResponse\"-\x90\x02\x01\x92\x41\tJ\x07\n\x03\x32\x30\x30\x12\x00\x82\xd3\xe4\x93\x02\x18\x12\x16/kas/v2/kas_public_key\x12{\n\x0fLegacyPublicKey\x12\x1b.kas.LegacyPublicKeyRequest\x1a\x1c.google.protobuf.StringValue\"-\x88\x02\x01\x90\x02\x01\x92\x41\tJ\x07\n\x03\x32\x30\x30\x12\x00\x82\xd3\xe4\x93\x02\x15\x12\x13/kas/kas_public_key\x12X\n\x06Rewrap\x12\x12.kas.RewrapRequest\x1a\x13.kas.RewrapResponse\"%\x92\x41\tJ\x07\n\x03\x32\x30\x30\x12\x00\x82\xd3\xe4\x93\x02\x13\"\x0e/kas/v2/rewrap:\x01*B\xb5\x01\n\x07\x63om.kasB\x08KasProtoP\x01\xa2\x02\x03KXX\xaa\x02\x03Kas\xca\x02\x03Kas\xe2\x02\x0fKas\\GPBMetadata\xea\x02\x03Kas\x92\x41s\x12q\n\x1aOpenTDF Key Access Service*L\n\x12\x42SD 3-Clause Clear\x12\x36https://github.com/opentdf/backend/blob/master/LICENSE2\x05\x31.5.0b\x06proto3')
32
+
33
+ _globals = globals()
34
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
35
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'kas.kas_pb2', _globals)
36
+ if not _descriptor._USE_C_DESCRIPTORS:
37
+ _globals['DESCRIPTOR']._loaded_options = None
38
+ _globals['DESCRIPTOR']._serialized_options = b'\n\007com.kasB\010KasProtoP\001\242\002\003KXX\252\002\003Kas\312\002\003Kas\342\002\017Kas\\GPBMetadata\352\002\003Kas\222As\022q\n\032OpenTDF Key Access Service*L\n\022BSD 3-Clause Clear\0226https://github.com/opentdf/backend/blob/master/LICENSE2\0051.5.0'
39
+ _globals['_UNSIGNEDREWRAPREQUEST'].fields_by_name['key_access']._loaded_options = None
40
+ _globals['_UNSIGNEDREWRAPREQUEST'].fields_by_name['key_access']._serialized_options = b'\030\001'
41
+ _globals['_UNSIGNEDREWRAPREQUEST'].fields_by_name['policy']._loaded_options = None
42
+ _globals['_UNSIGNEDREWRAPREQUEST'].fields_by_name['policy']._serialized_options = b'\030\001'
43
+ _globals['_UNSIGNEDREWRAPREQUEST'].fields_by_name['algorithm']._loaded_options = None
44
+ _globals['_UNSIGNEDREWRAPREQUEST'].fields_by_name['algorithm']._serialized_options = b'\030\001'
45
+ _globals['_PUBLICKEYREQUEST'].fields_by_name['algorithm']._loaded_options = None
46
+ _globals['_PUBLICKEYREQUEST'].fields_by_name['algorithm']._serialized_options = b'\222A02.algorithm type rsa:<keysize> or ec:<curvename>'
47
+ _globals['_PUBLICKEYREQUEST'].fields_by_name['fmt']._loaded_options = None
48
+ _globals['_PUBLICKEYREQUEST'].fields_by_name['fmt']._serialized_options = b'\222A\0212\017response format'
49
+ _globals['_PUBLICKEYREQUEST'].fields_by_name['v']._loaded_options = None
50
+ _globals['_PUBLICKEYREQUEST'].fields_by_name['v']._serialized_options = b'\222A\0212\017request version'
51
+ _globals['_KEYACCESSREWRAPRESULT_METADATAENTRY']._loaded_options = None
52
+ _globals['_KEYACCESSREWRAPRESULT_METADATAENTRY']._serialized_options = b'8\001'
53
+ _globals['_REWRAPRESPONSE_METADATAENTRY']._loaded_options = None
54
+ _globals['_REWRAPRESPONSE_METADATAENTRY']._serialized_options = b'8\001'
55
+ _globals['_REWRAPRESPONSE'].fields_by_name['metadata']._loaded_options = None
56
+ _globals['_REWRAPRESPONSE'].fields_by_name['metadata']._serialized_options = b'\030\001'
57
+ _globals['_REWRAPRESPONSE'].fields_by_name['entity_wrapped_key']._loaded_options = None
58
+ _globals['_REWRAPRESPONSE'].fields_by_name['entity_wrapped_key']._serialized_options = b'\030\001'
59
+ _globals['_REWRAPRESPONSE'].fields_by_name['schema_version']._loaded_options = None
60
+ _globals['_REWRAPRESPONSE'].fields_by_name['schema_version']._serialized_options = b'\030\001'
61
+ _globals['_ACCESSSERVICE'].methods_by_name['PublicKey']._loaded_options = None
62
+ _globals['_ACCESSSERVICE'].methods_by_name['PublicKey']._serialized_options = b'\220\002\001\222A\tJ\007\n\003200\022\000\202\323\344\223\002\030\022\026/kas/v2/kas_public_key'
63
+ _globals['_ACCESSSERVICE'].methods_by_name['LegacyPublicKey']._loaded_options = None
64
+ _globals['_ACCESSSERVICE'].methods_by_name['LegacyPublicKey']._serialized_options = b'\210\002\001\220\002\001\222A\tJ\007\n\003200\022\000\202\323\344\223\002\025\022\023/kas/kas_public_key'
65
+ _globals['_ACCESSSERVICE'].methods_by_name['Rewrap']._loaded_options = None
66
+ _globals['_ACCESSSERVICE'].methods_by_name['Rewrap']._serialized_options = b'\222A\tJ\007\n\003200\022\000\202\323\344\223\002\023\"\016/kas/v2/rewrap:\001*'
67
+ _globals['_INFOREQUEST']._serialized_start=162
68
+ _globals['_INFOREQUEST']._serialized_end=175
69
+ _globals['_INFORESPONSE']._serialized_start=177
70
+ _globals['_INFORESPONSE']._serialized_end=217
71
+ _globals['_LEGACYPUBLICKEYREQUEST']._serialized_start=219
72
+ _globals['_LEGACYPUBLICKEYREQUEST']._serialized_end=273
73
+ _globals['_POLICYBINDING']._serialized_start=275
74
+ _globals['_POLICYBINDING']._serialized_end=334
75
+ _globals['_KEYACCESS']._serialized_start=337
76
+ _globals['_KEYACCESS']._serialized_end=676
77
+ _globals['_UNSIGNEDREWRAPREQUEST']._serialized_start=679
78
+ _globals['_UNSIGNEDREWRAPREQUEST']._serialized_end=1325
79
+ _globals['_UNSIGNEDREWRAPREQUEST_WITHPOLICY']._serialized_start=935
80
+ _globals['_UNSIGNEDREWRAPREQUEST_WITHPOLICY']._serialized_end=983
81
+ _globals['_UNSIGNEDREWRAPREQUEST_WITHKEYACCESSOBJECT']._serialized_start=986
82
+ _globals['_UNSIGNEDREWRAPREQUEST_WITHKEYACCESSOBJECT']._serialized_end=1116
83
+ _globals['_UNSIGNEDREWRAPREQUEST_WITHPOLICYREQUEST']._serialized_start=1119
84
+ _globals['_UNSIGNEDREWRAPREQUEST_WITHPOLICYREQUEST']._serialized_end=1325
85
+ _globals['_PUBLICKEYREQUEST']._serialized_start=1328
86
+ _globals['_PUBLICKEYREQUEST']._serialized_end=1505
87
+ _globals['_PUBLICKEYRESPONSE']._serialized_start=1507
88
+ _globals['_PUBLICKEYRESPONSE']._serialized_end=1575
89
+ _globals['_REWRAPREQUEST']._serialized_start=1577
90
+ _globals['_REWRAPREQUEST']._serialized_end=1656
91
+ _globals['_KEYACCESSREWRAPRESULT']._serialized_start=1659
92
+ _globals['_KEYACCESSREWRAPRESULT']._serialized_end=1986
93
+ _globals['_KEYACCESSREWRAPRESULT_METADATAENTRY']._serialized_start=1893
94
+ _globals['_KEYACCESSREWRAPRESULT_METADATAENTRY']._serialized_end=1976
95
+ _globals['_POLICYREWRAPRESULT']._serialized_start=1988
96
+ _globals['_POLICYREWRAPRESULT']._serialized_end=2091
97
+ _globals['_REWRAPRESPONSE']._serialized_start=2094
98
+ _globals['_REWRAPRESPONSE']._serialized_end=2456
99
+ _globals['_REWRAPRESPONSE_METADATAENTRY']._serialized_start=1893
100
+ _globals['_REWRAPRESPONSE_METADATAENTRY']._serialized_end=1976
101
+ _globals['_ACCESSSERVICE']._serialized_start=2459
102
+ _globals['_ACCESSSERVICE']._serialized_end=2796
103
+ # @@protoc_insertion_point(module_scope)