pulumi-vault 5.21.0a1711033014__py3-none-any.whl → 6.0.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 (163) hide show
  1. pulumi_vault/__init__.py +24 -0
  2. pulumi_vault/ad/get_access_credentials.py +2 -2
  3. pulumi_vault/ad/secret_backend.py +7 -138
  4. pulumi_vault/ad/secret_library.py +7 -7
  5. pulumi_vault/ad/secret_role.py +7 -7
  6. pulumi_vault/approle/auth_backend_login.py +7 -7
  7. pulumi_vault/approle/auth_backend_role.py +7 -7
  8. pulumi_vault/approle/auth_backend_role_secret_id.py +7 -7
  9. pulumi_vault/audit.py +7 -7
  10. pulumi_vault/auth_backend.py +7 -7
  11. pulumi_vault/aws/auth_backend_cert.py +7 -7
  12. pulumi_vault/aws/auth_backend_client.py +7 -7
  13. pulumi_vault/aws/auth_backend_config_identity.py +7 -7
  14. pulumi_vault/aws/auth_backend_identity_whitelist.py +7 -7
  15. pulumi_vault/aws/auth_backend_login.py +7 -7
  16. pulumi_vault/aws/auth_backend_role.py +7 -7
  17. pulumi_vault/aws/auth_backend_role_tag.py +7 -7
  18. pulumi_vault/aws/auth_backend_roletag_blacklist.py +7 -7
  19. pulumi_vault/aws/auth_backend_sts_role.py +7 -7
  20. pulumi_vault/aws/get_access_credentials.py +2 -2
  21. pulumi_vault/aws/secret_backend.py +7 -7
  22. pulumi_vault/aws/secret_backend_role.py +7 -7
  23. pulumi_vault/aws/secret_backend_static_role.py +7 -7
  24. pulumi_vault/azure/auth_backend_config.py +7 -7
  25. pulumi_vault/azure/auth_backend_role.py +7 -7
  26. pulumi_vault/azure/backend.py +7 -7
  27. pulumi_vault/azure/backend_role.py +7 -7
  28. pulumi_vault/azure/get_access_credentials.py +2 -2
  29. pulumi_vault/cert_auth_backend_role.py +7 -63
  30. pulumi_vault/config/_inputs.py +52 -0
  31. pulumi_vault/config/outputs.py +30 -0
  32. pulumi_vault/config/ui_custom_message.py +524 -0
  33. pulumi_vault/consul/secret_backend.py +7 -7
  34. pulumi_vault/consul/secret_backend_role.py +7 -76
  35. pulumi_vault/egp_policy.py +7 -7
  36. pulumi_vault/gcp/auth_backend.py +7 -7
  37. pulumi_vault/gcp/auth_backend_role.py +7 -7
  38. pulumi_vault/gcp/secret_backend.py +7 -7
  39. pulumi_vault/gcp/secret_roleset.py +7 -7
  40. pulumi_vault/gcp/secret_static_account.py +7 -7
  41. pulumi_vault/generic/endpoint.py +7 -7
  42. pulumi_vault/generic/get_secret.py +2 -2
  43. pulumi_vault/generic/secret.py +7 -7
  44. pulumi_vault/get_auth_backend.py +2 -2
  45. pulumi_vault/get_auth_backends.py +20 -2
  46. pulumi_vault/get_nomad_access_token.py +2 -2
  47. pulumi_vault/get_raft_autopilot_state.py +2 -2
  48. pulumi_vault/github/auth_backend.py +7 -7
  49. pulumi_vault/github/team.py +7 -7
  50. pulumi_vault/github/user.py +7 -7
  51. pulumi_vault/identity/entity.py +7 -7
  52. pulumi_vault/identity/entity_alias.py +7 -7
  53. pulumi_vault/identity/entity_policies.py +7 -7
  54. pulumi_vault/identity/get_entity.py +2 -2
  55. pulumi_vault/identity/get_group.py +2 -2
  56. pulumi_vault/identity/get_oidc_client_creds.py +2 -2
  57. pulumi_vault/identity/get_oidc_openid_config.py +2 -2
  58. pulumi_vault/identity/get_oidc_public_keys.py +2 -2
  59. pulumi_vault/identity/group.py +7 -7
  60. pulumi_vault/identity/group_alias.py +7 -7
  61. pulumi_vault/identity/group_member_entity_ids.py +7 -58
  62. pulumi_vault/identity/group_member_group_ids.py +7 -7
  63. pulumi_vault/identity/group_policies.py +7 -7
  64. pulumi_vault/identity/oidc.py +7 -7
  65. pulumi_vault/identity/oidc_assignment.py +7 -7
  66. pulumi_vault/identity/oidc_client.py +19 -15
  67. pulumi_vault/identity/oidc_key.py +7 -7
  68. pulumi_vault/identity/oidc_key_allowed_client_id.py +7 -7
  69. pulumi_vault/identity/oidc_provider.py +7 -7
  70. pulumi_vault/identity/oidc_role.py +7 -7
  71. pulumi_vault/identity/oidc_scope.py +7 -7
  72. pulumi_vault/jwt/auth_backend.py +7 -7
  73. pulumi_vault/jwt/auth_backend_role.py +7 -7
  74. pulumi_vault/kmip/secret_backend.py +7 -7
  75. pulumi_vault/kmip/secret_role.py +7 -7
  76. pulumi_vault/kmip/secret_scope.py +7 -7
  77. pulumi_vault/kubernetes/auth_backend_role.py +7 -7
  78. pulumi_vault/kubernetes/get_service_account_token.py +2 -2
  79. pulumi_vault/kubernetes/secret_backend.py +7 -7
  80. pulumi_vault/kubernetes/secret_backend_role.py +7 -7
  81. pulumi_vault/kv/get_secret.py +2 -2
  82. pulumi_vault/kv/get_secret_subkeys_v2.py +2 -2
  83. pulumi_vault/kv/get_secret_v2.py +5 -2
  84. pulumi_vault/kv/get_secrets_list.py +2 -2
  85. pulumi_vault/kv/get_secrets_list_v2.py +2 -2
  86. pulumi_vault/kv/secret.py +7 -7
  87. pulumi_vault/kv/secret_backend_v2.py +7 -7
  88. pulumi_vault/kv/secret_v2.py +7 -7
  89. pulumi_vault/ldap/auth_backend.py +7 -7
  90. pulumi_vault/ldap/auth_backend_group.py +7 -7
  91. pulumi_vault/ldap/auth_backend_user.py +7 -7
  92. pulumi_vault/ldap/secret_backend.py +61 -76
  93. pulumi_vault/ldap/secret_backend_dynamic_role.py +7 -7
  94. pulumi_vault/ldap/secret_backend_library_set.py +7 -7
  95. pulumi_vault/ldap/secret_backend_static_role.py +62 -8
  96. pulumi_vault/mfa_duo.py +7 -7
  97. pulumi_vault/mfa_okta.py +7 -7
  98. pulumi_vault/mfa_pingid.py +7 -7
  99. pulumi_vault/mfa_totp.py +7 -7
  100. pulumi_vault/mongodbatlas/secret_backend.py +7 -7
  101. pulumi_vault/mongodbatlas/secret_role.py +7 -7
  102. pulumi_vault/mount.py +11 -7
  103. pulumi_vault/namespace.py +7 -7
  104. pulumi_vault/nomad_secret_backend.py +7 -7
  105. pulumi_vault/nomad_secret_role.py +7 -7
  106. pulumi_vault/okta/auth_backend.py +7 -7
  107. pulumi_vault/okta/auth_backend_group.py +7 -7
  108. pulumi_vault/okta/auth_backend_user.py +7 -7
  109. pulumi_vault/password_policy.py +7 -7
  110. pulumi_vault/pkisecret/__init__.py +1 -0
  111. pulumi_vault/pkisecret/backend_config_cluster.py +368 -0
  112. pulumi_vault/pkisecret/get_backend_issuer.py +2 -2
  113. pulumi_vault/pkisecret/get_backend_issuers.py +2 -2
  114. pulumi_vault/pkisecret/get_backend_key.py +2 -2
  115. pulumi_vault/pkisecret/get_backend_keys.py +2 -2
  116. pulumi_vault/pkisecret/secret_backend_cert.py +7 -7
  117. pulumi_vault/pkisecret/secret_backend_config_ca.py +7 -7
  118. pulumi_vault/pkisecret/secret_backend_config_issuers.py +7 -7
  119. pulumi_vault/pkisecret/secret_backend_config_urls.py +54 -7
  120. pulumi_vault/pkisecret/secret_backend_crl_config.py +7 -7
  121. pulumi_vault/pkisecret/secret_backend_intermediate_cert_request.py +7 -7
  122. pulumi_vault/pkisecret/secret_backend_intermediate_set_signed.py +7 -7
  123. pulumi_vault/pkisecret/secret_backend_issuer.py +7 -7
  124. pulumi_vault/pkisecret/secret_backend_key.py +7 -7
  125. pulumi_vault/pkisecret/secret_backend_role.py +7 -7
  126. pulumi_vault/pkisecret/secret_backend_root_cert.py +7 -44
  127. pulumi_vault/pkisecret/secret_backend_root_sign_intermediate.py +7 -52
  128. pulumi_vault/pkisecret/secret_backend_sign.py +7 -52
  129. pulumi_vault/policy.py +7 -7
  130. pulumi_vault/rabbitmq/secret_backend.py +7 -7
  131. pulumi_vault/rabbitmq/secret_backend_role.py +7 -7
  132. pulumi_vault/raft_autopilot.py +7 -7
  133. pulumi_vault/raft_snapshot_agent_config.py +7 -7
  134. pulumi_vault/rgp_policy.py +7 -7
  135. pulumi_vault/saml/auth_backend.py +7 -7
  136. pulumi_vault/saml/auth_backend_role.py +7 -7
  137. pulumi_vault/secrets/__init__.py +1 -0
  138. pulumi_vault/secrets/sync_association.py +7 -7
  139. pulumi_vault/secrets/sync_aws_destination.py +161 -7
  140. pulumi_vault/secrets/sync_azure_destination.py +7 -7
  141. pulumi_vault/secrets/sync_gcp_destination.py +77 -7
  142. pulumi_vault/secrets/sync_gh_destination.py +122 -7
  143. pulumi_vault/secrets/sync_github_apps.py +370 -0
  144. pulumi_vault/secrets/sync_vercel_destination.py +7 -7
  145. pulumi_vault/ssh/secret_backend_ca.py +7 -7
  146. pulumi_vault/ssh/secret_backend_role.py +7 -83
  147. pulumi_vault/terraformcloud/secret_creds.py +7 -7
  148. pulumi_vault/terraformcloud/secret_role.py +7 -7
  149. pulumi_vault/token.py +7 -7
  150. pulumi_vault/tokenauth/auth_backend_role.py +7 -7
  151. pulumi_vault/transform/alphabet.py +7 -7
  152. pulumi_vault/transform/get_decode.py +2 -2
  153. pulumi_vault/transform/get_encode.py +2 -2
  154. pulumi_vault/transform/role.py +7 -7
  155. pulumi_vault/transform/template.py +7 -7
  156. pulumi_vault/transform/transformation.py +7 -7
  157. pulumi_vault/transit/secret_backend_key.py +7 -84
  158. pulumi_vault/transit/secret_cache_config.py +7 -7
  159. {pulumi_vault-5.21.0a1711033014.dist-info → pulumi_vault-6.0.0.dist-info}/METADATA +2 -2
  160. pulumi_vault-6.0.0.dist-info/RECORD +248 -0
  161. pulumi_vault-5.21.0a1711033014.dist-info/RECORD +0 -244
  162. {pulumi_vault-5.21.0a1711033014.dist-info → pulumi_vault-6.0.0.dist-info}/WHEEL +0 -0
  163. {pulumi_vault-5.21.0a1711033014.dist-info → pulumi_vault-6.0.0.dist-info}/top_level.txt +0 -0
