pulumi-vault 5.21.0a1709368526__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 +26 -9
  5. pulumi_vault/ad/secret_backend.py +16 -142
  6. pulumi_vault/ad/secret_library.py +16 -9
  7. pulumi_vault/ad/secret_role.py +14 -9
  8. pulumi_vault/alicloud/auth_backend_role.py +76 -190
  9. pulumi_vault/approle/auth_backend_login.py +12 -7
  10. pulumi_vault/approle/auth_backend_role.py +77 -191
  11. pulumi_vault/approle/auth_backend_role_secret_id.py +106 -7
  12. pulumi_vault/approle/get_auth_backend_role_id.py +18 -5
  13. pulumi_vault/audit.py +30 -21
  14. pulumi_vault/audit_request_header.py +11 -2
  15. pulumi_vault/auth_backend.py +66 -14
  16. pulumi_vault/aws/auth_backend_cert.py +18 -9
  17. pulumi_vault/aws/auth_backend_client.py +267 -22
  18. pulumi_vault/aws/auth_backend_config_identity.py +14 -9
  19. pulumi_vault/aws/auth_backend_identity_whitelist.py +20 -15
  20. pulumi_vault/aws/auth_backend_login.py +19 -22
  21. pulumi_vault/aws/auth_backend_role.py +77 -191
  22. pulumi_vault/aws/auth_backend_role_tag.py +12 -7
  23. pulumi_vault/aws/auth_backend_roletag_blacklist.py +18 -13
  24. pulumi_vault/aws/auth_backend_sts_role.py +61 -9
  25. pulumi_vault/aws/get_access_credentials.py +38 -9
  26. pulumi_vault/aws/get_static_access_credentials.py +19 -5
  27. pulumi_vault/aws/secret_backend.py +218 -9
  28. pulumi_vault/aws/secret_backend_role.py +185 -9
  29. pulumi_vault/aws/secret_backend_static_role.py +20 -11
  30. pulumi_vault/azure/_inputs.py +24 -0
  31. pulumi_vault/azure/auth_backend_config.py +153 -15
  32. pulumi_vault/azure/auth_backend_role.py +77 -191
  33. pulumi_vault/azure/backend.py +227 -21
  34. pulumi_vault/azure/backend_role.py +42 -37
  35. pulumi_vault/azure/get_access_credentials.py +41 -7
  36. pulumi_vault/azure/outputs.py +5 -0
  37. pulumi_vault/cert_auth_backend_role.py +87 -267
  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 +28 -19
  44. pulumi_vault/consul/secret_backend_role.py +18 -78
  45. pulumi_vault/database/_inputs.py +2808 -879
  46. pulumi_vault/database/outputs.py +749 -838
  47. pulumi_vault/database/secret_backend_connection.py +119 -112
  48. pulumi_vault/database/secret_backend_role.py +31 -22
  49. pulumi_vault/database/secret_backend_static_role.py +87 -13
  50. pulumi_vault/database/secrets_mount.py +427 -136
  51. pulumi_vault/egp_policy.py +16 -11
  52. pulumi_vault/gcp/_inputs.py +111 -0
  53. pulumi_vault/gcp/auth_backend.py +250 -33
  54. pulumi_vault/gcp/auth_backend_role.py +77 -269
  55. pulumi_vault/gcp/get_auth_backend_role.py +43 -5
  56. pulumi_vault/gcp/outputs.py +5 -0
  57. pulumi_vault/gcp/secret_backend.py +287 -12
  58. pulumi_vault/gcp/secret_impersonated_account.py +76 -15
  59. pulumi_vault/gcp/secret_roleset.py +31 -24
  60. pulumi_vault/gcp/secret_static_account.py +39 -32
  61. pulumi_vault/generic/endpoint.py +24 -17
  62. pulumi_vault/generic/get_secret.py +64 -8
  63. pulumi_vault/generic/secret.py +21 -16
  64. pulumi_vault/get_auth_backend.py +24 -7
  65. pulumi_vault/get_auth_backends.py +51 -9
  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 -11
  69. pulumi_vault/get_policy_document.py +34 -19
  70. pulumi_vault/get_raft_autopilot_state.py +29 -10
  71. pulumi_vault/github/_inputs.py +55 -0
  72. pulumi_vault/github/auth_backend.py +19 -14
  73. pulumi_vault/github/outputs.py +5 -0
  74. pulumi_vault/github/team.py +16 -11
  75. pulumi_vault/github/user.py +16 -11
  76. pulumi_vault/identity/entity.py +20 -13
  77. pulumi_vault/identity/entity_alias.py +20 -13
  78. pulumi_vault/identity/entity_policies.py +28 -11
  79. pulumi_vault/identity/get_entity.py +42 -10
  80. pulumi_vault/identity/get_group.py +47 -9
  81. pulumi_vault/identity/get_oidc_client_creds.py +21 -7
  82. pulumi_vault/identity/get_oidc_openid_config.py +39 -9
  83. pulumi_vault/identity/get_oidc_public_keys.py +29 -10
  84. pulumi_vault/identity/group.py +58 -39
  85. pulumi_vault/identity/group_alias.py +16 -9
  86. pulumi_vault/identity/group_member_entity_ids.py +28 -66
  87. pulumi_vault/identity/group_member_group_ids.py +40 -19
  88. pulumi_vault/identity/group_policies.py +20 -7
  89. pulumi_vault/identity/mfa_duo.py +11 -6
  90. pulumi_vault/identity/mfa_login_enforcement.py +15 -6
  91. pulumi_vault/identity/mfa_okta.py +11 -6
  92. pulumi_vault/identity/mfa_pingid.py +7 -2
  93. pulumi_vault/identity/mfa_totp.py +7 -2
  94. pulumi_vault/identity/oidc.py +12 -7
  95. pulumi_vault/identity/oidc_assignment.py +24 -11
  96. pulumi_vault/identity/oidc_client.py +36 -23
  97. pulumi_vault/identity/oidc_key.py +30 -17
  98. pulumi_vault/identity/oidc_key_allowed_client_id.py +28 -15
  99. pulumi_vault/identity/oidc_provider.py +36 -21
  100. pulumi_vault/identity/oidc_role.py +42 -21
  101. pulumi_vault/identity/oidc_scope.py +20 -13
  102. pulumi_vault/identity/outputs.py +8 -3
  103. pulumi_vault/jwt/_inputs.py +55 -0
  104. pulumi_vault/jwt/auth_backend.py +45 -40
  105. pulumi_vault/jwt/auth_backend_role.py +133 -254
  106. pulumi_vault/jwt/outputs.py +5 -0
  107. pulumi_vault/kmip/secret_backend.py +24 -19
  108. pulumi_vault/kmip/secret_role.py +14 -9
  109. pulumi_vault/kmip/secret_scope.py +14 -9
  110. pulumi_vault/kubernetes/auth_backend_config.py +57 -5
  111. pulumi_vault/kubernetes/auth_backend_role.py +70 -177
  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 -11
  115. pulumi_vault/kubernetes/secret_backend.py +316 -27
  116. pulumi_vault/kubernetes/secret_backend_role.py +137 -46
  117. pulumi_vault/kv/_inputs.py +36 -4
  118. pulumi_vault/kv/get_secret.py +25 -8
  119. pulumi_vault/kv/get_secret_subkeys_v2.py +33 -10
  120. pulumi_vault/kv/get_secret_v2.py +85 -9
  121. pulumi_vault/kv/get_secrets_list.py +24 -11
  122. pulumi_vault/kv/get_secrets_list_v2.py +37 -15
  123. pulumi_vault/kv/outputs.py +8 -3
  124. pulumi_vault/kv/secret.py +23 -16
  125. pulumi_vault/kv/secret_backend_v2.py +20 -11
  126. pulumi_vault/kv/secret_v2.py +59 -50
  127. pulumi_vault/ldap/auth_backend.py +127 -166
  128. pulumi_vault/ldap/auth_backend_group.py +14 -9
  129. pulumi_vault/ldap/auth_backend_user.py +14 -9
  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 +354 -82
  133. pulumi_vault/ldap/secret_backend_dynamic_role.py +18 -11
  134. pulumi_vault/ldap/secret_backend_library_set.py +16 -9
  135. pulumi_vault/ldap/secret_backend_static_role.py +73 -12
  136. pulumi_vault/managed/_inputs.py +289 -132
  137. pulumi_vault/managed/keys.py +29 -57
  138. pulumi_vault/managed/outputs.py +89 -132
  139. pulumi_vault/mfa_duo.py +18 -11
  140. pulumi_vault/mfa_okta.py +18 -11
  141. pulumi_vault/mfa_pingid.py +18 -11
  142. pulumi_vault/mfa_totp.py +24 -17
  143. pulumi_vault/mongodbatlas/secret_backend.py +20 -15
  144. pulumi_vault/mongodbatlas/secret_role.py +47 -38
  145. pulumi_vault/mount.py +391 -51
  146. pulumi_vault/namespace.py +68 -83
  147. pulumi_vault/nomad_secret_backend.py +18 -13
  148. pulumi_vault/nomad_secret_role.py +14 -9
  149. pulumi_vault/okta/_inputs.py +47 -8
  150. pulumi_vault/okta/auth_backend.py +485 -39
  151. pulumi_vault/okta/auth_backend_group.py +14 -9
  152. pulumi_vault/okta/auth_backend_user.py +14 -9
  153. pulumi_vault/okta/outputs.py +13 -8
  154. pulumi_vault/outputs.py +5 -0
  155. pulumi_vault/password_policy.py +20 -13
  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 +67 -9
  166. pulumi_vault/pkisecret/get_backend_issuers.py +21 -8
  167. pulumi_vault/pkisecret/get_backend_key.py +24 -9
  168. pulumi_vault/pkisecret/get_backend_keys.py +21 -8
  169. pulumi_vault/pkisecret/outputs.py +109 -0
  170. pulumi_vault/pkisecret/secret_backend_cert.py +18 -11
  171. pulumi_vault/pkisecret/secret_backend_config_ca.py +16 -11
  172. pulumi_vault/pkisecret/secret_backend_config_issuers.py +14 -9
  173. pulumi_vault/pkisecret/secret_backend_config_urls.py +67 -11
  174. pulumi_vault/pkisecret/secret_backend_crl_config.py +14 -9
  175. pulumi_vault/pkisecret/secret_backend_intermediate_cert_request.py +16 -11
  176. pulumi_vault/pkisecret/secret_backend_intermediate_set_signed.py +22 -17
  177. pulumi_vault/pkisecret/secret_backend_issuer.py +14 -9
  178. pulumi_vault/pkisecret/secret_backend_key.py +14 -9
  179. pulumi_vault/pkisecret/secret_backend_role.py +68 -14
  180. pulumi_vault/pkisecret/secret_backend_root_cert.py +16 -48
  181. pulumi_vault/pkisecret/secret_backend_root_sign_intermediate.py +18 -56
  182. pulumi_vault/pkisecret/secret_backend_sign.py +18 -54
  183. pulumi_vault/plugin.py +595 -0
  184. pulumi_vault/plugin_pinned_version.py +298 -0
  185. pulumi_vault/policy.py +14 -9
  186. pulumi_vault/provider.py +48 -53
  187. pulumi_vault/pulumi-plugin.json +2 -1
  188. pulumi_vault/quota_lease_count.py +60 -6
  189. pulumi_vault/quota_rate_limit.py +56 -2
  190. pulumi_vault/rabbitmq/_inputs.py +61 -0
  191. pulumi_vault/rabbitmq/outputs.py +5 -0
  192. pulumi_vault/rabbitmq/secret_backend.py +18 -13
  193. pulumi_vault/rabbitmq/secret_backend_role.py +54 -47
  194. pulumi_vault/raft_autopilot.py +14 -9
  195. pulumi_vault/raft_snapshot_agent_config.py +129 -224
  196. pulumi_vault/rgp_policy.py +14 -9
  197. pulumi_vault/saml/auth_backend.py +22 -17
  198. pulumi_vault/saml/auth_backend_role.py +92 -197
  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 -71
  203. pulumi_vault/secrets/sync_aws_destination.py +242 -27
  204. pulumi_vault/secrets/sync_azure_destination.py +92 -31
  205. pulumi_vault/secrets/sync_config.py +9 -4
  206. pulumi_vault/secrets/sync_gcp_destination.py +158 -25
  207. pulumi_vault/secrets/sync_gh_destination.py +189 -13
  208. pulumi_vault/secrets/sync_github_apps.py +375 -0
  209. pulumi_vault/secrets/sync_vercel_destination.py +74 -13
  210. pulumi_vault/ssh/_inputs.py +28 -28
  211. pulumi_vault/ssh/outputs.py +11 -28
  212. pulumi_vault/ssh/secret_backend_ca.py +108 -9
  213. pulumi_vault/ssh/secret_backend_role.py +112 -118
  214. pulumi_vault/terraformcloud/secret_backend.py +7 -54
  215. pulumi_vault/terraformcloud/secret_creds.py +14 -20
  216. pulumi_vault/terraformcloud/secret_role.py +16 -74
  217. pulumi_vault/token.py +28 -23
  218. pulumi_vault/tokenauth/auth_backend_role.py +78 -199
  219. pulumi_vault/transform/alphabet.py +16 -9
  220. pulumi_vault/transform/get_decode.py +45 -17
  221. pulumi_vault/transform/get_encode.py +45 -17
  222. pulumi_vault/transform/role.py +16 -9
  223. pulumi_vault/transform/template.py +30 -21
  224. pulumi_vault/transform/transformation.py +12 -7
  225. pulumi_vault/transit/get_decrypt.py +26 -21
  226. pulumi_vault/transit/get_encrypt.py +24 -19
  227. pulumi_vault/transit/secret_backend_key.py +27 -93
  228. pulumi_vault/transit/secret_cache_config.py +12 -7
  229. {pulumi_vault-5.21.0a1709368526.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.0a1709368526.dist-info → pulumi_vault-6.5.0.dist-info}/WHEEL +1 -1
  232. pulumi_vault-5.21.0a1709368526.dist-info/RECORD +0 -244
  233. {pulumi_vault-5.21.0a1709368526.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__ = ['SyncAwsDestinationArgs', 'SyncAwsDestination']
@@ -15,10 +20,13 @@ __all__ = ['SyncAwsDestinationArgs', 'SyncAwsDestination']
15
20
  class SyncAwsDestinationArgs:
16
21
  def __init__(__self__, *,
17
22
  access_key_id: Optional[pulumi.Input[str]] = None,
18
- custom_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
23
+ custom_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
24
+ external_id: Optional[pulumi.Input[str]] = None,
25
+ granularity: Optional[pulumi.Input[str]] = None,
19
26
  name: Optional[pulumi.Input[str]] = None,
20
27
  namespace: Optional[pulumi.Input[str]] = None,
21
28
  region: Optional[pulumi.Input[str]] = None,
29
+ role_arn: Optional[pulumi.Input[str]] = None,
22
30
  secret_access_key: Optional[pulumi.Input[str]] = None,
23
31
  secret_name_template: Optional[pulumi.Input[str]] = None):
24
32
  """
@@ -26,14 +34,26 @@ class SyncAwsDestinationArgs:
26
34
  :param pulumi.Input[str] access_key_id: Access key id to authenticate against the AWS secrets manager.
27
35
  Can be omitted and directly provided to Vault using the `AWS_ACCESS_KEY_ID` environment
28
36
  variable.
29
- :param pulumi.Input[Mapping[str, Any]] custom_tags: Custom tags to set on the secret managed at the destination.
37
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] custom_tags: Custom tags to set on the secret managed at the destination.
38
+ :param pulumi.Input[str] external_id: Optional extra protection that must match the trust policy granting access to the
39
+ AWS IAM role ARN. We recommend using a different random UUID per destination. The value is generated by users.
40
+ The field is mutable with no special condition, but users must be careful that the new value fits with the trust
41
+ relationship condition they set on AWS otherwise sync operations will start to fail due to client-side access
42
+ denied errors. Ignored if the `role_arn` field is empty.
43
+ :param pulumi.Input[str] granularity: Determines what level of information is synced as a distinct resource
44
+ at the destination. Supports `secret-path` and `secret-key`.
30
45
  :param pulumi.Input[str] name: Unique name of the AWS destination.
31
46
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
32
47
  The value should not contain leading or trailing forward slashes.
33
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
48
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
34
49
  :param pulumi.Input[str] region: Region where to manage the secrets manager entries.
35
50
  Can be omitted and directly provided to Vault using the `AWS_REGION` environment
36
51
  variable.
52
+ :param pulumi.Input[str] role_arn: Specifies a role to assume when connecting to AWS. When assuming a role,
53
+ Vault uses temporary STS credentials to authenticate. An initial session with the proper trust relationship must
54
+ exist for Vault to be able to assume this role. The role can be in a different account.
55
+ The value is mutable as long as the new role targets the same AWS account ID. If not, the BE will return an error.
56
+ It is possible to provide both an access key pair and a role to assume.
37
57
  :param pulumi.Input[str] secret_access_key: Secret access key to authenticate against the AWS secrets manager.
38
58
  Can be omitted and directly provided to Vault using the `AWS_SECRET_ACCESS_KEY` environment
39
59
  variable.
@@ -44,12 +64,18 @@ class SyncAwsDestinationArgs:
44
64
  pulumi.set(__self__, "access_key_id", access_key_id)
45
65
  if custom_tags is not None:
46
66
  pulumi.set(__self__, "custom_tags", custom_tags)
67
+ if external_id is not None:
68
+ pulumi.set(__self__, "external_id", external_id)
69
+ if granularity is not None:
70
+ pulumi.set(__self__, "granularity", granularity)
47
71
  if name is not None:
48
72
  pulumi.set(__self__, "name", name)
49
73
  if namespace is not None:
50
74
  pulumi.set(__self__, "namespace", namespace)
51
75
  if region is not None:
52
76
  pulumi.set(__self__, "region", region)
77
+ if role_arn is not None:
78
+ pulumi.set(__self__, "role_arn", role_arn)
53
79
  if secret_access_key is not None:
54
80
  pulumi.set(__self__, "secret_access_key", secret_access_key)
55
81
  if secret_name_template is not None:
@@ -71,16 +97,45 @@ class SyncAwsDestinationArgs:
71
97
 
72
98
  @property
73
99
  @pulumi.getter(name="customTags")
74
- def custom_tags(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
100
+ def custom_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
75
101
  """
76
102
  Custom tags to set on the secret managed at the destination.
77
103
  """
78
104
  return pulumi.get(self, "custom_tags")
79
105
 
80
106
  @custom_tags.setter
81
- def custom_tags(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
107
+ def custom_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
82
108
  pulumi.set(self, "custom_tags", value)
83
109
 
110
+ @property
111
+ @pulumi.getter(name="externalId")
112
+ def external_id(self) -> Optional[pulumi.Input[str]]:
113
+ """
114
+ Optional extra protection that must match the trust policy granting access to the
115
+ AWS IAM role ARN. We recommend using a different random UUID per destination. The value is generated by users.
116
+ The field is mutable with no special condition, but users must be careful that the new value fits with the trust
117
+ relationship condition they set on AWS otherwise sync operations will start to fail due to client-side access
118
+ denied errors. Ignored if the `role_arn` field is empty.
119
+ """
120
+ return pulumi.get(self, "external_id")
121
+
122
+ @external_id.setter
123
+ def external_id(self, value: Optional[pulumi.Input[str]]):
124
+ pulumi.set(self, "external_id", value)
125
+
126
+ @property
127
+ @pulumi.getter
128
+ def granularity(self) -> Optional[pulumi.Input[str]]:
129
+ """
130
+ Determines what level of information is synced as a distinct resource
131
+ at the destination. Supports `secret-path` and `secret-key`.
132
+ """
133
+ return pulumi.get(self, "granularity")
134
+
135
+ @granularity.setter
136
+ def granularity(self, value: Optional[pulumi.Input[str]]):
137
+ pulumi.set(self, "granularity", value)
138
+
84
139
  @property
85
140
  @pulumi.getter
86
141
  def name(self) -> Optional[pulumi.Input[str]]:
@@ -99,7 +154,7 @@ class SyncAwsDestinationArgs:
99
154
  """
100
155
  The namespace to provision the resource in.
101
156
  The value should not contain leading or trailing forward slashes.
102
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
157
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
103
158
  """
104
159
  return pulumi.get(self, "namespace")
105
160
 
@@ -121,6 +176,22 @@ class SyncAwsDestinationArgs:
121
176
  def region(self, value: Optional[pulumi.Input[str]]):
122
177
  pulumi.set(self, "region", value)
123
178
 
179
+ @property
180
+ @pulumi.getter(name="roleArn")
181
+ def role_arn(self) -> Optional[pulumi.Input[str]]:
182
+ """
183
+ Specifies a role to assume when connecting to AWS. When assuming a role,
184
+ Vault uses temporary STS credentials to authenticate. An initial session with the proper trust relationship must
185
+ exist for Vault to be able to assume this role. The role can be in a different account.
186
+ The value is mutable as long as the new role targets the same AWS account ID. If not, the BE will return an error.
187
+ It is possible to provide both an access key pair and a role to assume.
188
+ """
189
+ return pulumi.get(self, "role_arn")
190
+
191
+ @role_arn.setter
192
+ def role_arn(self, value: Optional[pulumi.Input[str]]):
193
+ pulumi.set(self, "role_arn", value)
194
+
124
195
  @property
125
196
  @pulumi.getter(name="secretAccessKey")
126
197
  def secret_access_key(self) -> Optional[pulumi.Input[str]]:
@@ -153,10 +224,13 @@ class SyncAwsDestinationArgs:
153
224
  class _SyncAwsDestinationState:
154
225
  def __init__(__self__, *,
155
226
  access_key_id: Optional[pulumi.Input[str]] = None,
156
- custom_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
227
+ custom_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
228
+ external_id: Optional[pulumi.Input[str]] = None,
229
+ granularity: Optional[pulumi.Input[str]] = None,
157
230
  name: Optional[pulumi.Input[str]] = None,
158
231
  namespace: Optional[pulumi.Input[str]] = None,
159
232
  region: Optional[pulumi.Input[str]] = None,
233
+ role_arn: Optional[pulumi.Input[str]] = None,
160
234
  secret_access_key: Optional[pulumi.Input[str]] = None,
161
235
  secret_name_template: Optional[pulumi.Input[str]] = None,
162
236
  type: Optional[pulumi.Input[str]] = None):
@@ -165,14 +239,26 @@ class _SyncAwsDestinationState:
165
239
  :param pulumi.Input[str] access_key_id: Access key id to authenticate against the AWS secrets manager.
166
240
  Can be omitted and directly provided to Vault using the `AWS_ACCESS_KEY_ID` environment
167
241
  variable.
168
- :param pulumi.Input[Mapping[str, Any]] custom_tags: Custom tags to set on the secret managed at the destination.
242
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] custom_tags: Custom tags to set on the secret managed at the destination.
243
+ :param pulumi.Input[str] external_id: Optional extra protection that must match the trust policy granting access to the
244
+ AWS IAM role ARN. We recommend using a different random UUID per destination. The value is generated by users.
245
+ The field is mutable with no special condition, but users must be careful that the new value fits with the trust
246
+ relationship condition they set on AWS otherwise sync operations will start to fail due to client-side access
247
+ denied errors. Ignored if the `role_arn` field is empty.
248
+ :param pulumi.Input[str] granularity: Determines what level of information is synced as a distinct resource
249
+ at the destination. Supports `secret-path` and `secret-key`.
169
250
  :param pulumi.Input[str] name: Unique name of the AWS destination.
170
251
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
171
252
  The value should not contain leading or trailing forward slashes.
172
- 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).
173
254
  :param pulumi.Input[str] region: Region where to manage the secrets manager entries.
174
255
  Can be omitted and directly provided to Vault using the `AWS_REGION` environment
175
256
  variable.
257
+ :param pulumi.Input[str] role_arn: Specifies a role to assume when connecting to AWS. When assuming a role,
258
+ Vault uses temporary STS credentials to authenticate. An initial session with the proper trust relationship must
259
+ exist for Vault to be able to assume this role. The role can be in a different account.
260
+ The value is mutable as long as the new role targets the same AWS account ID. If not, the BE will return an error.
261
+ It is possible to provide both an access key pair and a role to assume.
176
262
  :param pulumi.Input[str] secret_access_key: Secret access key to authenticate against the AWS secrets manager.
177
263
  Can be omitted and directly provided to Vault using the `AWS_SECRET_ACCESS_KEY` environment
178
264
  variable.
@@ -184,12 +270,18 @@ class _SyncAwsDestinationState:
184
270
  pulumi.set(__self__, "access_key_id", access_key_id)
185
271
  if custom_tags is not None:
186
272
  pulumi.set(__self__, "custom_tags", custom_tags)
273
+ if external_id is not None:
274
+ pulumi.set(__self__, "external_id", external_id)
275
+ if granularity is not None:
276
+ pulumi.set(__self__, "granularity", granularity)
187
277
  if name is not None:
188
278
  pulumi.set(__self__, "name", name)
189
279
  if namespace is not None:
190
280
  pulumi.set(__self__, "namespace", namespace)
191
281
  if region is not None:
192
282
  pulumi.set(__self__, "region", region)
283
+ if role_arn is not None:
284
+ pulumi.set(__self__, "role_arn", role_arn)
193
285
  if secret_access_key is not None:
194
286
  pulumi.set(__self__, "secret_access_key", secret_access_key)
195
287
  if secret_name_template is not None:
@@ -213,16 +305,45 @@ class _SyncAwsDestinationState:
213
305
 
214
306
  @property
215
307
  @pulumi.getter(name="customTags")
216
- def custom_tags(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
308
+ def custom_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
217
309
  """
218
310
  Custom tags to set on the secret managed at the destination.
219
311
  """
220
312
  return pulumi.get(self, "custom_tags")
221
313
 
222
314
  @custom_tags.setter
223
- def custom_tags(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
315
+ def custom_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
224
316
  pulumi.set(self, "custom_tags", value)
225
317
 
318
+ @property
319
+ @pulumi.getter(name="externalId")
320
+ def external_id(self) -> Optional[pulumi.Input[str]]:
321
+ """
322
+ Optional extra protection that must match the trust policy granting access to the
323
+ AWS IAM role ARN. We recommend using a different random UUID per destination. The value is generated by users.
324
+ The field is mutable with no special condition, but users must be careful that the new value fits with the trust
325
+ relationship condition they set on AWS otherwise sync operations will start to fail due to client-side access
326
+ denied errors. Ignored if the `role_arn` field is empty.
327
+ """
328
+ return pulumi.get(self, "external_id")
329
+
330
+ @external_id.setter
331
+ def external_id(self, value: Optional[pulumi.Input[str]]):
332
+ pulumi.set(self, "external_id", value)
333
+
334
+ @property
335
+ @pulumi.getter
336
+ def granularity(self) -> Optional[pulumi.Input[str]]:
337
+ """
338
+ Determines what level of information is synced as a distinct resource
339
+ at the destination. Supports `secret-path` and `secret-key`.
340
+ """
341
+ return pulumi.get(self, "granularity")
342
+
343
+ @granularity.setter
344
+ def granularity(self, value: Optional[pulumi.Input[str]]):
345
+ pulumi.set(self, "granularity", value)
346
+
226
347
  @property
227
348
  @pulumi.getter
228
349
  def name(self) -> Optional[pulumi.Input[str]]:
@@ -241,7 +362,7 @@ class _SyncAwsDestinationState:
241
362
  """
242
363
  The namespace to provision the resource in.
243
364
  The value should not contain leading or trailing forward slashes.
244
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
365
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
245
366
  """
246
367
  return pulumi.get(self, "namespace")
247
368
 
@@ -263,6 +384,22 @@ class _SyncAwsDestinationState:
263
384
  def region(self, value: Optional[pulumi.Input[str]]):
264
385
  pulumi.set(self, "region", value)
265
386
 
387
+ @property
388
+ @pulumi.getter(name="roleArn")
389
+ def role_arn(self) -> Optional[pulumi.Input[str]]:
390
+ """
391
+ Specifies a role to assume when connecting to AWS. When assuming a role,
392
+ Vault uses temporary STS credentials to authenticate. An initial session with the proper trust relationship must
393
+ exist for Vault to be able to assume this role. The role can be in a different account.
394
+ The value is mutable as long as the new role targets the same AWS account ID. If not, the BE will return an error.
395
+ It is possible to provide both an access key pair and a role to assume.
396
+ """
397
+ return pulumi.get(self, "role_arn")
398
+
399
+ @role_arn.setter
400
+ def role_arn(self, value: Optional[pulumi.Input[str]]):
401
+ pulumi.set(self, "role_arn", value)
402
+
266
403
  @property
267
404
  @pulumi.getter(name="secretAccessKey")
268
405
  def secret_access_key(self) -> Optional[pulumi.Input[str]]:
@@ -309,10 +446,13 @@ class SyncAwsDestination(pulumi.CustomResource):
309
446
  resource_name: str,
310
447
  opts: Optional[pulumi.ResourceOptions] = None,
311
448
  access_key_id: Optional[pulumi.Input[str]] = None,
312
- custom_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
449
+ custom_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
450
+ external_id: Optional[pulumi.Input[str]] = None,
451
+ granularity: Optional[pulumi.Input[str]] = None,
313
452
  name: Optional[pulumi.Input[str]] = None,
314
453
  namespace: Optional[pulumi.Input[str]] = None,
315
454
  region: Optional[pulumi.Input[str]] = None,
455
+ role_arn: Optional[pulumi.Input[str]] = None,
316
456
  secret_access_key: Optional[pulumi.Input[str]] = None,
317
457
  secret_name_template: Optional[pulumi.Input[str]] = None,
318
458
  __props__=None):
@@ -324,9 +464,12 @@ class SyncAwsDestination(pulumi.CustomResource):
324
464
  import pulumi_vault as vault
325
465
 
326
466
  aws = vault.secrets.SyncAwsDestination("aws",
327
- access_key_id=var["access_key_id"],
328
- secret_access_key=var["secret_access_key"],
467
+ name="aws-dest",
468
+ access_key_id=access_key_id,
469
+ secret_access_key=secret_access_key,
329
470
  region="us-east-1",
471
+ role_arn="role-arn",
472
+ external_id="external-id",
330
473
  secret_name_template="vault_{{ .MountAccessor | lowercase }}_{{ .SecretPath | lowercase }}",
331
474
  custom_tags={
332
475
  "foo": "bar",
@@ -338,7 +481,7 @@ class SyncAwsDestination(pulumi.CustomResource):
338
481
  AWS Secrets sync destinations can be imported using the `name`, e.g.
339
482
 
340
483
  ```sh
341
- $ pulumi import vault:secrets/syncAwsDestination:SyncAwsDestination aws aws-dest
484
+ $ pulumi import vault:secrets/syncAwsDestination:SyncAwsDestination aws aws-dest
342
485
  ```
343
486
 
344
487
  :param str resource_name: The name of the resource.
@@ -346,14 +489,26 @@ class SyncAwsDestination(pulumi.CustomResource):
346
489
  :param pulumi.Input[str] access_key_id: Access key id to authenticate against the AWS secrets manager.
347
490
  Can be omitted and directly provided to Vault using the `AWS_ACCESS_KEY_ID` environment
348
491
  variable.
349
- :param pulumi.Input[Mapping[str, Any]] custom_tags: Custom tags to set on the secret managed at the destination.
492
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] custom_tags: Custom tags to set on the secret managed at the destination.
493
+ :param pulumi.Input[str] external_id: Optional extra protection that must match the trust policy granting access to the
494
+ AWS IAM role ARN. We recommend using a different random UUID per destination. The value is generated by users.
495
+ The field is mutable with no special condition, but users must be careful that the new value fits with the trust
496
+ relationship condition they set on AWS otherwise sync operations will start to fail due to client-side access
497
+ denied errors. Ignored if the `role_arn` field is empty.
498
+ :param pulumi.Input[str] granularity: Determines what level of information is synced as a distinct resource
499
+ at the destination. Supports `secret-path` and `secret-key`.
350
500
  :param pulumi.Input[str] name: Unique name of the AWS destination.
351
501
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
352
502
  The value should not contain leading or trailing forward slashes.
353
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
503
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
354
504
  :param pulumi.Input[str] region: Region where to manage the secrets manager entries.
355
505
  Can be omitted and directly provided to Vault using the `AWS_REGION` environment
356
506
  variable.
507
+ :param pulumi.Input[str] role_arn: Specifies a role to assume when connecting to AWS. When assuming a role,
508
+ Vault uses temporary STS credentials to authenticate. An initial session with the proper trust relationship must
509
+ exist for Vault to be able to assume this role. The role can be in a different account.
510
+ The value is mutable as long as the new role targets the same AWS account ID. If not, the BE will return an error.
511
+ It is possible to provide both an access key pair and a role to assume.
357
512
  :param pulumi.Input[str] secret_access_key: Secret access key to authenticate against the AWS secrets manager.
358
513
  Can be omitted and directly provided to Vault using the `AWS_SECRET_ACCESS_KEY` environment
359
514
  variable.
@@ -374,9 +529,12 @@ class SyncAwsDestination(pulumi.CustomResource):
374
529
  import pulumi_vault as vault
375
530
 
376
531
  aws = vault.secrets.SyncAwsDestination("aws",
377
- access_key_id=var["access_key_id"],
378
- secret_access_key=var["secret_access_key"],
532
+ name="aws-dest",
533
+ access_key_id=access_key_id,
534
+ secret_access_key=secret_access_key,
379
535
  region="us-east-1",
536
+ role_arn="role-arn",
537
+ external_id="external-id",
380
538
  secret_name_template="vault_{{ .MountAccessor | lowercase }}_{{ .SecretPath | lowercase }}",
381
539
  custom_tags={
382
540
  "foo": "bar",
@@ -388,7 +546,7 @@ class SyncAwsDestination(pulumi.CustomResource):
388
546
  AWS Secrets sync destinations can be imported using the `name`, e.g.
389
547
 
390
548
  ```sh
391
- $ pulumi import vault:secrets/syncAwsDestination:SyncAwsDestination aws aws-dest
549
+ $ pulumi import vault:secrets/syncAwsDestination:SyncAwsDestination aws aws-dest
392
550
  ```
393
551
 
394
552
  :param str resource_name: The name of the resource.
@@ -407,10 +565,13 @@ class SyncAwsDestination(pulumi.CustomResource):
407
565
  resource_name: str,
408
566
  opts: Optional[pulumi.ResourceOptions] = None,
409
567
  access_key_id: Optional[pulumi.Input[str]] = None,
410
- custom_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
568
+ custom_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
569
+ external_id: Optional[pulumi.Input[str]] = None,
570
+ granularity: Optional[pulumi.Input[str]] = None,
411
571
  name: Optional[pulumi.Input[str]] = None,
412
572
  namespace: Optional[pulumi.Input[str]] = None,
413
573
  region: Optional[pulumi.Input[str]] = None,
574
+ role_arn: Optional[pulumi.Input[str]] = None,
414
575
  secret_access_key: Optional[pulumi.Input[str]] = None,
415
576
  secret_name_template: Optional[pulumi.Input[str]] = None,
416
577
  __props__=None):
@@ -424,9 +585,12 @@ class SyncAwsDestination(pulumi.CustomResource):
424
585
 
425
586
  __props__.__dict__["access_key_id"] = access_key_id
426
587
  __props__.__dict__["custom_tags"] = custom_tags
588
+ __props__.__dict__["external_id"] = external_id
589
+ __props__.__dict__["granularity"] = granularity
427
590
  __props__.__dict__["name"] = name
428
591
  __props__.__dict__["namespace"] = namespace
429
592
  __props__.__dict__["region"] = region
593
+ __props__.__dict__["role_arn"] = role_arn
430
594
  __props__.__dict__["secret_access_key"] = None if secret_access_key is None else pulumi.Output.secret(secret_access_key)
431
595
  __props__.__dict__["secret_name_template"] = secret_name_template
432
596
  __props__.__dict__["type"] = None
@@ -443,10 +607,13 @@ class SyncAwsDestination(pulumi.CustomResource):
443
607
  id: pulumi.Input[str],
444
608
  opts: Optional[pulumi.ResourceOptions] = None,
445
609
  access_key_id: Optional[pulumi.Input[str]] = None,
446
- custom_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
610
+ custom_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
611
+ external_id: Optional[pulumi.Input[str]] = None,
612
+ granularity: Optional[pulumi.Input[str]] = None,
447
613
  name: Optional[pulumi.Input[str]] = None,
448
614
  namespace: Optional[pulumi.Input[str]] = None,
449
615
  region: Optional[pulumi.Input[str]] = None,
616
+ role_arn: Optional[pulumi.Input[str]] = None,
450
617
  secret_access_key: Optional[pulumi.Input[str]] = None,
451
618
  secret_name_template: Optional[pulumi.Input[str]] = None,
452
619
  type: Optional[pulumi.Input[str]] = None) -> 'SyncAwsDestination':
@@ -460,14 +627,26 @@ class SyncAwsDestination(pulumi.CustomResource):
460
627
  :param pulumi.Input[str] access_key_id: Access key id to authenticate against the AWS secrets manager.
461
628
  Can be omitted and directly provided to Vault using the `AWS_ACCESS_KEY_ID` environment
462
629
  variable.
463
- :param pulumi.Input[Mapping[str, Any]] custom_tags: Custom tags to set on the secret managed at the destination.
630
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] custom_tags: Custom tags to set on the secret managed at the destination.
631
+ :param pulumi.Input[str] external_id: Optional extra protection that must match the trust policy granting access to the
632
+ AWS IAM role ARN. We recommend using a different random UUID per destination. The value is generated by users.
633
+ The field is mutable with no special condition, but users must be careful that the new value fits with the trust
634
+ relationship condition they set on AWS otherwise sync operations will start to fail due to client-side access
635
+ denied errors. Ignored if the `role_arn` field is empty.
636
+ :param pulumi.Input[str] granularity: Determines what level of information is synced as a distinct resource
637
+ at the destination. Supports `secret-path` and `secret-key`.
464
638
  :param pulumi.Input[str] name: Unique name of the AWS destination.
465
639
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
466
640
  The value should not contain leading or trailing forward slashes.
467
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
641
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
468
642
  :param pulumi.Input[str] region: Region where to manage the secrets manager entries.
469
643
  Can be omitted and directly provided to Vault using the `AWS_REGION` environment
470
644
  variable.
645
+ :param pulumi.Input[str] role_arn: Specifies a role to assume when connecting to AWS. When assuming a role,
646
+ Vault uses temporary STS credentials to authenticate. An initial session with the proper trust relationship must
647
+ exist for Vault to be able to assume this role. The role can be in a different account.
648
+ The value is mutable as long as the new role targets the same AWS account ID. If not, the BE will return an error.
649
+ It is possible to provide both an access key pair and a role to assume.
471
650
  :param pulumi.Input[str] secret_access_key: Secret access key to authenticate against the AWS secrets manager.
472
651
  Can be omitted and directly provided to Vault using the `AWS_SECRET_ACCESS_KEY` environment
473
652
  variable.
@@ -481,9 +660,12 @@ class SyncAwsDestination(pulumi.CustomResource):
481
660
 
482
661
  __props__.__dict__["access_key_id"] = access_key_id
483
662
  __props__.__dict__["custom_tags"] = custom_tags
663
+ __props__.__dict__["external_id"] = external_id
664
+ __props__.__dict__["granularity"] = granularity
484
665
  __props__.__dict__["name"] = name
485
666
  __props__.__dict__["namespace"] = namespace
486
667
  __props__.__dict__["region"] = region
668
+ __props__.__dict__["role_arn"] = role_arn
487
669
  __props__.__dict__["secret_access_key"] = secret_access_key
488
670
  __props__.__dict__["secret_name_template"] = secret_name_template
489
671
  __props__.__dict__["type"] = type
@@ -501,12 +683,33 @@ class SyncAwsDestination(pulumi.CustomResource):
501
683
 
502
684
  @property
503
685
  @pulumi.getter(name="customTags")
504
- def custom_tags(self) -> pulumi.Output[Optional[Mapping[str, Any]]]:
686
+ def custom_tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
505
687
  """
506
688
  Custom tags to set on the secret managed at the destination.
507
689
  """
508
690
  return pulumi.get(self, "custom_tags")
509
691
 
692
+ @property
693
+ @pulumi.getter(name="externalId")
694
+ def external_id(self) -> pulumi.Output[Optional[str]]:
695
+ """
696
+ Optional extra protection that must match the trust policy granting access to the
697
+ AWS IAM role ARN. We recommend using a different random UUID per destination. The value is generated by users.
698
+ The field is mutable with no special condition, but users must be careful that the new value fits with the trust
699
+ relationship condition they set on AWS otherwise sync operations will start to fail due to client-side access
700
+ denied errors. Ignored if the `role_arn` field is empty.
701
+ """
702
+ return pulumi.get(self, "external_id")
703
+
704
+ @property
705
+ @pulumi.getter
706
+ def granularity(self) -> pulumi.Output[Optional[str]]:
707
+ """
708
+ Determines what level of information is synced as a distinct resource
709
+ at the destination. Supports `secret-path` and `secret-key`.
710
+ """
711
+ return pulumi.get(self, "granularity")
712
+
510
713
  @property
511
714
  @pulumi.getter
512
715
  def name(self) -> pulumi.Output[str]:
@@ -521,7 +724,7 @@ class SyncAwsDestination(pulumi.CustomResource):
521
724
  """
522
725
  The namespace to provision the resource in.
523
726
  The value should not contain leading or trailing forward slashes.
524
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
727
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
525
728
  """
526
729
  return pulumi.get(self, "namespace")
527
730
 
@@ -535,6 +738,18 @@ class SyncAwsDestination(pulumi.CustomResource):
535
738
  """
536
739
  return pulumi.get(self, "region")
537
740
 
741
+ @property
742
+ @pulumi.getter(name="roleArn")
743
+ def role_arn(self) -> pulumi.Output[Optional[str]]:
744
+ """
745
+ Specifies a role to assume when connecting to AWS. When assuming a role,
746
+ Vault uses temporary STS credentials to authenticate. An initial session with the proper trust relationship must
747
+ exist for Vault to be able to assume this role. The role can be in a different account.
748
+ The value is mutable as long as the new role targets the same AWS account ID. If not, the BE will return an error.
749
+ It is possible to provide both an access key pair and a role to assume.
750
+ """
751
+ return pulumi.get(self, "role_arn")
752
+
538
753
  @property
539
754
  @pulumi.getter(name="secretAccessKey")
540
755
  def secret_access_key(self) -> pulumi.Output[Optional[str]]: