pulumi-vault 5.21.0a1710160723__py3-none-any.whl → 6.5.0__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 (233) hide show
  1. pulumi_vault/__init__.py +76 -0
  2. pulumi_vault/_inputs.py +560 -0
  3. pulumi_vault/_utilities.py +41 -5
  4. pulumi_vault/ad/get_access_credentials.py +22 -7
  5. pulumi_vault/ad/secret_backend.py +14 -144
  6. pulumi_vault/ad/secret_library.py +14 -11
  7. pulumi_vault/ad/secret_role.py +12 -11
  8. pulumi_vault/alicloud/auth_backend_role.py +74 -192
  9. pulumi_vault/approle/auth_backend_login.py +12 -11
  10. pulumi_vault/approle/auth_backend_role.py +75 -193
  11. pulumi_vault/approle/auth_backend_role_secret_id.py +106 -11
  12. pulumi_vault/approle/get_auth_backend_role_id.py +18 -9
  13. pulumi_vault/audit.py +24 -27
  14. pulumi_vault/audit_request_header.py +11 -6
  15. pulumi_vault/auth_backend.py +64 -12
  16. pulumi_vault/aws/auth_backend_cert.py +12 -7
  17. pulumi_vault/aws/auth_backend_client.py +265 -24
  18. pulumi_vault/aws/auth_backend_config_identity.py +12 -11
  19. pulumi_vault/aws/auth_backend_identity_whitelist.py +18 -17
  20. pulumi_vault/aws/auth_backend_login.py +19 -22
  21. pulumi_vault/aws/auth_backend_role.py +75 -193
  22. pulumi_vault/aws/auth_backend_role_tag.py +12 -7
  23. pulumi_vault/aws/auth_backend_roletag_blacklist.py +18 -17
  24. pulumi_vault/aws/auth_backend_sts_role.py +59 -11
  25. pulumi_vault/aws/get_access_credentials.py +34 -7
  26. pulumi_vault/aws/get_static_access_credentials.py +19 -5
  27. pulumi_vault/aws/secret_backend.py +216 -7
  28. pulumi_vault/aws/secret_backend_role.py +183 -11
  29. pulumi_vault/aws/secret_backend_static_role.py +14 -11
  30. pulumi_vault/azure/_inputs.py +24 -0
  31. pulumi_vault/azure/auth_backend_config.py +151 -17
  32. pulumi_vault/azure/auth_backend_role.py +75 -193
  33. pulumi_vault/azure/backend.py +223 -29
  34. pulumi_vault/azure/backend_role.py +42 -41
  35. pulumi_vault/azure/get_access_credentials.py +39 -11
  36. pulumi_vault/azure/outputs.py +5 -0
  37. pulumi_vault/cert_auth_backend_role.py +87 -271
  38. pulumi_vault/config/__init__.pyi +5 -0
  39. pulumi_vault/config/_inputs.py +73 -0
  40. pulumi_vault/config/outputs.py +35 -0
  41. pulumi_vault/config/ui_custom_message.py +529 -0
  42. pulumi_vault/config/vars.py +5 -0
  43. pulumi_vault/consul/secret_backend.py +22 -25
  44. pulumi_vault/consul/secret_backend_role.py +14 -80
  45. pulumi_vault/database/_inputs.py +2808 -879
  46. pulumi_vault/database/outputs.py +749 -838
  47. pulumi_vault/database/secret_backend_connection.py +117 -114
  48. pulumi_vault/database/secret_backend_role.py +29 -24
  49. pulumi_vault/database/secret_backend_static_role.py +85 -15
  50. pulumi_vault/database/secrets_mount.py +425 -138
  51. pulumi_vault/egp_policy.py +16 -15
  52. pulumi_vault/gcp/_inputs.py +111 -0
  53. pulumi_vault/gcp/auth_backend.py +248 -35
  54. pulumi_vault/gcp/auth_backend_role.py +75 -271
  55. pulumi_vault/gcp/get_auth_backend_role.py +43 -9
  56. pulumi_vault/gcp/outputs.py +5 -0
  57. pulumi_vault/gcp/secret_backend.py +287 -16
  58. pulumi_vault/gcp/secret_impersonated_account.py +74 -17
  59. pulumi_vault/gcp/secret_roleset.py +29 -26
  60. pulumi_vault/gcp/secret_static_account.py +37 -34
  61. pulumi_vault/generic/endpoint.py +22 -21
  62. pulumi_vault/generic/get_secret.py +68 -12
  63. pulumi_vault/generic/secret.py +19 -14
  64. pulumi_vault/get_auth_backend.py +24 -11
  65. pulumi_vault/get_auth_backends.py +33 -11
  66. pulumi_vault/get_namespace.py +226 -0
  67. pulumi_vault/get_namespaces.py +153 -0
  68. pulumi_vault/get_nomad_access_token.py +31 -15
  69. pulumi_vault/get_policy_document.py +34 -23
  70. pulumi_vault/get_raft_autopilot_state.py +29 -14
  71. pulumi_vault/github/_inputs.py +55 -0
  72. pulumi_vault/github/auth_backend.py +17 -16
  73. pulumi_vault/github/outputs.py +5 -0
  74. pulumi_vault/github/team.py +14 -13
  75. pulumi_vault/github/user.py +14 -13
  76. pulumi_vault/identity/entity.py +18 -15
  77. pulumi_vault/identity/entity_alias.py +18 -15
  78. pulumi_vault/identity/entity_policies.py +24 -19
  79. pulumi_vault/identity/get_entity.py +40 -14
  80. pulumi_vault/identity/get_group.py +45 -13
  81. pulumi_vault/identity/get_oidc_client_creds.py +21 -11
  82. pulumi_vault/identity/get_oidc_openid_config.py +39 -13
  83. pulumi_vault/identity/get_oidc_public_keys.py +29 -14
  84. pulumi_vault/identity/group.py +50 -49
  85. pulumi_vault/identity/group_alias.py +14 -11
  86. pulumi_vault/identity/group_member_entity_ids.py +24 -74
  87. pulumi_vault/identity/group_member_group_ids.py +36 -27
  88. pulumi_vault/identity/group_policies.py +16 -15
  89. pulumi_vault/identity/mfa_duo.py +9 -8
  90. pulumi_vault/identity/mfa_login_enforcement.py +13 -8
  91. pulumi_vault/identity/mfa_okta.py +9 -8
  92. pulumi_vault/identity/mfa_pingid.py +5 -4
  93. pulumi_vault/identity/mfa_totp.py +5 -4
  94. pulumi_vault/identity/oidc.py +12 -11
  95. pulumi_vault/identity/oidc_assignment.py +22 -13
  96. pulumi_vault/identity/oidc_client.py +34 -25
  97. pulumi_vault/identity/oidc_key.py +28 -19
  98. pulumi_vault/identity/oidc_key_allowed_client_id.py +28 -19
  99. pulumi_vault/identity/oidc_provider.py +34 -23
  100. pulumi_vault/identity/oidc_role.py +40 -27
  101. pulumi_vault/identity/oidc_scope.py +18 -15
  102. pulumi_vault/identity/outputs.py +8 -3
  103. pulumi_vault/jwt/_inputs.py +55 -0
  104. pulumi_vault/jwt/auth_backend.py +39 -46
  105. pulumi_vault/jwt/auth_backend_role.py +131 -260
  106. pulumi_vault/jwt/outputs.py +5 -0
  107. pulumi_vault/kmip/secret_backend.py +22 -21
  108. pulumi_vault/kmip/secret_role.py +12 -11
  109. pulumi_vault/kmip/secret_scope.py +12 -11
  110. pulumi_vault/kubernetes/auth_backend_config.py +55 -7
  111. pulumi_vault/kubernetes/auth_backend_role.py +68 -179
  112. pulumi_vault/kubernetes/get_auth_backend_config.py +60 -8
  113. pulumi_vault/kubernetes/get_auth_backend_role.py +40 -5
  114. pulumi_vault/kubernetes/get_service_account_token.py +39 -15
  115. pulumi_vault/kubernetes/secret_backend.py +314 -29
  116. pulumi_vault/kubernetes/secret_backend_role.py +135 -56
  117. pulumi_vault/kv/_inputs.py +36 -4
  118. pulumi_vault/kv/get_secret.py +23 -12
  119. pulumi_vault/kv/get_secret_subkeys_v2.py +31 -14
  120. pulumi_vault/kv/get_secret_v2.py +89 -9
  121. pulumi_vault/kv/get_secrets_list.py +22 -15
  122. pulumi_vault/kv/get_secrets_list_v2.py +35 -19
  123. pulumi_vault/kv/outputs.py +8 -3
  124. pulumi_vault/kv/secret.py +19 -18
  125. pulumi_vault/kv/secret_backend_v2.py +12 -11
  126. pulumi_vault/kv/secret_v2.py +55 -52
  127. pulumi_vault/ldap/auth_backend.py +125 -168
  128. pulumi_vault/ldap/auth_backend_group.py +12 -11
  129. pulumi_vault/ldap/auth_backend_user.py +12 -11
  130. pulumi_vault/ldap/get_dynamic_credentials.py +23 -5
  131. pulumi_vault/ldap/get_static_credentials.py +24 -5
  132. pulumi_vault/ldap/secret_backend.py +352 -84
  133. pulumi_vault/ldap/secret_backend_dynamic_role.py +12 -11
  134. pulumi_vault/ldap/secret_backend_library_set.py +14 -11
  135. pulumi_vault/ldap/secret_backend_static_role.py +67 -12
  136. pulumi_vault/managed/_inputs.py +289 -132
  137. pulumi_vault/managed/keys.py +27 -43
  138. pulumi_vault/managed/outputs.py +89 -132
  139. pulumi_vault/mfa_duo.py +16 -13
  140. pulumi_vault/mfa_okta.py +16 -13
  141. pulumi_vault/mfa_pingid.py +16 -13
  142. pulumi_vault/mfa_totp.py +22 -19
  143. pulumi_vault/mongodbatlas/secret_backend.py +18 -17
  144. pulumi_vault/mongodbatlas/secret_role.py +41 -38
  145. pulumi_vault/mount.py +389 -65
  146. pulumi_vault/namespace.py +26 -21
  147. pulumi_vault/nomad_secret_backend.py +16 -15
  148. pulumi_vault/nomad_secret_role.py +12 -11
  149. pulumi_vault/okta/_inputs.py +47 -8
  150. pulumi_vault/okta/auth_backend.py +483 -41
  151. pulumi_vault/okta/auth_backend_group.py +12 -11
  152. pulumi_vault/okta/auth_backend_user.py +12 -11
  153. pulumi_vault/okta/outputs.py +13 -8
  154. pulumi_vault/outputs.py +5 -0
  155. pulumi_vault/password_policy.py +18 -15
  156. pulumi_vault/pkisecret/__init__.py +7 -0
  157. pulumi_vault/pkisecret/_inputs.py +115 -0
  158. pulumi_vault/pkisecret/backend_acme_eab.py +549 -0
  159. pulumi_vault/pkisecret/backend_config_acme.py +642 -0
  160. pulumi_vault/pkisecret/backend_config_cluster.py +369 -0
  161. pulumi_vault/pkisecret/backend_config_cmpv2.py +525 -0
  162. pulumi_vault/pkisecret/backend_config_est.py +619 -0
  163. pulumi_vault/pkisecret/get_backend_config_cmpv2.py +209 -0
  164. pulumi_vault/pkisecret/get_backend_config_est.py +251 -0
  165. pulumi_vault/pkisecret/get_backend_issuer.py +63 -7
  166. pulumi_vault/pkisecret/get_backend_issuers.py +21 -12
  167. pulumi_vault/pkisecret/get_backend_key.py +24 -13
  168. pulumi_vault/pkisecret/get_backend_keys.py +21 -12
  169. pulumi_vault/pkisecret/outputs.py +109 -0
  170. pulumi_vault/pkisecret/secret_backend_cert.py +18 -15
  171. pulumi_vault/pkisecret/secret_backend_config_ca.py +16 -15
  172. pulumi_vault/pkisecret/secret_backend_config_issuers.py +12 -11
  173. pulumi_vault/pkisecret/secret_backend_config_urls.py +59 -11
  174. pulumi_vault/pkisecret/secret_backend_crl_config.py +14 -13
  175. pulumi_vault/pkisecret/secret_backend_intermediate_cert_request.py +16 -15
  176. pulumi_vault/pkisecret/secret_backend_intermediate_set_signed.py +22 -21
  177. pulumi_vault/pkisecret/secret_backend_issuer.py +12 -11
  178. pulumi_vault/pkisecret/secret_backend_key.py +12 -7
  179. pulumi_vault/pkisecret/secret_backend_role.py +66 -16
  180. pulumi_vault/pkisecret/secret_backend_root_cert.py +16 -52
  181. pulumi_vault/pkisecret/secret_backend_root_sign_intermediate.py +18 -62
  182. pulumi_vault/pkisecret/secret_backend_sign.py +18 -60
  183. pulumi_vault/plugin.py +595 -0
  184. pulumi_vault/plugin_pinned_version.py +298 -0
  185. pulumi_vault/policy.py +12 -7
  186. pulumi_vault/provider.py +48 -53
  187. pulumi_vault/pulumi-plugin.json +2 -1
  188. pulumi_vault/quota_lease_count.py +58 -8
  189. pulumi_vault/quota_rate_limit.py +54 -4
  190. pulumi_vault/rabbitmq/_inputs.py +61 -0
  191. pulumi_vault/rabbitmq/outputs.py +5 -0
  192. pulumi_vault/rabbitmq/secret_backend.py +16 -15
  193. pulumi_vault/rabbitmq/secret_backend_role.py +52 -49
  194. pulumi_vault/raft_autopilot.py +12 -11
  195. pulumi_vault/raft_snapshot_agent_config.py +121 -311
  196. pulumi_vault/rgp_policy.py +14 -13
  197. pulumi_vault/saml/auth_backend.py +20 -19
  198. pulumi_vault/saml/auth_backend_role.py +90 -199
  199. pulumi_vault/secrets/__init__.py +3 -0
  200. pulumi_vault/secrets/_inputs.py +110 -0
  201. pulumi_vault/secrets/outputs.py +94 -0
  202. pulumi_vault/secrets/sync_association.py +56 -75
  203. pulumi_vault/secrets/sync_aws_destination.py +240 -29
  204. pulumi_vault/secrets/sync_azure_destination.py +90 -33
  205. pulumi_vault/secrets/sync_config.py +7 -6
  206. pulumi_vault/secrets/sync_gcp_destination.py +156 -27
  207. pulumi_vault/secrets/sync_gh_destination.py +187 -15
  208. pulumi_vault/secrets/sync_github_apps.py +375 -0
  209. pulumi_vault/secrets/sync_vercel_destination.py +72 -15
  210. pulumi_vault/ssh/_inputs.py +28 -32
  211. pulumi_vault/ssh/outputs.py +11 -32
  212. pulumi_vault/ssh/secret_backend_ca.py +106 -11
  213. pulumi_vault/ssh/secret_backend_role.py +110 -120
  214. pulumi_vault/terraformcloud/secret_backend.py +5 -56
  215. pulumi_vault/terraformcloud/secret_creds.py +14 -24
  216. pulumi_vault/terraformcloud/secret_role.py +14 -76
  217. pulumi_vault/token.py +26 -25
  218. pulumi_vault/tokenauth/auth_backend_role.py +76 -201
  219. pulumi_vault/transform/alphabet.py +16 -13
  220. pulumi_vault/transform/get_decode.py +45 -21
  221. pulumi_vault/transform/get_encode.py +45 -21
  222. pulumi_vault/transform/role.py +16 -13
  223. pulumi_vault/transform/template.py +30 -25
  224. pulumi_vault/transform/transformation.py +12 -7
  225. pulumi_vault/transit/get_decrypt.py +26 -25
  226. pulumi_vault/transit/get_encrypt.py +24 -19
  227. pulumi_vault/transit/secret_backend_key.py +25 -97
  228. pulumi_vault/transit/secret_cache_config.py +12 -11
  229. {pulumi_vault-5.21.0a1710160723.dist-info → pulumi_vault-6.5.0.dist-info}/METADATA +8 -7
  230. pulumi_vault-6.5.0.dist-info/RECORD +260 -0
  231. {pulumi_vault-5.21.0a1710160723.dist-info → pulumi_vault-6.5.0.dist-info}/WHEEL +1 -1
  232. pulumi_vault-5.21.0a1710160723.dist-info/RECORD +0 -244
  233. {pulumi_vault-5.21.0a1710160723.dist-info → pulumi_vault-6.5.0.dist-info}/top_level.txt +0 -0
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
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
10
15
  from .. import _utilities
