stackit-kms 0.1.0__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/PKG-INFO +1 -1
  2. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/pyproject.toml +1 -1
  3. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/__init__.py +4 -0
  4. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/api/default_api.py +34 -10
  5. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/__init__.py +2 -0
  6. stackit_kms-0.3.0/src/stackit/kms/models/access_scope.py +36 -0
  7. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/backend.py +1 -1
  8. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/create_key_payload.py +16 -1
  9. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/create_wrapping_key_payload.py +15 -1
  10. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/key.py +8 -0
  11. stackit_kms-0.3.0/src/stackit/kms/models/protection.py +35 -0
  12. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/wrapping_key.py +8 -0
  13. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/LICENSE.md +0 -0
  14. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/NOTICE.txt +0 -0
  15. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/README.md +0 -0
  16. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/api/__init__.py +0 -0
  17. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/api_client.py +0 -0
  18. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/api_response.py +0 -0
  19. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/configuration.py +0 -0
  20. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/exceptions.py +0 -0
  21. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/algorithm.py +0 -0
  22. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/create_key_ring_payload.py +0 -0
  23. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/decrypt_payload.py +0 -0
  24. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/decrypted_data.py +0 -0
  25. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/encrypt_payload.py +0 -0
  26. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/encrypted_data.py +0 -0
  27. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/http_error.py +0 -0
  28. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/import_key_payload.py +0 -0
  29. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/key_list.py +0 -0
  30. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/key_ring.py +0 -0
  31. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/key_ring_list.py +0 -0
  32. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/purpose.py +0 -0
  33. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/sign_payload.py +0 -0
  34. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/signed_data.py +0 -0
  35. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/verified_data.py +0 -0
  36. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/verify_payload.py +0 -0
  37. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/version.py +0 -0
  38. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/version_list.py +0 -0
  39. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/wrapping_algorithm.py +0 -0
  40. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/wrapping_key_list.py +0 -0
  41. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/models/wrapping_purpose.py +0 -0
  42. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/py.typed +0 -0
  43. {stackit_kms-0.1.0 → stackit_kms-0.3.0}/src/stackit/kms/rest.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: stackit-kms
3
- Version: 0.1.0
3
+ Version: 0.3.0
4
4
  Summary: STACKIT Key Management Service API
5
5
  Author: STACKIT Developer Tools
6
6
  Author-email: developer-tools@stackit.cloud
@@ -3,7 +3,7 @@ name = "stackit-kms"
3
3
 
4
4
  [tool.poetry]
5
5
  name = "stackit-kms"
6
- version = "v0.1.0"
6
+ version = "v0.3.0"
7
7
  authors = [
8
8
  "STACKIT Developer Tools <developer-tools@stackit.cloud>",
9
9
  ]
@@ -28,6 +28,7 @@ __all__ = [
28
28
  "ApiKeyError",
29
29
  "ApiAttributeError",
30
30
  "ApiException",
31
+ "AccessScope",
31
32
  "Algorithm",
32
33
  "Backend",
33
34
  "CreateKeyPayload",
@@ -43,6 +44,7 @@ __all__ = [
43
44
  "KeyList",
44
45
  "KeyRing",
45
46
  "KeyRingList",
47
+ "Protection",
46
48
  "Purpose",
47
49
  "SignPayload",
48
50
  "SignedData",
@@ -71,6 +73,7 @@ from stackit.kms.exceptions import ApiValueError as ApiValueError
71
73
  from stackit.kms.exceptions import OpenApiException as OpenApiException
72
74
 
73
75
  # import models into sdk package
76
+ from stackit.kms.models.access_scope import AccessScope as AccessScope
74
77
  from stackit.kms.models.algorithm import Algorithm as Algorithm
75
78
  from stackit.kms.models.backend import Backend as Backend
76
79
  from stackit.kms.models.create_key_payload import CreateKeyPayload as CreateKeyPayload
@@ -90,6 +93,7 @@ from stackit.kms.models.key import Key as Key
90
93
  from stackit.kms.models.key_list import KeyList as KeyList
91
94
  from stackit.kms.models.key_ring import KeyRing as KeyRing
92
95
  from stackit.kms.models.key_ring_list import KeyRingList as KeyRingList
96
+ from stackit.kms.models.protection import Protection as Protection
93
97
  from stackit.kms.models.purpose import Purpose as Purpose
94
98
  from stackit.kms.models.sign_payload import SignPayload as SignPayload
95
99
  from stackit.kms.models.signed_data import SignedData as SignedData
@@ -1307,6 +1307,7 @@ class DefaultApi:
1307
1307
  "400": "HttpError",
1308
1308
  "401": "HttpError",
1309
1309
  "404": "HttpError",
1310
+ "409": "HttpError",
1310
1311
  "500": "HttpError",
1311
1312
  }
1312
1313
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -1383,6 +1384,7 @@ class DefaultApi:
1383
1384
  "400": "HttpError",
1384
1385
  "401": "HttpError",
1385
1386
  "404": "HttpError",
1387
+ "409": "HttpError",
1386
1388
  "500": "HttpError",
1387
1389
  }
