pulumi-vault 7.6.0a1764657486__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 (274) hide show
  1. pulumi_vault/__init__.py +1399 -0
  2. pulumi_vault/_inputs.py +2701 -0
  3. pulumi_vault/_utilities.py +331 -0
  4. pulumi_vault/ad/__init__.py +12 -0
  5. pulumi_vault/ad/get_access_credentials.py +177 -0
  6. pulumi_vault/ad/secret_backend.py +1916 -0
  7. pulumi_vault/ad/secret_library.py +546 -0
  8. pulumi_vault/ad/secret_role.py +499 -0
  9. pulumi_vault/alicloud/__init__.py +9 -0
  10. pulumi_vault/alicloud/auth_backend_role.py +866 -0
  11. pulumi_vault/approle/__init__.py +12 -0
  12. pulumi_vault/approle/auth_backend_login.py +571 -0
  13. pulumi_vault/approle/auth_backend_role.py +1082 -0
  14. pulumi_vault/approle/auth_backend_role_secret_id.py +796 -0
  15. pulumi_vault/approle/get_auth_backend_role_id.py +169 -0
  16. pulumi_vault/audit.py +499 -0
  17. pulumi_vault/audit_request_header.py +277 -0
  18. pulumi_vault/auth_backend.py +565 -0
  19. pulumi_vault/aws/__init__.py +22 -0
  20. pulumi_vault/aws/auth_backend_cert.py +420 -0
  21. pulumi_vault/aws/auth_backend_client.py +1259 -0
  22. pulumi_vault/aws/auth_backend_config_identity.py +494 -0
  23. pulumi_vault/aws/auth_backend_identity_whitelist.py +380 -0
  24. pulumi_vault/aws/auth_backend_login.py +1046 -0
  25. pulumi_vault/aws/auth_backend_role.py +1961 -0
  26. pulumi_vault/aws/auth_backend_role_tag.py +638 -0
  27. pulumi_vault/aws/auth_backend_roletag_blacklist.py +366 -0
  28. pulumi_vault/aws/auth_backend_sts_role.py +414 -0
  29. pulumi_vault/aws/get_access_credentials.py +369 -0
  30. pulumi_vault/aws/get_static_access_credentials.py +137 -0
  31. pulumi_vault/aws/secret_backend.py +2018 -0
  32. pulumi_vault/aws/secret_backend_role.py +1188 -0
  33. pulumi_vault/aws/secret_backend_static_role.py +639 -0
  34. pulumi_vault/azure/__init__.py +15 -0
  35. pulumi_vault/azure/_inputs.py +108 -0
  36. pulumi_vault/azure/auth_backend_config.py +1096 -0
  37. pulumi_vault/azure/auth_backend_role.py +1176 -0
  38. pulumi_vault/azure/backend.py +1793 -0
  39. pulumi_vault/azure/backend_role.py +883 -0
  40. pulumi_vault/azure/get_access_credentials.py +400 -0
  41. pulumi_vault/azure/outputs.py +107 -0
  42. pulumi_vault/cert_auth_backend_role.py +1539 -0
  43. pulumi_vault/config/__init__.py +9 -0
  44. pulumi_vault/config/__init__.pyi +164 -0
  45. pulumi_vault/config/_inputs.py +73 -0
  46. pulumi_vault/config/outputs.py +1225 -0
  47. pulumi_vault/config/ui_custom_message.py +530 -0
  48. pulumi_vault/config/vars.py +230 -0
  49. pulumi_vault/consul/__init__.py +10 -0
  50. pulumi_vault/consul/secret_backend.py +1517 -0
  51. pulumi_vault/consul/secret_backend_role.py +847 -0
  52. pulumi_vault/database/__init__.py +14 -0
  53. pulumi_vault/database/_inputs.py +11907 -0
  54. pulumi_vault/database/outputs.py +8496 -0
  55. pulumi_vault/database/secret_backend_connection.py +1676 -0
  56. pulumi_vault/database/secret_backend_role.py +840 -0
  57. pulumi_vault/database/secret_backend_static_role.py +881 -0
  58. pulumi_vault/database/secrets_mount.py +2160 -0
  59. pulumi_vault/egp_policy.py +399 -0
  60. pulumi_vault/gcp/__init__.py +17 -0
  61. pulumi_vault/gcp/_inputs.py +441 -0
  62. pulumi_vault/gcp/auth_backend.py +1486 -0
  63. pulumi_vault/gcp/auth_backend_role.py +1235 -0
  64. pulumi_vault/gcp/get_auth_backend_role.py +514 -0
  65. pulumi_vault/gcp/outputs.py +302 -0
  66. pulumi_vault/gcp/secret_backend.py +1807 -0
  67. pulumi_vault/gcp/secret_impersonated_account.py +484 -0
  68. pulumi_vault/gcp/secret_roleset.py +554 -0
  69. pulumi_vault/gcp/secret_static_account.py +557 -0
  70. pulumi_vault/generic/__init__.py +11 -0
  71. pulumi_vault/generic/endpoint.py +786 -0
  72. pulumi_vault/generic/get_secret.py +306 -0
  73. pulumi_vault/generic/secret.py +486 -0
  74. pulumi_vault/get_auth_backend.py +226 -0
  75. pulumi_vault/get_auth_backends.py +170 -0
  76. pulumi_vault/get_namespace.py +226 -0
  77. pulumi_vault/get_namespaces.py +202 -0
  78. pulumi_vault/get_nomad_access_token.py +210 -0
  79. pulumi_vault/get_policy_document.py +160 -0
  80. pulumi_vault/get_raft_autopilot_state.py +267 -0
  81. pulumi_vault/github/__init__.py +13 -0
  82. pulumi_vault/github/_inputs.py +225 -0
  83. pulumi_vault/github/auth_backend.py +1194 -0
  84. pulumi_vault/github/outputs.py +174 -0
  85. pulumi_vault/github/team.py +380 -0
  86. pulumi_vault/github/user.py +380 -0
  87. pulumi_vault/identity/__init__.py +35 -0
  88. pulumi_vault/identity/entity.py +447 -0
  89. pulumi_vault/identity/entity_alias.py +398 -0
  90. pulumi_vault/identity/entity_policies.py +455 -0
  91. pulumi_vault/identity/get_entity.py +384 -0
  92. pulumi_vault/identity/get_group.py +467 -0
  93. pulumi_vault/identity/get_oidc_client_creds.py +175 -0
  94. pulumi_vault/identity/get_oidc_openid_config.py +334 -0
  95. pulumi_vault/identity/get_oidc_public_keys.py +179 -0
  96. pulumi_vault/identity/group.py +805 -0
  97. pulumi_vault/identity/group_alias.py +386 -0
  98. pulumi_vault/identity/group_member_entity_ids.py +444 -0
  99. pulumi_vault/identity/group_member_group_ids.py +467 -0
  100. pulumi_vault/identity/group_policies.py +471 -0
  101. pulumi_vault/identity/mfa_duo.py +674 -0
  102. pulumi_vault/identity/mfa_login_enforcement.py +566 -0
  103. pulumi_vault/identity/mfa_okta.py +626 -0
  104. pulumi_vault/identity/mfa_pingid.py +616 -0
  105. pulumi_vault/identity/mfa_totp.py +758 -0
  106. pulumi_vault/identity/oidc.py +268 -0
  107. pulumi_vault/identity/oidc_assignment.py +375 -0
  108. pulumi_vault/identity/oidc_client.py +667 -0
  109. pulumi_vault/identity/oidc_key.py +474 -0
  110. pulumi_vault/identity/oidc_key_allowed_client_id.py +298 -0
  111. pulumi_vault/identity/oidc_provider.py +550 -0
  112. pulumi_vault/identity/oidc_role.py +543 -0
  113. pulumi_vault/identity/oidc_scope.py +355 -0
  114. pulumi_vault/identity/outputs.py +137 -0
  115. pulumi_vault/jwt/__init__.py +12 -0
  116. pulumi_vault/jwt/_inputs.py +225 -0
  117. pulumi_vault/jwt/auth_backend.py +1347 -0
  118. pulumi_vault/jwt/auth_backend_role.py +1847 -0
  119. pulumi_vault/jwt/outputs.py +174 -0
  120. pulumi_vault/kmip/__init__.py +11 -0
  121. pulumi_vault/kmip/secret_backend.py +1591 -0
  122. pulumi_vault/kmip/secret_role.py +1194 -0
  123. pulumi_vault/kmip/secret_scope.py +372 -0
  124. pulumi_vault/kubernetes/__init__.py +15 -0
  125. pulumi_vault/kubernetes/auth_backend_config.py +654 -0
  126. pulumi_vault/kubernetes/auth_backend_role.py +1031 -0
  127. pulumi_vault/kubernetes/get_auth_backend_config.py +280 -0
  128. pulumi_vault/kubernetes/get_auth_backend_role.py +470 -0
  129. pulumi_vault/kubernetes/get_service_account_token.py +344 -0
  130. pulumi_vault/kubernetes/secret_backend.py +1341 -0
  131. pulumi_vault/kubernetes/secret_backend_role.py +1140 -0
  132. pulumi_vault/kv/__init__.py +18 -0
  133. pulumi_vault/kv/_inputs.py +124 -0
  134. pulumi_vault/kv/get_secret.py +240 -0
  135. pulumi_vault/kv/get_secret_subkeys_v2.py +275 -0
  136. pulumi_vault/kv/get_secret_v2.py +315 -0
  137. pulumi_vault/kv/get_secrets_list.py +186 -0
  138. pulumi_vault/kv/get_secrets_list_v2.py +243 -0
  139. pulumi_vault/kv/outputs.py +102 -0
  140. pulumi_vault/kv/secret.py +397 -0
  141. pulumi_vault/kv/secret_backend_v2.py +455 -0
  142. pulumi_vault/kv/secret_v2.py +970 -0
  143. pulumi_vault/ldap/__init__.py +19 -0
  144. pulumi_vault/ldap/_inputs.py +225 -0
  145. pulumi_vault/ldap/auth_backend.py +2520 -0
  146. pulumi_vault/ldap/auth_backend_group.py +386 -0
  147. pulumi_vault/ldap/auth_backend_user.py +439 -0
  148. pulumi_vault/ldap/get_dynamic_credentials.py +181 -0
  149. pulumi_vault/ldap/get_static_credentials.py +192 -0
  150. pulumi_vault/ldap/outputs.py +174 -0
  151. pulumi_vault/ldap/secret_backend.py +2207 -0
  152. pulumi_vault/ldap/secret_backend_dynamic_role.py +767 -0
  153. pulumi_vault/ldap/secret_backend_library_set.py +552 -0
  154. pulumi_vault/ldap/secret_backend_static_role.py +541 -0
  155. pulumi_vault/managed/__init__.py +11 -0
  156. pulumi_vault/managed/_inputs.py +944 -0
  157. pulumi_vault/managed/keys.py +398 -0
  158. pulumi_vault/managed/outputs.py +667 -0
  159. pulumi_vault/mfa_duo.py +589 -0
  160. pulumi_vault/mfa_okta.py +623 -0
  161. pulumi_vault/mfa_pingid.py +670 -0
  162. pulumi_vault/mfa_totp.py +620 -0
  163. pulumi_vault/mongodbatlas/__init__.py +10 -0
  164. pulumi_vault/mongodbatlas/secret_backend.py +388 -0
  165. pulumi_vault/mongodbatlas/secret_role.py +726 -0
  166. pulumi_vault/mount.py +1262 -0
  167. pulumi_vault/namespace.py +452 -0
  168. pulumi_vault/nomad_secret_backend.py +1559 -0
  169. pulumi_vault/nomad_secret_role.py +489 -0
  170. pulumi_vault/oci_auth_backend.py +676 -0
  171. pulumi_vault/oci_auth_backend_role.py +852 -0
  172. pulumi_vault/okta/__init__.py +13 -0
  173. pulumi_vault/okta/_inputs.py +320 -0
  174. pulumi_vault/okta/auth_backend.py +1231 -0
  175. pulumi_vault/okta/auth_backend_group.py +369 -0
  176. pulumi_vault/okta/auth_backend_user.py +416 -0
  177. pulumi_vault/okta/outputs.py +244 -0
  178. pulumi_vault/outputs.py +502 -0
  179. pulumi_vault/pkisecret/__init__.py +38 -0
  180. pulumi_vault/pkisecret/_inputs.py +270 -0
  181. pulumi_vault/pkisecret/backend_acme_eab.py +550 -0
  182. pulumi_vault/pkisecret/backend_config_acme.py +690 -0
  183. pulumi_vault/pkisecret/backend_config_auto_tidy.py +1370 -0
  184. pulumi_vault/pkisecret/backend_config_cluster.py +370 -0
  185. pulumi_vault/pkisecret/backend_config_cmpv2.py +693 -0
  186. pulumi_vault/pkisecret/backend_config_est.py +756 -0
  187. pulumi_vault/pkisecret/backend_config_scep.py +738 -0
  188. pulumi_vault/pkisecret/get_backend_cert_metadata.py +277 -0
  189. pulumi_vault/pkisecret/get_backend_config_cmpv2.py +226 -0
  190. pulumi_vault/pkisecret/get_backend_config_est.py +251 -0
  191. pulumi_vault/pkisecret/get_backend_config_scep.py +271 -0
  192. pulumi_vault/pkisecret/get_backend_issuer.py +395 -0
  193. pulumi_vault/pkisecret/get_backend_issuers.py +192 -0
  194. pulumi_vault/pkisecret/get_backend_key.py +211 -0
  195. pulumi_vault/pkisecret/get_backend_keys.py +192 -0
  196. pulumi_vault/pkisecret/outputs.py +270 -0
  197. pulumi_vault/pkisecret/secret_backend_cert.py +1315 -0
  198. pulumi_vault/pkisecret/secret_backend_config_ca.py +386 -0
  199. pulumi_vault/pkisecret/secret_backend_config_issuers.py +392 -0
  200. pulumi_vault/pkisecret/secret_backend_config_urls.py +462 -0
  201. pulumi_vault/pkisecret/secret_backend_crl_config.py +846 -0
  202. pulumi_vault/pkisecret/secret_backend_intermediate_cert_request.py +1629 -0
  203. pulumi_vault/pkisecret/secret_backend_intermediate_set_signed.py +444 -0
  204. pulumi_vault/pkisecret/secret_backend_issuer.py +1089 -0
  205. pulumi_vault/pkisecret/secret_backend_key.py +613 -0
  206. pulumi_vault/pkisecret/secret_backend_role.py +2694 -0
  207. pulumi_vault/pkisecret/secret_backend_root_cert.py +2134 -0
  208. pulumi_vault/pkisecret/secret_backend_root_sign_intermediate.py +2031 -0
  209. pulumi_vault/pkisecret/secret_backend_sign.py +1194 -0
  210. pulumi_vault/plugin.py +596 -0
  211. pulumi_vault/plugin_pinned_version.py +299 -0
  212. pulumi_vault/policy.py +279 -0
  213. pulumi_vault/provider.py +781 -0
  214. pulumi_vault/pulumi-plugin.json +5 -0
  215. pulumi_vault/py.typed +0 -0
  216. pulumi_vault/quota_lease_count.py +504 -0
  217. pulumi_vault/quota_rate_limit.py +751 -0
  218. pulumi_vault/rabbitmq/__init__.py +12 -0
  219. pulumi_vault/rabbitmq/_inputs.py +235 -0
  220. pulumi_vault/rabbitmq/outputs.py +144 -0
  221. pulumi_vault/rabbitmq/secret_backend.py +1437 -0
  222. pulumi_vault/rabbitmq/secret_backend_role.py +496 -0
  223. pulumi_vault/raft_autopilot.py +609 -0
  224. pulumi_vault/raft_snapshot_agent_config.py +1591 -0
  225. pulumi_vault/rgp_policy.py +349 -0
  226. pulumi_vault/saml/__init__.py +12 -0
  227. pulumi_vault/saml/_inputs.py +225 -0
  228. pulumi_vault/saml/auth_backend.py +811 -0
  229. pulumi_vault/saml/auth_backend_role.py +1068 -0
  230. pulumi_vault/saml/outputs.py +174 -0
  231. pulumi_vault/scep_auth_backend_role.py +908 -0
  232. pulumi_vault/secrets/__init__.py +18 -0
  233. pulumi_vault/secrets/_inputs.py +110 -0
  234. pulumi_vault/secrets/outputs.py +94 -0
  235. pulumi_vault/secrets/sync_association.py +450 -0
  236. pulumi_vault/secrets/sync_aws_destination.py +780 -0
  237. pulumi_vault/secrets/sync_azure_destination.py +736 -0
  238. pulumi_vault/secrets/sync_config.py +303 -0
  239. pulumi_vault/secrets/sync_gcp_destination.py +572 -0
  240. pulumi_vault/secrets/sync_gh_destination.py +688 -0
  241. pulumi_vault/secrets/sync_github_apps.py +376 -0
  242. pulumi_vault/secrets/sync_vercel_destination.py +603 -0
  243. pulumi_vault/ssh/__init__.py +13 -0
  244. pulumi_vault/ssh/_inputs.py +76 -0
  245. pulumi_vault/ssh/get_secret_backend_sign.py +294 -0
  246. pulumi_vault/ssh/outputs.py +51 -0
  247. pulumi_vault/ssh/secret_backend_ca.py +588 -0
  248. pulumi_vault/ssh/secret_backend_role.py +1493 -0
  249. pulumi_vault/terraformcloud/__init__.py +11 -0
  250. pulumi_vault/terraformcloud/secret_backend.py +1321 -0
  251. pulumi_vault/terraformcloud/secret_creds.py +445 -0
  252. pulumi_vault/terraformcloud/secret_role.py +563 -0
  253. pulumi_vault/token.py +1026 -0
  254. pulumi_vault/tokenauth/__init__.py +9 -0
  255. pulumi_vault/tokenauth/auth_backend_role.py +1135 -0
  256. pulumi_vault/transform/__init__.py +14 -0
  257. pulumi_vault/transform/alphabet.py +348 -0
  258. pulumi_vault/transform/get_decode.py +287 -0
  259. pulumi_vault/transform/get_encode.py +291 -0
  260. pulumi_vault/transform/role.py +350 -0
  261. pulumi_vault/transform/template.py +592 -0
  262. pulumi_vault/transform/transformation.py +608 -0
  263. pulumi_vault/transit/__init__.py +15 -0
  264. pulumi_vault/transit/get_cmac.py +256 -0
  265. pulumi_vault/transit/get_decrypt.py +181 -0
  266. pulumi_vault/transit/get_encrypt.py +174 -0
  267. pulumi_vault/transit/get_sign.py +328 -0
  268. pulumi_vault/transit/get_verify.py +373 -0
  269. pulumi_vault/transit/secret_backend_key.py +1202 -0
  270. pulumi_vault/transit/secret_cache_config.py +302 -0
  271. pulumi_vault-7.6.0a1764657486.dist-info/METADATA +92 -0
  272. pulumi_vault-7.6.0a1764657486.dist-info/RECORD +274 -0
  273. pulumi_vault-7.6.0a1764657486.dist-info/WHEEL +5 -0
  274. pulumi_vault-7.6.0a1764657486.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1202 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins as _builtins
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+
17
+ __all__ = ['SecretBackendKeyArgs', 'SecretBackendKey']
18
+
19
+ @pulumi.input_type
20
+ class SecretBackendKeyArgs:
21
+ def __init__(__self__, *,
22
+ backend: pulumi.Input[_builtins.str],
23
+ allow_plaintext_backup: Optional[pulumi.Input[_builtins.bool]] = None,
24
+ auto_rotate_period: Optional[pulumi.Input[_builtins.int]] = None,
25
+ convergent_encryption: Optional[pulumi.Input[_builtins.bool]] = None,
26
+ deletion_allowed: Optional[pulumi.Input[_builtins.bool]] = None,
27
+ derived: Optional[pulumi.Input[_builtins.bool]] = None,
28
+ exportable: Optional[pulumi.Input[_builtins.bool]] = None,
29
+ hybrid_key_type_ec: Optional[pulumi.Input[_builtins.str]] = None,
30
+ hybrid_key_type_pqc: Optional[pulumi.Input[_builtins.str]] = None,
31
+ key_size: Optional[pulumi.Input[_builtins.int]] = None,
32
+ min_decryption_version: Optional[pulumi.Input[_builtins.int]] = None,
33
+ min_encryption_version: Optional[pulumi.Input[_builtins.int]] = None,
34
+ name: Optional[pulumi.Input[_builtins.str]] = None,
35
+ namespace: Optional[pulumi.Input[_builtins.str]] = None,
36
+ parameter_set: Optional[pulumi.Input[_builtins.str]] = None,
37
+ type: Optional[pulumi.Input[_builtins.str]] = None):
38
+ """
39
+ The set of arguments for constructing a SecretBackendKey resource.
40
+ :param pulumi.Input[_builtins.str] backend: The path the transit secret backend is mounted at, with no leading or trailing `/`s.
41
+ :param pulumi.Input[_builtins.bool] allow_plaintext_backup: Enables taking backup of entire keyring in the plaintext format. Once set, this cannot be disabled.
42
+ * Refer to Vault API documentation on key backups for more information: [Backup Key](https://www.vaultproject.io/api-docs/secret/transit#backup-key)
43
+ :param pulumi.Input[_builtins.int] auto_rotate_period: Amount of seconds the key should live before being automatically rotated.
44
+ A value of 0 disables automatic rotation for the key.
45
+ :param pulumi.Input[_builtins.bool] convergent_encryption: Whether or not to support convergent encryption, where the same plaintext creates the same ciphertext. This requires `derived` to be set to `true`.
46
+ :param pulumi.Input[_builtins.bool] deletion_allowed: Specifies if the key is allowed to be deleted.
47
+ :param pulumi.Input[_builtins.bool] derived: Specifies if key derivation is to be used. If enabled, all encrypt/decrypt requests to this key must provide a context which is used for key derivation.
48
+ :param pulumi.Input[_builtins.bool] exportable: Enables keys to be exportable. This allows for all valid private keys in the keyring to be exported. Once set, this cannot be disabled.
49
+ :param pulumi.Input[_builtins.str] hybrid_key_type_ec: The elliptic curve algorithm to use for hybrid signatures.
50
+ Supported key types are `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, and `ed25519`.
51
+ :param pulumi.Input[_builtins.str] hybrid_key_type_pqc: The post-quantum algorithm to use for hybrid signatures.
52
+ Currently, ML-DSA is the only supported key type.
53
+ :param pulumi.Input[_builtins.int] key_size: The key size in bytes for algorithms that allow variable key sizes. Currently only applicable to HMAC, where it must be between 32 and 512 bytes.
54
+ :param pulumi.Input[_builtins.int] min_decryption_version: Minimum key version to use for decryption.
55
+ :param pulumi.Input[_builtins.int] min_encryption_version: Minimum key version to use for encryption
56
+ :param pulumi.Input[_builtins.str] name: The name to identify this key within the backend. Must be unique within the backend.
57
+ :param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
58
+ The value should not contain leading or trailing forward slashes.
59
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
60
+ *Available only for Vault Enterprise*.
61
+ :param pulumi.Input[_builtins.str] parameter_set: The parameter set to use for ML-DSA or SLH-DSA. Required for
62
+ ML-DSA, hybrid, and SLH-DSA keys.
63
+ Valid values for ML-DSA are `44`, `65`, and `87`.
64
+ Valid values for SLH-DSA are `slh-dsa-sha2-128s`, `slh-dsa-shake-128s`, `slh-dsa-sha2-128f`, `slh-dsa-shake-128`, `slh-dsa-sha2-192s`,
65
+ `slh-dsa-shake-192s`, `slh-dsa-sha2-192f`, `slh-dsa-shake-192f`, `slh-dsa-sha2-256s`, `slh-dsa-shake-256s`,
66
+ `slh-dsa-sha2-256f`, and `slh-dsa-shake-256f`.
67
+ :param pulumi.Input[_builtins.str] type: Specifies the type of key to create. The currently-supported types are: `aes128-gcm96`, `aes256-gcm96` (default), `chacha20-poly1305`, `ed25519`, `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, `hmac`, `rsa-2048`, `rsa-3072`, `rsa-4096`, `managed_key`, `aes128-cmac`, `aes192-cmac`, `aes256-cmac`, `ml-dsa`, `hybrid`, and `slh-dsa`.
68
+ * Refer to the Vault documentation on transit key types for more information: [Key Types](https://www.vaultproject.io/docs/secrets/transit#key-types)
69
+ """
70
+ pulumi.set(__self__, "backend", backend)
71
+ if allow_plaintext_backup is not None:
72
+ pulumi.set(__self__, "allow_plaintext_backup", allow_plaintext_backup)
73
+ if auto_rotate_period is not None:
74
+ pulumi.set(__self__, "auto_rotate_period", auto_rotate_period)
75
+ if convergent_encryption is not None:
76
+ pulumi.set(__self__, "convergent_encryption", convergent_encryption)
77
+ if deletion_allowed is not None:
78
+ pulumi.set(__self__, "deletion_allowed", deletion_allowed)
79
+ if derived is not None:
80
+ pulumi.set(__self__, "derived", derived)
81
+ if exportable is not None:
82
+ pulumi.set(__self__, "exportable", exportable)
83
+ if hybrid_key_type_ec is not None:
84
+ pulumi.set(__self__, "hybrid_key_type_ec", hybrid_key_type_ec)
85
+ if hybrid_key_type_pqc is not None:
86
+ pulumi.set(__self__, "hybrid_key_type_pqc", hybrid_key_type_pqc)
87
+ if key_size is not None:
88
+ pulumi.set(__self__, "key_size", key_size)
89
+ if min_decryption_version is not None:
90
+ pulumi.set(__self__, "min_decryption_version", min_decryption_version)
91
+ if min_encryption_version is not None:
92
+ pulumi.set(__self__, "min_encryption_version", min_encryption_version)
93
+ if name is not None:
94
+ pulumi.set(__self__, "name", name)
95
+ if namespace is not None:
96
+ pulumi.set(__self__, "namespace", namespace)
97
+ if parameter_set is not None:
98
+ pulumi.set(__self__, "parameter_set", parameter_set)
99
+ if type is not None:
100
+ pulumi.set(__self__, "type", type)
101
+
102
+ @_builtins.property
103
+ @pulumi.getter
104
+ def backend(self) -> pulumi.Input[_builtins.str]:
105
+ """
106
+ The path the transit secret backend is mounted at, with no leading or trailing `/`s.
107
+ """
108
+ return pulumi.get(self, "backend")
109
+
110
+ @backend.setter
111
+ def backend(self, value: pulumi.Input[_builtins.str]):
112
+ pulumi.set(self, "backend", value)
113
+
114
+ @_builtins.property
115
+ @pulumi.getter(name="allowPlaintextBackup")
116
+ def allow_plaintext_backup(self) -> Optional[pulumi.Input[_builtins.bool]]:
117
+ """
118
+ Enables taking backup of entire keyring in the plaintext format. Once set, this cannot be disabled.
119
+ * Refer to Vault API documentation on key backups for more information: [Backup Key](https://www.vaultproject.io/api-docs/secret/transit#backup-key)
120
+ """
121
+ return pulumi.get(self, "allow_plaintext_backup")
122
+
123
+ @allow_plaintext_backup.setter
124
+ def allow_plaintext_backup(self, value: Optional[pulumi.Input[_builtins.bool]]):
125
+ pulumi.set(self, "allow_plaintext_backup", value)
126
+
127
+ @_builtins.property
128
+ @pulumi.getter(name="autoRotatePeriod")
129
+ def auto_rotate_period(self) -> Optional[pulumi.Input[_builtins.int]]:
130
+ """
131
+ Amount of seconds the key should live before being automatically rotated.
132
+ A value of 0 disables automatic rotation for the key.
133
+ """
134
+ return pulumi.get(self, "auto_rotate_period")
135
+
136
+ @auto_rotate_period.setter
137
+ def auto_rotate_period(self, value: Optional[pulumi.Input[_builtins.int]]):
138
+ pulumi.set(self, "auto_rotate_period", value)
139
+
140
+ @_builtins.property
141
+ @pulumi.getter(name="convergentEncryption")
142
+ def convergent_encryption(self) -> Optional[pulumi.Input[_builtins.bool]]:
143
+ """
144
+ Whether or not to support convergent encryption, where the same plaintext creates the same ciphertext. This requires `derived` to be set to `true`.
145
+ """
146
+ return pulumi.get(self, "convergent_encryption")
147
+
148
+ @convergent_encryption.setter
149
+ def convergent_encryption(self, value: Optional[pulumi.Input[_builtins.bool]]):
150
+ pulumi.set(self, "convergent_encryption", value)
151
+
152
+ @_builtins.property
153
+ @pulumi.getter(name="deletionAllowed")
154
+ def deletion_allowed(self) -> Optional[pulumi.Input[_builtins.bool]]:
155
+ """
156
+ Specifies if the key is allowed to be deleted.
157
+ """
158
+ return pulumi.get(self, "deletion_allowed")
159
+
160
+ @deletion_allowed.setter
161
+ def deletion_allowed(self, value: Optional[pulumi.Input[_builtins.bool]]):
162
+ pulumi.set(self, "deletion_allowed", value)
163
+
164
+ @_builtins.property
165
+ @pulumi.getter
166
+ def derived(self) -> Optional[pulumi.Input[_builtins.bool]]:
167
+ """
168
+ Specifies if key derivation is to be used. If enabled, all encrypt/decrypt requests to this key must provide a context which is used for key derivation.
169
+ """
170
+ return pulumi.get(self, "derived")
171
+
172
+ @derived.setter
173
+ def derived(self, value: Optional[pulumi.Input[_builtins.bool]]):
174
+ pulumi.set(self, "derived", value)
175
+
176
+ @_builtins.property
177
+ @pulumi.getter
178
+ def exportable(self) -> Optional[pulumi.Input[_builtins.bool]]:
179
+ """
180
+ Enables keys to be exportable. This allows for all valid private keys in the keyring to be exported. Once set, this cannot be disabled.
181
+ """
182
+ return pulumi.get(self, "exportable")
183
+
184
+ @exportable.setter
185
+ def exportable(self, value: Optional[pulumi.Input[_builtins.bool]]):
186
+ pulumi.set(self, "exportable", value)
187
+
188
+ @_builtins.property
189
+ @pulumi.getter(name="hybridKeyTypeEc")
190
+ def hybrid_key_type_ec(self) -> Optional[pulumi.Input[_builtins.str]]:
191
+ """
192
+ The elliptic curve algorithm to use for hybrid signatures.
193
+ Supported key types are `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, and `ed25519`.
194
+ """
195
+ return pulumi.get(self, "hybrid_key_type_ec")
196
+
197
+ @hybrid_key_type_ec.setter
198
+ def hybrid_key_type_ec(self, value: Optional[pulumi.Input[_builtins.str]]):
199
+ pulumi.set(self, "hybrid_key_type_ec", value)
200
+
201
+ @_builtins.property
202
+ @pulumi.getter(name="hybridKeyTypePqc")
203
+ def hybrid_key_type_pqc(self) -> Optional[pulumi.Input[_builtins.str]]:
204
+ """
205
+ The post-quantum algorithm to use for hybrid signatures.
206
+ Currently, ML-DSA is the only supported key type.
207
+ """
208
+ return pulumi.get(self, "hybrid_key_type_pqc")
209
+
210
+ @hybrid_key_type_pqc.setter
211
+ def hybrid_key_type_pqc(self, value: Optional[pulumi.Input[_builtins.str]]):
212
+ pulumi.set(self, "hybrid_key_type_pqc", value)
213
+
214
+ @_builtins.property
215
+ @pulumi.getter(name="keySize")
216
+ def key_size(self) -> Optional[pulumi.Input[_builtins.int]]:
217
+ """
218
+ The key size in bytes for algorithms that allow variable key sizes. Currently only applicable to HMAC, where it must be between 32 and 512 bytes.
219
+ """
220
+ return pulumi.get(self, "key_size")
221
+
222
+ @key_size.setter
223
+ def key_size(self, value: Optional[pulumi.Input[_builtins.int]]):
224
+ pulumi.set(self, "key_size", value)
225
+
226
+ @_builtins.property
227
+ @pulumi.getter(name="minDecryptionVersion")
228
+ def min_decryption_version(self) -> Optional[pulumi.Input[_builtins.int]]:
229
+ """
230
+ Minimum key version to use for decryption.
231
+ """
232
+ return pulumi.get(self, "min_decryption_version")
233
+
234
+ @min_decryption_version.setter
235
+ def min_decryption_version(self, value: Optional[pulumi.Input[_builtins.int]]):
236
+ pulumi.set(self, "min_decryption_version", value)
237
+
238
+ @_builtins.property
239
+ @pulumi.getter(name="minEncryptionVersion")
240
+ def min_encryption_version(self) -> Optional[pulumi.Input[_builtins.int]]:
241
+ """
242
+ Minimum key version to use for encryption
243
+ """
244
+ return pulumi.get(self, "min_encryption_version")
245
+
246
+ @min_encryption_version.setter
247
+ def min_encryption_version(self, value: Optional[pulumi.Input[_builtins.int]]):
248
+ pulumi.set(self, "min_encryption_version", value)
249
+
250
+ @_builtins.property
251
+ @pulumi.getter
252
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
253
+ """
254
+ The name to identify this key within the backend. Must be unique within the backend.
255
+ """
256
+ return pulumi.get(self, "name")
257
+
258
+ @name.setter
259
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
260
+ pulumi.set(self, "name", value)
261
+
262
+ @_builtins.property
263
+ @pulumi.getter
264
+ def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
265
+ """
266
+ The namespace to provision the resource in.
267
+ The value should not contain leading or trailing forward slashes.
268
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
269
+ *Available only for Vault Enterprise*.
270
+ """
271
+ return pulumi.get(self, "namespace")
272
+
273
+ @namespace.setter
274
+ def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
275
+ pulumi.set(self, "namespace", value)
276
+
277
+ @_builtins.property
278
+ @pulumi.getter(name="parameterSet")
279
+ def parameter_set(self) -> Optional[pulumi.Input[_builtins.str]]:
280
+ """
281
+ The parameter set to use for ML-DSA or SLH-DSA. Required for
282
+ ML-DSA, hybrid, and SLH-DSA keys.
283
+ Valid values for ML-DSA are `44`, `65`, and `87`.
284
+ Valid values for SLH-DSA are `slh-dsa-sha2-128s`, `slh-dsa-shake-128s`, `slh-dsa-sha2-128f`, `slh-dsa-shake-128`, `slh-dsa-sha2-192s`,
285
+ `slh-dsa-shake-192s`, `slh-dsa-sha2-192f`, `slh-dsa-shake-192f`, `slh-dsa-sha2-256s`, `slh-dsa-shake-256s`,
286
+ `slh-dsa-sha2-256f`, and `slh-dsa-shake-256f`.
287
+ """
288
+ return pulumi.get(self, "parameter_set")
289
+
290
+ @parameter_set.setter
291
+ def parameter_set(self, value: Optional[pulumi.Input[_builtins.str]]):
292
+ pulumi.set(self, "parameter_set", value)
293
+
294
+ @_builtins.property
295
+ @pulumi.getter
296
+ def type(self) -> Optional[pulumi.Input[_builtins.str]]:
297
+ """
298
+ Specifies the type of key to create. The currently-supported types are: `aes128-gcm96`, `aes256-gcm96` (default), `chacha20-poly1305`, `ed25519`, `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, `hmac`, `rsa-2048`, `rsa-3072`, `rsa-4096`, `managed_key`, `aes128-cmac`, `aes192-cmac`, `aes256-cmac`, `ml-dsa`, `hybrid`, and `slh-dsa`.
299
+ * Refer to the Vault documentation on transit key types for more information: [Key Types](https://www.vaultproject.io/docs/secrets/transit#key-types)
300
+ """
301
+ return pulumi.get(self, "type")
302
+
303
+ @type.setter
304
+ def type(self, value: Optional[pulumi.Input[_builtins.str]]):
305
+ pulumi.set(self, "type", value)
306
+
307
+
308
+ @pulumi.input_type
309
+ class _SecretBackendKeyState:
310
+ def __init__(__self__, *,
311
+ allow_plaintext_backup: Optional[pulumi.Input[_builtins.bool]] = None,
312
+ auto_rotate_period: Optional[pulumi.Input[_builtins.int]] = None,
313
+ backend: Optional[pulumi.Input[_builtins.str]] = None,
314
+ convergent_encryption: Optional[pulumi.Input[_builtins.bool]] = None,
315
+ deletion_allowed: Optional[pulumi.Input[_builtins.bool]] = None,
316
+ derived: Optional[pulumi.Input[_builtins.bool]] = None,
317
+ exportable: Optional[pulumi.Input[_builtins.bool]] = None,
318
+ hybrid_key_type_ec: Optional[pulumi.Input[_builtins.str]] = None,
319
+ hybrid_key_type_pqc: Optional[pulumi.Input[_builtins.str]] = None,
320
+ key_size: Optional[pulumi.Input[_builtins.int]] = None,
321
+ keys: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]] = None,
322
+ latest_version: Optional[pulumi.Input[_builtins.int]] = None,
323
+ min_available_version: Optional[pulumi.Input[_builtins.int]] = None,
324
+ min_decryption_version: Optional[pulumi.Input[_builtins.int]] = None,
325
+ min_encryption_version: Optional[pulumi.Input[_builtins.int]] = None,
326
+ name: Optional[pulumi.Input[_builtins.str]] = None,
327
+ namespace: Optional[pulumi.Input[_builtins.str]] = None,
328
+ parameter_set: Optional[pulumi.Input[_builtins.str]] = None,
329
+ supports_decryption: Optional[pulumi.Input[_builtins.bool]] = None,
330
+ supports_derivation: Optional[pulumi.Input[_builtins.bool]] = None,
331
+ supports_encryption: Optional[pulumi.Input[_builtins.bool]] = None,
332
+ supports_signing: Optional[pulumi.Input[_builtins.bool]] = None,
333
+ type: Optional[pulumi.Input[_builtins.str]] = None):
334
+ """
335
+ Input properties used for looking up and filtering SecretBackendKey resources.
336
+ :param pulumi.Input[_builtins.bool] allow_plaintext_backup: Enables taking backup of entire keyring in the plaintext format. Once set, this cannot be disabled.
337
+ * Refer to Vault API documentation on key backups for more information: [Backup Key](https://www.vaultproject.io/api-docs/secret/transit#backup-key)
338
+ :param pulumi.Input[_builtins.int] auto_rotate_period: Amount of seconds the key should live before being automatically rotated.
339
+ A value of 0 disables automatic rotation for the key.
340
+ :param pulumi.Input[_builtins.str] backend: The path the transit secret backend is mounted at, with no leading or trailing `/`s.
341
+ :param pulumi.Input[_builtins.bool] convergent_encryption: Whether or not to support convergent encryption, where the same plaintext creates the same ciphertext. This requires `derived` to be set to `true`.
342
+ :param pulumi.Input[_builtins.bool] deletion_allowed: Specifies if the key is allowed to be deleted.
343
+ :param pulumi.Input[_builtins.bool] derived: Specifies if key derivation is to be used. If enabled, all encrypt/decrypt requests to this key must provide a context which is used for key derivation.
344
+ :param pulumi.Input[_builtins.bool] exportable: Enables keys to be exportable. This allows for all valid private keys in the keyring to be exported. Once set, this cannot be disabled.
345
+ :param pulumi.Input[_builtins.str] hybrid_key_type_ec: The elliptic curve algorithm to use for hybrid signatures.
346
+ Supported key types are `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, and `ed25519`.
347
+ :param pulumi.Input[_builtins.str] hybrid_key_type_pqc: The post-quantum algorithm to use for hybrid signatures.
348
+ Currently, ML-DSA is the only supported key type.
349
+ :param pulumi.Input[_builtins.int] key_size: The key size in bytes for algorithms that allow variable key sizes. Currently only applicable to HMAC, where it must be between 32 and 512 bytes.
350
+ :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]] keys: List of key versions in the keyring. This attribute is zero-indexed and will contain a map of values depending on the `type` of the encryption key.
351
+ * for key types `aes128-gcm96`, `aes256-gcm96` and `chacha20-poly1305`, each key version will be a map of a single value `id` which is just a hash of the key's metadata.
352
+ * for key types `ed25519`, `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, `rsa-2048`, `rsa-3072` and `rsa-4096`, each key version will be a map of the following:
353
+ :param pulumi.Input[_builtins.int] latest_version: Latest key version available. This value is 1-indexed, so if `latest_version` is `1`, then the key's information can be referenced from `keys` by selecting element `0`
354
+ :param pulumi.Input[_builtins.int] min_available_version: Minimum key version available for use. If keys have been archived by increasing `min_decryption_version`, this attribute will reflect that change.
355
+ :param pulumi.Input[_builtins.int] min_decryption_version: Minimum key version to use for decryption.
356
+ :param pulumi.Input[_builtins.int] min_encryption_version: Minimum key version to use for encryption
357
+ :param pulumi.Input[_builtins.str] name: The name to identify this key within the backend. Must be unique within the backend.
358
+ :param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
359
+ The value should not contain leading or trailing forward slashes.
360
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
361
+ *Available only for Vault Enterprise*.
362
+ :param pulumi.Input[_builtins.str] parameter_set: The parameter set to use for ML-DSA or SLH-DSA. Required for
363
+ ML-DSA, hybrid, and SLH-DSA keys.
364
+ Valid values for ML-DSA are `44`, `65`, and `87`.
365
+ Valid values for SLH-DSA are `slh-dsa-sha2-128s`, `slh-dsa-shake-128s`, `slh-dsa-sha2-128f`, `slh-dsa-shake-128`, `slh-dsa-sha2-192s`,
366
+ `slh-dsa-shake-192s`, `slh-dsa-sha2-192f`, `slh-dsa-shake-192f`, `slh-dsa-sha2-256s`, `slh-dsa-shake-256s`,
367
+ `slh-dsa-sha2-256f`, and `slh-dsa-shake-256f`.
368
+ :param pulumi.Input[_builtins.bool] supports_decryption: Whether or not the key supports decryption, based on key type.
369
+ :param pulumi.Input[_builtins.bool] supports_derivation: Whether or not the key supports derivation, based on key type.
370
+ :param pulumi.Input[_builtins.bool] supports_encryption: Whether or not the key supports encryption, based on key type.
371
+ :param pulumi.Input[_builtins.bool] supports_signing: Whether or not the key supports signing, based on key type.
372
+ :param pulumi.Input[_builtins.str] type: Specifies the type of key to create. The currently-supported types are: `aes128-gcm96`, `aes256-gcm96` (default), `chacha20-poly1305`, `ed25519`, `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, `hmac`, `rsa-2048`, `rsa-3072`, `rsa-4096`, `managed_key`, `aes128-cmac`, `aes192-cmac`, `aes256-cmac`, `ml-dsa`, `hybrid`, and `slh-dsa`.
373
+ * Refer to the Vault documentation on transit key types for more information: [Key Types](https://www.vaultproject.io/docs/secrets/transit#key-types)
374
+ """
375
+ if allow_plaintext_backup is not None:
376
+ pulumi.set(__self__, "allow_plaintext_backup", allow_plaintext_backup)
377
+ if auto_rotate_period is not None:
378
+ pulumi.set(__self__, "auto_rotate_period", auto_rotate_period)
379
+ if backend is not None:
380
+ pulumi.set(__self__, "backend", backend)
381
+ if convergent_encryption is not None:
382
+ pulumi.set(__self__, "convergent_encryption", convergent_encryption)
383
+ if deletion_allowed is not None:
384
+ pulumi.set(__self__, "deletion_allowed", deletion_allowed)
385
+ if derived is not None:
386
+ pulumi.set(__self__, "derived", derived)
387
+ if exportable is not None:
388
+ pulumi.set(__self__, "exportable", exportable)
389
+ if hybrid_key_type_ec is not None:
390
+ pulumi.set(__self__, "hybrid_key_type_ec", hybrid_key_type_ec)
391
+ if hybrid_key_type_pqc is not None:
392
+ pulumi.set(__self__, "hybrid_key_type_pqc", hybrid_key_type_pqc)
393
+ if key_size is not None:
394
+ pulumi.set(__self__, "key_size", key_size)
395
+ if keys is not None:
396
+ pulumi.set(__self__, "keys", keys)
397
+ if latest_version is not None:
398
+ pulumi.set(__self__, "latest_version", latest_version)
399
+ if min_available_version is not None:
400
+ pulumi.set(__self__, "min_available_version", min_available_version)
401
+ if min_decryption_version is not None:
402
+ pulumi.set(__self__, "min_decryption_version", min_decryption_version)
403
+ if min_encryption_version is not None:
404
+ pulumi.set(__self__, "min_encryption_version", min_encryption_version)
405
+ if name is not None:
406
+ pulumi.set(__self__, "name", name)
407
+ if namespace is not None:
408
+ pulumi.set(__self__, "namespace", namespace)
409
+ if parameter_set is not None:
410
+ pulumi.set(__self__, "parameter_set", parameter_set)
411
+ if supports_decryption is not None:
412
+ pulumi.set(__self__, "supports_decryption", supports_decryption)
413
+ if supports_derivation is not None:
414
+ pulumi.set(__self__, "supports_derivation", supports_derivation)
415
+ if supports_encryption is not None:
416
+ pulumi.set(__self__, "supports_encryption", supports_encryption)
417
+ if supports_signing is not None:
418
+ pulumi.set(__self__, "supports_signing", supports_signing)
419
+ if type is not None:
420
+ pulumi.set(__self__, "type", type)
421
+
422
+ @_builtins.property
423
+ @pulumi.getter(name="allowPlaintextBackup")
424
+ def allow_plaintext_backup(self) -> Optional[pulumi.Input[_builtins.bool]]:
425
+ """
426
+ Enables taking backup of entire keyring in the plaintext format. Once set, this cannot be disabled.
427
+ * Refer to Vault API documentation on key backups for more information: [Backup Key](https://www.vaultproject.io/api-docs/secret/transit#backup-key)
428
+ """
429
+ return pulumi.get(self, "allow_plaintext_backup")
430
+
431
+ @allow_plaintext_backup.setter
432
+ def allow_plaintext_backup(self, value: Optional[pulumi.Input[_builtins.bool]]):
433
+ pulumi.set(self, "allow_plaintext_backup", value)
434
+
435
+ @_builtins.property
436
+ @pulumi.getter(name="autoRotatePeriod")
437
+ def auto_rotate_period(self) -> Optional[pulumi.Input[_builtins.int]]:
438
+ """
439
+ Amount of seconds the key should live before being automatically rotated.
440
+ A value of 0 disables automatic rotation for the key.
441
+ """
442
+ return pulumi.get(self, "auto_rotate_period")
443
+
444
+ @auto_rotate_period.setter
445
+ def auto_rotate_period(self, value: Optional[pulumi.Input[_builtins.int]]):
446
+ pulumi.set(self, "auto_rotate_period", value)
447
+
448
+ @_builtins.property
449
+ @pulumi.getter
450
+ def backend(self) -> Optional[pulumi.Input[_builtins.str]]:
451
+ """
452
+ The path the transit secret backend is mounted at, with no leading or trailing `/`s.
453
+ """
454
+ return pulumi.get(self, "backend")
455
+
456
+ @backend.setter
457
+ def backend(self, value: Optional[pulumi.Input[_builtins.str]]):
458
+ pulumi.set(self, "backend", value)
459
+
460
+ @_builtins.property
461
+ @pulumi.getter(name="convergentEncryption")
462
+ def convergent_encryption(self) -> Optional[pulumi.Input[_builtins.bool]]:
463
+ """
464
+ Whether or not to support convergent encryption, where the same plaintext creates the same ciphertext. This requires `derived` to be set to `true`.
465
+ """
466
+ return pulumi.get(self, "convergent_encryption")
467
+
468
+ @convergent_encryption.setter
469
+ def convergent_encryption(self, value: Optional[pulumi.Input[_builtins.bool]]):
470
+ pulumi.set(self, "convergent_encryption", value)
471
+
472
+ @_builtins.property
473
+ @pulumi.getter(name="deletionAllowed")
474
+ def deletion_allowed(self) -> Optional[pulumi.Input[_builtins.bool]]:
475
+ """
476
+ Specifies if the key is allowed to be deleted.
477
+ """
478
+ return pulumi.get(self, "deletion_allowed")
479
+
480
+ @deletion_allowed.setter
481
+ def deletion_allowed(self, value: Optional[pulumi.Input[_builtins.bool]]):
482
+ pulumi.set(self, "deletion_allowed", value)
483
+
484
+ @_builtins.property
485
+ @pulumi.getter
486
+ def derived(self) -> Optional[pulumi.Input[_builtins.bool]]:
487
+ """
488
+ Specifies if key derivation is to be used. If enabled, all encrypt/decrypt requests to this key must provide a context which is used for key derivation.
489
+ """
490
+ return pulumi.get(self, "derived")
491
+
492
+ @derived.setter
493
+ def derived(self, value: Optional[pulumi.Input[_builtins.bool]]):
494
+ pulumi.set(self, "derived", value)
495
+
496
+ @_builtins.property
497
+ @pulumi.getter
498
+ def exportable(self) -> Optional[pulumi.Input[_builtins.bool]]:
499
+ """
500
+ Enables keys to be exportable. This allows for all valid private keys in the keyring to be exported. Once set, this cannot be disabled.
501
+ """
502
+ return pulumi.get(self, "exportable")
503
+
504
+ @exportable.setter
505
+ def exportable(self, value: Optional[pulumi.Input[_builtins.bool]]):
506
+ pulumi.set(self, "exportable", value)
507
+
508
+ @_builtins.property
509
+ @pulumi.getter(name="hybridKeyTypeEc")
510
+ def hybrid_key_type_ec(self) -> Optional[pulumi.Input[_builtins.str]]:
511
+ """
512
+ The elliptic curve algorithm to use for hybrid signatures.
513
+ Supported key types are `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, and `ed25519`.
514
+ """
515
+ return pulumi.get(self, "hybrid_key_type_ec")
516
+
517
+ @hybrid_key_type_ec.setter
518
+ def hybrid_key_type_ec(self, value: Optional[pulumi.Input[_builtins.str]]):
519
+ pulumi.set(self, "hybrid_key_type_ec", value)
520
+
521
+ @_builtins.property
522
+ @pulumi.getter(name="hybridKeyTypePqc")
523
+ def hybrid_key_type_pqc(self) -> Optional[pulumi.Input[_builtins.str]]:
524
+ """
525
+ The post-quantum algorithm to use for hybrid signatures.
526
+ Currently, ML-DSA is the only supported key type.
527
+ """
528
+ return pulumi.get(self, "hybrid_key_type_pqc")
529
+
530
+ @hybrid_key_type_pqc.setter
531
+ def hybrid_key_type_pqc(self, value: Optional[pulumi.Input[_builtins.str]]):
532
+ pulumi.set(self, "hybrid_key_type_pqc", value)
533
+
534
+ @_builtins.property
535
+ @pulumi.getter(name="keySize")
536
+ def key_size(self) -> Optional[pulumi.Input[_builtins.int]]:
537
+ """
538
+ The key size in bytes for algorithms that allow variable key sizes. Currently only applicable to HMAC, where it must be between 32 and 512 bytes.
539
+ """
540
+ return pulumi.get(self, "key_size")
541
+
542
+ @key_size.setter
543
+ def key_size(self, value: Optional[pulumi.Input[_builtins.int]]):
544
+ pulumi.set(self, "key_size", value)
545
+
546
+ @_builtins.property
547
+ @pulumi.getter
548
+ def keys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]]:
549
+ """
550
+ List of key versions in the keyring. This attribute is zero-indexed and will contain a map of values depending on the `type` of the encryption key.
551
+ * for key types `aes128-gcm96`, `aes256-gcm96` and `chacha20-poly1305`, each key version will be a map of a single value `id` which is just a hash of the key's metadata.
552
+ * for key types `ed25519`, `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, `rsa-2048`, `rsa-3072` and `rsa-4096`, each key version will be a map of the following:
553
+ """
554
+ return pulumi.get(self, "keys")
555
+
556
+ @keys.setter
557
+ def keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]]):
558
+ pulumi.set(self, "keys", value)
559
+
560
+ @_builtins.property
561
+ @pulumi.getter(name="latestVersion")
562
+ def latest_version(self) -> Optional[pulumi.Input[_builtins.int]]:
563
+ """
564
+ Latest key version available. This value is 1-indexed, so if `latest_version` is `1`, then the key's information can be referenced from `keys` by selecting element `0`
565
+ """
566
+ return pulumi.get(self, "latest_version")
567
+
568
+ @latest_version.setter
569
+ def latest_version(self, value: Optional[pulumi.Input[_builtins.int]]):
570
+ pulumi.set(self, "latest_version", value)
571
+
572
+ @_builtins.property
573
+ @pulumi.getter(name="minAvailableVersion")
574
+ def min_available_version(self) -> Optional[pulumi.Input[_builtins.int]]:
575
+ """
576
+ Minimum key version available for use. If keys have been archived by increasing `min_decryption_version`, this attribute will reflect that change.
577
+ """
578
+ return pulumi.get(self, "min_available_version")
579
+
580
+ @min_available_version.setter
581
+ def min_available_version(self, value: Optional[pulumi.Input[_builtins.int]]):
582
+ pulumi.set(self, "min_available_version", value)
583
+
584
+ @_builtins.property
585
+ @pulumi.getter(name="minDecryptionVersion")
586
+ def min_decryption_version(self) -> Optional[pulumi.Input[_builtins.int]]:
587
+ """
588
+ Minimum key version to use for decryption.
589
+ """
590
+ return pulumi.get(self, "min_decryption_version")
591
+
592
+ @min_decryption_version.setter
593
+ def min_decryption_version(self, value: Optional[pulumi.Input[_builtins.int]]):
594
+ pulumi.set(self, "min_decryption_version", value)
595
+
596
+ @_builtins.property
597
+ @pulumi.getter(name="minEncryptionVersion")
598
+ def min_encryption_version(self) -> Optional[pulumi.Input[_builtins.int]]:
599
+ """
600
+ Minimum key version to use for encryption
601
+ """
602
+ return pulumi.get(self, "min_encryption_version")
603
+
604
+ @min_encryption_version.setter
605
+ def min_encryption_version(self, value: Optional[pulumi.Input[_builtins.int]]):
606
+ pulumi.set(self, "min_encryption_version", value)
607
+
608
+ @_builtins.property
609
+ @pulumi.getter
610
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
611
+ """
612
+ The name to identify this key within the backend. Must be unique within the backend.
613
+ """
614
+ return pulumi.get(self, "name")
615
+
616
+ @name.setter
617
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
618
+ pulumi.set(self, "name", value)
619
+
620
+ @_builtins.property
621
+ @pulumi.getter
622
+ def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
623
+ """
624
+ The namespace to provision the resource in.
625
+ The value should not contain leading or trailing forward slashes.
626
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
627
+ *Available only for Vault Enterprise*.
628
+ """
629
+ return pulumi.get(self, "namespace")
630
+
631
+ @namespace.setter
632
+ def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
633
+ pulumi.set(self, "namespace", value)
634
+
635
+ @_builtins.property
636
+ @pulumi.getter(name="parameterSet")
637
+ def parameter_set(self) -> Optional[pulumi.Input[_builtins.str]]:
638
+ """
639
+ The parameter set to use for ML-DSA or SLH-DSA. Required for
640
+ ML-DSA, hybrid, and SLH-DSA keys.
641
+ Valid values for ML-DSA are `44`, `65`, and `87`.
642
+ Valid values for SLH-DSA are `slh-dsa-sha2-128s`, `slh-dsa-shake-128s`, `slh-dsa-sha2-128f`, `slh-dsa-shake-128`, `slh-dsa-sha2-192s`,
643
+ `slh-dsa-shake-192s`, `slh-dsa-sha2-192f`, `slh-dsa-shake-192f`, `slh-dsa-sha2-256s`, `slh-dsa-shake-256s`,
644
+ `slh-dsa-sha2-256f`, and `slh-dsa-shake-256f`.
645
+ """
646
+ return pulumi.get(self, "parameter_set")
647
+
648
+ @parameter_set.setter
649
+ def parameter_set(self, value: Optional[pulumi.Input[_builtins.str]]):
650
+ pulumi.set(self, "parameter_set", value)
651
+
652
+ @_builtins.property
653
+ @pulumi.getter(name="supportsDecryption")
654
+ def supports_decryption(self) -> Optional[pulumi.Input[_builtins.bool]]:
655
+ """
656
+ Whether or not the key supports decryption, based on key type.
657
+ """
658
+ return pulumi.get(self, "supports_decryption")
659
+
660
+ @supports_decryption.setter
661
+ def supports_decryption(self, value: Optional[pulumi.Input[_builtins.bool]]):
662
+ pulumi.set(self, "supports_decryption", value)
663
+
664
+ @_builtins.property
665
+ @pulumi.getter(name="supportsDerivation")
666
+ def supports_derivation(self) -> Optional[pulumi.Input[_builtins.bool]]:
667
+ """
668
+ Whether or not the key supports derivation, based on key type.
669
+ """
670
+ return pulumi.get(self, "supports_derivation")
671
+
672
+ @supports_derivation.setter
673
+ def supports_derivation(self, value: Optional[pulumi.Input[_builtins.bool]]):
674
+ pulumi.set(self, "supports_derivation", value)
675
+
676
+ @_builtins.property
677
+ @pulumi.getter(name="supportsEncryption")
678
+ def supports_encryption(self) -> Optional[pulumi.Input[_builtins.bool]]:
679
+ """
680
+ Whether or not the key supports encryption, based on key type.
681
+ """
682
+ return pulumi.get(self, "supports_encryption")
683
+
684
+ @supports_encryption.setter
685
+ def supports_encryption(self, value: Optional[pulumi.Input[_builtins.bool]]):
686
+ pulumi.set(self, "supports_encryption", value)
687
+
688
+ @_builtins.property
689
+ @pulumi.getter(name="supportsSigning")
690
+ def supports_signing(self) -> Optional[pulumi.Input[_builtins.bool]]:
691
+ """
692
+ Whether or not the key supports signing, based on key type.
693
+ """
694
+ return pulumi.get(self, "supports_signing")
695
+
696
+ @supports_signing.setter
697
+ def supports_signing(self, value: Optional[pulumi.Input[_builtins.bool]]):
698
+ pulumi.set(self, "supports_signing", value)
699
+
700
+ @_builtins.property
701
+ @pulumi.getter
702
+ def type(self) -> Optional[pulumi.Input[_builtins.str]]:
703
+ """
704
+ Specifies the type of key to create. The currently-supported types are: `aes128-gcm96`, `aes256-gcm96` (default), `chacha20-poly1305`, `ed25519`, `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, `hmac`, `rsa-2048`, `rsa-3072`, `rsa-4096`, `managed_key`, `aes128-cmac`, `aes192-cmac`, `aes256-cmac`, `ml-dsa`, `hybrid`, and `slh-dsa`.
705
+ * Refer to the Vault documentation on transit key types for more information: [Key Types](https://www.vaultproject.io/docs/secrets/transit#key-types)
706
+ """
707
+ return pulumi.get(self, "type")
708
+
709
+ @type.setter
710
+ def type(self, value: Optional[pulumi.Input[_builtins.str]]):
711
+ pulumi.set(self, "type", value)
712
+
713
+
714
+ @pulumi.type_token("vault:transit/secretBackendKey:SecretBackendKey")
715
+ class SecretBackendKey(pulumi.CustomResource):
716
+ @overload
717
+ def __init__(__self__,
718
+ resource_name: str,
719
+ opts: Optional[pulumi.ResourceOptions] = None,
720
+ allow_plaintext_backup: Optional[pulumi.Input[_builtins.bool]] = None,
721
+ auto_rotate_period: Optional[pulumi.Input[_builtins.int]] = None,
722
+ backend: Optional[pulumi.Input[_builtins.str]] = None,
723
+ convergent_encryption: Optional[pulumi.Input[_builtins.bool]] = None,
724
+ deletion_allowed: Optional[pulumi.Input[_builtins.bool]] = None,
725
+ derived: Optional[pulumi.Input[_builtins.bool]] = None,
726
+ exportable: Optional[pulumi.Input[_builtins.bool]] = None,
727
+ hybrid_key_type_ec: Optional[pulumi.Input[_builtins.str]] = None,
728
+ hybrid_key_type_pqc: Optional[pulumi.Input[_builtins.str]] = None,
729
+ key_size: Optional[pulumi.Input[_builtins.int]] = None,
730
+ min_decryption_version: Optional[pulumi.Input[_builtins.int]] = None,
731
+ min_encryption_version: Optional[pulumi.Input[_builtins.int]] = None,
732
+ name: Optional[pulumi.Input[_builtins.str]] = None,
733
+ namespace: Optional[pulumi.Input[_builtins.str]] = None,
734
+ parameter_set: Optional[pulumi.Input[_builtins.str]] = None,
735
+ type: Optional[pulumi.Input[_builtins.str]] = None,
736
+ __props__=None):
737
+ """
738
+ Creates an Encryption Keyring on a Transit Secret Backend for Vault.
739
+
740
+ ## Example Usage
741
+
742
+ ```python
743
+ import pulumi
744
+ import pulumi_vault as vault
745
+
746
+ transit = vault.Mount("transit",
747
+ path="transit",
748
+ type="transit",
749
+ description="Example description",
750
+ default_lease_ttl_seconds=3600,
751
+ max_lease_ttl_seconds=86400)
752
+ key = vault.transit.SecretBackendKey("key",
753
+ backend=transit.path,
754
+ name="my_key")
755
+ ```
756
+
757
+ ## Import
758
+
759
+ Transit secret backend keys can be imported using the `path`, e.g.
760
+
761
+ ```sh
762
+ $ pulumi import vault:transit/secretBackendKey:SecretBackendKey key transit/keys/my_key
763
+ ```
764
+
765
+ :param str resource_name: The name of the resource.
766
+ :param pulumi.ResourceOptions opts: Options for the resource.
767
+ :param pulumi.Input[_builtins.bool] allow_plaintext_backup: Enables taking backup of entire keyring in the plaintext format. Once set, this cannot be disabled.
768
+ * Refer to Vault API documentation on key backups for more information: [Backup Key](https://www.vaultproject.io/api-docs/secret/transit#backup-key)
769
+ :param pulumi.Input[_builtins.int] auto_rotate_period: Amount of seconds the key should live before being automatically rotated.
770
+ A value of 0 disables automatic rotation for the key.
771
+ :param pulumi.Input[_builtins.str] backend: The path the transit secret backend is mounted at, with no leading or trailing `/`s.
772
+ :param pulumi.Input[_builtins.bool] convergent_encryption: Whether or not to support convergent encryption, where the same plaintext creates the same ciphertext. This requires `derived` to be set to `true`.
773
+ :param pulumi.Input[_builtins.bool] deletion_allowed: Specifies if the key is allowed to be deleted.
774
+ :param pulumi.Input[_builtins.bool] derived: Specifies if key derivation is to be used. If enabled, all encrypt/decrypt requests to this key must provide a context which is used for key derivation.
775
+ :param pulumi.Input[_builtins.bool] exportable: Enables keys to be exportable. This allows for all valid private keys in the keyring to be exported. Once set, this cannot be disabled.
776
+ :param pulumi.Input[_builtins.str] hybrid_key_type_ec: The elliptic curve algorithm to use for hybrid signatures.
777
+ Supported key types are `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, and `ed25519`.
778
+ :param pulumi.Input[_builtins.str] hybrid_key_type_pqc: The post-quantum algorithm to use for hybrid signatures.
779
+ Currently, ML-DSA is the only supported key type.
780
+ :param pulumi.Input[_builtins.int] key_size: The key size in bytes for algorithms that allow variable key sizes. Currently only applicable to HMAC, where it must be between 32 and 512 bytes.
781
+ :param pulumi.Input[_builtins.int] min_decryption_version: Minimum key version to use for decryption.
782
+ :param pulumi.Input[_builtins.int] min_encryption_version: Minimum key version to use for encryption
783
+ :param pulumi.Input[_builtins.str] name: The name to identify this key within the backend. Must be unique within the backend.
784
+ :param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
785
+ The value should not contain leading or trailing forward slashes.
786
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
787
+ *Available only for Vault Enterprise*.
788
+ :param pulumi.Input[_builtins.str] parameter_set: The parameter set to use for ML-DSA or SLH-DSA. Required for
789
+ ML-DSA, hybrid, and SLH-DSA keys.
790
+ Valid values for ML-DSA are `44`, `65`, and `87`.
791
+ Valid values for SLH-DSA are `slh-dsa-sha2-128s`, `slh-dsa-shake-128s`, `slh-dsa-sha2-128f`, `slh-dsa-shake-128`, `slh-dsa-sha2-192s`,
792
+ `slh-dsa-shake-192s`, `slh-dsa-sha2-192f`, `slh-dsa-shake-192f`, `slh-dsa-sha2-256s`, `slh-dsa-shake-256s`,
793
+ `slh-dsa-sha2-256f`, and `slh-dsa-shake-256f`.
794
+ :param pulumi.Input[_builtins.str] type: Specifies the type of key to create. The currently-supported types are: `aes128-gcm96`, `aes256-gcm96` (default), `chacha20-poly1305`, `ed25519`, `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, `hmac`, `rsa-2048`, `rsa-3072`, `rsa-4096`, `managed_key`, `aes128-cmac`, `aes192-cmac`, `aes256-cmac`, `ml-dsa`, `hybrid`, and `slh-dsa`.
795
+ * Refer to the Vault documentation on transit key types for more information: [Key Types](https://www.vaultproject.io/docs/secrets/transit#key-types)
796
+ """
797
+ ...
798
+ @overload
799
+ def __init__(__self__,
800
+ resource_name: str,
801
+ args: SecretBackendKeyArgs,
802
+ opts: Optional[pulumi.ResourceOptions] = None):
803
+ """
804
+ Creates an Encryption Keyring on a Transit Secret Backend for Vault.
805
+
806
+ ## Example Usage
807
+
808
+ ```python
809
+ import pulumi
810
+ import pulumi_vault as vault
811
+
812
+ transit = vault.Mount("transit",
813
+ path="transit",
814
+ type="transit",
815
+ description="Example description",
816
+ default_lease_ttl_seconds=3600,
817
+ max_lease_ttl_seconds=86400)
818
+ key = vault.transit.SecretBackendKey("key",
819
+ backend=transit.path,
820
+ name="my_key")
821
+ ```
822
+
823
+ ## Import
824
+
825
+ Transit secret backend keys can be imported using the `path`, e.g.
826
+
827
+ ```sh
828
+ $ pulumi import vault:transit/secretBackendKey:SecretBackendKey key transit/keys/my_key
829
+ ```
830
+
831
+ :param str resource_name: The name of the resource.
832
+ :param SecretBackendKeyArgs args: The arguments to use to populate this resource's properties.
833
+ :param pulumi.ResourceOptions opts: Options for the resource.
834
+ """
835
+ ...
836
+ def __init__(__self__, resource_name: str, *args, **kwargs):
837
+ resource_args, opts = _utilities.get_resource_args_opts(SecretBackendKeyArgs, pulumi.ResourceOptions, *args, **kwargs)
838
+ if resource_args is not None:
839
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
840
+ else:
841
+ __self__._internal_init(resource_name, *args, **kwargs)
842
+
843
+ def _internal_init(__self__,
844
+ resource_name: str,
845
+ opts: Optional[pulumi.ResourceOptions] = None,
846
+ allow_plaintext_backup: Optional[pulumi.Input[_builtins.bool]] = None,
847
+ auto_rotate_period: Optional[pulumi.Input[_builtins.int]] = None,
848
+ backend: Optional[pulumi.Input[_builtins.str]] = None,
849
+ convergent_encryption: Optional[pulumi.Input[_builtins.bool]] = None,
850
+ deletion_allowed: Optional[pulumi.Input[_builtins.bool]] = None,
851
+ derived: Optional[pulumi.Input[_builtins.bool]] = None,
852
+ exportable: Optional[pulumi.Input[_builtins.bool]] = None,
853
+ hybrid_key_type_ec: Optional[pulumi.Input[_builtins.str]] = None,
854
+ hybrid_key_type_pqc: Optional[pulumi.Input[_builtins.str]] = None,
855
+ key_size: Optional[pulumi.Input[_builtins.int]] = None,
856
+ min_decryption_version: Optional[pulumi.Input[_builtins.int]] = None,
857
+ min_encryption_version: Optional[pulumi.Input[_builtins.int]] = None,
858
+ name: Optional[pulumi.Input[_builtins.str]] = None,
859
+ namespace: Optional[pulumi.Input[_builtins.str]] = None,
860
+ parameter_set: Optional[pulumi.Input[_builtins.str]] = None,
861
+ type: Optional[pulumi.Input[_builtins.str]] = None,
862
+ __props__=None):
863
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
864
+ if not isinstance(opts, pulumi.ResourceOptions):
865
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
866
+ if opts.id is None:
867
+ if __props__ is not None:
868
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
869
+ __props__ = SecretBackendKeyArgs.__new__(SecretBackendKeyArgs)
870
+
871
+ __props__.__dict__["allow_plaintext_backup"] = allow_plaintext_backup
872
+ __props__.__dict__["auto_rotate_period"] = auto_rotate_period
873
+ if backend is None and not opts.urn:
874
+ raise TypeError("Missing required property 'backend'")
875
+ __props__.__dict__["backend"] = backend
876
+ __props__.__dict__["convergent_encryption"] = convergent_encryption
877
+ __props__.__dict__["deletion_allowed"] = deletion_allowed
878
+ __props__.__dict__["derived"] = derived
879
+ __props__.__dict__["exportable"] = exportable
880
+ __props__.__dict__["hybrid_key_type_ec"] = hybrid_key_type_ec
881
+ __props__.__dict__["hybrid_key_type_pqc"] = hybrid_key_type_pqc
882
+ __props__.__dict__["key_size"] = key_size
883
+ __props__.__dict__["min_decryption_version"] = min_decryption_version
884
+ __props__.__dict__["min_encryption_version"] = min_encryption_version
885
+ __props__.__dict__["name"] = name
886
+ __props__.__dict__["namespace"] = namespace
887
+ __props__.__dict__["parameter_set"] = parameter_set
888
+ __props__.__dict__["type"] = type
889
+ __props__.__dict__["keys"] = None
890
+ __props__.__dict__["latest_version"] = None
891
+ __props__.__dict__["min_available_version"] = None
892
+ __props__.__dict__["supports_decryption"] = None
893
+ __props__.__dict__["supports_derivation"] = None
894
+ __props__.__dict__["supports_encryption"] = None
895
+ __props__.__dict__["supports_signing"] = None
896
+ super(SecretBackendKey, __self__).__init__(
897
+ 'vault:transit/secretBackendKey:SecretBackendKey',
898
+ resource_name,
899
+ __props__,
900
+ opts)
901
+
902
+ @staticmethod
903
+ def get(resource_name: str,
904
+ id: pulumi.Input[str],
905
+ opts: Optional[pulumi.ResourceOptions] = None,
906
+ allow_plaintext_backup: Optional[pulumi.Input[_builtins.bool]] = None,
907
+ auto_rotate_period: Optional[pulumi.Input[_builtins.int]] = None,
908
+ backend: Optional[pulumi.Input[_builtins.str]] = None,
909
+ convergent_encryption: Optional[pulumi.Input[_builtins.bool]] = None,
910
+ deletion_allowed: Optional[pulumi.Input[_builtins.bool]] = None,
911
+ derived: Optional[pulumi.Input[_builtins.bool]] = None,
912
+ exportable: Optional[pulumi.Input[_builtins.bool]] = None,
913
+ hybrid_key_type_ec: Optional[pulumi.Input[_builtins.str]] = None,
914
+ hybrid_key_type_pqc: Optional[pulumi.Input[_builtins.str]] = None,
915
+ key_size: Optional[pulumi.Input[_builtins.int]] = None,
916
+ keys: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]] = None,
917
+ latest_version: Optional[pulumi.Input[_builtins.int]] = None,
918
+ min_available_version: Optional[pulumi.Input[_builtins.int]] = None,
919
+ min_decryption_version: Optional[pulumi.Input[_builtins.int]] = None,
920
+ min_encryption_version: Optional[pulumi.Input[_builtins.int]] = None,
921
+ name: Optional[pulumi.Input[_builtins.str]] = None,
922
+ namespace: Optional[pulumi.Input[_builtins.str]] = None,
923
+ parameter_set: Optional[pulumi.Input[_builtins.str]] = None,
924
+ supports_decryption: Optional[pulumi.Input[_builtins.bool]] = None,
925
+ supports_derivation: Optional[pulumi.Input[_builtins.bool]] = None,
926
+ supports_encryption: Optional[pulumi.Input[_builtins.bool]] = None,
927
+ supports_signing: Optional[pulumi.Input[_builtins.bool]] = None,
928
+ type: Optional[pulumi.Input[_builtins.str]] = None) -> 'SecretBackendKey':
929
+ """
930
+ Get an existing SecretBackendKey resource's state with the given name, id, and optional extra
931
+ properties used to qualify the lookup.
932
+
933
+ :param str resource_name: The unique name of the resulting resource.
934
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
935
+ :param pulumi.ResourceOptions opts: Options for the resource.
936
+ :param pulumi.Input[_builtins.bool] allow_plaintext_backup: Enables taking backup of entire keyring in the plaintext format. Once set, this cannot be disabled.
937
+ * Refer to Vault API documentation on key backups for more information: [Backup Key](https://www.vaultproject.io/api-docs/secret/transit#backup-key)
938
+ :param pulumi.Input[_builtins.int] auto_rotate_period: Amount of seconds the key should live before being automatically rotated.
939
+ A value of 0 disables automatic rotation for the key.
940
+ :param pulumi.Input[_builtins.str] backend: The path the transit secret backend is mounted at, with no leading or trailing `/`s.
941
+ :param pulumi.Input[_builtins.bool] convergent_encryption: Whether or not to support convergent encryption, where the same plaintext creates the same ciphertext. This requires `derived` to be set to `true`.
942
+ :param pulumi.Input[_builtins.bool] deletion_allowed: Specifies if the key is allowed to be deleted.
943
+ :param pulumi.Input[_builtins.bool] derived: Specifies if key derivation is to be used. If enabled, all encrypt/decrypt requests to this key must provide a context which is used for key derivation.
944
+ :param pulumi.Input[_builtins.bool] exportable: Enables keys to be exportable. This allows for all valid private keys in the keyring to be exported. Once set, this cannot be disabled.
945
+ :param pulumi.Input[_builtins.str] hybrid_key_type_ec: The elliptic curve algorithm to use for hybrid signatures.
946
+ Supported key types are `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, and `ed25519`.
947
+ :param pulumi.Input[_builtins.str] hybrid_key_type_pqc: The post-quantum algorithm to use for hybrid signatures.
948
+ Currently, ML-DSA is the only supported key type.
949
+ :param pulumi.Input[_builtins.int] key_size: The key size in bytes for algorithms that allow variable key sizes. Currently only applicable to HMAC, where it must be between 32 and 512 bytes.
950
+ :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]] keys: List of key versions in the keyring. This attribute is zero-indexed and will contain a map of values depending on the `type` of the encryption key.
951
+ * for key types `aes128-gcm96`, `aes256-gcm96` and `chacha20-poly1305`, each key version will be a map of a single value `id` which is just a hash of the key's metadata.
952
+ * for key types `ed25519`, `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, `rsa-2048`, `rsa-3072` and `rsa-4096`, each key version will be a map of the following:
953
+ :param pulumi.Input[_builtins.int] latest_version: Latest key version available. This value is 1-indexed, so if `latest_version` is `1`, then the key's information can be referenced from `keys` by selecting element `0`
954
+ :param pulumi.Input[_builtins.int] min_available_version: Minimum key version available for use. If keys have been archived by increasing `min_decryption_version`, this attribute will reflect that change.
955
+ :param pulumi.Input[_builtins.int] min_decryption_version: Minimum key version to use for decryption.
956
+ :param pulumi.Input[_builtins.int] min_encryption_version: Minimum key version to use for encryption
957
+ :param pulumi.Input[_builtins.str] name: The name to identify this key within the backend. Must be unique within the backend.
958
+ :param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
959
+ The value should not contain leading or trailing forward slashes.
960
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
961
+ *Available only for Vault Enterprise*.
962
+ :param pulumi.Input[_builtins.str] parameter_set: The parameter set to use for ML-DSA or SLH-DSA. Required for
963
+ ML-DSA, hybrid, and SLH-DSA keys.
964
+ Valid values for ML-DSA are `44`, `65`, and `87`.
965
+ Valid values for SLH-DSA are `slh-dsa-sha2-128s`, `slh-dsa-shake-128s`, `slh-dsa-sha2-128f`, `slh-dsa-shake-128`, `slh-dsa-sha2-192s`,
966
+ `slh-dsa-shake-192s`, `slh-dsa-sha2-192f`, `slh-dsa-shake-192f`, `slh-dsa-sha2-256s`, `slh-dsa-shake-256s`,
967
+ `slh-dsa-sha2-256f`, and `slh-dsa-shake-256f`.
968
+ :param pulumi.Input[_builtins.bool] supports_decryption: Whether or not the key supports decryption, based on key type.
969
+ :param pulumi.Input[_builtins.bool] supports_derivation: Whether or not the key supports derivation, based on key type.
970
+ :param pulumi.Input[_builtins.bool] supports_encryption: Whether or not the key supports encryption, based on key type.
971
+ :param pulumi.Input[_builtins.bool] supports_signing: Whether or not the key supports signing, based on key type.
972
+ :param pulumi.Input[_builtins.str] type: Specifies the type of key to create. The currently-supported types are: `aes128-gcm96`, `aes256-gcm96` (default), `chacha20-poly1305`, `ed25519`, `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, `hmac`, `rsa-2048`, `rsa-3072`, `rsa-4096`, `managed_key`, `aes128-cmac`, `aes192-cmac`, `aes256-cmac`, `ml-dsa`, `hybrid`, and `slh-dsa`.
973
+ * Refer to the Vault documentation on transit key types for more information: [Key Types](https://www.vaultproject.io/docs/secrets/transit#key-types)
974
+ """
975
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
976
+
977
+ __props__ = _SecretBackendKeyState.__new__(_SecretBackendKeyState)
978
+
979
+ __props__.__dict__["allow_plaintext_backup"] = allow_plaintext_backup
980
+ __props__.__dict__["auto_rotate_period"] = auto_rotate_period
981
+ __props__.__dict__["backend"] = backend
982
+ __props__.__dict__["convergent_encryption"] = convergent_encryption
983
+ __props__.__dict__["deletion_allowed"] = deletion_allowed
984
+ __props__.__dict__["derived"] = derived
985
+ __props__.__dict__["exportable"] = exportable
986
+ __props__.__dict__["hybrid_key_type_ec"] = hybrid_key_type_ec
987
+ __props__.__dict__["hybrid_key_type_pqc"] = hybrid_key_type_pqc
988
+ __props__.__dict__["key_size"] = key_size
989
+ __props__.__dict__["keys"] = keys
990
+ __props__.__dict__["latest_version"] = latest_version
991
+ __props__.__dict__["min_available_version"] = min_available_version
992
+ __props__.__dict__["min_decryption_version"] = min_decryption_version
993
+ __props__.__dict__["min_encryption_version"] = min_encryption_version
994
+ __props__.__dict__["name"] = name
995
+ __props__.__dict__["namespace"] = namespace
996
+ __props__.__dict__["parameter_set"] = parameter_set
997
+ __props__.__dict__["supports_decryption"] = supports_decryption
998
+ __props__.__dict__["supports_derivation"] = supports_derivation
999
+ __props__.__dict__["supports_encryption"] = supports_encryption
1000
+ __props__.__dict__["supports_signing"] = supports_signing
1001
+ __props__.__dict__["type"] = type
1002
+ return SecretBackendKey(resource_name, opts=opts, __props__=__props__)
1003
+
1004
+ @_builtins.property
1005
+ @pulumi.getter(name="allowPlaintextBackup")
1006
+ def allow_plaintext_backup(self) -> pulumi.Output[Optional[_builtins.bool]]:
1007
+ """
1008
+ Enables taking backup of entire keyring in the plaintext format. Once set, this cannot be disabled.
1009
+ * Refer to Vault API documentation on key backups for more information: [Backup Key](https://www.vaultproject.io/api-docs/secret/transit#backup-key)
1010
+ """
1011
+ return pulumi.get(self, "allow_plaintext_backup")
1012
+
1013
+ @_builtins.property
1014
+ @pulumi.getter(name="autoRotatePeriod")
1015
+ def auto_rotate_period(self) -> pulumi.Output[_builtins.int]:
1016
+ """
1017
+ Amount of seconds the key should live before being automatically rotated.
1018
+ A value of 0 disables automatic rotation for the key.
1019
+ """
1020
+ return pulumi.get(self, "auto_rotate_period")
1021
+
1022
+ @_builtins.property
1023
+ @pulumi.getter
1024
+ def backend(self) -> pulumi.Output[_builtins.str]:
1025
+ """
1026
+ The path the transit secret backend is mounted at, with no leading or trailing `/`s.
1027
+ """
1028
+ return pulumi.get(self, "backend")
1029
+
1030
+ @_builtins.property
1031
+ @pulumi.getter(name="convergentEncryption")
1032
+ def convergent_encryption(self) -> pulumi.Output[Optional[_builtins.bool]]:
1033
+ """
1034
+ Whether or not to support convergent encryption, where the same plaintext creates the same ciphertext. This requires `derived` to be set to `true`.
1035
+ """
1036
+ return pulumi.get(self, "convergent_encryption")
1037
+
1038
+ @_builtins.property
1039
+ @pulumi.getter(name="deletionAllowed")
1040
+ def deletion_allowed(self) -> pulumi.Output[Optional[_builtins.bool]]:
1041
+ """
1042
+ Specifies if the key is allowed to be deleted.
1043
+ """
1044
+ return pulumi.get(self, "deletion_allowed")
1045
+
1046
+ @_builtins.property
1047
+ @pulumi.getter
1048
+ def derived(self) -> pulumi.Output[Optional[_builtins.bool]]:
1049
+ """
1050
+ Specifies if key derivation is to be used. If enabled, all encrypt/decrypt requests to this key must provide a context which is used for key derivation.
1051
+ """
1052
+ return pulumi.get(self, "derived")
1053
+
1054
+ @_builtins.property
1055
+ @pulumi.getter
1056
+ def exportable(self) -> pulumi.Output[Optional[_builtins.bool]]:
1057
+ """
1058
+ Enables keys to be exportable. This allows for all valid private keys in the keyring to be exported. Once set, this cannot be disabled.
1059
+ """
1060
+ return pulumi.get(self, "exportable")
1061
+
1062
+ @_builtins.property
1063
+ @pulumi.getter(name="hybridKeyTypeEc")
1064
+ def hybrid_key_type_ec(self) -> pulumi.Output[Optional[_builtins.str]]:
1065
+ """
1066
+ The elliptic curve algorithm to use for hybrid signatures.
1067
+ Supported key types are `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, and `ed25519`.
1068
+ """
1069
+ return pulumi.get(self, "hybrid_key_type_ec")
1070
+
1071
+ @_builtins.property
1072
+ @pulumi.getter(name="hybridKeyTypePqc")
1073
+ def hybrid_key_type_pqc(self) -> pulumi.Output[Optional[_builtins.str]]:
1074
+ """
1075
+ The post-quantum algorithm to use for hybrid signatures.
1076
+ Currently, ML-DSA is the only supported key type.
1077
+ """
1078
+ return pulumi.get(self, "hybrid_key_type_pqc")
1079
+
1080
+ @_builtins.property
1081
+ @pulumi.getter(name="keySize")
1082
+ def key_size(self) -> pulumi.Output[Optional[_builtins.int]]:
1083
+ """
1084
+ The key size in bytes for algorithms that allow variable key sizes. Currently only applicable to HMAC, where it must be between 32 and 512 bytes.
1085
+ """
1086
+ return pulumi.get(self, "key_size")
1087
+
1088
+ @_builtins.property
1089
+ @pulumi.getter
1090
+ def keys(self) -> pulumi.Output[Sequence[Mapping[str, _builtins.str]]]:
1091
+ """
1092
+ List of key versions in the keyring. This attribute is zero-indexed and will contain a map of values depending on the `type` of the encryption key.
1093
+ * for key types `aes128-gcm96`, `aes256-gcm96` and `chacha20-poly1305`, each key version will be a map of a single value `id` which is just a hash of the key's metadata.
1094
+ * for key types `ed25519`, `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, `rsa-2048`, `rsa-3072` and `rsa-4096`, each key version will be a map of the following:
1095
+ """
1096
+ return pulumi.get(self, "keys")
1097
+
1098
+ @_builtins.property
1099
+ @pulumi.getter(name="latestVersion")
1100
+ def latest_version(self) -> pulumi.Output[_builtins.int]:
1101
+ """
1102
+ Latest key version available. This value is 1-indexed, so if `latest_version` is `1`, then the key's information can be referenced from `keys` by selecting element `0`
1103
+ """
1104
+ return pulumi.get(self, "latest_version")
1105
+
1106
+ @_builtins.property
1107
+ @pulumi.getter(name="minAvailableVersion")
1108
+ def min_available_version(self) -> pulumi.Output[_builtins.int]:
1109
+ """
1110
+ Minimum key version available for use. If keys have been archived by increasing `min_decryption_version`, this attribute will reflect that change.
1111
+ """
1112
+ return pulumi.get(self, "min_available_version")
1113
+
1114
+ @_builtins.property
1115
+ @pulumi.getter(name="minDecryptionVersion")
1116
+ def min_decryption_version(self) -> pulumi.Output[Optional[_builtins.int]]:
1117
+ """
1118
+ Minimum key version to use for decryption.
1119
+ """
1120
+ return pulumi.get(self, "min_decryption_version")
1121
+
1122
+ @_builtins.property
1123
+ @pulumi.getter(name="minEncryptionVersion")
1124
+ def min_encryption_version(self) -> pulumi.Output[Optional[_builtins.int]]:
1125
+ """
1126
+ Minimum key version to use for encryption
1127
+ """
1128
+ return pulumi.get(self, "min_encryption_version")
1129
+
1130
+ @_builtins.property
1131
+ @pulumi.getter
1132
+ def name(self) -> pulumi.Output[_builtins.str]:
1133
+ """
1134
+ The name to identify this key within the backend. Must be unique within the backend.
1135
+ """
1136
+ return pulumi.get(self, "name")
1137
+
1138
+ @_builtins.property
1139
+ @pulumi.getter
1140
+ def namespace(self) -> pulumi.Output[Optional[_builtins.str]]:
1141
+ """
1142
+ The namespace to provision the resource in.
1143
+ The value should not contain leading or trailing forward slashes.
1144
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
1145
+ *Available only for Vault Enterprise*.
1146
+ """
1147
+ return pulumi.get(self, "namespace")
1148
+
1149
+ @_builtins.property
1150
+ @pulumi.getter(name="parameterSet")
1151
+ def parameter_set(self) -> pulumi.Output[Optional[_builtins.str]]:
1152
+ """
1153
+ The parameter set to use for ML-DSA or SLH-DSA. Required for
1154
+ ML-DSA, hybrid, and SLH-DSA keys.
1155
+ Valid values for ML-DSA are `44`, `65`, and `87`.
1156
+ Valid values for SLH-DSA are `slh-dsa-sha2-128s`, `slh-dsa-shake-128s`, `slh-dsa-sha2-128f`, `slh-dsa-shake-128`, `slh-dsa-sha2-192s`,
1157
+ `slh-dsa-shake-192s`, `slh-dsa-sha2-192f`, `slh-dsa-shake-192f`, `slh-dsa-sha2-256s`, `slh-dsa-shake-256s`,
1158
+ `slh-dsa-sha2-256f`, and `slh-dsa-shake-256f`.
1159
+ """
1160
+ return pulumi.get(self, "parameter_set")
1161
+
1162
+ @_builtins.property
1163
+ @pulumi.getter(name="supportsDecryption")
1164
+ def supports_decryption(self) -> pulumi.Output[_builtins.bool]:
1165
+ """
1166
+ Whether or not the key supports decryption, based on key type.
1167
+ """
1168
+ return pulumi.get(self, "supports_decryption")
1169
+
1170
+ @_builtins.property
1171
+ @pulumi.getter(name="supportsDerivation")
1172
+ def supports_derivation(self) -> pulumi.Output[_builtins.bool]:
1173
+ """
1174
+ Whether or not the key supports derivation, based on key type.
1175
+ """
1176
+ return pulumi.get(self, "supports_derivation")
1177
+
1178
+ @_builtins.property
1179
+ @pulumi.getter(name="supportsEncryption")
1180
+ def supports_encryption(self) -> pulumi.Output[_builtins.bool]:
1181
+ """
1182
+ Whether or not the key supports encryption, based on key type.
1183
+ """
1184
+ return pulumi.get(self, "supports_encryption")
1185
+
1186
+ @_builtins.property
1187
+ @pulumi.getter(name="supportsSigning")
1188
+ def supports_signing(self) -> pulumi.Output[_builtins.bool]:
1189
+ """
1190
+ Whether or not the key supports signing, based on key type.
1191
+ """
1192
+ return pulumi.get(self, "supports_signing")
1193
+
1194
+ @_builtins.property
1195
+ @pulumi.getter
1196
+ def type(self) -> pulumi.Output[Optional[_builtins.str]]:
1197
+ """
1198
+ Specifies the type of key to create. The currently-supported types are: `aes128-gcm96`, `aes256-gcm96` (default), `chacha20-poly1305`, `ed25519`, `ecdsa-p256`, `ecdsa-p384`, `ecdsa-p521`, `hmac`, `rsa-2048`, `rsa-3072`, `rsa-4096`, `managed_key`, `aes128-cmac`, `aes192-cmac`, `aes256-cmac`, `ml-dsa`, `hybrid`, and `slh-dsa`.
1199
+ * Refer to the Vault documentation on transit key types for more information: [Key Types](https://www.vaultproject.io/docs/secrets/transit#key-types)
1200
+ """
1201
+ return pulumi.get(self, "type")
1202
+