11
16
 
12
17
  __all__ = ['SecretBackendArgs', 'SecretBackend']
@@ -30,6 +35,9 @@ class SecretBackendArgs:
30
35
  role_arn: Optional[pulumi.Input[str]] = None,
31
36
  secret_key: Optional[pulumi.Input[str]] = None,
32
37
  sts_endpoint: Optional[pulumi.Input[str]] = None,
38
+ sts_fallback_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
39
+ sts_fallback_regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
40
+ sts_region: Optional[pulumi.Input[str]] = None,
33
41
  username_template: Optional[pulumi.Input[str]] = None):
34
42
  """
35
43
  The set of arguments for constructing a SecretBackend resource.
@@ -49,14 +57,26 @@ class SecretBackendArgs:
49
57
  for credentials issued by this backend.
50
58
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
51
59
  The value should not contain leading or trailing forward slashes.
52
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
60
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
53
61
  *Available only for Vault Enterprise*.
54
62
  :param pulumi.Input[str] path: The unique path this backend should be mounted at. Must
55
63
  not begin or end with a `/`. Defaults to `aws`.
56
64
  :param pulumi.Input[str] region: The AWS region to make API calls against. Defaults to us-east-1.
57
65
  :param pulumi.Input[str] role_arn: Role ARN to assume for plugin identity token federation. Requires Vault 1.16+.
66
+
67
+ ```
68
+ {{ if (eq .Type "STS") }}
69
+ {{ printf "vault-%s-%s" (unix_time) (random 20) | truncate 32 }}
70
+ {{ else }}
71
+ {{ printf "vault-%s-%s-%s" (printf "%s-%s" (.DisplayName) (.PolicyName) | truncate 42) (unix_time) (random 20) | truncate 64 }}
72
+ {{ end }}
73
+
74
+ ```
58
75
  :param pulumi.Input[str] secret_key: The AWS Secret Access Key to use when generating new credentials.
59
76
  :param pulumi.Input[str] sts_endpoint: Specifies a custom HTTP STS endpoint to use.
77
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] sts_fallback_endpoints: Ordered list of `sts_endpoint`s to try if the defined one fails. Requires Vault 1.19+
78
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] sts_fallback_regions: Ordered list of `sts_region`s matching the fallback endpoints. Should correspond in order with those endpoints. Requires Vault 1.19+
79
+ :param pulumi.Input[str] sts_region: Specifies the region of the STS endpoint. Should be included if `sts_endpoint` is supplied. Requires Vault 1.19+
60
80
  :param pulumi.Input[str] username_template: Template describing how dynamic usernames are generated. The username template is used to generate both IAM usernames (capped at 64 characters) and STS usernames (capped at 32 characters). If no template is provided the field defaults to the template:
61
81
  """