@@ -16,9 +16,11 @@ class SyncAwsDestinationArgs:
16
16
  def __init__(__self__, *,
17
17
  access_key_id: Optional[pulumi.Input[str]] = None,
18
18
  custom_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
19
+ external_id: Optional[pulumi.Input[str]] = None,
19
20
  name: Optional[pulumi.Input[str]] = None,
20
21
  namespace: Optional[pulumi.Input[str]] = None,
21
22
  region: Optional[pulumi.Input[str]] = None,
23
+ role_arn: Optional[pulumi.Input[str]] = None,
22
24
  secret_access_key: Optional[pulumi.Input[str]] = None,
23
25
  secret_name_template: Optional[pulumi.Input[str]] = None):
24
26
  """
@@ -27,13 +29,23 @@ class SyncAwsDestinationArgs:
27
29
  Can be omitted and directly provided to Vault using the `AWS_ACCESS_KEY_ID` environment
28
30
  variable.
29
31
  :param pulumi.Input[Mapping[str, Any]] custom_tags: Custom tags to set on the secret managed at the destination.
32
+ :param pulumi.Input[str] external_id: Optional extra protection that must match the trust policy granting access to the
33
+ AWS IAM role ARN. We recommend using a different random UUID per destination. The value is generated by users.
34
+ The field is mutable with no special condition, but users must be careful that the new value fits with the trust
35
+ relationship condition they set on AWS otherwise sync operations will start to fail due to client-side access
36
+ denied errors. Ignored if the `role_arn` field is empty.
30
37
  :param pulumi.Input[str] name: Unique name of the AWS destination.
31
38
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
32
39
  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).
40
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
34
41
  :param pulumi.Input[str] region: Region where to manage the secrets manager entries.
35
42
  Can be omitted and directly provided to Vault using the `AWS_REGION` environment
36
43
  variable.
44
+ :param pulumi.Input[str] role_arn: Specifies a role to assume when connecting to AWS. When assuming a role,
45
+ Vault uses temporary STS credentials to authenticate. An initial session with the proper trust relationship must
46
+ exist for Vault to be able to assume this role. The role can be in a different account.
47
+ The value is mutable as long as the new role targets the same AWS account ID. If not, the BE will return an error.
48
+ It is possible to provide both an access key pair and a role to assume.
37
49
  :param pulumi.Input[str] secret_access_key: Secret access key to authenticate against the AWS secrets manager.
38
50
  Can be omitted and directly provided to Vault using the `AWS_SECRET_ACCESS_KEY` environment
39
51
  variable.
@@ -44,12 +56,16 @@ class SyncAwsDestinationArgs:
44
56
  pulumi.set(__self__, "access_key_id", access_key_id)
45
57
  if custom_tags is not None:
46
58
  pulumi.set(__self__, "custom_tags", custom_tags)
59
+ if external_id is not None:
60
+ pulumi.set(__self__, "external_id", external_id)
47
61
  if name is not None:
48
62
  pulumi.set(__self__, "name", name)
49
63
  if namespace is not None:
50
64
  pulumi.set(__self__, "namespace", namespace)
51
65
  if region is not None:
52
66
  pulumi.set(__self__, "region", region)
67
+ if role_arn is not None:
68
+ pulumi.set(__self__, "role_arn", role_arn)
53
69
  if secret_access_key is not None:
54
70
  pulumi.set(__self__, "secret_access_key", secret_access_key)
55
71
  if secret_name_template is not None:
@@ -81,6 +97,22 @@ class SyncAwsDestinationArgs:
81
97
  def custom_tags(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
82
98
  pulumi.set(self, "custom_tags", value)
83
99
 
100
+ @property
101
+ @pulumi.getter(name="externalId")
102
+ def external_id(self) -> Optional[pulumi.Input[str]]:
103
+ """
104
+ Optional extra protection that must match the trust policy granting access to the
105
+ AWS IAM role ARN. We recommend using a different random UUID per destination. The value is generated by users.
106
+ The field is mutable with no special condition, but users must be careful that the new value fits with the trust
107
+ relationship condition they set on AWS otherwise sync operations will start to fail due to client-side access
108
+ denied errors. Ignored if the `role_arn` field is empty.
109
+ """
110
+ return pulumi.get(self, "external_id")
111
+
112
+ @external_id.setter
113
+ def external_id(self, value: Optional[pulumi.Input[str]]):
114
+ pulumi.set(self, "external_id", value)
115
+
84
116
  @property
85
117
  @pulumi.getter
86
118
  def name(self) -> Optional[pulumi.Input[str]]:
@@ -99,7 +131,7 @@ class SyncAwsDestinationArgs:
99
131
  """