1388
1390
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -1459,6 +1461,7 @@ class DefaultApi:
1459
1461
  "400": "HttpError",
1460
1462
  "401": "HttpError",
1461
1463
  "404": "HttpError",
1464
+ "409": "HttpError",
1462
1465
  "500": "HttpError",
1463
1466
  }
1464
1467
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -1586,6 +1589,7 @@ class DefaultApi:
1586
1589
  "400": "HttpError",
1587
1590
  "401": "HttpError",
1588
1591
  "404": "HttpError",
1592
+ "409": "HttpError",
1589
1593
  "500": "HttpError",
1590
1594
  }
1591
1595
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -1658,6 +1662,7 @@ class DefaultApi:
1658
1662
  "400": "HttpError",
1659
1663
  "401": "HttpError",
1660
1664
  "404": "HttpError",
1665
+ "409": "HttpError",
1661
1666
  "500": "HttpError",
1662
1667
  }
1663
1668
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -1730,6 +1735,7 @@ class DefaultApi:
1730
1735
  "400": "HttpError",
1731
1736
  "401": "HttpError",
1732
1737
  "404": "HttpError",
1738
+ "409": "HttpError",
1733
1739
  "500": "HttpError",
1734
1740
  }
1735
1741
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -1858,6 +1864,7 @@ class DefaultApi:
1858
1864
  "400": "HttpError",
1859
1865
  "401": "HttpError",
1860
1866
  "404": "HttpError",
1867
+ "409": "HttpError",
1861
1868
  "500": "HttpError",
1862
1869
  }
1863
1870
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -1934,6 +1941,7 @@ class DefaultApi:
1934
1941
  "400": "HttpError",
1935
1942
  "401": "HttpError",
1936
1943
  "404": "HttpError",
1944
+ "409": "HttpError",
1937
1945
  "500": "HttpError",
1938
1946
  }
1939
1947
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -2010,6 +2018,7 @@ class DefaultApi:
2010
2018
  "400": "HttpError",
2011
2019
  "401": "HttpError",
2012
2020
  "404": "HttpError",
2021
+ "409": "HttpError",
2013
2022
  "500": "HttpError",
2014
2023
  }
2015
2024
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -2145,6 +2154,7 @@ class DefaultApi:
2145
2154
  "400": "HttpError",
2146
2155
  "401": "HttpError",
2147
2156
  "404": "HttpError",
2157
+ "409": "HttpError",
2148
2158
  "500": "HttpError",
2149
2159
  }
2150
2160
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -2225,6 +2235,7 @@ class DefaultApi:
2225
2235
  "400": "HttpError",
2226
2236
  "401": "HttpError",
2227
2237
  "404": "HttpError",
2238
+ "409": "HttpError",
2228
2239
  "500": "HttpError",
2229
2240
  }
2230
2241
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -2305,6 +2316,7 @@ class DefaultApi:
2305
2316
  "400": "HttpError",
2306
2317
  "401": "HttpError",
2307
2318
  "404": "HttpError",
2319
+ "409": "HttpError",
2308
2320
  "500": "HttpError",
2309
2321
  }
