pulumi-vault 6.5.0a1736850018__py3-none-any.whl → 6.6.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. pulumi_vault/__init__.py +32 -0
  2. pulumi_vault/_utilities.py +8 -4
  3. pulumi_vault/aws/auth_backend_client.py +228 -4
  4. pulumi_vault/aws/auth_backend_sts_role.py +47 -0
  5. pulumi_vault/aws/secret_backend.py +395 -38
  6. pulumi_vault/aws/secret_backend_static_role.py +217 -0
  7. pulumi_vault/azure/auth_backend_config.py +257 -5
  8. pulumi_vault/azure/backend.py +249 -4
  9. pulumi_vault/database/_inputs.py +1740 -44
  10. pulumi_vault/database/outputs.py +1198 -18
  11. pulumi_vault/database/secret_backend_connection.py +220 -0
  12. pulumi_vault/database/secret_backend_static_role.py +143 -1
  13. pulumi_vault/database/secrets_mount.py +8 -0
  14. pulumi_vault/gcp/auth_backend.py +222 -2
  15. pulumi_vault/gcp/secret_backend.py +244 -4
  16. pulumi_vault/ldap/auth_backend.py +222 -2
  17. pulumi_vault/ldap/secret_backend.py +222 -2
  18. pulumi_vault/pkisecret/__init__.py +6 -0
  19. pulumi_vault/pkisecret/_inputs.py +34 -6
  20. pulumi_vault/pkisecret/backend_acme_eab.py +549 -0
  21. pulumi_vault/pkisecret/backend_config_acme.py +689 -0
  22. pulumi_vault/pkisecret/backend_config_auto_tidy.py +1376 -0
  23. pulumi_vault/pkisecret/backend_config_cmpv2.py +572 -0
  24. pulumi_vault/pkisecret/get_backend_cert_metadata.py +277 -0
  25. pulumi_vault/pkisecret/get_backend_config_cmpv2.py +226 -0
  26. pulumi_vault/pkisecret/get_backend_issuer.py +114 -1
  27. pulumi_vault/pkisecret/outputs.py +40 -4
  28. pulumi_vault/pkisecret/secret_backend_cert.py +148 -7
  29. pulumi_vault/pkisecret/secret_backend_crl_config.py +54 -0
  30. pulumi_vault/pkisecret/secret_backend_intermediate_cert_request.py +141 -0
  31. pulumi_vault/pkisecret/secret_backend_issuer.py +265 -0
  32. pulumi_vault/pkisecret/secret_backend_role.py +299 -3
  33. pulumi_vault/pkisecret/secret_backend_root_cert.py +423 -0
  34. pulumi_vault/pkisecret/secret_backend_root_sign_intermediate.py +581 -3
  35. pulumi_vault/pkisecret/secret_backend_sign.py +94 -0
  36. pulumi_vault/pulumi-plugin.json +1 -1
  37. pulumi_vault/ssh/__init__.py +1 -0
  38. pulumi_vault/ssh/get_secret_backend_sign.py +294 -0
  39. pulumi_vault/ssh/secret_backend_role.py +27 -0
  40. pulumi_vault/terraformcloud/secret_role.py +7 -7
  41. pulumi_vault/transit/__init__.py +2 -0
  42. pulumi_vault/transit/get_sign.py +324 -0
  43. pulumi_vault/transit/get_verify.py +354 -0
  44. pulumi_vault/transit/secret_backend_key.py +162 -0
  45. {pulumi_vault-6.5.0a1736850018.dist-info → pulumi_vault-6.6.0.dist-info}/METADATA +1 -1
  46. {pulumi_vault-6.5.0a1736850018.dist-info → pulumi_vault-6.6.0.dist-info}/RECORD +48 -39
  47. {pulumi_vault-6.5.0a1736850018.dist-info → pulumi_vault-6.6.0.dist-info}/WHEEL +1 -1
  48. {pulumi_vault-6.5.0a1736850018.dist-info → pulumi_vault-6.6.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,689 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
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__ = ['BackendConfigAcmeArgs', 'BackendConfigAcme']
18
+
19
+ @pulumi.input_type
20
+ class BackendConfigAcmeArgs:
21
+ def __init__(__self__, *,
22
+ backend: pulumi.Input[str],
23
+ enabled: pulumi.Input[bool],
24
+ allow_role_ext_key_usage: Optional[pulumi.Input[bool]] = None,
25
+ allowed_issuers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
26
+ allowed_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
27
+ default_directory_policy: Optional[pulumi.Input[str]] = None,
28
+ dns_resolver: Optional[pulumi.Input[str]] = None,
29
+ eab_policy: Optional[pulumi.Input[str]] = None,
30
+ max_ttl: Optional[pulumi.Input[int]] = None,
31
+ namespace: Optional[pulumi.Input[str]] = None):
32
+ """
33
+ The set of arguments for constructing a BackendConfigAcme resource.
34
+ :param pulumi.Input[str] backend: The path the PKI secret backend is mounted at, with no leading or trailing `/`s.
35
+ :param pulumi.Input[bool] enabled: Specifies whether ACME is enabled.
36
+ :param pulumi.Input[bool] allow_role_ext_key_usage: Specifies whether the ExtKeyUsage field from a role is used. **Vault 1.14.1+**
37
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_issuers: Specifies which issuers are allowed for use with ACME.
38
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_roles: Specifies which roles are allowed for use with ACME.
39
+ :param pulumi.Input[str] default_directory_policy: Specifies the policy to be used for non-role-qualified ACME requests.
40
+ Allowed values are `forbid`, `sign-verbatim`, `role:<role_name>`, `external-policy` or `external-policy:<policy>`.
41
+ :param pulumi.Input[str] dns_resolver: DNS resolver to use for domain resolution on this mount.
42
+ Must be in the format `<host>:<port>`, with both parts mandatory.
43
+ :param pulumi.Input[str] eab_policy: Specifies the policy to use for external account binding behaviour.
44
+ Allowed values are `not-required`, `new-account-required` or `always-required`.
45
+ :param pulumi.Input[int] max_ttl: The maximum TTL in seconds for certificates issued by ACME. **Vault 1.17.0+**
46
+ :param pulumi.Input[str] namespace: The namespace to provision the resource in.
47
+ The value should not contain leading or trailing forward slashes.
48
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
49
+ *Available only for Vault Enterprise*.
50
+ """
51
+ pulumi.set(__self__, "backend", backend)
52
+ pulumi.set(__self__, "enabled", enabled)
53
+ if allow_role_ext_key_usage is not None:
54
+ pulumi.set(__self__, "allow_role_ext_key_usage", allow_role_ext_key_usage)
55
+ if allowed_issuers is not None:
56
+ pulumi.set(__self__, "allowed_issuers", allowed_issuers)
57
+ if allowed_roles is not None:
58
+ pulumi.set(__self__, "allowed_roles", allowed_roles)
59
+ if default_directory_policy is not None:
60
+ pulumi.set(__self__, "default_directory_policy", default_directory_policy)
61
+ if dns_resolver is not None:
62
+ pulumi.set(__self__, "dns_resolver", dns_resolver)
63
+ if eab_policy is not None:
64
+ pulumi.set(__self__, "eab_policy", eab_policy)
65
+ if max_ttl is not None:
66
+ pulumi.set(__self__, "max_ttl", max_ttl)
67
+ if namespace is not None:
68
+ pulumi.set(__self__, "namespace", namespace)
69
+
70
+ @property
71
+ @pulumi.getter
72
+ def backend(self) -> pulumi.Input[str]:
73
+ """
74
+ The path the PKI secret backend is mounted at, with no leading or trailing `/`s.
75
+ """
76
+ return pulumi.get(self, "backend")
77
+
78
+ @backend.setter
79
+ def backend(self, value: pulumi.Input[str]):
80
+ pulumi.set(self, "backend", value)
81
+
82
+ @property
83
+ @pulumi.getter
84
+ def enabled(self) -> pulumi.Input[bool]:
85
+ """
86
+ Specifies whether ACME is enabled.
87
+ """
88
+ return pulumi.get(self, "enabled")
89
+
90
+ @enabled.setter
91
+ def enabled(self, value: pulumi.Input[bool]):
92
+ pulumi.set(self, "enabled", value)
93
+
94
+ @property
95
+ @pulumi.getter(name="allowRoleExtKeyUsage")
96
+ def allow_role_ext_key_usage(self) -> Optional[pulumi.Input[bool]]:
97
+ """
98
+ Specifies whether the ExtKeyUsage field from a role is used. **Vault 1.14.1+**
99
+ """
100
+ return pulumi.get(self, "allow_role_ext_key_usage")
101
+
102
+ @allow_role_ext_key_usage.setter
103
+ def allow_role_ext_key_usage(self, value: Optional[pulumi.Input[bool]]):
104
+ pulumi.set(self, "allow_role_ext_key_usage", value)
105
+
106
+ @property
107
+ @pulumi.getter(name="allowedIssuers")
108
+ def allowed_issuers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
109
+ """
110
+ Specifies which issuers are allowed for use with ACME.
111
+ """
112
+ return pulumi.get(self, "allowed_issuers")
113
+
114
+ @allowed_issuers.setter
115
+ def allowed_issuers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
116
+ pulumi.set(self, "allowed_issuers", value)
117
+
118
+ @property
119
+ @pulumi.getter(name="allowedRoles")
120
+ def allowed_roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
121
+ """
122
+ Specifies which roles are allowed for use with ACME.
123
+ """
124
+ return pulumi.get(self, "allowed_roles")
125
+
126
+ @allowed_roles.setter
127
+ def allowed_roles(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
128
+ pulumi.set(self, "allowed_roles", value)
129
+
130
+ @property
131
+ @pulumi.getter(name="defaultDirectoryPolicy")
132
+ def default_directory_policy(self) -> Optional[pulumi.Input[str]]:
133
+ """
134
+ Specifies the policy to be used for non-role-qualified ACME requests.
135
+ Allowed values are `forbid`, `sign-verbatim`, `role:<role_name>`, `external-policy` or `external-policy:<policy>`.
136
+ """
137
+ return pulumi.get(self, "default_directory_policy")
138
+
139
+ @default_directory_policy.setter
140
+ def default_directory_policy(self, value: Optional[pulumi.Input[str]]):
141
+ pulumi.set(self, "default_directory_policy", value)
142
+
143
+ @property
144
+ @pulumi.getter(name="dnsResolver")
145
+ def dns_resolver(self) -> Optional[pulumi.Input[str]]:
146
+ """
147
+ DNS resolver to use for domain resolution on this mount.
148
+ Must be in the format `<host>:<port>`, with both parts mandatory.
149
+ """
150
+ return pulumi.get(self, "dns_resolver")
151
+
152
+ @dns_resolver.setter
153
+ def dns_resolver(self, value: Optional[pulumi.Input[str]]):
154
+ pulumi.set(self, "dns_resolver", value)
155
+
156
+ @property
157
+ @pulumi.getter(name="eabPolicy")
158
+ def eab_policy(self) -> Optional[pulumi.Input[str]]:
159
+ """
160
+ Specifies the policy to use for external account binding behaviour.
161
+ Allowed values are `not-required`, `new-account-required` or `always-required`.
162
+ """
163
+ return pulumi.get(self, "eab_policy")
164
+
165
+ @eab_policy.setter
166
+ def eab_policy(self, value: Optional[pulumi.Input[str]]):
167
+ pulumi.set(self, "eab_policy", value)
168
+
169
+ @property
170
+ @pulumi.getter(name="maxTtl")
171
+ def max_ttl(self) -> Optional[pulumi.Input[int]]:
172
+ """
173
+ The maximum TTL in seconds for certificates issued by ACME. **Vault 1.17.0+**
174
+ """
175
+ return pulumi.get(self, "max_ttl")
176
+
177
+ @max_ttl.setter
178
+ def max_ttl(self, value: Optional[pulumi.Input[int]]):
179
+ pulumi.set(self, "max_ttl", value)
180
+
181
+ @property
182
+ @pulumi.getter
183
+ def namespace(self) -> Optional[pulumi.Input[str]]:
184
+ """
185
+ The namespace to provision the resource in.
186
+ The value should not contain leading or trailing forward slashes.
187
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
188
+ *Available only for Vault Enterprise*.
189
+ """
190
+ return pulumi.get(self, "namespace")
191
+
192
+ @namespace.setter
193
+ def namespace(self, value: Optional[pulumi.Input[str]]):
194
+ pulumi.set(self, "namespace", value)
195
+
196
+
197
+ @pulumi.input_type
198
+ class _BackendConfigAcmeState:
199
+ def __init__(__self__, *,
200
+ allow_role_ext_key_usage: Optional[pulumi.Input[bool]] = None,
201
+ allowed_issuers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
202
+ allowed_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
203
+ backend: Optional[pulumi.Input[str]] = None,
204
+ default_directory_policy: Optional[pulumi.Input[str]] = None,
205
+ dns_resolver: Optional[pulumi.Input[str]] = None,
206
+ eab_policy: Optional[pulumi.Input[str]] = None,
207
+ enabled: Optional[pulumi.Input[bool]] = None,
208
+ max_ttl: Optional[pulumi.Input[int]] = None,
209
+ namespace: Optional[pulumi.Input[str]] = None):
210
+ """
211
+ Input properties used for looking up and filtering BackendConfigAcme resources.
212
+ :param pulumi.Input[bool] allow_role_ext_key_usage: Specifies whether the ExtKeyUsage field from a role is used. **Vault 1.14.1+**
213
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_issuers: Specifies which issuers are allowed for use with ACME.
214
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_roles: Specifies which roles are allowed for use with ACME.
215
+ :param pulumi.Input[str] backend: The path the PKI secret backend is mounted at, with no leading or trailing `/`s.
216
+ :param pulumi.Input[str] default_directory_policy: Specifies the policy to be used for non-role-qualified ACME requests.
217
+ Allowed values are `forbid`, `sign-verbatim`, `role:<role_name>`, `external-policy` or `external-policy:<policy>`.
218
+ :param pulumi.Input[str] dns_resolver: DNS resolver to use for domain resolution on this mount.
219
+ Must be in the format `<host>:<port>`, with both parts mandatory.
220
+ :param pulumi.Input[str] eab_policy: Specifies the policy to use for external account binding behaviour.
221
+ Allowed values are `not-required`, `new-account-required` or `always-required`.
222
+ :param pulumi.Input[bool] enabled: Specifies whether ACME is enabled.
223
+ :param pulumi.Input[int] max_ttl: The maximum TTL in seconds for certificates issued by ACME. **Vault 1.17.0+**
224
+ :param pulumi.Input[str] namespace: The namespace to provision the resource in.
225
+ The value should not contain leading or trailing forward slashes.
226
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
227
+ *Available only for Vault Enterprise*.
228
+ """
229
+ if allow_role_ext_key_usage is not None:
230
+ pulumi.set(__self__, "allow_role_ext_key_usage", allow_role_ext_key_usage)
231
+ if allowed_issuers is not None:
232
+ pulumi.set(__self__, "allowed_issuers", allowed_issuers)
233
+ if allowed_roles is not None:
234
+ pulumi.set(__self__, "allowed_roles", allowed_roles)
235
+ if backend is not None:
236
+ pulumi.set(__self__, "backend", backend)
237
+ if default_directory_policy is not None:
238
+ pulumi.set(__self__, "default_directory_policy", default_directory_policy)
239
+ if dns_resolver is not None:
240
+ pulumi.set(__self__, "dns_resolver", dns_resolver)
241
+ if eab_policy is not None:
242
+ pulumi.set(__self__, "eab_policy", eab_policy)
243
+ if enabled is not None:
244
+ pulumi.set(__self__, "enabled", enabled)
245
+ if max_ttl is not None:
246
+ pulumi.set(__self__, "max_ttl", max_ttl)
247
+ if namespace is not None:
248
+ pulumi.set(__self__, "namespace", namespace)
249
+
250
+ @property
251
+ @pulumi.getter(name="allowRoleExtKeyUsage")
252
+ def allow_role_ext_key_usage(self) -> Optional[pulumi.Input[bool]]:
253
+ """
254
+ Specifies whether the ExtKeyUsage field from a role is used. **Vault 1.14.1+**
255
+ """
256
+ return pulumi.get(self, "allow_role_ext_key_usage")
257
+
258
+ @allow_role_ext_key_usage.setter
259
+ def allow_role_ext_key_usage(self, value: Optional[pulumi.Input[bool]]):
260
+ pulumi.set(self, "allow_role_ext_key_usage", value)
261
+
262
+ @property
263
+ @pulumi.getter(name="allowedIssuers")
264
+ def allowed_issuers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
265
+ """
266
+ Specifies which issuers are allowed for use with ACME.
267
+ """
268
+ return pulumi.get(self, "allowed_issuers")
269
+
270
+ @allowed_issuers.setter
271
+ def allowed_issuers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
272
+ pulumi.set(self, "allowed_issuers", value)
273
+
274
+ @property
275
+ @pulumi.getter(name="allowedRoles")
276
+ def allowed_roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
277
+ """
278
+ Specifies which roles are allowed for use with ACME.
279
+ """
280
+ return pulumi.get(self, "allowed_roles")
281
+
282
+ @allowed_roles.setter
283
+ def allowed_roles(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
284
+ pulumi.set(self, "allowed_roles", value)
285
+
286
+ @property
287
+ @pulumi.getter
288
+ def backend(self) -> Optional[pulumi.Input[str]]:
289
+ """
290
+ The path the PKI secret backend is mounted at, with no leading or trailing `/`s.
291
+ """
292
+ return pulumi.get(self, "backend")
293
+
294
+ @backend.setter
295
+ def backend(self, value: Optional[pulumi.Input[str]]):
296
+ pulumi.set(self, "backend", value)
297
+
298
+ @property
299
+ @pulumi.getter(name="defaultDirectoryPolicy")
300
+ def default_directory_policy(self) -> Optional[pulumi.Input[str]]:
301
+ """
302
+ Specifies the policy to be used for non-role-qualified ACME requests.
303
+ Allowed values are `forbid`, `sign-verbatim`, `role:<role_name>`, `external-policy` or `external-policy:<policy>`.
304
+ """
305
+ return pulumi.get(self, "default_directory_policy")
306
+
307
+ @default_directory_policy.setter
308
+ def default_directory_policy(self, value: Optional[pulumi.Input[str]]):
309
+ pulumi.set(self, "default_directory_policy", value)
310
+
311
+ @property
312
+ @pulumi.getter(name="dnsResolver")
313
+ def dns_resolver(self) -> Optional[pulumi.Input[str]]:
314
+ """
315
+ DNS resolver to use for domain resolution on this mount.
316
+ Must be in the format `<host>:<port>`, with both parts mandatory.
317
+ """
318
+ return pulumi.get(self, "dns_resolver")
319
+
320
+ @dns_resolver.setter
321
+ def dns_resolver(self, value: Optional[pulumi.Input[str]]):
322
+ pulumi.set(self, "dns_resolver", value)
323
+
324
+ @property
325
+ @pulumi.getter(name="eabPolicy")
326
+ def eab_policy(self) -> Optional[pulumi.Input[str]]:
327
+ """
328
+ Specifies the policy to use for external account binding behaviour.
329
+ Allowed values are `not-required`, `new-account-required` or `always-required`.
330
+ """
331
+ return pulumi.get(self, "eab_policy")
332
+
333
+ @eab_policy.setter
334
+ def eab_policy(self, value: Optional[pulumi.Input[str]]):
335
+ pulumi.set(self, "eab_policy", value)
336
+
337
+ @property
338
+ @pulumi.getter
339
+ def enabled(self) -> Optional[pulumi.Input[bool]]:
340
+ """
341
+ Specifies whether ACME is enabled.
342
+ """
343
+ return pulumi.get(self, "enabled")
344
+
345
+ @enabled.setter
346
+ def enabled(self, value: Optional[pulumi.Input[bool]]):
347
+ pulumi.set(self, "enabled", value)
348
+
349
+ @property
350
+ @pulumi.getter(name="maxTtl")
351
+ def max_ttl(self) -> Optional[pulumi.Input[int]]:
352
+ """
353
+ The maximum TTL in seconds for certificates issued by ACME. **Vault 1.17.0+**
354
+ """
355
+ return pulumi.get(self, "max_ttl")
356
+
357
+ @max_ttl.setter
358
+ def max_ttl(self, value: Optional[pulumi.Input[int]]):
359
+ pulumi.set(self, "max_ttl", value)
360
+
361
+ @property
362
+ @pulumi.getter
363
+ def namespace(self) -> Optional[pulumi.Input[str]]:
364
+ """
365
+ The namespace to provision the resource in.
366
+ The value should not contain leading or trailing forward slashes.
367
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
368
+ *Available only for Vault Enterprise*.
369
+ """
370
+ return pulumi.get(self, "namespace")
371
+
372
+ @namespace.setter
373
+ def namespace(self, value: Optional[pulumi.Input[str]]):
374
+ pulumi.set(self, "namespace", value)
375
+
376
+
377
+ class BackendConfigAcme(pulumi.CustomResource):
378
+ @overload
379
+ def __init__(__self__,
380
+ resource_name: str,
381
+ opts: Optional[pulumi.ResourceOptions] = None,
382
+ allow_role_ext_key_usage: Optional[pulumi.Input[bool]] = None,
383
+ allowed_issuers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
384
+ allowed_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
385
+ backend: Optional[pulumi.Input[str]] = None,
386
+ default_directory_policy: Optional[pulumi.Input[str]] = None,
387
+ dns_resolver: Optional[pulumi.Input[str]] = None,
388
+ eab_policy: Optional[pulumi.Input[str]] = None,
389
+ enabled: Optional[pulumi.Input[bool]] = None,
390
+ max_ttl: Optional[pulumi.Input[int]] = None,
391
+ namespace: Optional[pulumi.Input[str]] = None,
392
+ __props__=None):
393
+ """
394
+ Allows setting the ACME server configuration used by specified mount.
395
+
396
+ ## Example Usage
397
+
398
+ ```python
399
+ import pulumi
400
+ import pulumi_vault as vault
401
+
402
+ pki = vault.Mount("pki",
403
+ path="pki",
404
+ type="pki",
405
+ default_lease_ttl_seconds=3600,
406
+ max_lease_ttl_seconds=86400)
407
+ pki_config_cluster = vault.pki_secret.BackendConfigCluster("pki_config_cluster",
408
+ backend=pki.path,
409
+ path="http://127.0.0.1:8200/v1/pki",
410
+ aia_path="http://127.0.0.1:8200/v1/pki")
411
+ example = vault.pki_secret.BackendConfigAcme("example",
412
+ backend=pki.path,
413
+ enabled=True,
414
+ allowed_issuers=["*"],
415
+ allowed_roles=["*"],
416
+ allow_role_ext_key_usage=False,
417
+ default_directory_policy="sign-verbatim",
418
+ dns_resolver="",
419
+ eab_policy="not-required")
420
+ ```
421
+
422
+ ## Import
423
+
424
+ The ACME configuration can be imported using the resource's `id`.
425
+ In the case of the example above the `id` would be `pki/config/acme`,
426
+ where the `pki` component is the resource's `backend`, e.g.
427
+
428
+ ```sh
429
+ $ pulumi import vault:pkiSecret/backendConfigAcme:BackendConfigAcme example pki/config/acme
430
+ ```
431
+
432
+ :param str resource_name: The name of the resource.
433
+ :param pulumi.ResourceOptions opts: Options for the resource.
434
+ :param pulumi.Input[bool] allow_role_ext_key_usage: Specifies whether the ExtKeyUsage field from a role is used. **Vault 1.14.1+**
435
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_issuers: Specifies which issuers are allowed for use with ACME.
436
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_roles: Specifies which roles are allowed for use with ACME.
437
+ :param pulumi.Input[str] backend: The path the PKI secret backend is mounted at, with no leading or trailing `/`s.
438
+ :param pulumi.Input[str] default_directory_policy: Specifies the policy to be used for non-role-qualified ACME requests.
439
+ Allowed values are `forbid`, `sign-verbatim`, `role:<role_name>`, `external-policy` or `external-policy:<policy>`.
440
+ :param pulumi.Input[str] dns_resolver: DNS resolver to use for domain resolution on this mount.
441
+ Must be in the format `<host>:<port>`, with both parts mandatory.
442
+ :param pulumi.Input[str] eab_policy: Specifies the policy to use for external account binding behaviour.
443
+ Allowed values are `not-required`, `new-account-required` or `always-required`.
444
+ :param pulumi.Input[bool] enabled: Specifies whether ACME is enabled.
445
+ :param pulumi.Input[int] max_ttl: The maximum TTL in seconds for certificates issued by ACME. **Vault 1.17.0+**
446
+ :param pulumi.Input[str] namespace: The namespace to provision the resource in.
447
+ The value should not contain leading or trailing forward slashes.
448
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
449
+ *Available only for Vault Enterprise*.
450
+ """
451
+ ...
452
+ @overload
453
+ def __init__(__self__,
454
+ resource_name: str,
455
+ args: BackendConfigAcmeArgs,
456
+ opts: Optional[pulumi.ResourceOptions] = None):
457
+ """
458
+ Allows setting the ACME server configuration used by specified mount.
459
+
460
+ ## Example Usage
461
+
462
+ ```python
463
+ import pulumi
464
+ import pulumi_vault as vault
465
+
466
+ pki = vault.Mount("pki",
467
+ path="pki",
468
+ type="pki",
469
+ default_lease_ttl_seconds=3600,
470
+ max_lease_ttl_seconds=86400)
471
+ pki_config_cluster = vault.pki_secret.BackendConfigCluster("pki_config_cluster",
472
+ backend=pki.path,
473
+ path="http://127.0.0.1:8200/v1/pki",
474
+ aia_path="http://127.0.0.1:8200/v1/pki")
475
+ example = vault.pki_secret.BackendConfigAcme("example",
476
+ backend=pki.path,
477
+ enabled=True,
478
+ allowed_issuers=["*"],
479
+ allowed_roles=["*"],
480
+ allow_role_ext_key_usage=False,
481
+ default_directory_policy="sign-verbatim",
482
+ dns_resolver="",
483
+ eab_policy="not-required")
484
+ ```
485
+
486
+ ## Import
487
+
488
+ The ACME configuration can be imported using the resource's `id`.
489
+ In the case of the example above the `id` would be `pki/config/acme`,
490
+ where the `pki` component is the resource's `backend`, e.g.
491
+
492
+ ```sh
493
+ $ pulumi import vault:pkiSecret/backendConfigAcme:BackendConfigAcme example pki/config/acme
494
+ ```
495
+
496
+ :param str resource_name: The name of the resource.
497
+ :param BackendConfigAcmeArgs args: The arguments to use to populate this resource's properties.
498
+ :param pulumi.ResourceOptions opts: Options for the resource.
499
+ """
500
+ ...
501
+ def __init__(__self__, resource_name: str, *args, **kwargs):
502
+ resource_args, opts = _utilities.get_resource_args_opts(BackendConfigAcmeArgs, pulumi.ResourceOptions, *args, **kwargs)
503
+ if resource_args is not None:
504
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
505
+ else:
506
+ __self__._internal_init(resource_name, *args, **kwargs)
507
+
508
+ def _internal_init(__self__,
509
+ resource_name: str,
510
+ opts: Optional[pulumi.ResourceOptions] = None,
511
+ allow_role_ext_key_usage: Optional[pulumi.Input[bool]] = None,
512
+ allowed_issuers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
513
+ allowed_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
514
+ backend: Optional[pulumi.Input[str]] = None,
515
+ default_directory_policy: Optional[pulumi.Input[str]] = None,
516
+ dns_resolver: Optional[pulumi.Input[str]] = None,
517
+ eab_policy: Optional[pulumi.Input[str]] = None,
518
+ enabled: Optional[pulumi.Input[bool]] = None,
519
+ max_ttl: Optional[pulumi.Input[int]] = None,
520
+ namespace: Optional[pulumi.Input[str]] = None,
521
+ __props__=None):
522
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
523
+ if not isinstance(opts, pulumi.ResourceOptions):
524
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
525
+ if opts.id is None:
526
+ if __props__ is not None:
527
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
528
+ __props__ = BackendConfigAcmeArgs.__new__(BackendConfigAcmeArgs)
529
+
530
+ __props__.__dict__["allow_role_ext_key_usage"] = allow_role_ext_key_usage
531
+ __props__.__dict__["allowed_issuers"] = allowed_issuers
532
+ __props__.__dict__["allowed_roles"] = allowed_roles
533
+ if backend is None and not opts.urn:
534
+ raise TypeError("Missing required property 'backend'")
535
+ __props__.__dict__["backend"] = backend
536
+ __props__.__dict__["default_directory_policy"] = default_directory_policy
537
+ __props__.__dict__["dns_resolver"] = dns_resolver
538
+ __props__.__dict__["eab_policy"] = eab_policy
539
+ if enabled is None and not opts.urn:
540
+ raise TypeError("Missing required property 'enabled'")
541
+ __props__.__dict__["enabled"] = enabled
542
+ __props__.__dict__["max_ttl"] = max_ttl
543
+ __props__.__dict__["namespace"] = namespace
544
+ super(BackendConfigAcme, __self__).__init__(
545
+ 'vault:pkiSecret/backendConfigAcme:BackendConfigAcme',
546
+ resource_name,
547
+ __props__,
548
+ opts)
549
+
550
+ @staticmethod
551
+ def get(resource_name: str,
552
+ id: pulumi.Input[str],
553
+ opts: Optional[pulumi.ResourceOptions] = None,
554
+ allow_role_ext_key_usage: Optional[pulumi.Input[bool]] = None,
555
+ allowed_issuers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
556
+ allowed_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
557
+ backend: Optional[pulumi.Input[str]] = None,
558
+ default_directory_policy: Optional[pulumi.Input[str]] = None,
559
+ dns_resolver: Optional[pulumi.Input[str]] = None,
560
+ eab_policy: Optional[pulumi.Input[str]] = None,
561
+ enabled: Optional[pulumi.Input[bool]] = None,
562
+ max_ttl: Optional[pulumi.Input[int]] = None,
563
+ namespace: Optional[pulumi.Input[str]] = None) -> 'BackendConfigAcme':
564
+ """
565
+ Get an existing BackendConfigAcme resource's state with the given name, id, and optional extra
566
+ properties used to qualify the lookup.
567
+
568
+ :param str resource_name: The unique name of the resulting resource.
569
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
570
+ :param pulumi.ResourceOptions opts: Options for the resource.
571
+ :param pulumi.Input[bool] allow_role_ext_key_usage: Specifies whether the ExtKeyUsage field from a role is used. **Vault 1.14.1+**
572
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_issuers: Specifies which issuers are allowed for use with ACME.
573
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_roles: Specifies which roles are allowed for use with ACME.
574
+ :param pulumi.Input[str] backend: The path the PKI secret backend is mounted at, with no leading or trailing `/`s.
575
+ :param pulumi.Input[str] default_directory_policy: Specifies the policy to be used for non-role-qualified ACME requests.
576
+ Allowed values are `forbid`, `sign-verbatim`, `role:<role_name>`, `external-policy` or `external-policy:<policy>`.
577
+ :param pulumi.Input[str] dns_resolver: DNS resolver to use for domain resolution on this mount.
578
+ Must be in the format `<host>:<port>`, with both parts mandatory.
579
+ :param pulumi.Input[str] eab_policy: Specifies the policy to use for external account binding behaviour.
580
+ Allowed values are `not-required`, `new-account-required` or `always-required`.
581
+ :param pulumi.Input[bool] enabled: Specifies whether ACME is enabled.
582
+ :param pulumi.Input[int] max_ttl: The maximum TTL in seconds for certificates issued by ACME. **Vault 1.17.0+**
583
+ :param pulumi.Input[str] namespace: The namespace to provision the resource in.
584
+ The value should not contain leading or trailing forward slashes.
585
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
586
+ *Available only for Vault Enterprise*.
587
+ """
588
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
589
+
590
+ __props__ = _BackendConfigAcmeState.__new__(_BackendConfigAcmeState)
591
+
592
+ __props__.__dict__["allow_role_ext_key_usage"] = allow_role_ext_key_usage
593
+ __props__.__dict__["allowed_issuers"] = allowed_issuers
594
+ __props__.__dict__["allowed_roles"] = allowed_roles
595
+ __props__.__dict__["backend"] = backend
596
+ __props__.__dict__["default_directory_policy"] = default_directory_policy
597
+ __props__.__dict__["dns_resolver"] = dns_resolver
598
+ __props__.__dict__["eab_policy"] = eab_policy
599
+ __props__.__dict__["enabled"] = enabled
600
+ __props__.__dict__["max_ttl"] = max_ttl
601
+ __props__.__dict__["namespace"] = namespace
602
+ return BackendConfigAcme(resource_name, opts=opts, __props__=__props__)
603
+
604
+ @property
605
+ @pulumi.getter(name="allowRoleExtKeyUsage")
606
+ def allow_role_ext_key_usage(self) -> pulumi.Output[Optional[bool]]:
607
+ """
608
+ Specifies whether the ExtKeyUsage field from a role is used. **Vault 1.14.1+**
609
+ """
610
+ return pulumi.get(self, "allow_role_ext_key_usage")
611
+
612
+ @property
613
+ @pulumi.getter(name="allowedIssuers")
614
+ def allowed_issuers(self) -> pulumi.Output[Sequence[str]]:
615
+ """
616
+ Specifies which issuers are allowed for use with ACME.
617
+ """
618
+ return pulumi.get(self, "allowed_issuers")
619
+
620
+ @property
621
+ @pulumi.getter(name="allowedRoles")
622
+ def allowed_roles(self) -> pulumi.Output[Sequence[str]]:
623
+ """
624
+ Specifies which roles are allowed for use with ACME.
625
+ """
626
+ return pulumi.get(self, "allowed_roles")
627
+
628
+ @property
629
+ @pulumi.getter
630
+ def backend(self) -> pulumi.Output[str]:
631
+ """
632
+ The path the PKI secret backend is mounted at, with no leading or trailing `/`s.
633
+ """
634
+ return pulumi.get(self, "backend")
635
+
636
+ @property
637
+ @pulumi.getter(name="defaultDirectoryPolicy")
638
+ def default_directory_policy(self) -> pulumi.Output[str]:
639
+ """
640
+ Specifies the policy to be used for non-role-qualified ACME requests.
641
+ Allowed values are `forbid`, `sign-verbatim`, `role:<role_name>`, `external-policy` or `external-policy:<policy>`.
642
+ """
643
+ return pulumi.get(self, "default_directory_policy")
644
+
645
+ @property
646
+ @pulumi.getter(name="dnsResolver")
647
+ def dns_resolver(self) -> pulumi.Output[Optional[str]]:
648
+ """
649
+ DNS resolver to use for domain resolution on this mount.
650
+ Must be in the format `<host>:<port>`, with both parts mandatory.
651
+ """
652
+ return pulumi.get(self, "dns_resolver")
653
+
654
+ @property
655
+ @pulumi.getter(name="eabPolicy")
656
+ def eab_policy(self) -> pulumi.Output[str]:
657
+ """
658
+ Specifies the policy to use for external account binding behaviour.
659
+ Allowed values are `not-required`, `new-account-required` or `always-required`.
660
+ """
661
+ return pulumi.get(self, "eab_policy")
662
+
663
+ @property
664
+ @pulumi.getter
665
+ def enabled(self) -> pulumi.Output[bool]:
666
+ """
667
+ Specifies whether ACME is enabled.
668
+ """
669
+ return pulumi.get(self, "enabled")
670
+
671
+ @property
672
+ @pulumi.getter(name="maxTtl")
673
+ def max_ttl(self) -> pulumi.Output[int]:
674
+ """
675
+ The maximum TTL in seconds for certificates issued by ACME. **Vault 1.17.0+**
676
+ """
677
+ return pulumi.get(self, "max_ttl")
678
+
679
+ @property
680
+ @pulumi.getter
681
+ def namespace(self) -> pulumi.Output[Optional[str]]:
682
+ """
683
+ The namespace to provision the resource in.
684
+ The value should not contain leading or trailing forward slashes.
685
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
686
+ *Available only for Vault Enterprise*.
687
+ """
688
+ return pulumi.get(self, "namespace")
689
+