100
132
  The namespace to provision the resource in.
101
133
  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).
134
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
103
135
  """
104
136
  return pulumi.get(self, "namespace")
105
137
 
@@ -121,6 +153,22 @@ class SyncAwsDestinationArgs:
121
153
  def region(self, value: Optional[pulumi.Input[str]]):
122
154
  pulumi.set(self, "region", value)
123
155
 
156
+ @property
157
+ @pulumi.getter(name="roleArn")
158
+ def role_arn(self) -> Optional[pulumi.Input[str]]:
159
+ """
160
+ Specifies a role to assume when connecting to AWS. When assuming a role,
161
+ Vault uses temporary STS credentials to authenticate. An initial session with the proper trust relationship must
162
+ exist for Vault to be able to assume this role. The role can be in a different account.
163
+ The value is mutable as long as the new role targets the same AWS account ID. If not, the BE will return an error.
164
+ It is possible to provide both an access key pair and a role to assume.
165
+ """
166
+ return pulumi.get(self, "role_arn")
167
+
168
+ @role_arn.setter
169
+ def role_arn(self, value: Optional[pulumi.Input[str]]):
170
+ pulumi.set(self, "role_arn", value)
171
+
124
172
  @property
125
173
  @pulumi.getter(name="secretAccessKey")
126
174
  def secret_access_key(self) -> Optional[pulumi.Input[str]]:
@@ -154,9 +202,11 @@ class _SyncAwsDestinationState:
154
202
  def __init__(__self__, *,
155
203
  access_key_id: Optional[pulumi.Input[str]] = None,
156
204
  custom_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
205
+ external_id: Optional[pulumi.Input[str]] = None,
157
206
  name: Optional[pulumi.Input[str]] = None,
158
207
  namespace: Optional[pulumi.Input[str]] = None,
159
208
  region: Optional[pulumi.Input[str]] = None,
209
+ role_arn: Optional[pulumi.Input[str]] = None,
160
210
  secret_access_key: Optional[pulumi.Input[str]] = None,
161
211
  secret_name_template: Optional[pulumi.Input[str]] = None,
162
212
  type: Optional[pulumi.Input[str]] = None):
@@ -166,13 +216,23 @@ class _SyncAwsDestinationState:
166
216
  Can be omitted and directly provided to Vault using the `AWS_ACCESS_KEY_ID` environment
167
217
  variable.
168
218
  :param pulumi.Input[Mapping[str, Any]] custom_tags: Custom tags to set on the secret managed at the destination.
219
+ :param pulumi.Input[str] external_id: Optional extra protection that must match the trust policy granting access to the
220
+ AWS IAM role ARN. We recommend using a different random UUID per destination. The value is generated by users.
221
+ The field is mutable with no special condition, but users must be careful that the new value fits with the trust
222
+ relationship condition they set on AWS otherwise sync operations will start to fail due to client-side access
223
+ denied errors. Ignored if the `role_arn` field is empty.
169
224
  :param pulumi.Input[str] name: Unique name of the AWS destination.
170
225
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
171
226
  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).
227
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
173
228
  :param pulumi.Input[str] region: Region where to manage the secrets manager entries.
174
229
  Can be omitted and directly provided to Vault using the `AWS_REGION` environment
175
230
  variable.
231
+ :param pulumi.Input[str] role_arn: Specifies a role to assume when connecting to AWS. When assuming a role,
232
+ Vault uses temporary STS credentials to authenticate. An initial session with the proper trust relationship must
233
+ exist for Vault to be able to assume this role. The role can be in a different account.
234
+ The value is mutable as long as the new role targets the same AWS account ID. If not, the BE will return an error.
235
+ It is possible to provide both an access key pair and a role to assume.
176
236
  :param pulumi.Input[str] secret_access_key: Secret access key to authenticate against the AWS secrets manager.
177
237
  Can be omitted and directly provided to Vault using the `AWS_SECRET_ACCESS_KEY` environment
178
238
  variable.
@@ -184,12 +244,16 @@ class _SyncAwsDestinationState:
184
244
  pulumi.set(__self__, "access_key_id", access_key_id)
185
245
  if custom_tags is not None:
186
246
  pulumi.set(__self__, "custom_tags", custom_tags)
247
+ if external_id is not None:
248
+ pulumi.set(__self__, "external_id", external_id)
187
249
  if name is not None:
188
250
  pulumi.set(__self__, "name", name)
189
251
  if namespace is not None:
190
252
  pulumi.set(__self__, "namespace", namespace)
191
253
  if region is not None:
192
254
  pulumi.set(__self__, "region", region)
255
+ if role_arn is not None:
256
+ pulumi.set(__self__, "role_arn", role_arn)
193
257
  if secret_access_key is not None:
194
258
  pulumi.set(__self__, "secret_access_key", secret_access_key)
195
259
  if secret_name_template is not None:
@@ -223,6 +287,22 @@ class _SyncAwsDestinationState:
223
287
  def custom_tags(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
224
288
  pulumi.set(self, "custom_tags", value)
225
289
 
290
+ @property
291
+ @pulumi.getter(name="externalId")
292
+ def external_id(self) -> Optional[pulumi.Input[str]]:
293
+ """
294
+ Optional extra protection that must match the trust policy granting access to the
295
+ AWS IAM role ARN. We recommend using a different random UUID per destination. The value is generated by users.
296
+ The field is mutable with no special condition, but users must be careful that the new value fits with the trust
297
+ relationship condition they set on AWS otherwise sync operations will start to fail due to client-side access
298
+ denied errors. Ignored if the `role_arn` field is empty.
299
+ """
300
+ return pulumi.get(self, "external_id")
301
+
302
+ @external_id.setter
303
+ def external_id(self, value: Optional[pulumi.Input[str]]):
304
+ pulumi.set(self, "external_id", value)
305
+
226
306
  @property
227
307
  @pulumi.getter
228
308
  def name(self) -> Optional[pulumi.Input[str]]:
@@ -241,7 +321,7 @@ class _SyncAwsDestinationState:
241
321
  """
242
322
  The namespace to provision the resource in.
243
323
  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).
324
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
245
325
  """
246
326
  return pulumi.get(self, "namespace")
247
327
 
@@ -263,6 +343,22 @@ class _SyncAwsDestinationState:
263
343
  def region(self, value: Optional[pulumi.Input[str]]):
264
344
  pulumi.set(self, "region", value)
265
345
 
346
+ @property
347
+ @pulumi.getter(name="roleArn")
348
+ def role_arn(self) -> Optional[pulumi.Input[str]]:
349
+ """
350
+ Specifies a role to assume when connecting to AWS. When assuming a role,
351
+ Vault uses temporary STS credentials to authenticate. An initial session with the proper trust relationship must
352
+ exist for Vault to be able to assume this role. The role can be in a different account.
353
+ The value is mutable as long as the new role targets the same AWS account ID. If not, the BE will return an error.
354
+ It is possible to provide both an access key pair and a role to assume.
355
+ """
356
+ return pulumi.get(self, "role_arn")
357
+
358
+ @role_arn.setter
359
+ def role_arn(self, value: Optional[pulumi.Input[str]]):
360
+ pulumi.set(self, "role_arn", value)
361
+
266
362
  @property
267
363
  @pulumi.getter(name="secretAccessKey")
268
364
  def secret_access_key(self) -> Optional[pulumi.Input[str]]:
@@ -310,9 +406,11 @@ class SyncAwsDestination(pulumi.CustomResource):
310
406
  opts: Optional[pulumi.ResourceOptions] = None,
311
407
  access_key_id: Optional[pulumi.Input[str]] = None,
312
408
  custom_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
409
+ external_id: Optional[pulumi.Input[str]] = None,
313
410
  name: Optional[pulumi.Input[str]] = None,
314
411
  namespace: Optional[pulumi.Input[str]] = None,
315
412
  region: Optional[pulumi.Input[str]] = None,
413
+ role_arn: Optional[pulumi.Input[str]] = None,
316
414
  secret_access_key: Optional[pulumi.Input[str]] = None,
317
415
  secret_name_template: Optional[pulumi.Input[str]] = None,
318
416
  __props__=None):
@@ -328,6 +426,8 @@ class SyncAwsDestination(pulumi.CustomResource):
328
426
  access_key_id=var["access_key_id"],
329
427
  secret_access_key=var["secret_access_key"],
330
428
  region="us-east-1",
429
+ role_arn="role-arn",
430
+ external_id="external-id",
331
431
  secret_name_template="vault_{{ .MountAccessor | lowercase }}_{{ .SecretPath | lowercase }}",
332
432
  custom_tags={
333
433
  "foo": "bar",
@@ -349,13 +449,23 @@ class SyncAwsDestination(pulumi.CustomResource):
349
449
  Can be omitted and directly provided to Vault using the `AWS_ACCESS_KEY_ID` environment
350
450
  variable.
351
451
  :param pulumi.Input[Mapping[str, Any]] custom_tags: Custom tags to set on the secret managed at the destination.
452
+ :param pulumi.Input[str] external_id: Optional extra protection that must match the trust policy granting access to the
453
+ AWS IAM role ARN. We recommend using a different random UUID per destination. The value is generated by users.
454
+ The field is mutable with no special condition, but users must be careful that the new value fits with the trust
455
+ relationship condition they set on AWS otherwise sync operations will start to fail due to client-side access
456
+ denied errors. Ignored if the `role_arn` field is empty.
352
457
  :param pulumi.Input[str] name: Unique name of the AWS destination.
353
458
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
354
459
  The value should not contain leading or trailing forward slashes.
355
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
460
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
356
461
  :param pulumi.Input[str] region: Region where to manage the secrets manager entries.
357
462
  Can be omitted and directly provided to Vault using the `AWS_REGION` environment
358
463
  variable.
464
+ :param pulumi.Input[str] role_arn: Specifies a role to assume when connecting to AWS. When assuming a role,
465
+ Vault uses temporary STS credentials to authenticate. An initial session with the proper trust relationship must
466
+ exist for Vault to be able to assume this role. The role can be in a different account.
467
+ The value is mutable as long as the new role targets the same AWS account ID. If not, the BE will return an error.
468
+ It is possible to provide both an access key pair and a role to assume.
359
469
  :param pulumi.Input[str] secret_access_key: Secret access key to authenticate against the AWS secrets manager.
360
470
  Can be omitted and directly provided to Vault using the `AWS_SECRET_ACCESS_KEY` environment
361
471
  variable.
@@ -380,6 +490,8 @@ class SyncAwsDestination(pulumi.CustomResource):
380
490
  access_key_id=var["access_key_id"],
381
491
  secret_access_key=var["secret_access_key"],
382
492
  region="us-east-1",
493
+ role_arn="role-arn",
494
+ external_id="external-id",
383
495
  secret_name_template="vault_{{ .MountAccessor | lowercase }}_{{ .SecretPath | lowercase }}",
384
496
  custom_tags={
385
497
  "foo": "bar",
@@ -412,9 +524,11 @@ class SyncAwsDestination(pulumi.CustomResource):
412
524
  opts: Optional[pulumi.ResourceOptions] = None,
413
525
  access_key_id: Optional[pulumi.Input[str]] = None,
414
526
  custom_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
527
+ external_id: Optional[pulumi.Input[str]] = None,
415
528
  name: Optional[pulumi.Input[str]] = None,
416
529
  namespace: Optional[pulumi.Input[str]] = None,
417
530
  region: Optional[pulumi.Input[str]] = None,
531
+ role_arn: Optional[pulumi.Input[str]] = None,
418
532
  secret_access_key: Optional[pulumi.Input[str]] = None,
419
533
  secret_name_template: Optional[pulumi.Input[str]] = None,
420
534
  __props__=None):
@@ -428,9 +542,11 @@ class SyncAwsDestination(pulumi.CustomResource):
428
542
 
429
543
  __props__.__dict__["access_key_id"] = access_key_id
430
544
  __props__.__dict__["custom_tags"] = custom_tags
545
+ __props__.__dict__["external_id"] = external_id
431
546
  __props__.__dict__["name"] = name
432
547
  __props__.__dict__["namespace"] = namespace
433
548
  __props__.__dict__["region"] = region
549
+ __props__.__dict__["role_arn"] = role_arn
434
550
  __props__.__dict__["secret_access_key"] = None if secret_access_key is None else pulumi.Output.secret(secret_access_key)
435
551
  __props__.__dict__["secret_name_template"] = secret_name_template
436
552
  __props__.__dict__["type"] = None
@@ -448,9 +564,11 @@ class SyncAwsDestination(pulumi.CustomResource):
448
564
  opts: Optional[pulumi.ResourceOptions] = None,
449
565
  access_key_id: Optional[pulumi.Input[str]] = None,
450
566
  custom_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
567
+ external_id: Optional[pulumi.Input[str]] = None,
451
568
  name: Optional[pulumi.Input[str]] = None,
452
569
  namespace: Optional[pulumi.Input[str]] = None,
453
570
  region: Optional[pulumi.Input[str]] = None,
571
+ role_arn: Optional[pulumi.Input[str]] = None,
454
572
  secret_access_key: Optional[pulumi.Input[str]] = None,
455
573
  secret_name_template: Optional[pulumi.Input[str]] = None,
456
574
  type: Optional[pulumi.Input[str]] = None) -> 'SyncAwsDestination':
@@ -465,13 +583,23 @@ class SyncAwsDestination(pulumi.CustomResource):
465
583
  Can be omitted and directly provided to Vault using the `AWS_ACCESS_KEY_ID` environment
466
584
  variable.
467
585
  :param pulumi.Input[Mapping[str, Any]] custom_tags: Custom tags to set on the secret managed at the destination.
586
+ :param pulumi.Input[str] external_id: Optional extra protection that must match the trust policy granting access to the
587
+ AWS IAM role ARN. We recommend using a different random UUID per destination. The value is generated by users.
588
+ The field is mutable with no special condition, but users must be careful that the new value fits with the trust
589
+ relationship condition they set on AWS otherwise sync operations will start to fail due to client-side access
590
+ denied errors. Ignored if the `role_arn` field is empty.
468
591
  :param pulumi.Input[str] name: Unique name of the AWS destination.
469
592
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
470
593
  The value should not contain leading or trailing forward slashes.
471
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
594
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
472
595
  :param pulumi.Input[str] region: Region where to manage the secrets manager entries.
473
596
  Can be omitted and directly provided to Vault using the `AWS_REGION` environment
474
597
  variable.
598
+ :param pulumi.Input[str] role_arn: Specifies a role to assume when connecting to AWS. When assuming a role,
599
+ Vault uses temporary STS credentials to authenticate. An initial session with the proper trust relationship must
600
+ exist for Vault to be able to assume this role. The role can be in a different account.
601
+ The value is mutable as long as the new role targets the same AWS account ID. If not, the BE will return an error.
602
+ It is possible to provide both an access key pair and a role to assume.
475
603
  :param pulumi.Input[str] secret_access_key: Secret access key to authenticate against the AWS secrets manager.
476
604
  Can be omitted and directly provided to Vault using the `AWS_SECRET_ACCESS_KEY` environment
477
605
  variable.
@@ -485,9 +613,11 @@ class SyncAwsDestination(pulumi.CustomResource):
485
613
 
486
614
  __props__.__dict__["access_key_id"] = access_key_id
487
615
  __props__.__dict__["custom_tags"] = custom_tags
616
+ __props__.__dict__["external_id"] = external_id
488
617
  __props__.__dict__["name"] = name
489
618
  __props__.__dict__["namespace"] = namespace
490
619
  __props__.__dict__["region"] = region
620
+ __props__.__dict__["role_arn"] = role_arn
491
621
  __props__.__dict__["secret_access_key"] = secret_access_key
492
622
  __props__.__dict__["secret_name_template"] = secret_name_template
493
623
  __props__.__dict__["type"] = type
@@ -511,6 +641,18 @@ class SyncAwsDestination(pulumi.CustomResource):
511
641
  """
512
642
  return pulumi.get(self, "custom_tags")
513
643
 
644
+ @property
645
+ @pulumi.getter(name="externalId")
646
+ def external_id(self) -> pulumi.Output[Optional[str]]:
647
+ """
648
+ Optional extra protection that must match the trust policy granting access to the
649
+ AWS IAM role ARN. We recommend using a different random UUID per destination. The value is generated by users.
650
+ The field is mutable with no special condition, but users must be careful that the new value fits with the trust
651
+ relationship condition they set on AWS otherwise sync operations will start to fail due to client-side access
652
+ denied errors. Ignored if the `role_arn` field is empty.
653
+ """
654
+ return pulumi.get(self, "external_id")
655
+
514
656
  @property
515
657
  @pulumi.getter
516
658
  def name(self) -> pulumi.Output[str]:
@@ -525,7 +667,7 @@ class SyncAwsDestination(pulumi.CustomResource):
525
667
  """
526
668
  The namespace to provision the resource in.
527
669
  The value should not contain leading or trailing forward slashes.
528
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
670
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
529
671
  """
530
672
  return pulumi.get(self, "namespace")
531
673
 
@@ -539,6 +681,18 @@ class SyncAwsDestination(pulumi.CustomResource):
539
681
  """
540
682
  return pulumi.get(self, "region")
541
683
 
684
+ @property
685
+ @pulumi.getter(name="roleArn")
686
+ def role_arn(self) -> pulumi.Output[Optional[str]]:
687
+ """
688
+ Specifies a role to assume when connecting to AWS. When assuming a role,
689
+ Vault uses temporary STS credentials to authenticate. An initial session with the proper trust relationship must
690
+ exist for Vault to be able to assume this role. The role can be in a different account.
691
+ The value is mutable as long as the new role targets the same AWS account ID. If not, the BE will return an error.
692
+ It is possible to provide both an access key pair and a role to assume.
693
+ """
694
+ return pulumi.get(self, "role_arn")
695
+
542
696
  @property
543
697
  @pulumi.getter(name="secretAccessKey")
544
698
  def secret_access_key(self) -> pulumi.Output[Optional[str]]:
@@ -39,7 +39,7 @@ class SyncAzureDestinationArgs:
39
39
  :param pulumi.Input[str] name: Unique name of the Azure destination.
40
40
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
41
41
  The value should not contain leading or trailing forward slashes.
42
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
42
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
43
43
  :param pulumi.Input[str] secret_name_template: Template describing how to generate external secret names.
44
44
  Supports a subset of the Go Template syntax.
45
45
  :param pulumi.Input[str] tenant_id: ID of the target Azure tenant.
@@ -149,7 +149,7 @@ class SyncAzureDestinationArgs:
149
149
  """
