pangea-sdk 6.0.0__py3-none-any.whl → 6.1.1__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.
- pangea/__init__.py +1 -1
- pangea/asyncio/request.py +1 -1
- pangea/asyncio/services/audit.py +6 -6
- pangea/asyncio/services/authn.py +192 -35
- pangea/asyncio/services/authz.py +34 -34
- pangea/asyncio/services/file_scan.py +1 -1
- pangea/asyncio/services/redact.py +3 -3
- pangea/asyncio/services/vault.py +15 -15
- pangea/request.py +1 -1
- pangea/services/audit/audit.py +6 -6
- pangea/services/authn/authn.py +198 -39
- pangea/services/authn/models.py +94 -0
- pangea/services/authz.py +71 -36
- pangea/services/file_scan.py +1 -1
- pangea/services/redact.py +3 -3
- pangea/services/vault/vault.py +15 -15
- {pangea_sdk-6.0.0.dist-info → pangea_sdk-6.1.1.dist-info}/METADATA +4 -4
- {pangea_sdk-6.0.0.dist-info → pangea_sdk-6.1.1.dist-info}/RECORD +19 -19
- {pangea_sdk-6.0.0.dist-info → pangea_sdk-6.1.1.dist-info}/WHEEL +1 -1
pangea/services/authz.py
CHANGED
@@ -51,6 +51,8 @@ class Tuple(PangeaResponseResult):
|
|
51
51
|
resource: Resource
|
52
52
|
relation: str
|
53
53
|
subject: Subject
|
54
|
+
expires_at: Optional[str] = None
|
55
|
+
"""A time in ISO-8601 format"""
|
54
56
|
|
55
57
|
|
56
58
|
class TupleCreateRequest(APIRequestModel):
|
@@ -63,23 +65,51 @@ class TupleCreateResult(PangeaResponseResult):
|
|
63
65
|
|
64
66
|
class TupleListFilter(APIRequestModel):
|
65
67
|
resource_type: Optional[str] = None
|
68
|
+
"""Only records where resource type equals this value."""
|
66
69
|
resource_type__contains: Optional[List[str]] = None
|
70
|
+
"""Only records where resource type includes each substring."""
|
67
71
|
resource_type__in: Optional[List[str]] = None
|
72
|
+
"""Only records where resource type equals one of the provided substrings."""
|
68
73
|
resource_id: Optional[str] = None
|
74
|
+
"""Only records where resource id equals this value."""
|
69
75
|
resource_id__contains: Optional[List[str]] = None
|
76
|
+
"""Only records where resource id includes each substring."""
|
70
77
|
resource_id__in: Optional[List[str]] = None
|
78
|
+
"""Only records where resource id equals one of the provided substrings."""
|
71
79
|
relation: Optional[str] = None
|
80
|
+
"""Only records where relation equals this value."""
|
72
81
|
relation__contains: Optional[List[str]] = None
|
82
|
+
"""Only records where relation includes each substring."""
|
73
83
|
relation__in: Optional[List[str]] = None
|
84
|
+
"""Only records where relation equals one of the provided substrings."""
|
74
85
|
subject_type: Optional[str] = None
|
86
|
+
"""Only records where subject type equals this value."""
|
75
87
|
subject_type__contains: Optional[List[str]] = None
|
88
|
+
"""Only records where subject type includes each substring."""
|
76
89
|
subject_type__in: Optional[List[str]] = None
|
90
|
+
"""Only records where subject type equals one of the provided substrings."""
|
77
91
|
subject_id: Optional[str] = None
|
92
|
+
"""Only records where subject id equals this value."""
|
78
93
|
subject_id__contains: Optional[List[str]] = None
|
94
|
+
"""Only records where subject id includes each substring."""
|
79
95
|
subject_id__in: Optional[List[str]] = None
|
96
|
+
"""Only records where subject id equals one of the provided substrings."""
|
80
97
|
subject_action: Optional[str] = None
|
98
|
+
"""Only records where subject action equals this value."""
|
81
99
|
subject_action__contains: Optional[List[str]] = None
|
100
|
+
"""Only records where subject action includes each substring."""
|
82
101
|
subject_action__in: Optional[List[str]] = None
|
102
|
+
"""Only records where subject action equals one of the provided substrings."""
|
103
|
+
expires_at: Optional[str] = None
|
104
|
+
"""Only records where expires_at equals this value."""
|
105
|
+
expires_at__gt: Optional[str] = None
|
106
|
+
"""Only records where expires_at is greater than this value."""
|
107
|
+
expires_at__gte: Optional[str] = None
|
108
|
+
"""Only records where expires_at is greater than or equal to this value."""
|
109
|
+
expires_at__lt: Optional[str] = None
|
110
|
+
"""Only records where expires_at is less than this value."""
|
111
|
+
expires_at__lte: Optional[str] = None
|
112
|
+
"""Only records where expires_at is less than or equal to this value."""
|
83
113
|
|
84
114
|
|
85
115
|
class TupleListRequest(APIRequestModel):
|
@@ -109,7 +139,9 @@ class CheckRequest(APIRequestModel):
|
|
109
139
|
action: str
|
110
140
|
subject: Subject
|
111
141
|
debug: Optional[bool] = None
|
142
|
+
"""In the event of an allowed check, return a path that granted access."""
|
112
143
|
attributes: Optional[Dict[str, Any]] = None
|
144
|
+
"""A JSON object of attribute data."""
|
113
145
|
|
114
146
|
|
115
147
|
class DebugPath(APIResponseModel):
|
@@ -145,6 +177,8 @@ class ListSubjectsRequest(APIRequestModel):
|
|
145
177
|
resource: Resource
|
146
178
|
action: str
|
147
179
|
attributes: Optional[Dict[str, Any]] = None
|
180
|
+
debug: Optional[bool] = None
|
181
|
+
"""Return a path for each found subject"""
|
148
182
|
|
149
183
|
|
150
184
|
class ListSubjectsResult(PangeaResponseResult):
|
@@ -194,14 +228,14 @@ class AuthZ(ServiceBase):
|
|
194
228
|
|
195
229
|
super().__init__(token, config, logger_name, config_id=config_id)
|
196
230
|
|
197
|
-
def tuple_create(self, tuples:
|
231
|
+
def tuple_create(self, tuples: list[Tuple]) -> PangeaResponse[TupleCreateResult]:
|
198
232
|
"""Create tuples.
|
199
233
|
|
200
234
|
Create tuples in the AuthZ Service. The request will fail if there is no schema
|
201
235
|
or the tuples do not validate against the schema.
|
202
236
|
|
203
237
|
Args:
|
204
|
-
tuples
|
238
|
+
tuples: Tuples to be created.
|
205
239
|
|
206
240
|
Raises:
|
207
241
|
PangeaAPIException: If an API Error happens.
|
@@ -209,7 +243,7 @@ class AuthZ(ServiceBase):
|
|
209
243
|
Returns:
|
210
244
|
Pangea Response with empty result.
|
211
245
|
Available response fields can be found in our
|
212
|
-
[API Documentation](https://pangea.cloud/docs/api/authz#/v1/tuple/create).
|
246
|
+
[API Documentation](https://pangea.cloud/docs/api/authz#/v1/tuple/create-post).
|
213
247
|
|
214
248
|
Examples:
|
215
249
|
response = authz.tuple_create(
|
@@ -229,10 +263,10 @@ class AuthZ(ServiceBase):
|
|
229
263
|
def tuple_list(
|
230
264
|
self,
|
231
265
|
filter: TupleListFilter,
|
232
|
-
size:
|
233
|
-
last:
|
234
|
-
order:
|
235
|
-
order_by:
|
266
|
+
size: int | None = None,
|
267
|
+
last: str | None = None,
|
268
|
+
order: ItemOrder | None = None,
|
269
|
+
order_by: TupleOrderBy | None = None,
|
236
270
|
) -> PangeaResponse[TupleListResult]:
|
237
271
|
"""List tuples.
|
238
272
|
|
@@ -241,11 +275,11 @@ class AuthZ(ServiceBase):
|
|
241
275
|
is empty it will return all the tuples.
|
242
276
|
|
243
277
|
Args:
|
244
|
-
filter
|
245
|
-
size
|
246
|
-
last
|
247
|
-
order
|
248
|
-
order_by
|
278
|
+
filter: The filter for listing tuples.
|
279
|
+
size: The size of the result set. Default is None.
|
280
|
+
last: The last token from a previous response. Default is None.
|
281
|
+
order: Order results asc(ending) or desc(ending).
|
282
|
+
order_by: Which field to order results by.
|
249
283
|
|
250
284
|
Raises:
|
251
285
|
PangeaAPIException: If an API Error happens.
|
@@ -253,7 +287,7 @@ class AuthZ(ServiceBase):
|
|
253
287
|
Returns:
|
254
288
|
Pangea Response with a list of tuples and the last token.
|
255
289
|
Available response fields can be found in our
|
256
|
-
[API Documentation](https://pangea.cloud/docs/api/authz#/v1/tuple/list).
|
290
|
+
[API Documentation](https://pangea.cloud/docs/api/authz#/v1/tuple/list-post).
|
257
291
|
|
258
292
|
Examples:
|
259
293
|
authz.tuple_list(TupleListFilter(subject_type="user", subject_id="user_1"))
|
@@ -263,13 +297,13 @@ class AuthZ(ServiceBase):
|
|
263
297
|
)
|
264
298
|
return self.request.post("v1/tuple/list", TupleListResult, data=input_data.model_dump(exclude_none=True))
|
265
299
|
|
266
|
-
def tuple_delete(self, tuples:
|
300
|
+
def tuple_delete(self, tuples: list[Tuple]) -> PangeaResponse[TupleDeleteResult]:
|
267
301
|
"""Delete tuples.
|
268
302
|
|
269
303
|
Delete tuples in the AuthZ Service.
|
270
304
|
|
271
305
|
Args:
|
272
|
-
tuples
|
306
|
+
tuples: Tuples to be deleted.
|
273
307
|
|
274
308
|
Raises:
|
275
309
|
PangeaAPIException: If an API Error happens.
|
@@ -277,7 +311,7 @@ class AuthZ(ServiceBase):
|
|
277
311
|
Returns:
|
278
312
|
Pangea Response with empty result.
|
279
313
|
Available response fields can be found in our
|
280
|
-
[API Documentation](https://pangea.cloud/docs/api/authz#/v1/tuple/delete).
|
314
|
+
[API Documentation](https://pangea.cloud/docs/api/authz#/v1/tuple/delete-post).
|
281
315
|
|
282
316
|
Examples:
|
283
317
|
response = authz.tuple_delete(
|
@@ -299,19 +333,19 @@ class AuthZ(ServiceBase):
|
|
299
333
|
resource: Resource,
|
300
334
|
action: str,
|
301
335
|
subject: Subject,
|
302
|
-
debug:
|
303
|
-
attributes:
|
336
|
+
debug: bool | None = None,
|
337
|
+
attributes: dict[str, Any] | None = None,
|
304
338
|
) -> PangeaResponse[CheckResult]:
|
305
339
|
"""Perform a check request.
|
306
340
|
|
307
341
|
Check if a subject has permission to perform an action on the resource.
|
308
342
|
|
309
343
|
Args:
|
310
|
-
resource
|
311
|
-
action
|
312
|
-
subject
|
313
|
-
debug
|
314
|
-
attributes
|
344
|
+
resource: The resource to check.
|
345
|
+
action: The action to check.
|
346
|
+
subject: The subject to check.
|
347
|
+
debug: In the event of an allowed check, return a path that granted access.
|
348
|
+
attributes: Additional attributes for the check.
|
315
349
|
|
316
350
|
Raises:
|
317
351
|
PangeaAPIException: If an API Error happens.
|
@@ -319,7 +353,7 @@ class AuthZ(ServiceBase):
|
|
319
353
|
Returns:
|
320
354
|
Pangea Response with the result of the check.
|
321
355
|
Available response fields can be found in our
|
322
|
-
[API Documentation](https://pangea.cloud/docs/api/authz#/v1/check).
|
356
|
+
[API Documentation](https://pangea.cloud/docs/api/authz#/v1/check-post).
|
323
357
|
|
324
358
|
Examples:
|
325
359
|
response = authz.check(
|
@@ -334,7 +368,7 @@ class AuthZ(ServiceBase):
|
|
334
368
|
return self.request.post("v1/check", CheckResult, data=input_data.model_dump(exclude_none=True))
|
335
369
|
|
336
370
|
def list_resources(
|
337
|
-
self, type: str, action: str, subject: Subject, attributes:
|
371
|
+
self, type: str, action: str, subject: Subject, attributes: dict[str, Any] | None = None
|
338
372
|
) -> PangeaResponse[ListResourcesResult]:
|
339
373
|
"""List resources.
|
340
374
|
|
@@ -342,10 +376,10 @@ class AuthZ(ServiceBase):
|
|
342
376
|
type that the subject has access to the action with.
|
343
377
|
|
344
378
|
Args:
|
345
|
-
type
|
346
|
-
action
|
347
|
-
subject
|
348
|
-
attributes
|
379
|
+
type: The type to filter resources.
|
380
|
+
action: The action to filter resources.
|
381
|
+
subject: The subject to filter resources.
|
382
|
+
attributes: A JSON object of attribute data.
|
349
383
|
|
350
384
|
Raises:
|
351
385
|
PangeaAPIException: If an API Error happens.
|
@@ -353,7 +387,7 @@ class AuthZ(ServiceBase):
|
|
353
387
|
Returns:
|
354
388
|
Pangea Response with a list of resource IDs.
|
355
389
|
Available response fields can be found in our
|
356
|
-
[API Documentation](https://pangea.cloud/docs/api/authz#/v1/list-resources).
|
390
|
+
[API Documentation](https://pangea.cloud/docs/api/authz#/v1/list-resources-post).
|
357
391
|
|
358
392
|
Examples:
|
359
393
|
authz.list_resources(
|
@@ -369,7 +403,7 @@ class AuthZ(ServiceBase):
|
|
369
403
|
)
|
370
404
|
|
371
405
|
def list_subjects(
|
372
|
-
self, resource: Resource, action: str, attributes:
|
406
|
+
self, resource: Resource, action: str, attributes: dict[str, Any] | None = None, *, debug: bool | None = None
|
373
407
|
) -> PangeaResponse[ListSubjectsResult]:
|
374
408
|
"""List subjects.
|
375
409
|
|
@@ -377,9 +411,10 @@ class AuthZ(ServiceBase):
|
|
377
411
|
access to the action for the given resource.
|
378
412
|
|
379
413
|
Args:
|
380
|
-
resource
|
381
|
-
action
|
382
|
-
attributes
|
414
|
+
resource: The resource to filter subjects.
|
415
|
+
action: The action to filter subjects.
|
416
|
+
attributes: A JSON object of attribute data.
|
417
|
+
debug: Return a path for each found subject.
|
383
418
|
|
384
419
|
Raises:
|
385
420
|
PangeaAPIException: If an API Error happens.
|
@@ -387,7 +422,7 @@ class AuthZ(ServiceBase):
|
|
387
422
|
Returns:
|
388
423
|
Pangea Response with a list of subjects.
|
389
424
|
Available response fields can be found in our
|
390
|
-
[API Documentation](https://pangea.cloud/docs/api/authz#/v1/list-subjects).
|
425
|
+
[API Documentation](https://pangea.cloud/docs/api/authz#/v1/list-subjects-post).
|
391
426
|
|
392
427
|
Examples:
|
393
428
|
response = authz.list_subjects(
|
@@ -396,5 +431,5 @@ class AuthZ(ServiceBase):
|
|
396
431
|
)
|
397
432
|
"""
|
398
433
|
|
399
|
-
input_data = ListSubjectsRequest(resource=resource, action=action, attributes=attributes)
|
434
|
+
input_data = ListSubjectsRequest(resource=resource, action=action, attributes=attributes, debug=debug)
|
400
435
|
return self.request.post("v1/list-subjects", ListSubjectsResult, data=input_data.model_dump(exclude_none=True))
|
pangea/services/file_scan.py
CHANGED
@@ -52,7 +52,7 @@ class FileScan(ServiceBase):
|
|
52
52
|
"""FileScan service client.
|
53
53
|
|
54
54
|
Provides methods to interact with Pangea FileScan Service:
|
55
|
-
https://pangea.cloud/docs/api/
|
55
|
+
https://pangea.cloud/docs/api/file-scan
|
56
56
|
|
57
57
|
The following information is needed:
|
58
58
|
PANGEA_TOKEN - service token which can be found on the Pangea User
|
pangea/services/redact.py
CHANGED
@@ -276,7 +276,7 @@ class Redact(ServiceBase):
|
|
276
276
|
Returns:
|
277
277
|
Pangea Response with redacted text in the response.result property,
|
278
278
|
available response fields can be found in our
|
279
|
-
[API Documentation](https://pangea.cloud/docs/api/redact#redact).
|
279
|
+
[API Documentation](https://pangea.cloud/docs/api/redact#redact-post).
|
280
280
|
|
281
281
|
Examples:
|
282
282
|
response = redact.redact(text="Jenny Jenny... 555-867-5309")
|
@@ -335,7 +335,7 @@ class Redact(ServiceBase):
|
|
335
335
|
Returns:
|
336
336
|
Pangea Response with redacted data in the response.result field,
|
337
337
|
available response fields can be found in our
|
338
|
-
[API Documentation](https://pangea.cloud/docs/api/redact#redact-structured)
|
338
|
+
[API Documentation](https://pangea.cloud/docs/api/redact#redact-structured-post)
|
339
339
|
|
340
340
|
Examples:
|
341
341
|
data = {
|
@@ -378,7 +378,7 @@ class Redact(ServiceBase):
|
|
378
378
|
Returns:
|
379
379
|
Pangea Response with redacted data in the response.result field,
|
380
380
|
available response fields can be found in our
|
381
|
-
[API Documentation](https://pangea.cloud/docs/api/redact#unredact)
|
381
|
+
[API Documentation](https://pangea.cloud/docs/api/redact#unredact-post)
|
382
382
|
"""
|
383
383
|
input = UnredactRequest(redacted_data=redacted_data, fpe_context=fpe_context)
|
384
384
|
return self.request.post("v1/unredact", UnredactResult, data=input.model_dump(exclude_none=True))
|
pangea/services/vault/vault.py
CHANGED
@@ -164,7 +164,7 @@ class Vault(ServiceBase):
|
|
164
164
|
Returns:
|
165
165
|
A PangeaResponse where the id of the deleted secret or key
|
166
166
|
is returned in the response.result field.
|
167
|
-
Available response fields can be found in our [API documentation](https://pangea.cloud/docs/api/vault
|
167
|
+
Available response fields can be found in our [API documentation](https://pangea.cloud/docs/api/vault/v1-general#/v1/delete-post).
|
168
168
|
|
169
169
|
Raises:
|
170
170
|
PangeaAPIException: If an API Error happens
|
@@ -197,7 +197,7 @@ class Vault(ServiceBase):
|
|
197
197
|
Returns:
|
198
198
|
A PangeaResponse where the secret or key
|
199
199
|
is returned in the response.result field.
|
200
|
-
Available response fields can be found in our [API documentation](https://pangea.cloud/docs/api/vault
|
200
|
+
Available response fields can be found in our [API documentation](https://pangea.cloud/docs/api/vault/v1-general#/v1/get-post).
|
201
201
|
|
202
202
|
Raises:
|
203
203
|
PangeaAPIException: If an API Error happens
|
@@ -285,7 +285,7 @@ class Vault(ServiceBase):
|
|
285
285
|
Returns:
|
286
286
|
A PangeaResponse where a list of secrets or keys
|
287
287
|
is returned in the response.result field.
|
288
|
-
Available response fields can be found in our [API documentation](https://pangea.cloud/docs/api/vault
|
288
|
+
Available response fields can be found in our [API documentation](https://pangea.cloud/docs/api/vault/v1-general#/v1/list-post).
|
289
289
|
|
290
290
|
Examples:
|
291
291
|
response = vault.list(
|
@@ -344,7 +344,7 @@ class Vault(ServiceBase):
|
|
344
344
|
Returns:
|
345
345
|
A PangeaResponse where the item ID is returned in the
|
346
346
|
response.result field. Available response fields can be found in our
|
347
|
-
[API documentation](https://pangea.cloud/docs/api/vault
|
347
|
+
[API documentation](https://pangea.cloud/docs/api/vault/v1-general#/v1/update-post).
|
348
348
|
|
349
349
|
Raises:
|
350
350
|
PangeaAPIException: If an API Error happens
|
@@ -1679,7 +1679,7 @@ class Vault(ServiceBase):
|
|
1679
1679
|
Returns:
|
1680
1680
|
A PangeaResponse where the encrypted message in base64 is returned
|
1681
1681
|
in the response.result field. Available response fields can be found
|
1682
|
-
in our [API documentation](https://pangea.cloud/docs/api/vault
|
1682
|
+
in our [API documentation](https://pangea.cloud/docs/api/vault/v1-keys#/v1/key/encrypt-post).
|
1683
1683
|
|
1684
1684
|
Raises:
|
1685
1685
|
PangeaAPIException: If an API Error happens
|
@@ -1715,7 +1715,7 @@ class Vault(ServiceBase):
|
|
1715
1715
|
|
1716
1716
|
Returns:
|
1717
1717
|
A PangeaResponse where the decrypted message in base64 is returned
|
1718
|
-
in the response.result field. Available response fields can be found in our [API documentation](https://pangea.cloud/docs/api/vault
|
1718
|
+
in the response.result field. Available response fields can be found in our [API documentation](https://pangea.cloud/docs/api/vault/v1-keys#/v1/key/decrypt-post).
|
1719
1719
|
|
1720
1720
|
Raises:
|
1721
1721
|
PangeaAPIException: If an API Error happens
|
@@ -1749,7 +1749,7 @@ class Vault(ServiceBase):
|
|
1749
1749
|
Returns:
|
1750
1750
|
A PangeaResponse where the signature of the message in base64 is
|
1751
1751
|
returned in the response.result field. Available response fields can
|
1752
|
-
be found in our [API documentation](https://pangea.cloud/docs/api/vault
|
1752
|
+
be found in our [API documentation](https://pangea.cloud/docs/api/vault/v1-keys#/v1/key/sign-post).
|
1753
1753
|
|
1754
1754
|
Raises:
|
1755
1755
|
PangeaAPIException: If an API Error happens
|
@@ -1785,7 +1785,7 @@ class Vault(ServiceBase):
|
|
1785
1785
|
Returns:
|
1786
1786
|
A PangeaResponse where the signature is valid
|
1787
1787
|
is returned in the response.result field.
|
1788
|
-
Available response fields can be found in our [API documentation](https://pangea.cloud/docs/api/vault
|
1788
|
+
Available response fields can be found in our [API documentation](https://pangea.cloud/docs/api/vault/v1-keys#/v1/key/verify-post).
|
1789
1789
|
|
1790
1790
|
Examples:
|
1791
1791
|
response = vault.verify(
|
@@ -1823,7 +1823,7 @@ class Vault(ServiceBase):
|
|
1823
1823
|
Returns:
|
1824
1824
|
A PangeaResponse where the signature is valid
|
1825
1825
|
is returned in the response.result field.
|
1826
|
-
Available response fields can be found in our [API documentation](https://pangea.cloud/docs/api/vault
|
1826
|
+
Available response fields can be found in our [API documentation](https://pangea.cloud/docs/api/vault/v1-jwt#/v1/key/verify/jwt-post).
|
1827
1827
|
|
1828
1828
|
Examples:
|
1829
1829
|
response = vault.jwt_verify(jws="ewogICJhbGciO...")
|
@@ -1848,7 +1848,7 @@ class Vault(ServiceBase):
|
|
1848
1848
|
Returns:
|
1849
1849
|
A PangeaResponse where the signed JSON Web Token (JWS) is returned
|
1850
1850
|
in the response.result field. Available response fields can be found
|
1851
|
-
in our [API documentation](https://pangea.cloud/docs/api/vault
|
1851
|
+
in our [API documentation](https://pangea.cloud/docs/api/vault/v1-jwt#/v1/key/sign/jwt-post).
|
1852
1852
|
|
1853
1853
|
Examples:
|
1854
1854
|
response = vault.jwt_sign(
|
@@ -1878,7 +1878,7 @@ class Vault(ServiceBase):
|
|
1878
1878
|
Returns:
|
1879
1879
|
A PangeaResponse where the JSON Web Key Set (JWKS) object is
|
1880
1880
|
returned in the response.result field. Available response fields can
|
1881
|
-
be found in our [API documentation](https://pangea.cloud/docs/api/vault
|
1881
|
+
be found in our [API documentation](https://pangea.cloud/docs/api/vault/v1-jwt#/v1/get/jwk-post).
|
1882
1882
|
|
1883
1883
|
Examples:
|
1884
1884
|
response = vault.jwk_get("pvi_p6g5i3gtbvqvc3u6zugab6qs6r63tqf5")
|
@@ -1910,7 +1910,7 @@ class Vault(ServiceBase):
|
|
1910
1910
|
Returns:
|
1911
1911
|
A PangeaResponse where the state change object is returned in the
|
1912
1912
|
response.result field. Available response fields can be found in our
|
1913
|
-
[API documentation](https://pangea.cloud/docs/api/vault
|
1913
|
+
[API documentation](https://pangea.cloud/docs/api/vault/v1-general#/v1/state/change-post).
|
1914
1914
|
|
1915
1915
|
Raises:
|
1916
1916
|
PangeaAPIException: If an API Error happens
|
@@ -2011,7 +2011,7 @@ class Vault(ServiceBase):
|
|
2011
2011
|
Returns:
|
2012
2012
|
A `PangeaResponse` where the encrypted object is returned in the
|
2013
2013
|
`response.result` field. Available response fields can be found in
|
2014
|
-
our [API documentation](https://pangea.cloud/docs/api/vault
|
2014
|
+
our [API documentation](https://pangea.cloud/docs/api/vault/v1-keys#/v1/key/encrypt/structured-post).
|
2015
2015
|
|
2016
2016
|
Raises:
|
2017
2017
|
PangeaAPIException: If an API error happens.
|
@@ -2067,7 +2067,7 @@ class Vault(ServiceBase):
|
|
2067
2067
|
Returns:
|
2068
2068
|
A `PangeaResponse` where the decrypted object is returned in the
|
2069
2069
|
`response.result` field. Available response fields can be found in
|
2070
|
-
our [API documentation](https://pangea.cloud/docs/api/vault
|
2070
|
+
our [API documentation](https://pangea.cloud/docs/api/vault/v1-keys#/v1/key/decrypt/structured-post).
|
2071
2071
|
|
2072
2072
|
Examples:
|
2073
2073
|
data = {"field1": [1, 2, "kxcbC9E9IlgVaSCChPWUMgUC3ko=", "6FfI/LCzatLRLNAc8SuBK/TDnGxp"], "field2": "data2"}
|
@@ -2211,7 +2211,7 @@ class Vault(ServiceBase):
|
|
2211
2211
|
Returns:
|
2212
2212
|
A `PangeaResponse` where the exported key is returned in the
|
2213
2213
|
`response.result` field. Available response fields can be found in
|
2214
|
-
our [API documentation](https://pangea.cloud/docs/api/vault
|
2214
|
+
our [API documentation](https://pangea.cloud/docs/api/vault/v1-general#/v1/export-post).
|
2215
2215
|
|
2216
2216
|
Raises:
|
2217
2217
|
PangeaAPIException: If an API error happens.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: pangea-sdk
|
3
|
-
Version: 6.
|
3
|
+
Version: 6.1.1
|
4
4
|
Summary: Pangea API SDK
|
5
5
|
License: MIT
|
6
6
|
Keywords: Pangea,SDK,Audit
|
@@ -9,11 +9,11 @@ Author-email: glenn.gallien@pangea.cloud
|
|
9
9
|
Requires-Python: >=3.9.2,<4.0.0
|
10
10
|
Classifier: Topic :: Software Development
|
11
11
|
Classifier: Topic :: Software Development :: Libraries
|
12
|
-
Requires-Dist: aiohttp (>=3.11.
|
13
|
-
Requires-Dist: cryptography (>=44.0.
|
12
|
+
Requires-Dist: aiohttp (>=3.11.18,<4.0.0)
|
13
|
+
Requires-Dist: cryptography (>=44.0.3,<44.0.4)
|
14
14
|
Requires-Dist: deprecated (>=1.2.18,<2.0.0)
|
15
15
|
Requires-Dist: google-crc32c (>=1.7.1,<2.0.0)
|
16
|
-
Requires-Dist: pydantic (>=2.11.
|
16
|
+
Requires-Dist: pydantic (>=2.11.4,<3.0.0)
|
17
17
|
Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
|
18
18
|
Requires-Dist: requests (>=2.32.3,<3.0.0)
|
19
19
|
Requires-Dist: requests-toolbelt (>=1.0.0,<2.0.0)
|
@@ -1,21 +1,21 @@
|
|
1
|
-
pangea/__init__.py,sha256=
|
1
|
+
pangea/__init__.py,sha256=4r063L50S_8ns4K9xQd4q4RNoY5giqoor2iJjA1M3Xo,246
|
2
2
|
pangea/asyncio/__init__.py,sha256=kjEMkqMQ521LlMSu5jn3_WgweyArwVZ2C-s3x7mR6Pk,45
|
3
3
|
pangea/asyncio/file_uploader.py,sha256=wI7epib7Rc5jtZw4eJ1L1SlmutDG6CPv59C8N2UPhtY,1436
|
4
|
-
pangea/asyncio/request.py,sha256=
|
4
|
+
pangea/asyncio/request.py,sha256=TXBCCDHdjh9z0dWn21Jvj0itlBRzZzrJHarfx7fVAr4,18059
|
5
5
|
pangea/asyncio/services/__init__.py,sha256=L6Tdhjfx_ZECHskhLMPaCcOefi-r-imw6q_zlU4j-FY,464
|
6
6
|
pangea/asyncio/services/ai_guard.py,sha256=rFksT8LQkyioW3QOq4fLCEZbW5SXiYWpWjLbVovRouE,6294
|
7
|
-
pangea/asyncio/services/audit.py,sha256=
|
8
|
-
pangea/asyncio/services/authn.py,sha256=
|
9
|
-
pangea/asyncio/services/authz.py,sha256=
|
7
|
+
pangea/asyncio/services/audit.py,sha256=KPX_wTIidQRUEfek90owO5dCEc1m7OyxsSZMGX6tNF0,26040
|
8
|
+
pangea/asyncio/services/authn.py,sha256=ZZIYu3lM-hP750BY7hAEKb8GGkE2hZUdLQpVq-pRuuI,52205
|
9
|
+
pangea/asyncio/services/authz.py,sha256=3T0D97ACTx7RuGsopglm8G2Bg4GGNgvoAq3o8OP4lRc,9721
|
10
10
|
pangea/asyncio/services/base.py,sha256=vRFVcO_uEAGJte3OUUBLD43RoiiFB1vC7SPyN6yEMoA,3158
|
11
11
|
pangea/asyncio/services/embargo.py,sha256=ctzj3kip6xos-Eu3JuOskrCGYC8T3JlsgAopZHiPSXM,3068
|
12
|
-
pangea/asyncio/services/file_scan.py,sha256=
|
12
|
+
pangea/asyncio/services/file_scan.py,sha256=01vWZztp25At34Zi0soiu5A_hxScsCk3XH3LXvDKoZg,7110
|
13
13
|
pangea/asyncio/services/intel.py,sha256=BcxGKSoZ1nJiEHyZM9yOwKSSPJUrB6ibJ19KR27VlgQ,40261
|
14
14
|
pangea/asyncio/services/prompt_guard.py,sha256=NbYt-0tRtO5VH7kLmC1lJ5JSV-ztlb9dNFaKKs_fZUM,2553
|
15
|
-
pangea/asyncio/services/redact.py,sha256=
|
15
|
+
pangea/asyncio/services/redact.py,sha256=NyreCHuZjNlOjr21V-tOWuqGCVXOx_LnKctSQ9U6iG0,7966
|
16
16
|
pangea/asyncio/services/sanitize.py,sha256=EbSdq_v9yZWce9xEYWvZharE9bJcxw8cg5Pv8LVxdxc,8627
|
17
17
|
pangea/asyncio/services/share.py,sha256=Qd2Oh4UsLwu7Zo4Xy1KABHuP4TJ9AtcN-XzldvilFVo,30773
|
18
|
-
pangea/asyncio/services/vault.py,sha256=
|
18
|
+
pangea/asyncio/services/vault.py,sha256=jkTwsQtoibx_6ob-ykDIjqloeLtyp3e6E2_BYMd9f1I,77369
|
19
19
|
pangea/audit_logger.py,sha256=gRkCfUUT5LDNaycwxkhZUySgY47jDfn1ZeKOul4XCQI,3842
|
20
20
|
pangea/config.py,sha256=Z2WT_UG0qBQzzVzBfloXYFxS21mSg1YXQ36cAVCqrJk,1963
|
21
21
|
pangea/crypto/rsa.py,sha256=mwSiNy571KAGr3F6oEM0CXWkl9D023ch8ldbZZeLj_4,4747
|
@@ -25,24 +25,24 @@ pangea/dump_audit.py,sha256=IevqaUUh7GDepdIW7slSxeZbkPrWIVbcX3sr4DgpJXI,7090
|
|
25
25
|
pangea/exceptions.py,sha256=OBtzUECpNa6vNp8ySkHC-tm4QjFRCOAHBkMHqzAlOu8,5656
|
26
26
|
pangea/file_uploader.py,sha256=4RQ44xt-faApC61nn2PlwHT7XYrJ4GeQA8Ug4tySEAg,1227
|
27
27
|
pangea/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
28
|
-
pangea/request.py,sha256=
|
28
|
+
pangea/request.py,sha256=QyTS3nY4rpmPQ1xEHnj5ND0aPL3x5PIrE4fFOAwyLaM,24708
|
29
29
|
pangea/response.py,sha256=lPAcYsF9Xg166CiyhCofVmQA-W4jevh0MQXxUa8Re68,7737
|
30
30
|
pangea/services/__init__.py,sha256=h36HzyIGaI5kO6l3UCwKHx_Kd-m_9mYVwn5MLRVzblI,408
|
31
31
|
pangea/services/ai_guard.py,sha256=X1DR1JTYZnLqBFFAHgmRk4xqyGF3GQMO1B3_cqLLVfU,15774
|
32
|
-
pangea/services/audit/audit.py,sha256=
|
32
|
+
pangea/services/audit/audit.py,sha256=41GVKkOH3ex8KMi6oOf_mCNwFqICpnoCH8jZpkvReXI,39098
|
33
33
|
pangea/services/audit/exceptions.py,sha256=bhVuYe4ammacOVxwg98CChxvwZf5FKgR2DcgqILOcwc,471
|
34
34
|
pangea/services/audit/models.py,sha256=1h1B9eSYQMYG3f8WNi1UcDX2-impRrET_ErjJYUnj7M,14678
|
35
35
|
pangea/services/audit/signing.py,sha256=5A4hvPtpfP2kMz8bsiiKUACriXbh5dv9gb_rbqiUtuI,5583
|
36
36
|
pangea/services/audit/util.py,sha256=Zq1qvfeplYfhCP_ud5YMvntSB0UvnCdsuYbOzZkHbjg,7620
|
37
|
-
pangea/services/authn/authn.py,sha256=
|
38
|
-
pangea/services/authn/models.py,sha256=
|
39
|
-
pangea/services/authz.py,sha256=
|
37
|
+
pangea/services/authn/authn.py,sha256=lx_j92WCkyGV9G4EUYIIrhdisNNkSk8zAg-WUSWCErM,51126
|
38
|
+
pangea/services/authn/models.py,sha256=EOoseAWVhr7Gy2HHqxqtvyUNimoi6OVc-x9OMxEeRX8,25253
|
39
|
+
pangea/services/authz.py,sha256=tava276eskCtiz_GwOQQ4HVw71Zbz2xftLWTU8x7DWk,14611
|
40
40
|
pangea/services/base.py,sha256=43pWQcR9CeT4sGzgctF3Sy4M_h7DaUzkuZD2Z7CcDUU,3845
|
41
41
|
pangea/services/embargo.py,sha256=9Wfku4td5ORaIENKmnGmS5jxJJIRfWp6Q51L36Jsy0I,3897
|
42
|
-
pangea/services/file_scan.py,sha256=
|
42
|
+
pangea/services/file_scan.py,sha256=Q0VGzRqBhE7OnrrunX7JQbcVmldybxZN_Trrpeoq4VA,7815
|
43
43
|
pangea/services/intel.py,sha256=y1EX2ctYIxQc52lmHp6-Q_UIDM--t3fOpXDssWiRPfo,56474
|
44
44
|
pangea/services/prompt_guard.py,sha256=Cq8ume2_YPfHre4iN6FYkyTV7NrdwLXlr_wnilfKotE,3446
|
45
|
-
pangea/services/redact.py,sha256=
|
45
|
+
pangea/services/redact.py,sha256=PWIeW2W5lC9DHLdzXBgOInie0AR2aCxmBPUXuAMEkvg,13158
|
46
46
|
pangea/services/sanitize.py,sha256=eAN1HhObiKqygy6HHcfl0NmxYfPMvqSKepwEAVVIIEE,12936
|
47
47
|
pangea/services/share/file_format.py,sha256=1svO1ee_aenA9zoO_AaU-Rk5Ulp7kcPOc_KwNoluyQE,2797
|
48
48
|
pangea/services/share/share.py,sha256=hlhkIr6ScJ5oMFUs9no4HtHNoUEbYU4KoLkiGLxex30,52343
|
@@ -51,10 +51,10 @@ pangea/services/vault/models/common.py,sha256=PSZRFqHTUtEMJJGwywEFM2AU3aV8S-sbco
|
|
51
51
|
pangea/services/vault/models/keys.py,sha256=duAuTiOby_D7MloRvN4gNj0P-b-jx9sdtplAWFxsShw,2786
|
52
52
|
pangea/services/vault/models/secret.py,sha256=ItGdkulM-SEySfcm4a5yGxMvo_omjC7kChv6gdbFnn8,1142
|
53
53
|
pangea/services/vault/models/symmetric.py,sha256=t8xCM1wGGKDBpOqTggFueO4-4-2IFmyxqcs7_PDr7U0,2562
|
54
|
-
pangea/services/vault/vault.py,sha256=
|
54
|
+
pangea/services/vault/vault.py,sha256=2pg3oQrG3OnPeBJDgz6KJxGighifnsI4SUXXY0miXIg,76486
|
55
55
|
pangea/tools.py,sha256=icHduOfZLi02UYdGb5Xl1fQqu-PBRB4tiDPT_nL2Q8E,6380
|
56
56
|
pangea/utils.py,sha256=dZ6MwFVEWXUgXvvDg-k6JnvVfsgslvtaBd7ez7afrqk,4983
|
57
57
|
pangea/verify_audit.py,sha256=nSP17OzoSPdvezRExwfcf45H8ZPZnxZu-CbEp3qFJO0,17354
|
58
|
-
pangea_sdk-6.
|
59
|
-
pangea_sdk-6.
|
60
|
-
pangea_sdk-6.
|
58
|
+
pangea_sdk-6.1.1.dist-info/METADATA,sha256=3NPp98heFZoHGZpELl9kzt5Put7X_u-G6xz0yB4MKeg,6886
|
59
|
+
pangea_sdk-6.1.1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
60
|
+
pangea_sdk-6.1.1.dist-info/RECORD,,
|