pulumi-vault 7.6.0a1764657486__py3-none-any.whl

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