150
150
  The namespace to provision the resource in.
151
151
  The value should not contain leading or trailing forward slashes.
152
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
152
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
153
153
  """
154
154
  return pulumi.get(self, "namespace")
155
155
 
@@ -214,7 +214,7 @@ class _SyncAzureDestinationState:
214
214
  :param pulumi.Input[str] name: Unique name of the Azure destination.
215
215
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
216
216
  The value should not contain leading or trailing forward slashes.
217
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
217
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
218
218
  :param pulumi.Input[str] secret_name_template: Template describing how to generate external secret names.
219
219
  Supports a subset of the Go Template syntax.
220
220
  :param pulumi.Input[str] tenant_id: ID of the target Azure tenant.
@@ -327,7 +327,7 @@ class _SyncAzureDestinationState:
327
327
  """
328
328
  The namespace to provision the resource in.
329
329
  The value should not contain leading or trailing forward slashes.
330
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
330
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
331
331
  """
332
332
  return pulumi.get(self, "namespace")
333
333
 
@@ -434,7 +434,7 @@ class SyncAzureDestination(pulumi.CustomResource):
434
434
  :param pulumi.Input[str] name: Unique name of the Azure destination.
435
435
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
436
436
  The value should not contain leading or trailing forward slashes.
437
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
437
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
438
438
  :param pulumi.Input[str] secret_name_template: Template describing how to generate external secret names.
439
439
  Supports a subset of the Go Template syntax.
440
440
  :param pulumi.Input[str] tenant_id: ID of the target Azure tenant.
@@ -561,7 +561,7 @@ class SyncAzureDestination(pulumi.CustomResource):
561
561
  :param pulumi.Input[str] name: Unique name of the Azure destination.
562
562
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
563
563
  The value should not contain leading or trailing forward slashes.
564
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
564
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
565
565
  :param pulumi.Input[str] secret_name_template: Template describing how to generate external secret names.
566
566
  Supports a subset of the Go Template syntax.
567
567
  :param pulumi.Input[str] tenant_id: ID of the target Azure tenant.
@@ -645,7 +645,7 @@ class SyncAzureDestination(pulumi.CustomResource):
645
645
  """
646
646
  The namespace to provision the resource in.
647
647
  The value should not contain leading or trailing forward slashes.
648
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
648
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
649
649
  """
650
650
  return pulumi.get(self, "namespace")
651
651