2310
2322
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -2443,6 +2455,7 @@ class DefaultApi:
2443
2455
  "400": "HttpError",
2444
2456
  "401": "HttpError",
2445
2457
  "404": "HttpError",
2458
+ "409": "HttpError",
2446
2459
  "500": "HttpError",
2447
2460
  }
2448
2461
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -2523,6 +2536,7 @@ class DefaultApi:
2523
2536
  "400": "HttpError",
2524
2537
  "401": "HttpError",
2525
2538
  "404": "HttpError",
2539
+ "409": "HttpError",
2526
2540
  "500": "HttpError",
2527
2541
  }
2528
2542
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -2603,6 +2617,7 @@ class DefaultApi:
2603
2617
  "400": "HttpError",
2604
2618
  "401": "HttpError",
2605
2619
  "404": "HttpError",
2620
+ "409": "HttpError",
2606
2621
  "500": "HttpError",
2607
2622
  }
2608
2623
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -2741,6 +2756,7 @@ class DefaultApi:
2741
2756
  "400": "HttpError",
2742
2757
  "401": "HttpError",
2743
2758
  "404": "HttpError",
2759
+ "409": "HttpError",
2744
2760
  "500": "HttpError",
2745
2761
  }
2746
2762
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -2821,6 +2837,7 @@ class DefaultApi:
2821
2837
  "400": "HttpError",
2822
2838
  "401": "HttpError",
2823
2839
  "404": "HttpError",
2840
+ "409": "HttpError",
2824
2841
  "500": "HttpError",
2825
2842
  }
2826
2843
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -2901,6 +2918,7 @@ class DefaultApi:
2901
2918
  "400": "HttpError",
2902
2919
  "401": "HttpError",
2903
2920
  "404": "HttpError",
2921
+ "409": "HttpError",
2904
2922
  "500": "HttpError",
2905
2923
  }
2906
2924
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -4441,7 +4459,7 @@ class DefaultApi:
4441
4459
  _content_type: Optional[StrictStr] = None,
4442
4460
  _headers: Optional[Dict[StrictStr, Any]] = None,
4443
4461
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
4444
- ) -> Key:
4462
+ ) -> Version:
4445
4463
  """Import key
4446
4464
 
4447
4465
  Imports a new version to the given key.
@@ -4491,7 +4509,7 @@ class DefaultApi:
4491
4509
  )
4492
4510
 
4493
4511
  _response_types_map: Dict[str, Optional[str]] = {
4494
- "200": "Key",
4512
+ "200": "Version",
4495
4513
  "400": "HttpError",
4496
4514
  "401": "HttpError",
4497
4515
  "404": "HttpError",
@@ -4522,7 +4540,7 @@ class DefaultApi:
4522
4540
  _content_type: Optional[StrictStr] = None,
4523
4541
  _headers: Optional[Dict[StrictStr, Any]] = None,
4524
4542
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
4525
- ) -> ApiResponse[Key]:
4543
+ ) -> ApiResponse[Version]:
4526
4544
  """Import key
4527
4545
 
4528
4546
  Imports a new version to the given key.
@@ -4572,7 +4590,7 @@ class DefaultApi:
4572
4590
  )
4573
4591
 
4574
4592
  _response_types_map: Dict[str, Optional[str]] = {
4575
- "200": "Key",
4593
+ "200": "Version",
4576
4594
  "400": "HttpError",
4577
4595
  "401": "HttpError",
4578
4596
  "404": "HttpError",
@@ -4653,7 +4671,7 @@ class DefaultApi:
4653
4671
  )
4654
4672
 
4655
4673
  _response_types_map: Dict[str, Optional[str]] = {
4656
- "200": "Key",
4674
+ "200": "Version",
4657
4675
  "400": "HttpError",
4658
4676
  "401": "HttpError",
4659
4677
  "404": "HttpError",
@@ -5869,6 +5887,7 @@ class DefaultApi:
5869
5887
  "400": "HttpError",
5870
5888
  "401": "HttpError",
5871
5889
  "404": "HttpError",
5890
+ "409": "HttpError",
5872
5891
  "500": "HttpError",
5873
5892
  }