62
82
  if access_key is not None:
@@ -91,6 +111,12 @@ class SecretBackendArgs:
91
111
  pulumi.set(__self__, "secret_key", secret_key)
92
112
  if sts_endpoint is not None:
93
113
  pulumi.set(__self__, "sts_endpoint", sts_endpoint)
114
+ if sts_fallback_endpoints is not None:
115
+ pulumi.set(__self__, "sts_fallback_endpoints", sts_fallback_endpoints)
116
+ if sts_fallback_regions is not None:
117
+ pulumi.set(__self__, "sts_fallback_regions", sts_fallback_regions)
118
+ if sts_region is not None:
119
+ pulumi.set(__self__, "sts_region", sts_region)
94
120
  if username_template is not None:
95
121
  pulumi.set(__self__, "username_template", username_template)
96
122
 
@@ -224,7 +250,7 @@ class SecretBackendArgs:
224
250
  """
225
251
  The namespace to provision the resource in.
226
252
  The value should not contain leading or trailing forward slashes.
227
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
253
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
228
254
  *Available only for Vault Enterprise*.
229
255
  """
230
256
  return pulumi.get(self, "namespace")
@@ -263,6 +289,15 @@ class SecretBackendArgs:
263
289
  def role_arn(self) -> Optional[pulumi.Input[str]]:
