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,589 @@
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__ = ['MfaDuoArgs', 'MfaDuo']
18
+
19
+ @pulumi.input_type
20
+ class MfaDuoArgs:
21
+ def __init__(__self__, *,
22
+ api_hostname: pulumi.Input[_builtins.str],
23
+ integration_key: pulumi.Input[_builtins.str],
24
+ mount_accessor: pulumi.Input[_builtins.str],
25
+ secret_key: pulumi.Input[_builtins.str],
26
+ name: Optional[pulumi.Input[_builtins.str]] = None,
27
+ namespace: Optional[pulumi.Input[_builtins.str]] = None,
28
+ push_info: Optional[pulumi.Input[_builtins.str]] = None,
29
+ username_format: Optional[pulumi.Input[_builtins.str]] = None):
30
+ """
31
+ The set of arguments for constructing a MfaDuo resource.
32
+ :param pulumi.Input[_builtins.str] api_hostname: `(string: <required>)` - API hostname for Duo.
33
+ :param pulumi.Input[_builtins.str] integration_key: `(string: <required>)` - Integration key for Duo.
34
+ :param pulumi.Input[_builtins.str] mount_accessor: `(string: <required>)` - The mount to tie this method to for use in automatic mappings. The mapping will use the Name field of Aliases associated with this mount as the username in the mapping.
35
+ :param pulumi.Input[_builtins.str] secret_key: `(string: <required>)` - Secret key for Duo.
36
+ :param pulumi.Input[_builtins.str] name: `(string: <required>)` – Name of the MFA method.
37
+ :param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
38
+ The value should not contain leading or trailing forward slashes.
39
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
40
+ *Available only for Vault Enterprise*.
41
+ :param pulumi.Input[_builtins.str] push_info: `(string)` - Push information for Duo.
42
+ :param pulumi.Input[_builtins.str] username_format: `(string)` - A format string for mapping Identity names to MFA method names. Values to substitute should be placed in `{{}}`. For example, `"{{alias.name}}@example.com"`. If blank, the Alias's Name field will be used as-is. Currently-supported mappings:
43
+ - alias.name: The name returned by the mount configured via the `mount_accessor` parameter
44
+ - entity.name: The name configured for the Entity
45
+ - alias.metadata.`<key>`: The value of the Alias's metadata parameter
46
+ - entity.metadata.`<key>`: The value of the Entity's metadata parameter
47
+ """
48
+ pulumi.set(__self__, "api_hostname", api_hostname)
49
+ pulumi.set(__self__, "integration_key", integration_key)
50
+ pulumi.set(__self__, "mount_accessor", mount_accessor)
51
+ pulumi.set(__self__, "secret_key", secret_key)
52
+ if name is not None:
53
+ pulumi.set(__self__, "name", name)
54
+ if namespace is not None:
55
+ pulumi.set(__self__, "namespace", namespace)
56
+ if push_info is not None:
57
+ pulumi.set(__self__, "push_info", push_info)
58
+ if username_format is not None:
59
+ pulumi.set(__self__, "username_format", username_format)
60
+
61
+ @_builtins.property
62
+ @pulumi.getter(name="apiHostname")
63
+ def api_hostname(self) -> pulumi.Input[_builtins.str]:
64
+ """
65
+ `(string: <required>)` - API hostname for Duo.
66
+ """
67
+ return pulumi.get(self, "api_hostname")
68
+
69
+ @api_hostname.setter
70
+ def api_hostname(self, value: pulumi.Input[_builtins.str]):
71
+ pulumi.set(self, "api_hostname", value)
72
+
73
+ @_builtins.property
74
+ @pulumi.getter(name="integrationKey")
75
+ def integration_key(self) -> pulumi.Input[_builtins.str]:
76
+ """
77
+ `(string: <required>)` - Integration key for Duo.
78
+ """
79
+ return pulumi.get(self, "integration_key")
80
+
81
+ @integration_key.setter
82
+ def integration_key(self, value: pulumi.Input[_builtins.str]):
83
+ pulumi.set(self, "integration_key", value)
84
+
85
+ @_builtins.property
86
+ @pulumi.getter(name="mountAccessor")
87
+ def mount_accessor(self) -> pulumi.Input[_builtins.str]:
88
+ """
89
+ `(string: <required>)` - The mount to tie this method to for use in automatic mappings. The mapping will use the Name field of Aliases associated with this mount as the username in the mapping.
90
+ """
91
+ return pulumi.get(self, "mount_accessor")
92
+
93
+ @mount_accessor.setter
94
+ def mount_accessor(self, value: pulumi.Input[_builtins.str]):
95
+ pulumi.set(self, "mount_accessor", value)
96
+
97
+ @_builtins.property
98
+ @pulumi.getter(name="secretKey")
99
+ def secret_key(self) -> pulumi.Input[_builtins.str]:
100
+ """
101
+ `(string: <required>)` - Secret key for Duo.
102
+ """
103
+ return pulumi.get(self, "secret_key")
104
+
105
+ @secret_key.setter
106
+ def secret_key(self, value: pulumi.Input[_builtins.str]):
107
+ pulumi.set(self, "secret_key", value)
108
+
109
+ @_builtins.property
110
+ @pulumi.getter
111
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
112
+ """
113
+ `(string: <required>)` – Name of the MFA method.
114
+ """
115
+ return pulumi.get(self, "name")
116
+
117
+ @name.setter
118
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
119
+ pulumi.set(self, "name", value)
120
+
121
+ @_builtins.property
122
+ @pulumi.getter
123
+ def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
124
+ """
125
+ The namespace to provision the resource in.
126
+ The value should not contain leading or trailing forward slashes.
127
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
128
+ *Available only for Vault Enterprise*.
129
+ """
130
+ return pulumi.get(self, "namespace")
131
+
132
+ @namespace.setter
133
+ def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
134
+ pulumi.set(self, "namespace", value)
135
+
136
+ @_builtins.property
137
+ @pulumi.getter(name="pushInfo")
138
+ def push_info(self) -> Optional[pulumi.Input[_builtins.str]]:
139
+ """
140
+ `(string)` - Push information for Duo.
141
+ """
142
+ return pulumi.get(self, "push_info")
143
+
144
+ @push_info.setter
145
+ def push_info(self, value: Optional[pulumi.Input[_builtins.str]]):
146
+ pulumi.set(self, "push_info", value)
147
+
148
+ @_builtins.property
149
+ @pulumi.getter(name="usernameFormat")
150
+ def username_format(self) -> Optional[pulumi.Input[_builtins.str]]:
151
+ """
152
+ `(string)` - A format string for mapping Identity names to MFA method names. Values to substitute should be placed in `{{}}`. For example, `"{{alias.name}}@example.com"`. If blank, the Alias's Name field will be used as-is. Currently-supported mappings:
153
+ - alias.name: The name returned by the mount configured via the `mount_accessor` parameter
154
+ - entity.name: The name configured for the Entity
155
+ - alias.metadata.`<key>`: The value of the Alias's metadata parameter
156
+ - entity.metadata.`<key>`: The value of the Entity's metadata parameter
157
+ """
158
+ return pulumi.get(self, "username_format")
159
+
160
+ @username_format.setter
161
+ def username_format(self, value: Optional[pulumi.Input[_builtins.str]]):
162
+ pulumi.set(self, "username_format", value)
163
+
164
+
165
+ @pulumi.input_type
166
+ class _MfaDuoState:
167
+ def __init__(__self__, *,
168
+ api_hostname: Optional[pulumi.Input[_builtins.str]] = None,
169
+ integration_key: Optional[pulumi.Input[_builtins.str]] = None,
170
+ mount_accessor: Optional[pulumi.Input[_builtins.str]] = None,
171
+ name: Optional[pulumi.Input[_builtins.str]] = None,
172
+ namespace: Optional[pulumi.Input[_builtins.str]] = None,
173
+ push_info: Optional[pulumi.Input[_builtins.str]] = None,
174
+ secret_key: Optional[pulumi.Input[_builtins.str]] = None,
175
+ username_format: Optional[pulumi.Input[_builtins.str]] = None):
176
+ """
177
+ Input properties used for looking up and filtering MfaDuo resources.
178
+ :param pulumi.Input[_builtins.str] api_hostname: `(string: <required>)` - API hostname for Duo.
179
+ :param pulumi.Input[_builtins.str] integration_key: `(string: <required>)` - Integration key for Duo.
180
+ :param pulumi.Input[_builtins.str] mount_accessor: `(string: <required>)` - The mount to tie this method to for use in automatic mappings. The mapping will use the Name field of Aliases associated with this mount as the username in the mapping.
181
+ :param pulumi.Input[_builtins.str] name: `(string: <required>)` – Name of the MFA method.
182
+ :param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
183
+ The value should not contain leading or trailing forward slashes.
184
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
185
+ *Available only for Vault Enterprise*.
186
+ :param pulumi.Input[_builtins.str] push_info: `(string)` - Push information for Duo.
187
+ :param pulumi.Input[_builtins.str] secret_key: `(string: <required>)` - Secret key for Duo.
188
+ :param pulumi.Input[_builtins.str] username_format: `(string)` - A format string for mapping Identity names to MFA method names. Values to substitute should be placed in `{{}}`. For example, `"{{alias.name}}@example.com"`. If blank, the Alias's Name field will be used as-is. Currently-supported mappings:
189
+ - alias.name: The name returned by the mount configured via the `mount_accessor` parameter
190
+ - entity.name: The name configured for the Entity
191
+ - alias.metadata.`<key>`: The value of the Alias's metadata parameter
192
+ - entity.metadata.`<key>`: The value of the Entity's metadata parameter
193
+ """
194
+ if api_hostname is not None:
195
+ pulumi.set(__self__, "api_hostname", api_hostname)
196
+ if integration_key is not None:
197
+ pulumi.set(__self__, "integration_key", integration_key)
198
+ if mount_accessor is not None:
199
+ pulumi.set(__self__, "mount_accessor", mount_accessor)
200
+ if name is not None:
201
+ pulumi.set(__self__, "name", name)
202
+ if namespace is not None:
203
+ pulumi.set(__self__, "namespace", namespace)
204
+ if push_info is not None:
205
+ pulumi.set(__self__, "push_info", push_info)
206
+ if secret_key is not None:
207
+ pulumi.set(__self__, "secret_key", secret_key)
208
+ if username_format is not None:
209
+ pulumi.set(__self__, "username_format", username_format)
210
+
211
+ @_builtins.property
212
+ @pulumi.getter(name="apiHostname")
213
+ def api_hostname(self) -> Optional[pulumi.Input[_builtins.str]]:
214
+ """
215
+ `(string: <required>)` - API hostname for Duo.
216
+ """
217
+ return pulumi.get(self, "api_hostname")
218
+
219
+ @api_hostname.setter
220
+ def api_hostname(self, value: Optional[pulumi.Input[_builtins.str]]):
221
+ pulumi.set(self, "api_hostname", value)
222
+
223
+ @_builtins.property
224
+ @pulumi.getter(name="integrationKey")
225
+ def integration_key(self) -> Optional[pulumi.Input[_builtins.str]]:
226
+ """
227
+ `(string: <required>)` - Integration key for Duo.
228
+ """
229
+ return pulumi.get(self, "integration_key")
230
+
231
+ @integration_key.setter
232
+ def integration_key(self, value: Optional[pulumi.Input[_builtins.str]]):
233
+ pulumi.set(self, "integration_key", value)
234
+
235
+ @_builtins.property
236
+ @pulumi.getter(name="mountAccessor")
237
+ def mount_accessor(self) -> Optional[pulumi.Input[_builtins.str]]:
238
+ """
239
+ `(string: <required>)` - The mount to tie this method to for use in automatic mappings. The mapping will use the Name field of Aliases associated with this mount as the username in the mapping.
240
+ """
241
+ return pulumi.get(self, "mount_accessor")
242
+
243
+ @mount_accessor.setter
244
+ def mount_accessor(self, value: Optional[pulumi.Input[_builtins.str]]):
245
+ pulumi.set(self, "mount_accessor", value)
246
+
247
+ @_builtins.property
248
+ @pulumi.getter
249
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
250
+ """
251
+ `(string: <required>)` – Name of the MFA method.
252
+ """
253
+ return pulumi.get(self, "name")
254
+
255
+ @name.setter
256
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
257
+ pulumi.set(self, "name", value)
258
+
259
+ @_builtins.property
260
+ @pulumi.getter
261
+ def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
262
+ """
263
+ The namespace to provision the resource in.
264
+ The value should not contain leading or trailing forward slashes.
265
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
266
+ *Available only for Vault Enterprise*.
267
+ """
268
+ return pulumi.get(self, "namespace")
269
+
270
+ @namespace.setter
271
+ def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
272
+ pulumi.set(self, "namespace", value)
273
+
274
+ @_builtins.property
275
+ @pulumi.getter(name="pushInfo")
276
+ def push_info(self) -> Optional[pulumi.Input[_builtins.str]]:
277
+ """
278
+ `(string)` - Push information for Duo.
279
+ """
280
+ return pulumi.get(self, "push_info")
281
+
282
+ @push_info.setter
283
+ def push_info(self, value: Optional[pulumi.Input[_builtins.str]]):
284
+ pulumi.set(self, "push_info", value)
285
+
286
+ @_builtins.property
287
+ @pulumi.getter(name="secretKey")
288
+ def secret_key(self) -> Optional[pulumi.Input[_builtins.str]]:
289
+ """
290
+ `(string: <required>)` - Secret key for Duo.
291
+ """
292
+ return pulumi.get(self, "secret_key")
293
+
294
+ @secret_key.setter
295
+ def secret_key(self, value: Optional[pulumi.Input[_builtins.str]]):
296
+ pulumi.set(self, "secret_key", value)
297
+
298
+ @_builtins.property
299
+ @pulumi.getter(name="usernameFormat")
300
+ def username_format(self) -> Optional[pulumi.Input[_builtins.str]]:
301
+ """
302
+ `(string)` - A format string for mapping Identity names to MFA method names. Values to substitute should be placed in `{{}}`. For example, `"{{alias.name}}@example.com"`. If blank, the Alias's Name field will be used as-is. Currently-supported mappings:
303
+ - alias.name: The name returned by the mount configured via the `mount_accessor` parameter
304
+ - entity.name: The name configured for the Entity
305
+ - alias.metadata.`<key>`: The value of the Alias's metadata parameter
306
+ - entity.metadata.`<key>`: The value of the Entity's metadata parameter
307
+ """
308
+ return pulumi.get(self, "username_format")
309
+
310
+ @username_format.setter
311
+ def username_format(self, value: Optional[pulumi.Input[_builtins.str]]):
312
+ pulumi.set(self, "username_format", value)
313
+
314
+
315
+ @pulumi.type_token("vault:index/mfaDuo:MfaDuo")
316
+ class MfaDuo(pulumi.CustomResource):
317
+ @overload
318
+ def __init__(__self__,
319
+ resource_name: str,
320
+ opts: Optional[pulumi.ResourceOptions] = None,
321
+ api_hostname: Optional[pulumi.Input[_builtins.str]] = None,
322
+ integration_key: Optional[pulumi.Input[_builtins.str]] = None,
323
+ mount_accessor: Optional[pulumi.Input[_builtins.str]] = None,
324
+ name: Optional[pulumi.Input[_builtins.str]] = None,
325
+ namespace: Optional[pulumi.Input[_builtins.str]] = None,
326
+ push_info: Optional[pulumi.Input[_builtins.str]] = None,
327
+ secret_key: Optional[pulumi.Input[_builtins.str]] = None,
328
+ username_format: Optional[pulumi.Input[_builtins.str]] = None,
329
+ __props__=None):
330
+ """
331
+ Provides a resource to manage [Duo MFA](https://www.vaultproject.io/docs/enterprise/mfa/mfa-duo.html).
332
+
333
+ **Note** this feature is available only with Vault Enterprise.
334
+
335
+ ## Example Usage
336
+
337
+ ```python
338
+ import pulumi
339
+ import pulumi_vault as vault
340
+
341
+ userpass = vault.AuthBackend("userpass",
342
+ type="userpass",
343
+ path="userpass")
344
+ my_duo = vault.MfaDuo("my_duo",
345
+ name="my_duo",
346
+ mount_accessor=userpass.accessor,
347
+ secret_key="8C7THtrIigh2rPZQMbguugt8IUftWhMRCOBzbuyz",
348
+ integration_key="BIACEUEAXI20BNWTEYXT",
349
+ api_hostname="api-2b5c39f5.duosecurity.com")
350
+ ```
351
+
352
+ ## Import
353
+
354
+ Mounts can be imported using the `path`, e.g.
355
+
356
+ ```sh
357
+ $ pulumi import vault:index/mfaDuo:MfaDuo my_duo my_duo
358
+ ```
359
+
360
+ :param str resource_name: The name of the resource.
361
+ :param pulumi.ResourceOptions opts: Options for the resource.
362
+ :param pulumi.Input[_builtins.str] api_hostname: `(string: <required>)` - API hostname for Duo.
363
+ :param pulumi.Input[_builtins.str] integration_key: `(string: <required>)` - Integration key for Duo.
364
+ :param pulumi.Input[_builtins.str] mount_accessor: `(string: <required>)` - The mount to tie this method to for use in automatic mappings. The mapping will use the Name field of Aliases associated with this mount as the username in the mapping.
365
+ :param pulumi.Input[_builtins.str] name: `(string: <required>)` – Name of the MFA method.
366
+ :param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
367
+ The value should not contain leading or trailing forward slashes.
368
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
369
+ *Available only for Vault Enterprise*.
370
+ :param pulumi.Input[_builtins.str] push_info: `(string)` - Push information for Duo.
371
+ :param pulumi.Input[_builtins.str] secret_key: `(string: <required>)` - Secret key for Duo.
372
+ :param pulumi.Input[_builtins.str] username_format: `(string)` - A format string for mapping Identity names to MFA method names. Values to substitute should be placed in `{{}}`. For example, `"{{alias.name}}@example.com"`. If blank, the Alias's Name field will be used as-is. Currently-supported mappings:
373
+ - alias.name: The name returned by the mount configured via the `mount_accessor` parameter
374
+ - entity.name: The name configured for the Entity
375
+ - alias.metadata.`<key>`: The value of the Alias's metadata parameter
376
+ - entity.metadata.`<key>`: The value of the Entity's metadata parameter
377
+ """
378
+ ...
379
+ @overload
380
+ def __init__(__self__,
381
+ resource_name: str,
382
+ args: MfaDuoArgs,
383
+ opts: Optional[pulumi.ResourceOptions] = None):
384
+ """
385
+ Provides a resource to manage [Duo MFA](https://www.vaultproject.io/docs/enterprise/mfa/mfa-duo.html).
386
+
387
+ **Note** this feature is available only with Vault Enterprise.
388
+
389
+ ## Example Usage
390
+
391
+ ```python
392
+ import pulumi
393
+ import pulumi_vault as vault
394
+
395
+ userpass = vault.AuthBackend("userpass",
396
+ type="userpass",
397
+ path="userpass")
398
+ my_duo = vault.MfaDuo("my_duo",
399
+ name="my_duo",
400
+ mount_accessor=userpass.accessor,
401
+ secret_key="8C7THtrIigh2rPZQMbguugt8IUftWhMRCOBzbuyz",
402
+ integration_key="BIACEUEAXI20BNWTEYXT",
403
+ api_hostname="api-2b5c39f5.duosecurity.com")
404
+ ```
405
+
406
+ ## Import
407
+
408
+ Mounts can be imported using the `path`, e.g.
409
+
410
+ ```sh
411
+ $ pulumi import vault:index/mfaDuo:MfaDuo my_duo my_duo
412
+ ```
413
+
414
+ :param str resource_name: The name of the resource.
415
+ :param MfaDuoArgs args: The arguments to use to populate this resource's properties.
416
+ :param pulumi.ResourceOptions opts: Options for the resource.
417
+ """
418
+ ...
419
+ def __init__(__self__, resource_name: str, *args, **kwargs):
420
+ resource_args, opts = _utilities.get_resource_args_opts(MfaDuoArgs, pulumi.ResourceOptions, *args, **kwargs)
421
+ if resource_args is not None:
422
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
423
+ else:
424
+ __self__._internal_init(resource_name, *args, **kwargs)
425
+
426
+ def _internal_init(__self__,
427
+ resource_name: str,
428
+ opts: Optional[pulumi.ResourceOptions] = None,
429
+ api_hostname: Optional[pulumi.Input[_builtins.str]] = None,
430
+ integration_key: Optional[pulumi.Input[_builtins.str]] = None,
431
+ mount_accessor: Optional[pulumi.Input[_builtins.str]] = None,
432
+ name: Optional[pulumi.Input[_builtins.str]] = None,
433
+ namespace: Optional[pulumi.Input[_builtins.str]] = None,
434
+ push_info: Optional[pulumi.Input[_builtins.str]] = None,
435
+ secret_key: Optional[pulumi.Input[_builtins.str]] = None,
436
+ username_format: Optional[pulumi.Input[_builtins.str]] = None,
437
+ __props__=None):
438
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
439
+ if not isinstance(opts, pulumi.ResourceOptions):
440
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
441
+ if opts.id is None:
442
+ if __props__ is not None:
443
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
444
+ __props__ = MfaDuoArgs.__new__(MfaDuoArgs)
445
+
446
+ if api_hostname is None and not opts.urn:
447
+ raise TypeError("Missing required property 'api_hostname'")
448
+ __props__.__dict__["api_hostname"] = api_hostname
449
+ if integration_key is None and not opts.urn:
450
+ raise TypeError("Missing required property 'integration_key'")
451
+ __props__.__dict__["integration_key"] = None if integration_key is None else pulumi.Output.secret(integration_key)
452
+ if mount_accessor is None and not opts.urn:
453
+ raise TypeError("Missing required property 'mount_accessor'")
454
+ __props__.__dict__["mount_accessor"] = mount_accessor
455
+ __props__.__dict__["name"] = name
456
+ __props__.__dict__["namespace"] = namespace
457
+ __props__.__dict__["push_info"] = push_info
458
+ if secret_key is None and not opts.urn:
459
+ raise TypeError("Missing required property 'secret_key'")
460
+ __props__.__dict__["secret_key"] = None if secret_key is None else pulumi.Output.secret(secret_key)
461
+ __props__.__dict__["username_format"] = username_format
462
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["integrationKey", "secretKey"])
463
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
464
+ super(MfaDuo, __self__).__init__(
465
+ 'vault:index/mfaDuo:MfaDuo',
466
+ resource_name,
467
+ __props__,
468
+ opts)
469
+
470
+ @staticmethod
471
+ def get(resource_name: str,
472
+ id: pulumi.Input[str],
473
+ opts: Optional[pulumi.ResourceOptions] = None,
474
+ api_hostname: Optional[pulumi.Input[_builtins.str]] = None,
475
+ integration_key: Optional[pulumi.Input[_builtins.str]] = None,
476
+ mount_accessor: Optional[pulumi.Input[_builtins.str]] = None,
477
+ name: Optional[pulumi.Input[_builtins.str]] = None,
478
+ namespace: Optional[pulumi.Input[_builtins.str]] = None,
479
+ push_info: Optional[pulumi.Input[_builtins.str]] = None,
480
+ secret_key: Optional[pulumi.Input[_builtins.str]] = None,
481
+ username_format: Optional[pulumi.Input[_builtins.str]] = None) -> 'MfaDuo':
482
+ """
483
+ Get an existing MfaDuo resource's state with the given name, id, and optional extra
484
+ properties used to qualify the lookup.
485
+
486
+ :param str resource_name: The unique name of the resulting resource.
487
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
488
+ :param pulumi.ResourceOptions opts: Options for the resource.
489
+ :param pulumi.Input[_builtins.str] api_hostname: `(string: <required>)` - API hostname for Duo.
490
+ :param pulumi.Input[_builtins.str] integration_key: `(string: <required>)` - Integration key for Duo.
491
+ :param pulumi.Input[_builtins.str] mount_accessor: `(string: <required>)` - The mount to tie this method to for use in automatic mappings. The mapping will use the Name field of Aliases associated with this mount as the username in the mapping.
492
+ :param pulumi.Input[_builtins.str] name: `(string: <required>)` – Name of the MFA method.
493
+ :param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
494
+ The value should not contain leading or trailing forward slashes.
495
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
496
+ *Available only for Vault Enterprise*.
497
+ :param pulumi.Input[_builtins.str] push_info: `(string)` - Push information for Duo.
498
+ :param pulumi.Input[_builtins.str] secret_key: `(string: <required>)` - Secret key for Duo.
499
+ :param pulumi.Input[_builtins.str] username_format: `(string)` - A format string for mapping Identity names to MFA method names. Values to substitute should be placed in `{{}}`. For example, `"{{alias.name}}@example.com"`. If blank, the Alias's Name field will be used as-is. Currently-supported mappings:
500
+ - alias.name: The name returned by the mount configured via the `mount_accessor` parameter
501
+ - entity.name: The name configured for the Entity
502
+ - alias.metadata.`<key>`: The value of the Alias's metadata parameter
503
+ - entity.metadata.`<key>`: The value of the Entity's metadata parameter
504
+ """
505
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
506
+
507
+ __props__ = _MfaDuoState.__new__(_MfaDuoState)
508
+
509
+ __props__.__dict__["api_hostname"] = api_hostname
510
+ __props__.__dict__["integration_key"] = integration_key
511
+ __props__.__dict__["mount_accessor"] = mount_accessor
512
+ __props__.__dict__["name"] = name
513
+ __props__.__dict__["namespace"] = namespace
514
+ __props__.__dict__["push_info"] = push_info
515
+ __props__.__dict__["secret_key"] = secret_key
516
+ __props__.__dict__["username_format"] = username_format
517
+ return MfaDuo(resource_name, opts=opts, __props__=__props__)
518
+
519
+ @_builtins.property
520
+ @pulumi.getter(name="apiHostname")
521
+ def api_hostname(self) -> pulumi.Output[_builtins.str]:
522
+ """
523
+ `(string: <required>)` - API hostname for Duo.
524
+ """
525
+ return pulumi.get(self, "api_hostname")
526
+
527
+ @_builtins.property
528
+ @pulumi.getter(name="integrationKey")
529
+ def integration_key(self) -> pulumi.Output[_builtins.str]:
530
+ """
531
+ `(string: <required>)` - Integration key for Duo.
532
+ """
533
+ return pulumi.get(self, "integration_key")
534
+
535
+ @_builtins.property
536
+ @pulumi.getter(name="mountAccessor")
537
+ def mount_accessor(self) -> pulumi.Output[_builtins.str]:
538
+ """
539
+ `(string: <required>)` - The mount to tie this method to for use in automatic mappings. The mapping will use the Name field of Aliases associated with this mount as the username in the mapping.
540
+ """
541
+ return pulumi.get(self, "mount_accessor")
542
+
543
+ @_builtins.property
544
+ @pulumi.getter
545
+ def name(self) -> pulumi.Output[_builtins.str]:
546
+ """
547
+ `(string: <required>)` – Name of the MFA method.
548
+ """
549
+ return pulumi.get(self, "name")
550
+
551
+ @_builtins.property
552
+ @pulumi.getter
553
+ def namespace(self) -> pulumi.Output[Optional[_builtins.str]]:
554
+ """
555
+ The namespace to provision the resource in.
556
+ The value should not contain leading or trailing forward slashes.
557
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
558
+ *Available only for Vault Enterprise*.
559
+ """
560
+ return pulumi.get(self, "namespace")
561
+
562
+ @_builtins.property
563
+ @pulumi.getter(name="pushInfo")
564
+ def push_info(self) -> pulumi.Output[Optional[_builtins.str]]:
565
+ """
566
+ `(string)` - Push information for Duo.
567
+ """
568
+ return pulumi.get(self, "push_info")
569
+
570
+ @_builtins.property
571
+ @pulumi.getter(name="secretKey")
572
+ def secret_key(self) -> pulumi.Output[_builtins.str]:
573
+ """
574
+ `(string: <required>)` - Secret key for Duo.
575
+ """
576
+ return pulumi.get(self, "secret_key")
577
+
578
+ @_builtins.property
579
+ @pulumi.getter(name="usernameFormat")
580
+ def username_format(self) -> pulumi.Output[Optional[_builtins.str]]:
581
+ """
582
+ `(string)` - A format string for mapping Identity names to MFA method names. Values to substitute should be placed in `{{}}`. For example, `"{{alias.name}}@example.com"`. If blank, the Alias's Name field will be used as-is. Currently-supported mappings:
583
+ - alias.name: The name returned by the mount configured via the `mount_accessor` parameter
584
+ - entity.name: The name configured for the Entity
585
+ - alias.metadata.`<key>`: The value of the Alias's metadata parameter
586
+ - entity.metadata.`<key>`: The value of the Entity's metadata parameter
587
+ """
588
+ return pulumi.get(self, "username_format")
589
+