otdf-python 0.4.0__py3-none-any.whl → 0.4.2__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 (96) hide show
  1. otdf_python/__init__.py +1 -2
  2. otdf_python/__main__.py +1 -2
  3. otdf_python/address_normalizer.py +8 -10
  4. otdf_python/aesgcm.py +8 -0
  5. otdf_python/assertion_config.py +21 -0
  6. otdf_python/asym_crypto.py +18 -22
  7. otdf_python/auth_headers.py +7 -6
  8. otdf_python/autoconfigure_utils.py +21 -7
  9. otdf_python/cli.py +5 -5
  10. otdf_python/collection_store.py +13 -1
  11. otdf_python/collection_store_impl.py +5 -0
  12. otdf_python/config.py +13 -0
  13. otdf_python/connect_client.py +1 -0
  14. otdf_python/constants.py +2 -0
  15. otdf_python/crypto_utils.py +4 -0
  16. otdf_python/dpop.py +3 -5
  17. otdf_python/ecc_constants.py +12 -14
  18. otdf_python/ecc_mode.py +7 -2
  19. otdf_python/ecdh.py +24 -31
  20. otdf_python/eckeypair.py +5 -0
  21. otdf_python/header.py +5 -0
  22. otdf_python/invalid_zip_exception.py +6 -2
  23. otdf_python/kas_client.py +66 -55
  24. otdf_python/kas_connect_rpc_client.py +75 -38
  25. otdf_python/kas_info.py +4 -3
  26. otdf_python/kas_key_cache.py +10 -9
  27. otdf_python/key_type.py +4 -0
  28. otdf_python/key_type_constants.py +4 -11
  29. otdf_python/manifest.py +24 -0
  30. otdf_python/nanotdf.py +30 -28
  31. otdf_python/nanotdf_ecdsa_struct.py +5 -11
  32. otdf_python/nanotdf_type.py +13 -1
  33. otdf_python/policy_binding_serializer.py +6 -4
  34. otdf_python/policy_info.py +6 -0
  35. otdf_python/policy_object.py +8 -0
  36. otdf_python/policy_stub.py +2 -0
  37. otdf_python/resource_locator.py +22 -13
  38. otdf_python/sdk.py +51 -73
  39. otdf_python/sdk_builder.py +60 -47
  40. otdf_python/sdk_exceptions.py +11 -1
  41. otdf_python/symmetric_and_payload_config.py +6 -0
  42. otdf_python/tdf.py +47 -10
  43. otdf_python/tdf_reader.py +10 -13
  44. otdf_python/tdf_writer.py +5 -0
  45. otdf_python/token_source.py +4 -3
  46. otdf_python/version.py +5 -0
  47. otdf_python/zip_reader.py +10 -2
  48. otdf_python/zip_writer.py +11 -0
  49. {otdf_python-0.4.0.dist-info → otdf_python-0.4.2.dist-info}/METADATA +3 -2
  50. {otdf_python-0.4.0.dist-info → otdf_python-0.4.2.dist-info}/RECORD +81 -72
  51. {otdf_python-0.4.0.dist-info → otdf_python-0.4.2.dist-info}/WHEEL +1 -1
  52. otdf_python_proto/__init__.py +2 -6
  53. otdf_python_proto/authorization/__init__.py +10 -0
  54. otdf_python_proto/authorization/authorization_connect.py +250 -0
  55. otdf_python_proto/authorization/v2/authorization_connect.py +315 -0
  56. otdf_python_proto/entityresolution/__init__.py +10 -0
  57. otdf_python_proto/entityresolution/entity_resolution_connect.py +185 -0
  58. otdf_python_proto/entityresolution/v2/entity_resolution_connect.py +185 -0
  59. otdf_python_proto/kas/__init__.py +2 -2
  60. otdf_python_proto/kas/kas_connect.py +259 -0
  61. otdf_python_proto/policy/actions/__init__.py +11 -0
  62. otdf_python_proto/policy/actions/actions_connect.py +380 -0
  63. otdf_python_proto/policy/attributes/__init__.py +11 -0
  64. otdf_python_proto/policy/attributes/attributes_connect.py +1310 -0
  65. otdf_python_proto/policy/kasregistry/__init__.py +11 -0
  66. otdf_python_proto/policy/kasregistry/key_access_server_registry_connect.py +912 -0
  67. otdf_python_proto/policy/keymanagement/__init__.py +11 -0
  68. otdf_python_proto/policy/keymanagement/key_management_connect.py +380 -0
  69. otdf_python_proto/policy/namespaces/__init__.py +11 -0
  70. otdf_python_proto/policy/namespaces/namespaces_connect.py +648 -0
  71. otdf_python_proto/policy/registeredresources/__init__.py +11 -0
  72. otdf_python_proto/policy/registeredresources/registered_resources_connect.py +770 -0
  73. otdf_python_proto/policy/resourcemapping/__init__.py +11 -0
  74. otdf_python_proto/policy/resourcemapping/resource_mapping_connect.py +790 -0
  75. otdf_python_proto/policy/subjectmapping/__init__.py +11 -0
  76. otdf_python_proto/policy/subjectmapping/subject_mapping_connect.py +851 -0
  77. otdf_python_proto/policy/unsafe/__init__.py +11 -0
  78. otdf_python_proto/policy/unsafe/unsafe_connect.py +705 -0
  79. otdf_python_proto/wellknownconfiguration/__init__.py +10 -0
  80. otdf_python_proto/wellknownconfiguration/wellknown_configuration_connect.py +124 -0
  81. otdf_python_proto/authorization/authorization_pb2_connect.py +0 -191
  82. otdf_python_proto/authorization/v2/authorization_pb2_connect.py +0 -233
  83. otdf_python_proto/entityresolution/entity_resolution_pb2_connect.py +0 -149
  84. otdf_python_proto/entityresolution/v2/entity_resolution_pb2_connect.py +0 -149
  85. otdf_python_proto/kas/kas_pb2_connect.py +0 -192
  86. otdf_python_proto/policy/actions/actions_pb2_connect.py +0 -275
  87. otdf_python_proto/policy/attributes/attributes_pb2_connect.py +0 -863
  88. otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2_connect.py +0 -611
  89. otdf_python_proto/policy/keymanagement/key_management_pb2_connect.py +0 -275
  90. otdf_python_proto/policy/namespaces/namespaces_pb2_connect.py +0 -443
  91. otdf_python_proto/policy/registeredresources/registered_resources_pb2_connect.py +0 -527
  92. otdf_python_proto/policy/resourcemapping/resource_mapping_pb2_connect.py +0 -527
  93. otdf_python_proto/policy/subjectmapping/subject_mapping_pb2_connect.py +0 -569
  94. otdf_python_proto/policy/unsafe/unsafe_pb2_connect.py +0 -485
  95. otdf_python_proto/wellknownconfiguration/wellknown_configuration_pb2_connect.py +0 -107
  96. {otdf_python-0.4.0.dist-info → otdf_python-0.4.2.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,705 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT!
3
+ # source: policy/unsafe/unsafe.proto
4
+
5
+ from collections.abc import AsyncGenerator, AsyncIterator, Iterable, Iterator, Mapping
6
+ from typing import Protocol
7
+
8
+ from connectrpc.client import ConnectClient, ConnectClientSync
9
+ from connectrpc.code import Code
10
+ from connectrpc.errors import ConnectError
11
+ from connectrpc.interceptor import Interceptor, InterceptorSync
12
+ from connectrpc.method import IdempotencyLevel, MethodInfo
13
+ from connectrpc.request import Headers, RequestContext
14
+ from connectrpc.server import ConnectASGIApplication, ConnectWSGIApplication, Endpoint, EndpointSync
15
+ import policy.unsafe.unsafe_pb2 as policy_dot_unsafe_dot_unsafe__pb2
16
+
17
+
18
+ class UnsafeService(Protocol):
19
+ async def unsafe_update_namespace(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateNamespaceRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateNamespaceResponse:
20
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
21
+
22
+ async def unsafe_reactivate_namespace(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateNamespaceRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateNamespaceResponse:
23
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
24
+
25
+ async def unsafe_delete_namespace(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteNamespaceRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteNamespaceResponse:
26
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
27
+
28
+ async def unsafe_update_attribute(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeResponse:
29
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
30
+
31
+ async def unsafe_reactivate_attribute(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeResponse:
32
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
33
+
34
+ async def unsafe_delete_attribute(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeResponse:
35
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
36
+
37
+ async def unsafe_update_attribute_value(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeValueRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeValueResponse:
38
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
39
+
40
+ async def unsafe_reactivate_attribute_value(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeValueRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeValueResponse:
41
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
42
+
43
+ async def unsafe_delete_attribute_value(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeValueRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeValueResponse:
44
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
45
+
46
+ async def unsafe_delete_kas_key(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteKasKeyRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteKasKeyResponse:
47
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
48
+
49
+
50
+ class UnsafeServiceASGIApplication(ConnectASGIApplication[UnsafeService]):
51
+ def __init__(self, service: UnsafeService | AsyncGenerator[UnsafeService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
52
+ super().__init__(
53
+ service=service,
54
+ endpoints=lambda svc: {
55
+ "/policy.unsafe.UnsafeService/UnsafeUpdateNamespace": Endpoint.unary(
56
+ method=MethodInfo(
57
+ name="UnsafeUpdateNamespace",
58
+ service_name="policy.unsafe.UnsafeService",
59
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateNamespaceRequest,
60
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateNamespaceResponse,
61
+ idempotency_level=IdempotencyLevel.UNKNOWN,
62
+ ),
63
+ function=svc.unsafe_update_namespace,
64
+ ),
65
+ "/policy.unsafe.UnsafeService/UnsafeReactivateNamespace": Endpoint.unary(
66
+ method=MethodInfo(
67
+ name="UnsafeReactivateNamespace",
68
+ service_name="policy.unsafe.UnsafeService",
69
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateNamespaceRequest,
70
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateNamespaceResponse,
71
+ idempotency_level=IdempotencyLevel.UNKNOWN,
72
+ ),
73
+ function=svc.unsafe_reactivate_namespace,
74
+ ),
75
+ "/policy.unsafe.UnsafeService/UnsafeDeleteNamespace": Endpoint.unary(
76
+ method=MethodInfo(
77
+ name="UnsafeDeleteNamespace",
78
+ service_name="policy.unsafe.UnsafeService",
79
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteNamespaceRequest,
80
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteNamespaceResponse,
81
+ idempotency_level=IdempotencyLevel.UNKNOWN,
82
+ ),
83
+ function=svc.unsafe_delete_namespace,
84
+ ),
85
+ "/policy.unsafe.UnsafeService/UnsafeUpdateAttribute": Endpoint.unary(
86
+ method=MethodInfo(
87
+ name="UnsafeUpdateAttribute",
88
+ service_name="policy.unsafe.UnsafeService",
89
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeRequest,
90
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeResponse,
91
+ idempotency_level=IdempotencyLevel.UNKNOWN,
92
+ ),
93
+ function=svc.unsafe_update_attribute,
94
+ ),
95
+ "/policy.unsafe.UnsafeService/UnsafeReactivateAttribute": Endpoint.unary(
96
+ method=MethodInfo(
97
+ name="UnsafeReactivateAttribute",
98
+ service_name="policy.unsafe.UnsafeService",
99
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeRequest,
100
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeResponse,
101
+ idempotency_level=IdempotencyLevel.UNKNOWN,
102
+ ),
103
+ function=svc.unsafe_reactivate_attribute,
104
+ ),
105
+ "/policy.unsafe.UnsafeService/UnsafeDeleteAttribute": Endpoint.unary(
106
+ method=MethodInfo(
107
+ name="UnsafeDeleteAttribute",
108
+ service_name="policy.unsafe.UnsafeService",
109
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeRequest,
110
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeResponse,
111
+ idempotency_level=IdempotencyLevel.UNKNOWN,
112
+ ),
113
+ function=svc.unsafe_delete_attribute,
114
+ ),
115
+ "/policy.unsafe.UnsafeService/UnsafeUpdateAttributeValue": Endpoint.unary(
116
+ method=MethodInfo(
117
+ name="UnsafeUpdateAttributeValue",
118
+ service_name="policy.unsafe.UnsafeService",
119
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeValueRequest,
120
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeValueResponse,
121
+ idempotency_level=IdempotencyLevel.UNKNOWN,
122
+ ),
123
+ function=svc.unsafe_update_attribute_value,
124
+ ),
125
+ "/policy.unsafe.UnsafeService/UnsafeReactivateAttributeValue": Endpoint.unary(
126
+ method=MethodInfo(
127
+ name="UnsafeReactivateAttributeValue",
128
+ service_name="policy.unsafe.UnsafeService",
129
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeValueRequest,
130
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeValueResponse,
131
+ idempotency_level=IdempotencyLevel.UNKNOWN,
132
+ ),
133
+ function=svc.unsafe_reactivate_attribute_value,
134
+ ),
135
+ "/policy.unsafe.UnsafeService/UnsafeDeleteAttributeValue": Endpoint.unary(
136
+ method=MethodInfo(
137
+ name="UnsafeDeleteAttributeValue",
138
+ service_name="policy.unsafe.UnsafeService",
139
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeValueRequest,
140
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeValueResponse,
141
+ idempotency_level=IdempotencyLevel.UNKNOWN,
142
+ ),
143
+ function=svc.unsafe_delete_attribute_value,
144
+ ),
145
+ "/policy.unsafe.UnsafeService/UnsafeDeleteKasKey": Endpoint.unary(
146
+ method=MethodInfo(
147
+ name="UnsafeDeleteKasKey",
148
+ service_name="policy.unsafe.UnsafeService",
149
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteKasKeyRequest,
150
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteKasKeyResponse,
151
+ idempotency_level=IdempotencyLevel.UNKNOWN,
152
+ ),
153
+ function=svc.unsafe_delete_kas_key,
154
+ ),
155
+ },
156
+ interceptors=interceptors,
157
+ read_max_bytes=read_max_bytes,
158
+ )
159
+
160
+ @property
161
+ def path(self) -> str:
162
+ """Returns the URL path to mount the application to when serving multiple applications."""
163
+ return "/policy.unsafe.UnsafeService"
164
+
165
+
166
+ class UnsafeServiceClient(ConnectClient):
167
+ async def unsafe_update_namespace(
168
+ self,
169
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateNamespaceRequest,
170
+ *,
171
+ headers: Headers | Mapping[str, str] | None = None,
172
+ timeout_ms: int | None = None,
173
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateNamespaceResponse:
174
+ return await self.execute_unary(
175
+ request=request,
176
+ method=MethodInfo(
177
+ name="UnsafeUpdateNamespace",
178
+ service_name="policy.unsafe.UnsafeService",
179
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateNamespaceRequest,
180
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateNamespaceResponse,
181
+ idempotency_level=IdempotencyLevel.UNKNOWN,
182
+ ),
183
+ headers=headers,
184
+ timeout_ms=timeout_ms,
185
+ )
186
+
187
+ async def unsafe_reactivate_namespace(
188
+ self,
189
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateNamespaceRequest,
190
+ *,
191
+ headers: Headers | Mapping[str, str] | None = None,
192
+ timeout_ms: int | None = None,
193
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateNamespaceResponse:
194
+ return await self.execute_unary(
195
+ request=request,
196
+ method=MethodInfo(
197
+ name="UnsafeReactivateNamespace",
198
+ service_name="policy.unsafe.UnsafeService",
199
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateNamespaceRequest,
200
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateNamespaceResponse,
201
+ idempotency_level=IdempotencyLevel.UNKNOWN,
202
+ ),
203
+ headers=headers,
204
+ timeout_ms=timeout_ms,
205
+ )
206
+
207
+ async def unsafe_delete_namespace(
208
+ self,
209
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteNamespaceRequest,
210
+ *,
211
+ headers: Headers | Mapping[str, str] | None = None,
212
+ timeout_ms: int | None = None,
213
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteNamespaceResponse:
214
+ return await self.execute_unary(
215
+ request=request,
216
+ method=MethodInfo(
217
+ name="UnsafeDeleteNamespace",
218
+ service_name="policy.unsafe.UnsafeService",
219
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteNamespaceRequest,
220
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteNamespaceResponse,
221
+ idempotency_level=IdempotencyLevel.UNKNOWN,
222
+ ),
223
+ headers=headers,
224
+ timeout_ms=timeout_ms,
225
+ )
226
+
227
+ async def unsafe_update_attribute(
228
+ self,
229
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeRequest,
230
+ *,
231
+ headers: Headers | Mapping[str, str] | None = None,
232
+ timeout_ms: int | None = None,
233
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeResponse:
234
+ return await self.execute_unary(
235
+ request=request,
236
+ method=MethodInfo(
237
+ name="UnsafeUpdateAttribute",
238
+ service_name="policy.unsafe.UnsafeService",
239
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeRequest,
240
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeResponse,
241
+ idempotency_level=IdempotencyLevel.UNKNOWN,
242
+ ),
243
+ headers=headers,
244
+ timeout_ms=timeout_ms,
245
+ )
246
+
247
+ async def unsafe_reactivate_attribute(
248
+ self,
249
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeRequest,
250
+ *,
251
+ headers: Headers | Mapping[str, str] | None = None,
252
+ timeout_ms: int | None = None,
253
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeResponse:
254
+ return await self.execute_unary(
255
+ request=request,
256
+ method=MethodInfo(
257
+ name="UnsafeReactivateAttribute",
258
+ service_name="policy.unsafe.UnsafeService",
259
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeRequest,
260
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeResponse,
261
+ idempotency_level=IdempotencyLevel.UNKNOWN,
262
+ ),
263
+ headers=headers,
264
+ timeout_ms=timeout_ms,
265
+ )
266
+
267
+ async def unsafe_delete_attribute(
268
+ self,
269
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeRequest,
270
+ *,
271
+ headers: Headers | Mapping[str, str] | None = None,
272
+ timeout_ms: int | None = None,
273
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeResponse:
274
+ return await self.execute_unary(
275
+ request=request,
276
+ method=MethodInfo(
277
+ name="UnsafeDeleteAttribute",
278
+ service_name="policy.unsafe.UnsafeService",
279
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeRequest,
280
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeResponse,
281
+ idempotency_level=IdempotencyLevel.UNKNOWN,
282
+ ),
283
+ headers=headers,
284
+ timeout_ms=timeout_ms,
285
+ )
286
+
287
+ async def unsafe_update_attribute_value(
288
+ self,
289
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeValueRequest,
290
+ *,
291
+ headers: Headers | Mapping[str, str] | None = None,
292
+ timeout_ms: int | None = None,
293
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeValueResponse:
294
+ return await self.execute_unary(
295
+ request=request,
296
+ method=MethodInfo(
297
+ name="UnsafeUpdateAttributeValue",
298
+ service_name="policy.unsafe.UnsafeService",
299
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeValueRequest,
300
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeValueResponse,
301
+ idempotency_level=IdempotencyLevel.UNKNOWN,
302
+ ),
303
+ headers=headers,
304
+ timeout_ms=timeout_ms,
305
+ )
306
+
307
+ async def unsafe_reactivate_attribute_value(
308
+ self,
309
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeValueRequest,
310
+ *,
311
+ headers: Headers | Mapping[str, str] | None = None,
312
+ timeout_ms: int | None = None,
313
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeValueResponse:
314
+ return await self.execute_unary(
315
+ request=request,
316
+ method=MethodInfo(
317
+ name="UnsafeReactivateAttributeValue",
318
+ service_name="policy.unsafe.UnsafeService",
319
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeValueRequest,
320
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeValueResponse,
321
+ idempotency_level=IdempotencyLevel.UNKNOWN,
322
+ ),
323
+ headers=headers,
324
+ timeout_ms=timeout_ms,
325
+ )
326
+
327
+ async def unsafe_delete_attribute_value(
328
+ self,
329
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeValueRequest,
330
+ *,
331
+ headers: Headers | Mapping[str, str] | None = None,
332
+ timeout_ms: int | None = None,
333
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeValueResponse:
334
+ return await self.execute_unary(
335
+ request=request,
336
+ method=MethodInfo(
337
+ name="UnsafeDeleteAttributeValue",
338
+ service_name="policy.unsafe.UnsafeService",
339
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeValueRequest,
340
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeValueResponse,
341
+ idempotency_level=IdempotencyLevel.UNKNOWN,
342
+ ),
343
+ headers=headers,
344
+ timeout_ms=timeout_ms,
345
+ )
346
+
347
+ async def unsafe_delete_kas_key(
348
+ self,
349
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteKasKeyRequest,
350
+ *,
351
+ headers: Headers | Mapping[str, str] | None = None,
352
+ timeout_ms: int | None = None,
353
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteKasKeyResponse:
354
+ return await self.execute_unary(
355
+ request=request,
356
+ method=MethodInfo(
357
+ name="UnsafeDeleteKasKey",
358
+ service_name="policy.unsafe.UnsafeService",
359
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteKasKeyRequest,
360
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteKasKeyResponse,
361
+ idempotency_level=IdempotencyLevel.UNKNOWN,
362
+ ),
363
+ headers=headers,
364
+ timeout_ms=timeout_ms,
365
+ )
366
+
367
+
368
+ class UnsafeServiceSync(Protocol):
369
+ def unsafe_update_namespace(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateNamespaceRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateNamespaceResponse:
370
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
371
+ def unsafe_reactivate_namespace(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateNamespaceRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateNamespaceResponse:
372
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
373
+ def unsafe_delete_namespace(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteNamespaceRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteNamespaceResponse:
374
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
375
+ def unsafe_update_attribute(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeResponse:
376
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
377
+ def unsafe_reactivate_attribute(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeResponse:
378
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
379
+ def unsafe_delete_attribute(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeResponse:
380
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
381
+ def unsafe_update_attribute_value(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeValueRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeValueResponse:
382
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
383
+ def unsafe_reactivate_attribute_value(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeValueRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeValueResponse:
384
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
385
+ def unsafe_delete_attribute_value(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeValueRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeValueResponse:
386
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
387
+ def unsafe_delete_kas_key(self, request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteKasKeyRequest, ctx: RequestContext) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteKasKeyResponse:
388
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
389
+
390
+
391
+ class UnsafeServiceWSGIApplication(ConnectWSGIApplication):
392
+ def __init__(self, service: UnsafeServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None:
393
+ super().__init__(
394
+ endpoints={
395
+ "/policy.unsafe.UnsafeService/UnsafeUpdateNamespace": EndpointSync.unary(
396
+ method=MethodInfo(
397
+ name="UnsafeUpdateNamespace",
398
+ service_name="policy.unsafe.UnsafeService",
399
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateNamespaceRequest,
400
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateNamespaceResponse,
401
+ idempotency_level=IdempotencyLevel.UNKNOWN,
402
+ ),
403
+ function=service.unsafe_update_namespace,
404
+ ),
405
+ "/policy.unsafe.UnsafeService/UnsafeReactivateNamespace": EndpointSync.unary(
406
+ method=MethodInfo(
407
+ name="UnsafeReactivateNamespace",
408
+ service_name="policy.unsafe.UnsafeService",
409
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateNamespaceRequest,
410
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateNamespaceResponse,
411
+ idempotency_level=IdempotencyLevel.UNKNOWN,
412
+ ),
413
+ function=service.unsafe_reactivate_namespace,
414
+ ),
415
+ "/policy.unsafe.UnsafeService/UnsafeDeleteNamespace": EndpointSync.unary(
416
+ method=MethodInfo(
417
+ name="UnsafeDeleteNamespace",
418
+ service_name="policy.unsafe.UnsafeService",
419
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteNamespaceRequest,
420
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteNamespaceResponse,
421
+ idempotency_level=IdempotencyLevel.UNKNOWN,
422
+ ),
423
+ function=service.unsafe_delete_namespace,
424
+ ),
425
+ "/policy.unsafe.UnsafeService/UnsafeUpdateAttribute": EndpointSync.unary(
426
+ method=MethodInfo(
427
+ name="UnsafeUpdateAttribute",
428
+ service_name="policy.unsafe.UnsafeService",
429
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeRequest,
430
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeResponse,
431
+ idempotency_level=IdempotencyLevel.UNKNOWN,
432
+ ),
433
+ function=service.unsafe_update_attribute,
434
+ ),
435
+ "/policy.unsafe.UnsafeService/UnsafeReactivateAttribute": EndpointSync.unary(
436
+ method=MethodInfo(
437
+ name="UnsafeReactivateAttribute",
438
+ service_name="policy.unsafe.UnsafeService",
439
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeRequest,
440
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeResponse,
441
+ idempotency_level=IdempotencyLevel.UNKNOWN,
442
+ ),
443
+ function=service.unsafe_reactivate_attribute,
444
+ ),
445
+ "/policy.unsafe.UnsafeService/UnsafeDeleteAttribute": EndpointSync.unary(
446
+ method=MethodInfo(
447
+ name="UnsafeDeleteAttribute",
448
+ service_name="policy.unsafe.UnsafeService",
449
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeRequest,
450
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeResponse,
451
+ idempotency_level=IdempotencyLevel.UNKNOWN,
452
+ ),
453
+ function=service.unsafe_delete_attribute,
454
+ ),
455
+ "/policy.unsafe.UnsafeService/UnsafeUpdateAttributeValue": EndpointSync.unary(
456
+ method=MethodInfo(
457
+ name="UnsafeUpdateAttributeValue",
458
+ service_name="policy.unsafe.UnsafeService",
459
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeValueRequest,
460
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeValueResponse,
461
+ idempotency_level=IdempotencyLevel.UNKNOWN,
462
+ ),
463
+ function=service.unsafe_update_attribute_value,
464
+ ),
465
+ "/policy.unsafe.UnsafeService/UnsafeReactivateAttributeValue": EndpointSync.unary(
466
+ method=MethodInfo(
467
+ name="UnsafeReactivateAttributeValue",
468
+ service_name="policy.unsafe.UnsafeService",
469
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeValueRequest,
470
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeValueResponse,
471
+ idempotency_level=IdempotencyLevel.UNKNOWN,
472
+ ),
473
+ function=service.unsafe_reactivate_attribute_value,
474
+ ),
475
+ "/policy.unsafe.UnsafeService/UnsafeDeleteAttributeValue": EndpointSync.unary(
476
+ method=MethodInfo(
477
+ name="UnsafeDeleteAttributeValue",
478
+ service_name="policy.unsafe.UnsafeService",
479
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeValueRequest,
480
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeValueResponse,
481
+ idempotency_level=IdempotencyLevel.UNKNOWN,
482
+ ),
483
+ function=service.unsafe_delete_attribute_value,
484
+ ),
485
+ "/policy.unsafe.UnsafeService/UnsafeDeleteKasKey": EndpointSync.unary(
486
+ method=MethodInfo(
487
+ name="UnsafeDeleteKasKey",
488
+ service_name="policy.unsafe.UnsafeService",
489
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteKasKeyRequest,
490
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteKasKeyResponse,
491
+ idempotency_level=IdempotencyLevel.UNKNOWN,
492
+ ),
493
+ function=service.unsafe_delete_kas_key,
494
+ ),
495
+ },
496
+ interceptors=interceptors,
497
+ read_max_bytes=read_max_bytes,
498
+ )
499
+
500
+ @property
501
+ def path(self) -> str:
502
+ """Returns the URL path to mount the application to when serving multiple applications."""
503
+ return "/policy.unsafe.UnsafeService"
504
+
505
+
506
+ class UnsafeServiceClientSync(ConnectClientSync):
507
+ def unsafe_update_namespace(
508
+ self,
509
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateNamespaceRequest,
510
+ *,
511
+ headers: Headers | Mapping[str, str] | None = None,
512
+ timeout_ms: int | None = None,
513
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateNamespaceResponse:
514
+ return self.execute_unary(
515
+ request=request,
516
+ method=MethodInfo(
517
+ name="UnsafeUpdateNamespace",
518
+ service_name="policy.unsafe.UnsafeService",
519
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateNamespaceRequest,
520
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateNamespaceResponse,
521
+ idempotency_level=IdempotencyLevel.UNKNOWN,
522
+ ),
523
+ headers=headers,
524
+ timeout_ms=timeout_ms,
525
+ )
526
+
527
+ def unsafe_reactivate_namespace(
528
+ self,
529
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateNamespaceRequest,
530
+ *,
531
+ headers: Headers | Mapping[str, str] | None = None,
532
+ timeout_ms: int | None = None,
533
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateNamespaceResponse:
534
+ return self.execute_unary(
535
+ request=request,
536
+ method=MethodInfo(
537
+ name="UnsafeReactivateNamespace",
538
+ service_name="policy.unsafe.UnsafeService",
539
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateNamespaceRequest,
540
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateNamespaceResponse,
541
+ idempotency_level=IdempotencyLevel.UNKNOWN,
542
+ ),
543
+ headers=headers,
544
+ timeout_ms=timeout_ms,
545
+ )
546
+
547
+ def unsafe_delete_namespace(
548
+ self,
549
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteNamespaceRequest,
550
+ *,
551
+ headers: Headers | Mapping[str, str] | None = None,
552
+ timeout_ms: int | None = None,
553
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteNamespaceResponse:
554
+ return self.execute_unary(
555
+ request=request,
556
+ method=MethodInfo(
557
+ name="UnsafeDeleteNamespace",
558
+ service_name="policy.unsafe.UnsafeService",
559
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteNamespaceRequest,
560
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteNamespaceResponse,
561
+ idempotency_level=IdempotencyLevel.UNKNOWN,
562
+ ),
563
+ headers=headers,
564
+ timeout_ms=timeout_ms,
565
+ )
566
+
567
+ def unsafe_update_attribute(
568
+ self,
569
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeRequest,
570
+ *,
571
+ headers: Headers | Mapping[str, str] | None = None,
572
+ timeout_ms: int | None = None,
573
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeResponse:
574
+ return self.execute_unary(
575
+ request=request,
576
+ method=MethodInfo(
577
+ name="UnsafeUpdateAttribute",
578
+ service_name="policy.unsafe.UnsafeService",
579
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeRequest,
580
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeResponse,
581
+ idempotency_level=IdempotencyLevel.UNKNOWN,
582
+ ),
583
+ headers=headers,
584
+ timeout_ms=timeout_ms,
585
+ )
586
+
587
+ def unsafe_reactivate_attribute(
588
+ self,
589
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeRequest,
590
+ *,
591
+ headers: Headers | Mapping[str, str] | None = None,
592
+ timeout_ms: int | None = None,
593
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeResponse:
594
+ return self.execute_unary(
595
+ request=request,
596
+ method=MethodInfo(
597
+ name="UnsafeReactivateAttribute",
598
+ service_name="policy.unsafe.UnsafeService",
599
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeRequest,
600
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeResponse,
601
+ idempotency_level=IdempotencyLevel.UNKNOWN,
602
+ ),
603
+ headers=headers,
604
+ timeout_ms=timeout_ms,
605
+ )
606
+
607
+ def unsafe_delete_attribute(
608
+ self,
609
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeRequest,
610
+ *,
611
+ headers: Headers | Mapping[str, str] | None = None,
612
+ timeout_ms: int | None = None,
613
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeResponse:
614
+ return self.execute_unary(
615
+ request=request,
616
+ method=MethodInfo(
617
+ name="UnsafeDeleteAttribute",
618
+ service_name="policy.unsafe.UnsafeService",
619
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeRequest,
620
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeResponse,
621
+ idempotency_level=IdempotencyLevel.UNKNOWN,
622
+ ),
623
+ headers=headers,
624
+ timeout_ms=timeout_ms,
625
+ )
626
+
627
+ def unsafe_update_attribute_value(
628
+ self,
629
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeValueRequest,
630
+ *,
631
+ headers: Headers | Mapping[str, str] | None = None,
632
+ timeout_ms: int | None = None,
633
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeValueResponse:
634
+ return self.execute_unary(
635
+ request=request,
636
+ method=MethodInfo(
637
+ name="UnsafeUpdateAttributeValue",
638
+ service_name="policy.unsafe.UnsafeService",
639
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeValueRequest,
640
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeUpdateAttributeValueResponse,
641
+ idempotency_level=IdempotencyLevel.UNKNOWN,
642
+ ),
643
+ headers=headers,
644
+ timeout_ms=timeout_ms,
645
+ )
646
+
647
+ def unsafe_reactivate_attribute_value(
648
+ self,
649
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeValueRequest,
650
+ *,
651
+ headers: Headers | Mapping[str, str] | None = None,
652
+ timeout_ms: int | None = None,
653
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeValueResponse:
654
+ return self.execute_unary(
655
+ request=request,
656
+ method=MethodInfo(
657
+ name="UnsafeReactivateAttributeValue",
658
+ service_name="policy.unsafe.UnsafeService",
659
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeValueRequest,
660
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeReactivateAttributeValueResponse,
661
+ idempotency_level=IdempotencyLevel.UNKNOWN,
662
+ ),
663
+ headers=headers,
664
+ timeout_ms=timeout_ms,
665
+ )
666
+
667
+ def unsafe_delete_attribute_value(
668
+ self,
669
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeValueRequest,
670
+ *,
671
+ headers: Headers | Mapping[str, str] | None = None,
672
+ timeout_ms: int | None = None,
673
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeValueResponse:
674
+ return self.execute_unary(
675
+ request=request,
676
+ method=MethodInfo(
677
+ name="UnsafeDeleteAttributeValue",
678
+ service_name="policy.unsafe.UnsafeService",
679
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeValueRequest,
680
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteAttributeValueResponse,
681
+ idempotency_level=IdempotencyLevel.UNKNOWN,
682
+ ),
683
+ headers=headers,
684
+ timeout_ms=timeout_ms,
685
+ )
686
+
687
+ def unsafe_delete_kas_key(
688
+ self,
689
+ request: policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteKasKeyRequest,
690
+ *,
691
+ headers: Headers | Mapping[str, str] | None = None,
692
+ timeout_ms: int | None = None,
693
+ ) -> policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteKasKeyResponse:
694
+ return self.execute_unary(
695
+ request=request,
696
+ method=MethodInfo(
697
+ name="UnsafeDeleteKasKey",
698
+ service_name="policy.unsafe.UnsafeService",
699
+ input=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteKasKeyRequest,
700
+ output=policy_dot_unsafe_dot_unsafe__pb2.UnsafeDeleteKasKeyResponse,
701
+ idempotency_level=IdempotencyLevel.UNKNOWN,
702
+ ),
703
+ headers=headers,
704
+ timeout_ms=timeout_ms,
705
+ )