264
290
  """
265
291
  Role ARN to assume for plugin identity token federation. Requires Vault 1.16+.
292
+
293
+ ```
294
+ {{ if (eq .Type "STS") }}
295
+ {{ printf "vault-%s-%s" (unix_time) (random 20) | truncate 32 }}
296
+ {{ else }}
297
+ {{ printf "vault-%s-%s-%s" (printf "%s-%s" (.DisplayName) (.PolicyName) | truncate 42) (unix_time) (random 20) | truncate 64 }}
298
+ {{ end }}
299
+
300
+ ```
266
301
  """
267
302
  return pulumi.get(self, "role_arn")
268
303
 
@@ -294,6 +329,42 @@ class SecretBackendArgs:
294
329
  def sts_endpoint(self, value: Optional[pulumi.Input[str]]):
295
330
  pulumi.set(self, "sts_endpoint", value)
296
331
 
332
+ @property
333
+ @pulumi.getter(name="stsFallbackEndpoints")
334
+ def sts_fallback_endpoints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
335
+ """
336
+ Ordered list of `sts_endpoint`s to try if the defined one fails. Requires Vault 1.19+
337
+ """
338
+ return pulumi.get(self, "sts_fallback_endpoints")
339
+
340
+ @sts_fallback_endpoints.setter
341
+ def sts_fallback_endpoints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
342
+ pulumi.set(self, "sts_fallback_endpoints", value)
343
+
344
+ @property
345
+ @pulumi.getter(name="stsFallbackRegions")
346
+ def sts_fallback_regions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
347
+ """
348
+ Ordered list of `sts_region`s matching the fallback endpoints. Should correspond in order with those endpoints. Requires Vault 1.19+
349
+ """
350
+ return pulumi.get(self, "sts_fallback_regions")
351
+
352
+ @sts_fallback_regions.setter
353
+ def sts_fallback_regions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
354
+ pulumi.set(self, "sts_fallback_regions", value)
355
+
356
+ @property
357
+ @pulumi.getter(name="stsRegion")
358
+ def sts_region(self) -> Optional[pulumi.Input[str]]:
359
+ """
360
+ Specifies the region of the STS endpoint. Should be included if `sts_endpoint` is supplied. Requires Vault 1.19+
361
+ """
362
+ return pulumi.get(self, "sts_region")
363
+
364
+ @sts_region.setter
365
+ def sts_region(self, value: Optional[pulumi.Input[str]]):
366
+ pulumi.set(self, "sts_region", value)
367
+
297
368
  @property