5874
5893
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -5945,6 +5964,7 @@ class DefaultApi:
5945
5964
  "400": "HttpError",
5946
5965
  "401": "HttpError",
5947
5966
  "404": "HttpError",
5967
+ "409": "HttpError",
5948
5968
  "500": "HttpError",
5949
5969
  }
5950
5970
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -6021,6 +6041,7 @@ class DefaultApi:
6021
6041
  "400": "HttpError",
6022
6042
  "401": "HttpError",
6023
6043
  "404": "HttpError",
6044
+ "409": "HttpError",
6024
6045
  "500": "HttpError",
6025
6046
  }
6026
6047
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -6156,6 +6177,7 @@ class DefaultApi:
6156
6177
  "400": "HttpError",
6157
6178
  "401": "HttpError",
6158
6179
  "404": "HttpError",
6180
+ "409": "HttpError",
6159
6181
  "500": "HttpError",
6160
6182
  }
6161
6183
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -6236,6 +6258,7 @@ class DefaultApi:
6236
6258
  "400": "HttpError",
6237
6259
  "401": "HttpError",
6238
6260
  "404": "HttpError",
6261
+ "409": "HttpError",
6239
6262
  "500": "HttpError",
6240
6263
  }
6241
6264
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -6316,6 +6339,7 @@ class DefaultApi:
6316
6339
  "400": "HttpError",
6317
6340
  "401": "HttpError",
6318
6341
  "404": "HttpError",
6342
+ "409": "HttpError",
6319
6343
  "500": "HttpError",
6320
6344
  }
6321
6345
  response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
@@ -6399,7 +6423,7 @@ class DefaultApi:
6399
6423
  _content_type: Optional[StrictStr] = None,
6400
6424
  _headers: Optional[Dict[StrictStr, Any]] = None,
6401
6425
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
6402
- ) -> Key:
6426
+ ) -> Version:
6403
6427
  """Rotate key
6404
6428
 
6405
6429
  Rotates the given key.
@@ -6446,7 +6470,7 @@ class DefaultApi:
6446
6470
  )
6447
6471
 
6448
6472
  _response_types_map: Dict[str, Optional[str]] = {
6449
- "200": "Key",
6473
+ "200": "Version",
6450
6474
  "400": "HttpError",
6451
6475
  "401": "HttpError",
6452
6476
  "403": "HttpError",
@@ -6477,7 +6501,7 @@ class DefaultApi:
6477
6501
  _content_type: Optional[StrictStr] = None,
6478
6502
  _headers: Optional[Dict[StrictStr, Any]] = None,
6479
6503
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
6480
- ) -> ApiResponse[Key]:
6504
+ ) -> ApiResponse[Version]:
6481
6505
  """Rotate key
6482
6506
 
6483
6507
  Rotates the given key.
@@ -6524,7 +6548,7 @@ class DefaultApi:
6524
6548
  )
6525
6549
 
6526
6550
  _response_types_map: Dict[str, Optional[str]] = {
6527
- "200": "Key",
6551
+ "200": "Version",
6528
6552
  "400": "HttpError",
6529
6553
  "401": "HttpError",
6530
6554
  "403": "HttpError",
@@ -6602,7 +6626,7 @@ class DefaultApi:
6602
6626
  )
6603
6627
 
