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,970 @@
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
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['SecretV2Args', 'SecretV2']
20
+
21
+ @pulumi.input_type
22
+ class SecretV2Args:
23
+ def __init__(__self__, *,
24
+ mount: pulumi.Input[_builtins.str],
25
+ cas: Optional[pulumi.Input[_builtins.int]] = None,
26
+ custom_metadata: Optional[pulumi.Input['SecretV2CustomMetadataArgs']] = None,
27
+ data_json: Optional[pulumi.Input[_builtins.str]] = None,
28
+ data_json_wo: Optional[pulumi.Input[_builtins.str]] = None,
29
+ data_json_wo_version: Optional[pulumi.Input[_builtins.int]] = None,
30
+ delete_all_versions: Optional[pulumi.Input[_builtins.bool]] = None,
31
+ disable_read: Optional[pulumi.Input[_builtins.bool]] = None,
32
+ name: Optional[pulumi.Input[_builtins.str]] = None,
33
+ namespace: Optional[pulumi.Input[_builtins.str]] = None,
34
+ options: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
35
+ """
36
+ The set of arguments for constructing a SecretV2 resource.
37
+ :param pulumi.Input[_builtins.str] mount: Path where KV-V2 engine is mounted.
38
+ :param pulumi.Input[_builtins.int] cas: This flag is required if `cas_required` is set to true
39
+ on either the secret or the engine's config. In order for a
40
+ write operation to be successful, cas must be set to the current version
41
+ of the secret.
42
+ :param pulumi.Input['SecretV2CustomMetadataArgs'] custom_metadata: A nested block that allows configuring metadata for the
43
+ KV secret. Refer to the
44
+ Configuration Options for more info.
45
+ :param pulumi.Input[_builtins.str] data_json: JSON-encoded string that will be
46
+ written as the secret data at the given path.
47
+ :param pulumi.Input[_builtins.str] data_json_wo: **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
48
+ Write-Only JSON-encoded secret data to write.
49
+ :param pulumi.Input[_builtins.int] data_json_wo_version: The version of the `data_json_wo`. For more info see updating write-only attributes.
50
+ :param pulumi.Input[_builtins.bool] delete_all_versions: If set to true, permanently deletes all
51
+ versions for the specified key.
52
+ :param pulumi.Input[_builtins.bool] disable_read: If set to true, disables reading secret from Vault;
53
+ note: drift won't be detected.
54
+ :param pulumi.Input[_builtins.str] name: Full name of the secret. For a nested secret
55
+ the name is the nested path excluding the mount and data
56
+ prefix. For example, for a secret at `kvv2/data/foo/bar/baz`
57
+ the name is `foo/bar/baz`.
58
+ :param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
59
+ The value should not contain leading or trailing forward slashes.
60
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
61
+ *Available only for Vault Enterprise*.
62
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] options: An object that holds option settings.
63
+ """
64
+ pulumi.set(__self__, "mount", mount)
65
+ if cas is not None:
66
+ pulumi.set(__self__, "cas", cas)
67
+ if custom_metadata is not None:
68
+ pulumi.set(__self__, "custom_metadata", custom_metadata)
69
+ if data_json is not None:
70
+ pulumi.set(__self__, "data_json", data_json)
71
+ if data_json_wo is not None:
72
+ pulumi.set(__self__, "data_json_wo", data_json_wo)
73
+ if data_json_wo_version is not None:
74
+ pulumi.set(__self__, "data_json_wo_version", data_json_wo_version)
75
+ if delete_all_versions is not None:
76
+ pulumi.set(__self__, "delete_all_versions", delete_all_versions)
77
+ if disable_read is not None:
78
+ pulumi.set(__self__, "disable_read", disable_read)
79
+ if name is not None:
80
+ pulumi.set(__self__, "name", name)
81
+ if namespace is not None:
82
+ pulumi.set(__self__, "namespace", namespace)
83
+ if options is not None:
84
+ pulumi.set(__self__, "options", options)
85
+
86
+ @_builtins.property
87
+ @pulumi.getter
88
+ def mount(self) -> pulumi.Input[_builtins.str]:
89
+ """
90
+ Path where KV-V2 engine is mounted.
91
+ """
92
+ return pulumi.get(self, "mount")
93
+
94
+ @mount.setter
95
+ def mount(self, value: pulumi.Input[_builtins.str]):
96
+ pulumi.set(self, "mount", value)
97
+
98
+ @_builtins.property
99
+ @pulumi.getter
100
+ def cas(self) -> Optional[pulumi.Input[_builtins.int]]:
101
+ """
102
+ This flag is required if `cas_required` is set to true
103
+ on either the secret or the engine's config. In order for a
104
+ write operation to be successful, cas must be set to the current version
105
+ of the secret.
106
+ """
107
+ return pulumi.get(self, "cas")
108
+
109
+ @cas.setter
110
+ def cas(self, value: Optional[pulumi.Input[_builtins.int]]):
111
+ pulumi.set(self, "cas", value)
112
+
113
+ @_builtins.property
114
+ @pulumi.getter(name="customMetadata")
115
+ def custom_metadata(self) -> Optional[pulumi.Input['SecretV2CustomMetadataArgs']]:
116
+ """
117
+ A nested block that allows configuring metadata for the
118
+ KV secret. Refer to the
119
+ Configuration Options for more info.
120
+ """
121
+ return pulumi.get(self, "custom_metadata")
122
+
123
+ @custom_metadata.setter
124
+ def custom_metadata(self, value: Optional[pulumi.Input['SecretV2CustomMetadataArgs']]):
125
+ pulumi.set(self, "custom_metadata", value)
126
+
127
+ @_builtins.property
128
+ @pulumi.getter(name="dataJson")
129
+ def data_json(self) -> Optional[pulumi.Input[_builtins.str]]:
130
+ """
131
+ JSON-encoded string that will be
132
+ written as the secret data at the given path.
133
+ """
134
+ return pulumi.get(self, "data_json")
135
+
136
+ @data_json.setter
137
+ def data_json(self, value: Optional[pulumi.Input[_builtins.str]]):
138
+ pulumi.set(self, "data_json", value)
139
+
140
+ @_builtins.property
141
+ @pulumi.getter(name="dataJsonWo")
142
+ def data_json_wo(self) -> Optional[pulumi.Input[_builtins.str]]:
143
+ """
144
+ **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
145
+ Write-Only JSON-encoded secret data to write.
146
+ """
147
+ return pulumi.get(self, "data_json_wo")
148
+
149
+ @data_json_wo.setter
150
+ def data_json_wo(self, value: Optional[pulumi.Input[_builtins.str]]):
151
+ pulumi.set(self, "data_json_wo", value)
152
+
153
+ @_builtins.property
154
+ @pulumi.getter(name="dataJsonWoVersion")
155
+ def data_json_wo_version(self) -> Optional[pulumi.Input[_builtins.int]]:
156
+ """
157
+ The version of the `data_json_wo`. For more info see updating write-only attributes.
158
+ """
159
+ return pulumi.get(self, "data_json_wo_version")
160
+
161
+ @data_json_wo_version.setter
162
+ def data_json_wo_version(self, value: Optional[pulumi.Input[_builtins.int]]):
163
+ pulumi.set(self, "data_json_wo_version", value)
164
+
165
+ @_builtins.property
166
+ @pulumi.getter(name="deleteAllVersions")
167
+ def delete_all_versions(self) -> Optional[pulumi.Input[_builtins.bool]]:
168
+ """
169
+ If set to true, permanently deletes all
170
+ versions for the specified key.
171
+ """
172
+ return pulumi.get(self, "delete_all_versions")
173
+
174
+ @delete_all_versions.setter
175
+ def delete_all_versions(self, value: Optional[pulumi.Input[_builtins.bool]]):
176
+ pulumi.set(self, "delete_all_versions", value)
177
+
178
+ @_builtins.property
179
+ @pulumi.getter(name="disableRead")
180
+ def disable_read(self) -> Optional[pulumi.Input[_builtins.bool]]:
181
+ """
182
+ If set to true, disables reading secret from Vault;
183
+ note: drift won't be detected.
184
+ """
185
+ return pulumi.get(self, "disable_read")
186
+
187
+ @disable_read.setter
188
+ def disable_read(self, value: Optional[pulumi.Input[_builtins.bool]]):
189
+ pulumi.set(self, "disable_read", value)
190
+
191
+ @_builtins.property
192
+ @pulumi.getter
193
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
194
+ """
195
+ Full name of the secret. For a nested secret
196
+ the name is the nested path excluding the mount and data
197
+ prefix. For example, for a secret at `kvv2/data/foo/bar/baz`
198
+ the name is `foo/bar/baz`.
199
+ """
200
+ return pulumi.get(self, "name")
201
+
202
+ @name.setter
203
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
204
+ pulumi.set(self, "name", value)
205
+
206
+ @_builtins.property
207
+ @pulumi.getter
208
+ def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
209
+ """
210
+ The namespace to provision the resource in.
211
+ The value should not contain leading or trailing forward slashes.
212
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
213
+ *Available only for Vault Enterprise*.
214
+ """
215
+ return pulumi.get(self, "namespace")
216
+
217
+ @namespace.setter
218
+ def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
219
+ pulumi.set(self, "namespace", value)
220
+
221
+ @_builtins.property
222
+ @pulumi.getter
223
+ def options(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
224
+ """
225
+ An object that holds option settings.
226
+ """
227
+ return pulumi.get(self, "options")
228
+
229
+ @options.setter
230
+ def options(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
231
+ pulumi.set(self, "options", value)
232
+
233
+
234
+ @pulumi.input_type
235
+ class _SecretV2State:
236
+ def __init__(__self__, *,
237
+ cas: Optional[pulumi.Input[_builtins.int]] = None,
238
+ custom_metadata: Optional[pulumi.Input['SecretV2CustomMetadataArgs']] = None,
239
+ data: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
240
+ data_json: Optional[pulumi.Input[_builtins.str]] = None,
241
+ data_json_wo: Optional[pulumi.Input[_builtins.str]] = None,
242
+ data_json_wo_version: Optional[pulumi.Input[_builtins.int]] = None,
243
+ delete_all_versions: Optional[pulumi.Input[_builtins.bool]] = None,
244
+ disable_read: Optional[pulumi.Input[_builtins.bool]] = None,
245
+ metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
246
+ mount: Optional[pulumi.Input[_builtins.str]] = None,
247
+ name: Optional[pulumi.Input[_builtins.str]] = None,
248
+ namespace: Optional[pulumi.Input[_builtins.str]] = None,
249
+ options: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
250
+ path: Optional[pulumi.Input[_builtins.str]] = None):
251
+ """
252
+ Input properties used for looking up and filtering SecretV2 resources.
253
+ :param pulumi.Input[_builtins.int] cas: This flag is required if `cas_required` is set to true
254
+ on either the secret or the engine's config. In order for a
255
+ write operation to be successful, cas must be set to the current version
256
+ of the secret.
257
+ :param pulumi.Input['SecretV2CustomMetadataArgs'] custom_metadata: A nested block that allows configuring metadata for the
258
+ KV secret. Refer to the
259
+ Configuration Options for more info.
260
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] data: **Deprecated. Please use new ephemeral resource `kv.SecretV2` to read back
261
+ secret data from Vault**. A mapping whose keys are the top-level data keys returned from
262
+ Vault and whose values are the corresponding values. This map can only represent string data,
263
+ so any non-string values returned from Vault are serialized as JSON.
264
+ :param pulumi.Input[_builtins.str] data_json: JSON-encoded string that will be
265
+ written as the secret data at the given path.
266
+ :param pulumi.Input[_builtins.str] data_json_wo: **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
267
+ Write-Only JSON-encoded secret data to write.
268
+ :param pulumi.Input[_builtins.int] data_json_wo_version: The version of the `data_json_wo`. For more info see updating write-only attributes.
269
+ :param pulumi.Input[_builtins.bool] delete_all_versions: If set to true, permanently deletes all
270
+ versions for the specified key.
271
+ :param pulumi.Input[_builtins.bool] disable_read: If set to true, disables reading secret from Vault;
272
+ note: drift won't be detected.
273
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] metadata: Metadata associated with this secret read from Vault.
274
+ :param pulumi.Input[_builtins.str] mount: Path where KV-V2 engine is mounted.
275
+ :param pulumi.Input[_builtins.str] name: Full name of the secret. For a nested secret
276
+ the name is the nested path excluding the mount and data
277
+ prefix. For example, for a secret at `kvv2/data/foo/bar/baz`
278
+ the name is `foo/bar/baz`.
279
+ :param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
280
+ The value should not contain leading or trailing forward slashes.
281
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
282
+ *Available only for Vault Enterprise*.
283
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] options: An object that holds option settings.
284
+ :param pulumi.Input[_builtins.str] path: Full path where the KV-V2 secret will be written.
285
+ """
286
+ if cas is not None:
287
+ pulumi.set(__self__, "cas", cas)
288
+ if custom_metadata is not None:
289
+ pulumi.set(__self__, "custom_metadata", custom_metadata)
290
+ if data is not None:
291
+ warnings.warn("""Deprecated. Will no longer be set on a read.""", DeprecationWarning)
292
+ pulumi.log.warn("""data is deprecated: Deprecated. Will no longer be set on a read.""")
293
+ if data is not None:
294
+ pulumi.set(__self__, "data", data)
295
+ if data_json is not None:
296
+ pulumi.set(__self__, "data_json", data_json)
297
+ if data_json_wo is not None:
298
+ pulumi.set(__self__, "data_json_wo", data_json_wo)
299
+ if data_json_wo_version is not None:
300
+ pulumi.set(__self__, "data_json_wo_version", data_json_wo_version)
301
+ if delete_all_versions is not None:
302
+ pulumi.set(__self__, "delete_all_versions", delete_all_versions)
303
+ if disable_read is not None:
304
+ pulumi.set(__self__, "disable_read", disable_read)
305
+ if metadata is not None:
306
+ pulumi.set(__self__, "metadata", metadata)
307
+ if mount is not None:
308
+ pulumi.set(__self__, "mount", mount)
309
+ if name is not None:
310
+ pulumi.set(__self__, "name", name)
311
+ if namespace is not None:
312
+ pulumi.set(__self__, "namespace", namespace)
313
+ if options is not None:
314
+ pulumi.set(__self__, "options", options)
315
+ if path is not None:
316
+ pulumi.set(__self__, "path", path)
317
+
318
+ @_builtins.property
319
+ @pulumi.getter
320
+ def cas(self) -> Optional[pulumi.Input[_builtins.int]]:
321
+ """
322
+ This flag is required if `cas_required` is set to true
323
+ on either the secret or the engine's config. In order for a
324
+ write operation to be successful, cas must be set to the current version
325
+ of the secret.
326
+ """
327
+ return pulumi.get(self, "cas")
328
+
329
+ @cas.setter
330
+ def cas(self, value: Optional[pulumi.Input[_builtins.int]]):
331
+ pulumi.set(self, "cas", value)
332
+
333
+ @_builtins.property
334
+ @pulumi.getter(name="customMetadata")
335
+ def custom_metadata(self) -> Optional[pulumi.Input['SecretV2CustomMetadataArgs']]:
336
+ """
337
+ A nested block that allows configuring metadata for the
338
+ KV secret. Refer to the
339
+ Configuration Options for more info.
340
+ """
341
+ return pulumi.get(self, "custom_metadata")
342
+
343
+ @custom_metadata.setter
344
+ def custom_metadata(self, value: Optional[pulumi.Input['SecretV2CustomMetadataArgs']]):
345
+ pulumi.set(self, "custom_metadata", value)
346
+
347
+ @_builtins.property
348
+ @pulumi.getter
349
+ @_utilities.deprecated("""Deprecated. Will no longer be set on a read.""")
350
+ def data(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
351
+ """
352
+ **Deprecated. Please use new ephemeral resource `kv.SecretV2` to read back
353
+ secret data from Vault**. A mapping whose keys are the top-level data keys returned from
354
+ Vault and whose values are the corresponding values. This map can only represent string data,
355
+ so any non-string values returned from Vault are serialized as JSON.
356
+ """
357
+ return pulumi.get(self, "data")
358
+
359
+ @data.setter
360
+ def data(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
361
+ pulumi.set(self, "data", value)
362
+
363
+ @_builtins.property
364
+ @pulumi.getter(name="dataJson")
365
+ def data_json(self) -> Optional[pulumi.Input[_builtins.str]]:
366
+ """
367
+ JSON-encoded string that will be
368
+ written as the secret data at the given path.
369
+ """
370
+ return pulumi.get(self, "data_json")
371
+
372
+ @data_json.setter
373
+ def data_json(self, value: Optional[pulumi.Input[_builtins.str]]):
374
+ pulumi.set(self, "data_json", value)
375
+
376
+ @_builtins.property
377
+ @pulumi.getter(name="dataJsonWo")
378
+ def data_json_wo(self) -> Optional[pulumi.Input[_builtins.str]]:
379
+ """
380
+ **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
381
+ Write-Only JSON-encoded secret data to write.
382
+ """
383
+ return pulumi.get(self, "data_json_wo")
384
+
385
+ @data_json_wo.setter
386
+ def data_json_wo(self, value: Optional[pulumi.Input[_builtins.str]]):
387
+ pulumi.set(self, "data_json_wo", value)
388
+
389
+ @_builtins.property
390
+ @pulumi.getter(name="dataJsonWoVersion")
391
+ def data_json_wo_version(self) -> Optional[pulumi.Input[_builtins.int]]:
392
+ """
393
+ The version of the `data_json_wo`. For more info see updating write-only attributes.
394
+ """
395
+ return pulumi.get(self, "data_json_wo_version")
396
+
397
+ @data_json_wo_version.setter
398
+ def data_json_wo_version(self, value: Optional[pulumi.Input[_builtins.int]]):
399
+ pulumi.set(self, "data_json_wo_version", value)
400
+
401
+ @_builtins.property
402
+ @pulumi.getter(name="deleteAllVersions")
403
+ def delete_all_versions(self) -> Optional[pulumi.Input[_builtins.bool]]:
404
+ """
405
+ If set to true, permanently deletes all
406
+ versions for the specified key.
407
+ """
408
+ return pulumi.get(self, "delete_all_versions")
409
+
410
+ @delete_all_versions.setter
411
+ def delete_all_versions(self, value: Optional[pulumi.Input[_builtins.bool]]):
412
+ pulumi.set(self, "delete_all_versions", value)
413
+
414
+ @_builtins.property
415
+ @pulumi.getter(name="disableRead")
416
+ def disable_read(self) -> Optional[pulumi.Input[_builtins.bool]]:
417
+ """
418
+ If set to true, disables reading secret from Vault;
419
+ note: drift won't be detected.
420
+ """
421
+ return pulumi.get(self, "disable_read")
422
+
423
+ @disable_read.setter
424
+ def disable_read(self, value: Optional[pulumi.Input[_builtins.bool]]):
425
+ pulumi.set(self, "disable_read", value)
426
+
427
+ @_builtins.property
428
+ @pulumi.getter
429
+ def metadata(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
430
+ """
431
+ Metadata associated with this secret read from Vault.
432
+ """
433
+ return pulumi.get(self, "metadata")
434
+
435
+ @metadata.setter
436
+ def metadata(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
437
+ pulumi.set(self, "metadata", value)
438
+
439
+ @_builtins.property
440
+ @pulumi.getter
441
+ def mount(self) -> Optional[pulumi.Input[_builtins.str]]:
442
+ """
443
+ Path where KV-V2 engine is mounted.
444
+ """
445
+ return pulumi.get(self, "mount")
446
+
447
+ @mount.setter
448
+ def mount(self, value: Optional[pulumi.Input[_builtins.str]]):
449
+ pulumi.set(self, "mount", value)
450
+
451
+ @_builtins.property
452
+ @pulumi.getter
453
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
454
+ """
455
+ Full name of the secret. For a nested secret
456
+ the name is the nested path excluding the mount and data
457
+ prefix. For example, for a secret at `kvv2/data/foo/bar/baz`
458
+ the name is `foo/bar/baz`.
459
+ """
460
+ return pulumi.get(self, "name")
461
+
462
+ @name.setter
463
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
464
+ pulumi.set(self, "name", value)
465
+
466
+ @_builtins.property
467
+ @pulumi.getter
468
+ def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
469
+ """
470
+ The namespace to provision the resource in.
471
+ The value should not contain leading or trailing forward slashes.
472
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
473
+ *Available only for Vault Enterprise*.
474
+ """
475
+ return pulumi.get(self, "namespace")
476
+
477
+ @namespace.setter
478
+ def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
479
+ pulumi.set(self, "namespace", value)
480
+
481
+ @_builtins.property
482
+ @pulumi.getter
483
+ def options(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
484
+ """
485
+ An object that holds option settings.
486
+ """
487
+ return pulumi.get(self, "options")
488
+
489
+ @options.setter
490
+ def options(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
491
+ pulumi.set(self, "options", value)
492
+
493
+ @_builtins.property
494
+ @pulumi.getter
495
+ def path(self) -> Optional[pulumi.Input[_builtins.str]]:
496
+ """
497
+ Full path where the KV-V2 secret will be written.
498
+ """
499
+ return pulumi.get(self, "path")
500
+
501
+ @path.setter
502
+ def path(self, value: Optional[pulumi.Input[_builtins.str]]):
503
+ pulumi.set(self, "path", value)
504
+
505
+
506
+ @pulumi.type_token("vault:kv/secretV2:SecretV2")
507
+ class SecretV2(pulumi.CustomResource):
508
+ @overload
509
+ def __init__(__self__,
510
+ resource_name: str,
511
+ opts: Optional[pulumi.ResourceOptions] = None,
512
+ cas: Optional[pulumi.Input[_builtins.int]] = None,
513
+ custom_metadata: Optional[pulumi.Input[Union['SecretV2CustomMetadataArgs', 'SecretV2CustomMetadataArgsDict']]] = None,
514
+ data_json: Optional[pulumi.Input[_builtins.str]] = None,
515
+ data_json_wo: Optional[pulumi.Input[_builtins.str]] = None,
516
+ data_json_wo_version: Optional[pulumi.Input[_builtins.int]] = None,
517
+ delete_all_versions: Optional[pulumi.Input[_builtins.bool]] = None,
518
+ disable_read: Optional[pulumi.Input[_builtins.bool]] = None,
519
+ mount: Optional[pulumi.Input[_builtins.str]] = None,
520
+ name: Optional[pulumi.Input[_builtins.str]] = None,
521
+ namespace: Optional[pulumi.Input[_builtins.str]] = None,
522
+ options: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
523
+ __props__=None):
524
+ """
525
+ Writes a KV-V2 secret to a given path in Vault.
526
+
527
+ For more information on Vault's KV-V2 secret backend
528
+ [see here](https://www.vaultproject.io/docs/secrets/kv/kv-v2).
529
+
530
+ ## Example Usage
531
+
532
+ ```python
533
+ import pulumi
534
+ import json
535
+ import pulumi_vault as vault
536
+
537
+ kvv2 = vault.Mount("kvv2",
538
+ path="kvv2",
539
+ type="kv",
540
+ options={
541
+ "version": "2",
542
+ },
543
+ description="KV Version 2 secret engine mount")
544
+ example = vault.kv.SecretV2("example",
545
+ mount=kvv2.path,
546
+ name="secret",
547
+ cas=1,
548
+ delete_all_versions=True,
549
+ data_json=json.dumps({
550
+ "zip": "zap",
551
+ "foo": "bar",
552
+ }),
553
+ custom_metadata={
554
+ "max_versions": 5,
555
+ "data": {
556
+ "foo": "vault@example.com",
557
+ "bar": "12345",
558
+ },
559
+ })
560
+ ```
561
+
562
+ ## Required Vault Capabilities
563
+
564
+ Use of this resource requires the `create` or `update` capability
565
+ (depending on whether the resource already exists) on the given path,
566
+ the `delete` capability if the resource is removed from configuration,
567
+ and the `read` capability for drift detection (by default).
568
+
569
+ ### Custom Metadata Configuration Options
570
+
571
+ * `max_versions` - (Optional) The number of versions to keep per key.
572
+
573
+ * `cas_required` - (Optional) If true, all keys will require the cas
574
+ parameter to be set on all write requests.
575
+
576
+ * `delete_version_after` - (Optional) If set, specifies the length of time before
577
+ a version is deleted. Accepts duration in integer seconds.
578
+
579
+ * `data` - (Optional) A string to string map describing the secret.
580
+
581
+ ## Ephemeral Attributes Reference
582
+
583
+ The following write-only attributes are supported:
584
+
585
+ * `data_json_wo` - (Optional) JSON-encoded secret data to write to Vault. Can be updated.
586
+ **Note**: This property is write-only and will not be read from the API.
587
+
588
+ ## Import
589
+
590
+ KV-V2 secrets can be imported using the `path`, e.g.
591
+
592
+ ```sh
593
+ $ pulumi import vault:kv/secretV2:SecretV2 example kvv2/data/secret
594
+ ```
595
+
596
+ :param str resource_name: The name of the resource.
597
+ :param pulumi.ResourceOptions opts: Options for the resource.
598
+ :param pulumi.Input[_builtins.int] cas: This flag is required if `cas_required` is set to true
599
+ on either the secret or the engine's config. In order for a
600
+ write operation to be successful, cas must be set to the current version
601
+ of the secret.
602
+ :param pulumi.Input[Union['SecretV2CustomMetadataArgs', 'SecretV2CustomMetadataArgsDict']] custom_metadata: A nested block that allows configuring metadata for the
603
+ KV secret. Refer to the
604
+ Configuration Options for more info.
605
+ :param pulumi.Input[_builtins.str] data_json: JSON-encoded string that will be
606
+ written as the secret data at the given path.
607
+ :param pulumi.Input[_builtins.str] data_json_wo: **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
608
+ Write-Only JSON-encoded secret data to write.
609
+ :param pulumi.Input[_builtins.int] data_json_wo_version: The version of the `data_json_wo`. For more info see updating write-only attributes.
610
+ :param pulumi.Input[_builtins.bool] delete_all_versions: If set to true, permanently deletes all
611
+ versions for the specified key.
612
+ :param pulumi.Input[_builtins.bool] disable_read: If set to true, disables reading secret from Vault;
613
+ note: drift won't be detected.
614
+ :param pulumi.Input[_builtins.str] mount: Path where KV-V2 engine is mounted.
615
+ :param pulumi.Input[_builtins.str] name: Full name of the secret. For a nested secret
616
+ the name is the nested path excluding the mount and data
617
+ prefix. For example, for a secret at `kvv2/data/foo/bar/baz`
618
+ the name is `foo/bar/baz`.
619
+ :param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
620
+ The value should not contain leading or trailing forward slashes.
621
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
622
+ *Available only for Vault Enterprise*.
623
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] options: An object that holds option settings.
624
+ """
625
+ ...
626
+ @overload
627
+ def __init__(__self__,
628
+ resource_name: str,
629
+ args: SecretV2Args,
630
+ opts: Optional[pulumi.ResourceOptions] = None):
631
+ """
632
+ Writes a KV-V2 secret to a given path in Vault.
633
+
634
+ For more information on Vault's KV-V2 secret backend
635
+ [see here](https://www.vaultproject.io/docs/secrets/kv/kv-v2).
636
+
637
+ ## Example Usage
638
+
639
+ ```python
640
+ import pulumi
641
+ import json
642
+ import pulumi_vault as vault
643
+
644
+ kvv2 = vault.Mount("kvv2",
645
+ path="kvv2",
646
+ type="kv",
647
+ options={
648
+ "version": "2",
649
+ },
650
+ description="KV Version 2 secret engine mount")
651
+ example = vault.kv.SecretV2("example",
652
+ mount=kvv2.path,
653
+ name="secret",
654
+ cas=1,
655
+ delete_all_versions=True,
656
+ data_json=json.dumps({
657
+ "zip": "zap",
658
+ "foo": "bar",
659
+ }),
660
+ custom_metadata={
661
+ "max_versions": 5,
662
+ "data": {
663
+ "foo": "vault@example.com",
664
+ "bar": "12345",
665
+ },
666
+ })
667
+ ```
668
+
669
+ ## Required Vault Capabilities
670
+
671
+ Use of this resource requires the `create` or `update` capability
672
+ (depending on whether the resource already exists) on the given path,
673
+ the `delete` capability if the resource is removed from configuration,
674
+ and the `read` capability for drift detection (by default).
675
+
676
+ ### Custom Metadata Configuration Options
677
+
678
+ * `max_versions` - (Optional) The number of versions to keep per key.
679
+
680
+ * `cas_required` - (Optional) If true, all keys will require the cas
681
+ parameter to be set on all write requests.
682
+
683
+ * `delete_version_after` - (Optional) If set, specifies the length of time before
684
+ a version is deleted. Accepts duration in integer seconds.
685
+
686
+ * `data` - (Optional) A string to string map describing the secret.
687
+
688
+ ## Ephemeral Attributes Reference
689
+
690
+ The following write-only attributes are supported:
691
+
692
+ * `data_json_wo` - (Optional) JSON-encoded secret data to write to Vault. Can be updated.
693
+ **Note**: This property is write-only and will not be read from the API.
694
+
695
+ ## Import
696
+
697
+ KV-V2 secrets can be imported using the `path`, e.g.
698
+
699
+ ```sh
700
+ $ pulumi import vault:kv/secretV2:SecretV2 example kvv2/data/secret
701
+ ```
702
+
703
+ :param str resource_name: The name of the resource.
704
+ :param SecretV2Args args: The arguments to use to populate this resource's properties.
705
+ :param pulumi.ResourceOptions opts: Options for the resource.
706
+ """
707
+ ...
708
+ def __init__(__self__, resource_name: str, *args, **kwargs):
709
+ resource_args, opts = _utilities.get_resource_args_opts(SecretV2Args, pulumi.ResourceOptions, *args, **kwargs)
710
+ if resource_args is not None:
711
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
712
+ else:
713
+ __self__._internal_init(resource_name, *args, **kwargs)
714
+
715
+ def _internal_init(__self__,
716
+ resource_name: str,
717
+ opts: Optional[pulumi.ResourceOptions] = None,
718
+ cas: Optional[pulumi.Input[_builtins.int]] = None,
719
+ custom_metadata: Optional[pulumi.Input[Union['SecretV2CustomMetadataArgs', 'SecretV2CustomMetadataArgsDict']]] = None,
720
+ data_json: Optional[pulumi.Input[_builtins.str]] = None,
721
+ data_json_wo: Optional[pulumi.Input[_builtins.str]] = None,
722
+ data_json_wo_version: Optional[pulumi.Input[_builtins.int]] = None,
723
+ delete_all_versions: Optional[pulumi.Input[_builtins.bool]] = None,
724
+ disable_read: Optional[pulumi.Input[_builtins.bool]] = None,
725
+ mount: Optional[pulumi.Input[_builtins.str]] = None,
726
+ name: Optional[pulumi.Input[_builtins.str]] = None,
727
+ namespace: Optional[pulumi.Input[_builtins.str]] = None,
728
+ options: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
729
+ __props__=None):
730
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
731
+ if not isinstance(opts, pulumi.ResourceOptions):
732
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
733
+ if opts.id is None:
734
+ if __props__ is not None:
735
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
736
+ __props__ = SecretV2Args.__new__(SecretV2Args)
737
+
738
+ __props__.__dict__["cas"] = cas
739
+ __props__.__dict__["custom_metadata"] = custom_metadata
740
+ __props__.__dict__["data_json"] = None if data_json is None else pulumi.Output.secret(data_json)
741
+ __props__.__dict__["data_json_wo"] = None if data_json_wo is None else pulumi.Output.secret(data_json_wo)
742
+ __props__.__dict__["data_json_wo_version"] = data_json_wo_version
743
+ __props__.__dict__["delete_all_versions"] = delete_all_versions
744
+ __props__.__dict__["disable_read"] = disable_read
745
+ if mount is None and not opts.urn:
746
+ raise TypeError("Missing required property 'mount'")
747
+ __props__.__dict__["mount"] = mount
748
+ __props__.__dict__["name"] = name
749
+ __props__.__dict__["namespace"] = namespace
750
+ __props__.__dict__["options"] = options
751
+ __props__.__dict__["data"] = None
752
+ __props__.__dict__["metadata"] = None
753
+ __props__.__dict__["path"] = None
754
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["data", "dataJson", "dataJsonWo"])
755
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
756
+ super(SecretV2, __self__).__init__(
757
+ 'vault:kv/secretV2:SecretV2',
758
+ resource_name,
759
+ __props__,
760
+ opts)
761
+
762
+ @staticmethod
763
+ def get(resource_name: str,
764
+ id: pulumi.Input[str],
765
+ opts: Optional[pulumi.ResourceOptions] = None,
766
+ cas: Optional[pulumi.Input[_builtins.int]] = None,
767
+ custom_metadata: Optional[pulumi.Input[Union['SecretV2CustomMetadataArgs', 'SecretV2CustomMetadataArgsDict']]] = None,
768
+ data: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
769
+ data_json: Optional[pulumi.Input[_builtins.str]] = None,
770
+ data_json_wo: Optional[pulumi.Input[_builtins.str]] = None,
771
+ data_json_wo_version: Optional[pulumi.Input[_builtins.int]] = None,
772
+ delete_all_versions: Optional[pulumi.Input[_builtins.bool]] = None,
773
+ disable_read: Optional[pulumi.Input[_builtins.bool]] = None,
774
+ metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
775
+ mount: Optional[pulumi.Input[_builtins.str]] = None,
776
+ name: Optional[pulumi.Input[_builtins.str]] = None,
777
+ namespace: Optional[pulumi.Input[_builtins.str]] = None,
778
+ options: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
779
+ path: Optional[pulumi.Input[_builtins.str]] = None) -> 'SecretV2':
780
+ """
781
+ Get an existing SecretV2 resource's state with the given name, id, and optional extra
782
+ properties used to qualify the lookup.
783
+
784
+ :param str resource_name: The unique name of the resulting resource.
785
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
786
+ :param pulumi.ResourceOptions opts: Options for the resource.
787
+ :param pulumi.Input[_builtins.int] cas: This flag is required if `cas_required` is set to true
788
+ on either the secret or the engine's config. In order for a
789
+ write operation to be successful, cas must be set to the current version
790
+ of the secret.
791
+ :param pulumi.Input[Union['SecretV2CustomMetadataArgs', 'SecretV2CustomMetadataArgsDict']] custom_metadata: A nested block that allows configuring metadata for the
792
+ KV secret. Refer to the
793
+ Configuration Options for more info.
794
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] data: **Deprecated. Please use new ephemeral resource `kv.SecretV2` to read back
795
+ secret data from Vault**. A mapping whose keys are the top-level data keys returned from
796
+ Vault and whose values are the corresponding values. This map can only represent string data,
797
+ so any non-string values returned from Vault are serialized as JSON.
798
+ :param pulumi.Input[_builtins.str] data_json: JSON-encoded string that will be
799
+ written as the secret data at the given path.
800
+ :param pulumi.Input[_builtins.str] data_json_wo: **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
801
+ Write-Only JSON-encoded secret data to write.
802
+ :param pulumi.Input[_builtins.int] data_json_wo_version: The version of the `data_json_wo`. For more info see updating write-only attributes.
803
+ :param pulumi.Input[_builtins.bool] delete_all_versions: If set to true, permanently deletes all
804
+ versions for the specified key.
805
+ :param pulumi.Input[_builtins.bool] disable_read: If set to true, disables reading secret from Vault;
806
+ note: drift won't be detected.
807
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] metadata: Metadata associated with this secret read from Vault.
808
+ :param pulumi.Input[_builtins.str] mount: Path where KV-V2 engine is mounted.
809
+ :param pulumi.Input[_builtins.str] name: Full name of the secret. For a nested secret
810
+ the name is the nested path excluding the mount and data
811
+ prefix. For example, for a secret at `kvv2/data/foo/bar/baz`
812
+ the name is `foo/bar/baz`.
813
+ :param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
814
+ The value should not contain leading or trailing forward slashes.
815
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
816
+ *Available only for Vault Enterprise*.
817
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] options: An object that holds option settings.
818
+ :param pulumi.Input[_builtins.str] path: Full path where the KV-V2 secret will be written.
819
+ """
820
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
821
+
822
+ __props__ = _SecretV2State.__new__(_SecretV2State)
823
+
824
+ __props__.__dict__["cas"] = cas
825
+ __props__.__dict__["custom_metadata"] = custom_metadata
826
+ __props__.__dict__["data"] = data
827
+ __props__.__dict__["data_json"] = data_json
828
+ __props__.__dict__["data_json_wo"] = data_json_wo
829
+ __props__.__dict__["data_json_wo_version"] = data_json_wo_version
830
+ __props__.__dict__["delete_all_versions"] = delete_all_versions
831
+ __props__.__dict__["disable_read"] = disable_read
832
+ __props__.__dict__["metadata"] = metadata
833
+ __props__.__dict__["mount"] = mount
834
+ __props__.__dict__["name"] = name
835
+ __props__.__dict__["namespace"] = namespace
836
+ __props__.__dict__["options"] = options
837
+ __props__.__dict__["path"] = path
838
+ return SecretV2(resource_name, opts=opts, __props__=__props__)
839
+
840
+ @_builtins.property
841
+ @pulumi.getter
842
+ def cas(self) -> pulumi.Output[Optional[_builtins.int]]:
843
+ """
844
+ This flag is required if `cas_required` is set to true
845
+ on either the secret or the engine's config. In order for a
846
+ write operation to be successful, cas must be set to the current version
847
+ of the secret.
848
+ """
849
+ return pulumi.get(self, "cas")
850
+
851
+ @_builtins.property
852
+ @pulumi.getter(name="customMetadata")
853
+ def custom_metadata(self) -> pulumi.Output['outputs.SecretV2CustomMetadata']:
854
+ """
855
+ A nested block that allows configuring metadata for the
856
+ KV secret. Refer to the
857
+ Configuration Options for more info.
858
+ """
859
+ return pulumi.get(self, "custom_metadata")
860
+
861
+ @_builtins.property
862
+ @pulumi.getter
863
+ @_utilities.deprecated("""Deprecated. Will no longer be set on a read.""")
864
+ def data(self) -> pulumi.Output[Mapping[str, _builtins.str]]:
865
+ """
866
+ **Deprecated. Please use new ephemeral resource `kv.SecretV2` to read back
867
+ secret data from Vault**. A mapping whose keys are the top-level data keys returned from
868
+ Vault and whose values are the corresponding values. This map can only represent string data,
869
+ so any non-string values returned from Vault are serialized as JSON.
870
+ """
871
+ return pulumi.get(self, "data")
872
+
873
+ @_builtins.property
874
+ @pulumi.getter(name="dataJson")
875
+ def data_json(self) -> pulumi.Output[Optional[_builtins.str]]:
876
+ """
877
+ JSON-encoded string that will be
878
+ written as the secret data at the given path.
879
+ """
880
+ return pulumi.get(self, "data_json")
881
+
882
+ @_builtins.property
883
+ @pulumi.getter(name="dataJsonWo")
884
+ def data_json_wo(self) -> pulumi.Output[Optional[_builtins.str]]:
885
+ """
886
+ **NOTE:** This field is write-only and its value will not be updated in state as part of read operations.
887
+ Write-Only JSON-encoded secret data to write.
888
+ """
889
+ return pulumi.get(self, "data_json_wo")
890
+
891
+ @_builtins.property
892
+ @pulumi.getter(name="dataJsonWoVersion")
893
+ def data_json_wo_version(self) -> pulumi.Output[Optional[_builtins.int]]:
894
+ """
895
+ The version of the `data_json_wo`. For more info see updating write-only attributes.
896
+ """
897
+ return pulumi.get(self, "data_json_wo_version")
898
+
899
+ @_builtins.property
900
+ @pulumi.getter(name="deleteAllVersions")
901
+ def delete_all_versions(self) -> pulumi.Output[Optional[_builtins.bool]]:
902
+ """
903
+ If set to true, permanently deletes all
904
+ versions for the specified key.
905
+ """
906
+ return pulumi.get(self, "delete_all_versions")
907
+
908
+ @_builtins.property
909
+ @pulumi.getter(name="disableRead")
910
+ def disable_read(self) -> pulumi.Output[Optional[_builtins.bool]]:
911
+ """
912
+ If set to true, disables reading secret from Vault;
913
+ note: drift won't be detected.
914
+ """
915
+ return pulumi.get(self, "disable_read")
916
+
917
+ @_builtins.property
918
+ @pulumi.getter
919
+ def metadata(self) -> pulumi.Output[Mapping[str, _builtins.str]]:
920
+ """
921
+ Metadata associated with this secret read from Vault.
922
+ """
923
+ return pulumi.get(self, "metadata")
924
+
925
+ @_builtins.property
926
+ @pulumi.getter
927
+ def mount(self) -> pulumi.Output[_builtins.str]:
928
+ """
929
+ Path where KV-V2 engine is mounted.
930
+ """
931
+ return pulumi.get(self, "mount")
932
+
933
+ @_builtins.property
934
+ @pulumi.getter
935
+ def name(self) -> pulumi.Output[_builtins.str]:
936
+ """
937
+ Full name of the secret. For a nested secret
938
+ the name is the nested path excluding the mount and data
939
+ prefix. For example, for a secret at `kvv2/data/foo/bar/baz`
940
+ the name is `foo/bar/baz`.
941
+ """
942
+ return pulumi.get(self, "name")
943
+
944
+ @_builtins.property
945
+ @pulumi.getter
946
+ def namespace(self) -> pulumi.Output[Optional[_builtins.str]]:
947
+ """
948
+ The namespace to provision the resource in.
949
+ The value should not contain leading or trailing forward slashes.
950
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
951
+ *Available only for Vault Enterprise*.
952
+ """
953
+ return pulumi.get(self, "namespace")
954
+
955
+ @_builtins.property
956
+ @pulumi.getter
957
+ def options(self) -> pulumi.Output[Optional[Mapping[str, _builtins.str]]]:
958
+ """
959
+ An object that holds option settings.
960
+ """
961
+ return pulumi.get(self, "options")
962
+
963
+ @_builtins.property
964
+ @pulumi.getter
965
+ def path(self) -> pulumi.Output[_builtins.str]:
966
+ """
967
+ Full path where the KV-V2 secret will be written.
968
+ """
969
+ return pulumi.get(self, "path")
970
+