298
369
  @pulumi.getter(name="usernameTemplate")
299
370
  def username_template(self) -> Optional[pulumi.Input[str]]:
@@ -326,6 +397,9 @@ class _SecretBackendState:
326
397
  role_arn: Optional[pulumi.Input[str]] = None,
327
398
  secret_key: Optional[pulumi.Input[str]] = None,
328
399
  sts_endpoint: Optional[pulumi.Input[str]] = None,
400
+ sts_fallback_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
401
+ sts_fallback_regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
402
+ sts_region: Optional[pulumi.Input[str]] = None,
329
403
  username_template: Optional[pulumi.Input[str]] = None):
330
404
  """
331
405
  Input properties used for looking up and filtering SecretBackend resources.
@@ -345,14 +419,26 @@ class _SecretBackendState:
345
419
  for credentials issued by this backend.
346
420
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
347
421
  The value should not contain leading or trailing forward slashes.
348
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
422
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
349
423
  *Available only for Vault Enterprise*.
350
424
  :param pulumi.Input[str] path: The unique path this backend should be mounted at. Must
351
425
  not begin or end with a `/`. Defaults to `aws`.
352
426
  :param pulumi.Input[str] region: The AWS region to make API calls against. Defaults to us-east-1.
353
427
  :param pulumi.Input[str] role_arn: Role ARN to assume for plugin identity token federation. Requires Vault 1.16+.
428
+
429
+ ```
430
+ {{ if (eq .Type "STS") }}
431
+ {{ printf "vault-%s-%s" (unix_time) (random 20) | truncate 32 }}
432
+ {{ else }}
433
+ {{ printf "vault-%s-%s-%s" (printf "%s-%s" (.DisplayName) (.PolicyName) | truncate 42) (unix_time) (random 20) | truncate 64 }}
434
+ {{ end }}
435
+
436
+ ```
354
437
  :param pulumi.Input[str] secret_key: The AWS Secret Access Key to use when generating new credentials.
355
438
  :param pulumi.Input[str] sts_endpoint: Specifies a custom HTTP STS endpoint to use.
439
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] sts_fallback_endpoints: Ordered list of `sts_endpoint`s to try if the defined one fails. Requires Vault 1.19+
440
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] sts_fallback_regions: Ordered list of `sts_region`s matching the fallback endpoints. Should correspond in order with those endpoints. Requires Vault 1.19+
441
+ :param pulumi.Input[str] sts_region: Specifies the region of the STS endpoint. Should be included if `sts_endpoint` is supplied. Requires Vault 1.19+
356
442
  :param pulumi.Input[str] username_template: Template describing how dynamic usernames are generated. The username template is used to generate both IAM usernames (capped at 64 characters) and STS usernames (capped at 32 characters). If no template is provided the field defaults to the template:
357
443
  """