6604
6628
  _response_types_map: Dict[str, Optional[str]] = {
6605
- "200": "Key",
6629
+ "200": "Version",
6606
6630
  "400": "HttpError",
6607
6631
  "401": "HttpError",
6608
6632
  "403": "HttpError",
@@ -14,6 +14,7 @@
14
14
 
15
15
 
16
16
  # import models into model package
17
+ from stackit.kms.models.access_scope import AccessScope
17
18
  from stackit.kms.models.algorithm import Algorithm
18
19
  from stackit.kms.models.backend import Backend
19
20
  from stackit.kms.models.create_key_payload import CreateKeyPayload
@@ -29,6 +30,7 @@ from stackit.kms.models.key import Key
29
30
  from stackit.kms.models.key_list import KeyList
30
31
  from stackit.kms.models.key_ring import KeyRing
31
32
  from stackit.kms.models.key_ring_list import KeyRingList
33
+ from stackit.kms.models.protection import Protection
32
34
  from stackit.kms.models.purpose import Purpose
33
35
  from stackit.kms.models.sign_payload import SignPayload
34
36
  from stackit.kms.models.signed_data import SignedData
@@ -0,0 +1,36 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ STACKIT Key Management Service API
5
+
6
+ This API provides endpoints for managing keys and key rings.
7
+
8
+ The version of the OpenAPI document: 1beta.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+ from __future__ import annotations
15
+
16
+ import json
17
+ from enum import Enum
18
+
19
+ from typing_extensions import Self
20
+
21
+
22
+ class AccessScope(str, Enum):
23
+ """
24
+ The access scope of the key.
25
+ """
26
+
27
+ """
28
+ allowed enum values
29
+ """
30
+ PUBLIC = "PUBLIC"
31
+ SNA = "SNA"
32
+
33
+ @classmethod
34
+ def from_json(cls, json_str: str) -> Self:
35
+ """Create an instance of AccessScope from a JSON string"""
36
+ return cls(json.loads(json_str))
@@ -21,7 +21,7 @@ from typing_extensions import Self
21
21
 
22
22
  class Backend(str, Enum):
23
23
  """
24
- The backend that is responsible for maintaining this key.
24
+ The backend that is responsible for maintaining this key. Deprecated - use `protection`.
25
25
  """
26
26
 
27
27
  """
@@ -20,8 +20,10 @@ from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
21
21
  from typing_extensions import Annotated, Self
22
22
 
23
+ from stackit.kms.models.access_scope import AccessScope
23
24
  from stackit.kms.models.algorithm import Algorithm
24
25
  from stackit.kms.models.backend import Backend
26
+ from stackit.kms.models.protection import Protection
25
27
  from stackit.kms.models.purpose import Purpose
26
28
 
27
29
 
@@ -30,6 +32,7 @@ class CreateKeyPayload(BaseModel):
30
32
  CreateKeyPayload
31
33
  """ # noqa: E501
32
34
 
35
+ access_scope: Optional[AccessScope] = AccessScope.PUBLIC
33
36
  algorithm: Algorithm
34
37
  backend: Backend
35
38
  description: Optional[StrictStr] = Field(
@@ -41,8 +44,18 @@ class CreateKeyPayload(BaseModel):
41
44
  import_only: Optional[StrictBool] = Field(
42
45
  default=False, description="States whether versions can be created or only imported.", alias="importOnly"
43
46
  )
47
+ protection: Optional[Protection] = None
44
48
  purpose: Purpose
45
- __properties: ClassVar[List[str]] = ["algorithm", "backend", "description", "displayName", "importOnly", "purpose"]
49
+ __properties: ClassVar[List[str]] = [
50
+ "access_scope",
51
+ "algorithm",
52
+ "backend",
53
+ "description",
54
+ "displayName",
55
+ "importOnly",
56
+ "protection",
57
+ "purpose",
58
+ ]
46
59
 
47
60
  model_config = ConfigDict(
48
61
  populate_by_name=True,
@@ -94,11 +107,13 @@ class CreateKeyPayload(BaseModel):
94
107
 
95
108
  _obj = cls.model_validate(
96
109
  {
110
+ "access_scope": obj.get("access_scope") if obj.get("access_scope") is not None else AccessScope.PUBLIC,
97
111
  "algorithm": obj.get("algorithm"),
98
112
  "backend": obj.get("backend"),
99
113
  "description": obj.get("description"),
100
114
  "displayName": obj.get("displayName"),
101
115
  "importOnly": obj.get("importOnly") if obj.get("importOnly") is not None else False,
116
+ "protection": obj.get("protection"),
102
117
  "purpose": obj.get("purpose"),
103
118
  }
104
119
  )
@@ -20,7 +20,9 @@ from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
21
  from typing_extensions import Annotated, Self
22
22
 
23
+ from stackit.kms.models.access_scope import AccessScope
23
24
  from stackit.kms.models.backend import Backend
25
+ from stackit.kms.models.protection import Protection
24
26
  from stackit.kms.models.wrapping_algorithm import WrappingAlgorithm
25
27
  from stackit.kms.models.wrapping_purpose import WrappingPurpose
26
28
 
@@ -30,6 +32,7 @@ class CreateWrappingKeyPayload(BaseModel):
30
32
  CreateWrappingKeyPayload
31
33
  """ # noqa: E501
32
34
 
35
+ access_scope: Optional[AccessScope] = AccessScope.PUBLIC
33
36
  algorithm: WrappingAlgorithm
34
37
  backend: Backend
35
38
  description: Optional[StrictStr] = Field(
@@ -38,8 +41,17 @@ class CreateWrappingKeyPayload(BaseModel):
38
41
  display_name: Annotated[str, Field(strict=True, max_length=64)] = Field(
39
42
  description="The display name to distinguish multiple wrapping keys.", alias="displayName"
40
43
  )
44
+ protection: Optional[Protection] = None
41
45
  purpose: WrappingPurpose
42
- __properties: ClassVar[List[str]] = ["algorithm", "backend", "description", "displayName", "purpose"]
46
+ __properties: ClassVar[List[str]] = [
47
+ "access_scope",
48
+ "algorithm",
49
+ "backend",
50
+ "description",
51
+ "displayName",
52
+ "protection",
53
+ "purpose",
54
+ ]
43
55
 
44
56
  model_config = ConfigDict(
45
57
  populate_by_name=True,
@@ -91,10 +103,12 @@ class CreateWrappingKeyPayload(BaseModel):
91
103
 
92
104
  _obj = cls.model_validate(
93
105
  {
106
+ "access_scope": obj.get("access_scope") if obj.get("access_scope") is not None else AccessScope.PUBLIC,
94
107
  "algorithm": obj.get("algorithm"),
95
108
  "backend": obj.get("backend"),
96
109
  "description": obj.get("description"),
97
110
  "displayName": obj.get("displayName"),
111
+ "protection": obj.get("protection"),
98
112
  "purpose": obj.get("purpose"),
99
113
  }
100
114
  )
@@ -28,8 +28,10 @@ from pydantic import (
28
28
  )
29
29
  from typing_extensions import Annotated, Self
30
30
 
31
+ from stackit.kms.models.access_scope import AccessScope
31
32
  from stackit.kms.models.algorithm import Algorithm
32
33
  from stackit.kms.models.backend import Backend
34
+ from stackit.kms.models.protection import Protection
33
35
  from stackit.kms.models.purpose import Purpose
34
36
 
35
37
 
@@ -38,6 +40,7 @@ class Key(BaseModel):
38
40
  Key
39
41
  """ # noqa: E501
40
42
 
43
+ access_scope: AccessScope
41
44
  algorithm: Algorithm
42
45
  backend: Backend
43
46
  created_at: datetime = Field(
@@ -61,9 +64,11 @@ class Key(BaseModel):
61
64
  key_ring_id: StrictStr = Field(
62
65
  description="The unique id of the key ring this key is assigned to.", alias="keyRingId"
63
66
  )
67
+ protection: Optional[Protection] = None
64
68
  purpose: Purpose
65
69
  state: StrictStr = Field(description="The current state of the key.")
66
70
  __properties: ClassVar[List[str]] = [
71
+ "access_scope",
67
72
  "algorithm",
68
73
  "backend",
69
74
  "createdAt",
@@ -73,6 +78,7 @@ class Key(BaseModel):
73
78
  "id",
74
79
  "importOnly",
75
80
  "keyRingId",
81
+ "protection",
76
82
  "purpose",
77
83
  "state",
78
84
  ]
@@ -136,6 +142,7 @@ class Key(BaseModel):
136
142
 
137
143
  _obj = cls.model_validate(
138
144
  {
145
+ "access_scope": obj.get("access_scope") if obj.get("access_scope") is not None else AccessScope.PUBLIC,
139
146
  "algorithm": obj.get("algorithm"),
140
147
  "backend": obj.get("backend"),
141
148
  "createdAt": obj.get("createdAt"),
@@ -145,6 +152,7 @@ class Key(BaseModel):
145
152
  "id": obj.get("id"),
146
153
  "importOnly": obj.get("importOnly") if obj.get("importOnly") is not None else False,
147
154
  "keyRingId": obj.get("keyRingId"),
155
+ "protection": obj.get("protection"),
148
156
  "purpose": obj.get("purpose"),
149
157
  "state": obj.get("state"),
150
158
  }
@@ -0,0 +1,35 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ STACKIT Key Management Service API
5
+
6
+ This API provides endpoints for managing keys and key rings.
7
+
8
+ The version of the OpenAPI document: 1beta.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+ from __future__ import annotations
15
+
16
+ import json
17
+ from enum import Enum
18
+
19
+ from typing_extensions import Self
20
+
21
+
22
+ class Protection(str, Enum):
23
+ """
24
+ The underlying system that is responsible for protecting the key material. Overrides the deprecated 'backend' field.
25
+ """
26
+
27
+ """
28
+ allowed enum values
29
+ """
30
+ SOFTWARE = "software"
31
+
32
+ @classmethod
33
+ def from_json(cls, json_str: str) -> Self:
34
+ """Create an instance of Protection from a JSON string"""
35
+ return cls(json.loads(json_str))
@@ -21,7 +21,9 @@ from typing import Any, ClassVar, Dict, List, Optional, Set
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
22
22
  from typing_extensions import Annotated, Self
23
23
 
24
+ from stackit.kms.models.access_scope import AccessScope
24
25
  from stackit.kms.models.backend import Backend
26
+ from stackit.kms.models.protection import Protection
25
27
  from stackit.kms.models.wrapping_algorithm import WrappingAlgorithm
26
28
  from stackit.kms.models.wrapping_purpose import WrappingPurpose
27
29
 
@@ -31,6 +33,7 @@ class WrappingKey(BaseModel):
31
33
  WrappingKey
32
34
  """ # noqa: E501
33
35
 
36
+ access_scope: AccessScope
34
37
  algorithm: WrappingAlgorithm
35
38
  backend: Backend
36
39
  created_at: datetime = Field(
@@ -47,12 +50,14 @@ class WrappingKey(BaseModel):
47
50
  key_ring_id: StrictStr = Field(
48
51
  description="The unique id of the key ring this wrapping key is assigned to.", alias="keyRingId"
49
52
  )
53
+ protection: Optional[Protection] = None
50
54
  public_key: Optional[StrictStr] = Field(
51
55
  default=None, description="The public key of the wrapping key.", alias="publicKey"
52
56
  )
53
57
  purpose: WrappingPurpose
54
58
  state: StrictStr = Field(description="The current state of the wrapping key.")
55
59
  __properties: ClassVar[List[str]] = [
60
+ "access_scope",
56
61
  "algorithm",
57
62
  "backend",
58
63
  "createdAt",
@@ -61,6 +66,7 @@ class WrappingKey(BaseModel):
61
66
  "expiresAt",
62
67
  "id",
63
68
  "keyRingId",
69
+ "protection",
64
70
  "publicKey",
65
71
  "purpose",
66
72
  "state",
@@ -125,6 +131,7 @@ class WrappingKey(BaseModel):
125
131
 
126
132
  _obj = cls.model_validate(
127
133
  {
134
+ "access_scope": obj.get("access_scope") if obj.get("access_scope") is not None else AccessScope.PUBLIC,
128
135
  "algorithm": obj.get("algorithm"),
129
136
  "backend": obj.get("backend"),
130
137
  "createdAt": obj.get("createdAt"),
@@ -133,6 +140,7 @@ class WrappingKey(BaseModel):
133
140
  "expiresAt": obj.get("expiresAt"),
134
141
  "id": obj.get("id"),
135
142
  "keyRingId": obj.get("keyRingId"),
143
+ "protection": obj.get("protection"),
136
144
  "publicKey": obj.get("publicKey"),
137
145
  "purpose": obj.get("purpose"),
138
146
  "state": obj.get("state"),
File without changes
File without changes
File without changes