358
444
  if access_key is not None:
@@ -387,6 +473,12 @@ class _SecretBackendState:
387
473
  pulumi.set(__self__, "secret_key", secret_key)
388
474
  if sts_endpoint is not None:
389
475
  pulumi.set(__self__, "sts_endpoint", sts_endpoint)
476
+ if sts_fallback_endpoints is not None:
477
+ pulumi.set(__self__, "sts_fallback_endpoints", sts_fallback_endpoints)
478
+ if sts_fallback_regions is not None:
479
+ pulumi.set(__self__, "sts_fallback_regions", sts_fallback_regions)
480
+ if sts_region is not None:
481
+ pulumi.set(__self__, "sts_region", sts_region)
390
482
  if username_template is not None:
391
483
  pulumi.set(__self__, "username_template", username_template)
392
484
 
@@ -520,7 +612,7 @@ class _SecretBackendState:
520
612
  """
521
613
  The namespace to provision the resource in.
522
614
  The value should not contain leading or trailing forward slashes.
523
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
615
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
524
616
  *Available only for Vault Enterprise*.
525
617
  """
526
618
  return pulumi.get(self, "namespace")
@@ -559,6 +651,15 @@ class _SecretBackendState:
559
651
  def role_arn(self) -> Optional[pulumi.Input[str]]:
560
652
  """
561
653
  Role ARN to assume for plugin identity token federation. Requires Vault 1.16+.
654
+
655
+ ```
656
+ {{ if (eq .Type "STS") }}
657
+ {{ printf "vault-%s-%s" (unix_time) (random 20) | truncate 32 }}
658
+ {{ else }}
659
+ {{ printf "vault-%s-%s-%s" (printf "%s-%s" (.DisplayName) (.PolicyName) | truncate 42) (unix_time) (random 20) | truncate 64 }}
660
+ {{ end }}
661
+
662
+ ```
562
663
  """
563
664
  return pulumi.get(self, "role_arn")
564
665
 
@@ -590,6 +691,42 @@ class _SecretBackendState:
590
691
  def sts_endpoint(self, value: Optional[pulumi.Input[str]]):
591
692
  pulumi.set(self, "sts_endpoint", value)
592
693
 
694
+ @property
695
+ @pulumi.getter(name="stsFallbackEndpoints")
696
+ def sts_fallback_endpoints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
697
+ """
698
+ Ordered list of `sts_endpoint`s to try if the defined one fails. Requires Vault 1.19+
699
+ """
700
+ return pulumi.get(self, "sts_fallback_endpoints")
701
+
702
+ @sts_fallback_endpoints.setter
703
+ def sts_fallback_endpoints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
704
+ pulumi.set(self, "sts_fallback_endpoints", value)
705
+
706
+ @property
707
+ @pulumi.getter(name="stsFallbackRegions")
708
+ def sts_fallback_regions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
709
+ """
710
+ Ordered list of `sts_region`s matching the fallback endpoints. Should correspond in order with those endpoints. Requires Vault 1.19+
711
+ """
712
+ return pulumi.get(self, "sts_fallback_regions")
713
+
714
+ @sts_fallback_regions.setter
715
+ def sts_fallback_regions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
716
+ pulumi.set(self, "sts_fallback_regions", value)
717
+
718
+ @property
719
+ @pulumi.getter(name="stsRegion")
720
+ def sts_region(self) -> Optional[pulumi.Input[str]]:
721
+ """
722
+ Specifies the region of the STS endpoint. Should be included if `sts_endpoint` is supplied. Requires Vault 1.19+
723
+ """
724
+ return pulumi.get(self, "sts_region")
725
+
726
+ @sts_region.setter
727
+ def sts_region(self, value: Optional[pulumi.Input[str]]):
728
+ pulumi.set(self, "sts_region", value)
729
+
593
730
  @property
594
731
  @pulumi.getter(name="usernameTemplate")
595
732
  def username_template(self) -> Optional[pulumi.Input[str]]:
@@ -624,6 +761,9 @@ class SecretBackend(pulumi.CustomResource):
624
761
  role_arn: Optional[pulumi.Input[str]] = None,
625
762
  secret_key: Optional[pulumi.Input[str]] = None,
626
763
  sts_endpoint: Optional[pulumi.Input[str]] = None,
764
+ sts_fallback_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
765
+ sts_fallback_regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
766
+ sts_region: Optional[pulumi.Input[str]] = None,
627
767
  username_template: Optional[pulumi.Input[str]] = None,
628
768
  __props__=None):
629
769
  """
@@ -653,14 +793,26 @@ class SecretBackend(pulumi.CustomResource):
653
793
  for credentials issued by this backend.
654
794
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
655
795
  The value should not contain leading or trailing forward slashes.
656
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
796
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
657
797
  *Available only for Vault Enterprise*.
658
798
  :param pulumi.Input[str] path: The unique path this backend should be mounted at. Must
659
799
  not begin or end with a `/`. Defaults to `aws`.
660
800
  :param pulumi.Input[str] region: The AWS region to make API calls against. Defaults to us-east-1.
661
801
  :param pulumi.Input[str] role_arn: Role ARN to assume for plugin identity token federation. Requires Vault 1.16+.
802
+
803
+ ```
804
+ {{ if (eq .Type "STS") }}
805
+ {{ printf "vault-%s-%s" (unix_time) (random 20) | truncate 32 }}
806
+ {{ else }}
807
+ {{ printf "vault-%s-%s-%s" (printf "%s-%s" (.DisplayName) (.PolicyName) | truncate 42) (unix_time) (random 20) | truncate 64 }}
808
+ {{ end }}
809
+
810
+ ```
662
811
  :param pulumi.Input[str] secret_key: The AWS Secret Access Key to use when generating new credentials.
663
812
  :param pulumi.Input[str] sts_endpoint: Specifies a custom HTTP STS endpoint to use.
813
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] sts_fallback_endpoints: Ordered list of `sts_endpoint`s to try if the defined one fails. Requires Vault 1.19+
814
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] sts_fallback_regions: Ordered list of `sts_region`s matching the fallback endpoints. Should correspond in order with those endpoints. Requires Vault 1.19+
815
+ :param pulumi.Input[str] sts_region: Specifies the region of the STS endpoint. Should be included if `sts_endpoint` is supplied. Requires Vault 1.19+
664
816
  :param pulumi.Input[str] username_template: Template describing how dynamic usernames are generated. The username template is used to generate both IAM usernames (capped at 64 characters) and STS usernames (capped at 32 characters). If no template is provided the field defaults to the template:
665
817
  """
666
818
  ...
@@ -709,6 +861,9 @@ class SecretBackend(pulumi.CustomResource):
709
861
  role_arn: Optional[pulumi.Input[str]] = None,
710
862
  secret_key: Optional[pulumi.Input[str]] = None,
711
863
  sts_endpoint: Optional[pulumi.Input[str]] = None,
864
+ sts_fallback_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
865
+ sts_fallback_regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
866
+ sts_region: Optional[pulumi.Input[str]] = None,
712
867
  username_template: Optional[pulumi.Input[str]] = None,
713
868
  __props__=None):
714
869
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -735,6 +890,9 @@ class SecretBackend(pulumi.CustomResource):
735
890
  __props__.__dict__["role_arn"] = role_arn
736
891
  __props__.__dict__["secret_key"] = None if secret_key is None else pulumi.Output.secret(secret_key)
737
892
  __props__.__dict__["sts_endpoint"] = sts_endpoint
893
+ __props__.__dict__["sts_fallback_endpoints"] = sts_fallback_endpoints
894
+ __props__.__dict__["sts_fallback_regions"] = sts_fallback_regions
895
+ __props__.__dict__["sts_region"] = sts_region
738
896
  __props__.__dict__["username_template"] = username_template
739
897
  secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["accessKey", "secretKey"])
740
898
  opts = pulumi.ResourceOptions.merge(opts, secret_opts)
@@ -764,6 +922,9 @@ class SecretBackend(pulumi.CustomResource):
764
922
  role_arn: Optional[pulumi.Input[str]] = None,
765
923
  secret_key: Optional[pulumi.Input[str]] = None,
766
924
  sts_endpoint: Optional[pulumi.Input[str]] = None,
925
+ sts_fallback_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
926
+ sts_fallback_regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
927
+ sts_region: Optional[pulumi.Input[str]] = None,
767
928
  username_template: Optional[pulumi.Input[str]] = None) -> 'SecretBackend':
768
929
  """
769
930
  Get an existing SecretBackend resource's state with the given name, id, and optional extra
@@ -788,14 +949,26 @@ class SecretBackend(pulumi.CustomResource):
788
949
  for credentials issued by this backend.
789
950
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
790
951
  The value should not contain leading or trailing forward slashes.
791
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
952
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
792
953
  *Available only for Vault Enterprise*.
793
954
  :param pulumi.Input[str] path: The unique path this backend should be mounted at. Must
794
955
  not begin or end with a `/`. Defaults to `aws`.
795
956
  :param pulumi.Input[str] region: The AWS region to make API calls against. Defaults to us-east-1.
796
957
  :param pulumi.Input[str] role_arn: Role ARN to assume for plugin identity token federation. Requires Vault 1.16+.
958
+
959
+ ```
960
+ {{ if (eq .Type "STS") }}
961
+ {{ printf "vault-%s-%s" (unix_time) (random 20) | truncate 32 }}
962
+ {{ else }}
963
+ {{ printf "vault-%s-%s-%s" (printf "%s-%s" (.DisplayName) (.PolicyName) | truncate 42) (unix_time) (random 20) | truncate 64 }}
964
+ {{ end }}
965
+
966
+ ```
797
967
  :param pulumi.Input[str] secret_key: The AWS Secret Access Key to use when generating new credentials.
798
968
  :param pulumi.Input[str] sts_endpoint: Specifies a custom HTTP STS endpoint to use.
969
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] sts_fallback_endpoints: Ordered list of `sts_endpoint`s to try if the defined one fails. Requires Vault 1.19+
970
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] sts_fallback_regions: Ordered list of `sts_region`s matching the fallback endpoints. Should correspond in order with those endpoints. Requires Vault 1.19+
971
+ :param pulumi.Input[str] sts_region: Specifies the region of the STS endpoint. Should be included if `sts_endpoint` is supplied. Requires Vault 1.19+
799
972
  :param pulumi.Input[str] username_template: Template describing how dynamic usernames are generated. The username template is used to generate both IAM usernames (capped at 64 characters) and STS usernames (capped at 32 characters). If no template is provided the field defaults to the template:
800
973
  """
801
974
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
@@ -818,6 +991,9 @@ class SecretBackend(pulumi.CustomResource):
818
991
  __props__.__dict__["role_arn"] = role_arn
819
992
  __props__.__dict__["secret_key"] = secret_key
820
993
  __props__.__dict__["sts_endpoint"] = sts_endpoint
994
+ __props__.__dict__["sts_fallback_endpoints"] = sts_fallback_endpoints
995
+ __props__.__dict__["sts_fallback_regions"] = sts_fallback_regions
996
+ __props__.__dict__["sts_region"] = sts_region
821
997
  __props__.__dict__["username_template"] = username_template
822
998
  return SecretBackend(resource_name, opts=opts, __props__=__props__)
823
999
 
@@ -911,7 +1087,7 @@ class SecretBackend(pulumi.CustomResource):
911
1087
  """
912
1088
  The namespace to provision the resource in.
913
1089
  The value should not contain leading or trailing forward slashes.
914
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
1090
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
915
1091
  *Available only for Vault Enterprise*.
916
1092
  """
917
1093
  return pulumi.get(self, "namespace")
@@ -938,6 +1114,15 @@ class SecretBackend(pulumi.CustomResource):
938
1114
  def role_arn(self) -> pulumi.Output[Optional[str]]:
939
1115
  """
940
1116
  Role ARN to assume for plugin identity token federation. Requires Vault 1.16+.
1117
+
1118
+ ```
1119
+ {{ if (eq .Type "STS") }}
1120
+ {{ printf "vault-%s-%s" (unix_time) (random 20) | truncate 32 }}
1121
+ {{ else }}
1122
+ {{ printf "vault-%s-%s-%s" (printf "%s-%s" (.DisplayName) (.PolicyName) | truncate 42) (unix_time) (random 20) | truncate 64 }}
1123
+ {{ end }}
1124
+
1125
+ ```
941
1126
  """
942
1127
  return pulumi.get(self, "role_arn")
943
1128
 
@@ -957,6 +1142,30 @@ class SecretBackend(pulumi.CustomResource):
957
1142
  """
958
1143
  return pulumi.get(self, "sts_endpoint")
959
1144
 
1145
+ @property
1146
+ @pulumi.getter(name="stsFallbackEndpoints")
1147
+ def sts_fallback_endpoints(self) -> pulumi.Output[Optional[Sequence[str]]]:
1148
+ """
1149
+ Ordered list of `sts_endpoint`s to try if the defined one fails. Requires Vault 1.19+
1150
+ """
1151
+ return pulumi.get(self, "sts_fallback_endpoints")
1152
+
1153
+ @property
1154
+ @pulumi.getter(name="stsFallbackRegions")
1155
+ def sts_fallback_regions(self) -> pulumi.Output[Optional[Sequence[str]]]:
1156
+ """
1157
+ Ordered list of `sts_region`s matching the fallback endpoints. Should correspond in order with those endpoints. Requires Vault 1.19+
1158
+ """
1159
+ return pulumi.get(self, "sts_fallback_regions")
1160
+
1161
+ @property
1162
+ @pulumi.getter(name="stsRegion")
1163
+ def sts_region(self) -> pulumi.Output[Optional[str]]:
1164
+ """
1165
+ Specifies the region of the STS endpoint. Should be included if `sts_endpoint` is supplied. Requires Vault 1.19+
1166
+ """
1167
+ return pulumi.get(self, "sts_region")
1168
+
960
1169
  @property
961
1170
  @pulumi.getter(name="usernameTemplate")
962
1171
  def username_template(self) -> pulumi.Output[str]: