pulumi-vault 6.2.0a1718953130__py3-none-any.whl → 6.3.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 (41) hide show
  1. pulumi_vault/__init__.py +26 -0
  2. pulumi_vault/_inputs.py +20 -0
  3. pulumi_vault/_utilities.py +40 -4
  4. pulumi_vault/auth_backend.py +47 -0
  5. pulumi_vault/aws/auth_backend_client.py +247 -7
  6. pulumi_vault/aws/secret_backend_role.py +169 -0
  7. pulumi_vault/azure/auth_backend_config.py +133 -0
  8. pulumi_vault/azure/backend.py +197 -0
  9. pulumi_vault/database/secrets_mount.py +282 -0
  10. pulumi_vault/gcp/auth_backend.py +244 -0
  11. pulumi_vault/gcp/secret_backend.py +271 -3
  12. pulumi_vault/generic/endpoint.py +6 -6
  13. pulumi_vault/identity/get_entity.py +2 -2
  14. pulumi_vault/jwt/auth_backend_role.py +28 -35
  15. pulumi_vault/kubernetes/secret_backend.py +282 -0
  16. pulumi_vault/ldap/secret_backend.py +282 -0
  17. pulumi_vault/mount.py +331 -0
  18. pulumi_vault/okta/auth_backend.py +441 -0
  19. pulumi_vault/outputs.py +20 -0
  20. pulumi_vault/pkisecret/__init__.py +2 -0
  21. pulumi_vault/pkisecret/_inputs.py +40 -0
  22. pulumi_vault/pkisecret/backend_config_est.py +614 -0
  23. pulumi_vault/pkisecret/get_backend_config_est.py +233 -0
  24. pulumi_vault/pkisecret/outputs.py +64 -0
  25. pulumi_vault/pkisecret/secret_backend_cert.py +2 -2
  26. pulumi_vault/pkisecret/secret_backend_config_ca.py +2 -2
  27. pulumi_vault/pkisecret/secret_backend_intermediate_cert_request.py +2 -2
  28. pulumi_vault/pkisecret/secret_backend_root_cert.py +2 -2
  29. pulumi_vault/pkisecret/secret_backend_root_sign_intermediate.py +2 -2
  30. pulumi_vault/pkisecret/secret_backend_sign.py +2 -2
  31. pulumi_vault/plugin.py +590 -0
  32. pulumi_vault/plugin_pinned_version.py +293 -0
  33. pulumi_vault/provider.py +1 -3
  34. pulumi_vault/pulumi-plugin.json +1 -1
  35. pulumi_vault/quota_lease_count.py +47 -0
  36. pulumi_vault/quota_rate_limit.py +47 -0
  37. pulumi_vault/ssh/secret_backend_ca.py +94 -0
  38. {pulumi_vault-6.2.0a1718953130.dist-info → pulumi_vault-6.3.0.dist-info}/METADATA +1 -1
  39. {pulumi_vault-6.2.0a1718953130.dist-info → pulumi_vault-6.3.0.dist-info}/RECORD +41 -37
  40. {pulumi_vault-6.2.0a1718953130.dist-info → pulumi_vault-6.3.0.dist-info}/WHEEL +1 -1
  41. {pulumi_vault-6.2.0a1718953130.dist-info → pulumi_vault-6.3.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,233 @@
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 pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from .. import _utilities
11
+ from . import outputs
12
+
13
+ __all__ = [
14
+ 'GetBackendConfigEstResult',
15
+ 'AwaitableGetBackendConfigEstResult',
16
+ 'get_backend_config_est',
17
+ 'get_backend_config_est_output',
18
+ ]
19
+
20
+ @pulumi.output_type
21
+ class GetBackendConfigEstResult:
22
+ """
23
+ A collection of values returned by getBackendConfigEst.
24
+ """
25
+ def __init__(__self__, audit_fields=None, authenticators=None, backend=None, default_mount=None, default_path_policy=None, enable_sentinel_parsing=None, enabled=None, id=None, label_to_path_policy=None, last_updated=None, namespace=None):
26
+ if audit_fields and not isinstance(audit_fields, list):
27
+ raise TypeError("Expected argument 'audit_fields' to be a list")
28
+ pulumi.set(__self__, "audit_fields", audit_fields)
29
+ if authenticators and not isinstance(authenticators, list):
30
+ raise TypeError("Expected argument 'authenticators' to be a list")
31
+ pulumi.set(__self__, "authenticators", authenticators)
32
+ if backend and not isinstance(backend, str):
33
+ raise TypeError("Expected argument 'backend' to be a str")
34
+ pulumi.set(__self__, "backend", backend)
35
+ if default_mount and not isinstance(default_mount, bool):
36
+ raise TypeError("Expected argument 'default_mount' to be a bool")
37
+ pulumi.set(__self__, "default_mount", default_mount)
38
+ if default_path_policy and not isinstance(default_path_policy, str):
39
+ raise TypeError("Expected argument 'default_path_policy' to be a str")
40
+ pulumi.set(__self__, "default_path_policy", default_path_policy)
41
+ if enable_sentinel_parsing and not isinstance(enable_sentinel_parsing, bool):
42
+ raise TypeError("Expected argument 'enable_sentinel_parsing' to be a bool")
43
+ pulumi.set(__self__, "enable_sentinel_parsing", enable_sentinel_parsing)
44
+ if enabled and not isinstance(enabled, bool):
45
+ raise TypeError("Expected argument 'enabled' to be a bool")
46
+ pulumi.set(__self__, "enabled", enabled)
47
+ if id and not isinstance(id, str):
48
+ raise TypeError("Expected argument 'id' to be a str")
49
+ pulumi.set(__self__, "id", id)
50
+ if label_to_path_policy and not isinstance(label_to_path_policy, dict):
51
+ raise TypeError("Expected argument 'label_to_path_policy' to be a dict")
52
+ pulumi.set(__self__, "label_to_path_policy", label_to_path_policy)
53
+ if last_updated and not isinstance(last_updated, str):
54
+ raise TypeError("Expected argument 'last_updated' to be a str")
55
+ pulumi.set(__self__, "last_updated", last_updated)
56
+ if namespace and not isinstance(namespace, str):
57
+ raise TypeError("Expected argument 'namespace' to be a str")
58
+ pulumi.set(__self__, "namespace", namespace)
59
+
60
+ @property
61
+ @pulumi.getter(name="auditFields")
62
+ def audit_fields(self) -> Sequence[str]:
63
+ """
64
+ Fields parsed from the CSR that appear in the audit and can be used by sentinel policies.
65
+ """
66
+ return pulumi.get(self, "audit_fields")
67
+
68
+ @property
69
+ @pulumi.getter
70
+ def authenticators(self) -> Sequence['outputs.GetBackendConfigEstAuthenticatorResult']:
71
+ """
72
+ Lists the mount accessors EST should delegate authentication requests towards (see below for nested schema).
73
+ """
74
+ return pulumi.get(self, "authenticators")
75
+
76
+ @property
77
+ @pulumi.getter
78
+ def backend(self) -> str:
79
+ return pulumi.get(self, "backend")
80
+
81
+ @property
82
+ @pulumi.getter(name="defaultMount")
83
+ def default_mount(self) -> bool:
84
+ """
85
+ If set, this mount is registered as the default `.well-known/est` URL path. Only a single mount can enable this across a Vault cluster.
86
+ """
87
+ return pulumi.get(self, "default_mount")
88
+
89
+ @property
90
+ @pulumi.getter(name="defaultPathPolicy")
91
+ def default_path_policy(self) -> str:
92
+ """
93
+ Required to be set if default_mount is enabled. Specifies the behavior for requests using the default EST label. Can be sign-verbatim or a role given by role:<role_name>.
94
+ """
95
+ return pulumi.get(self, "default_path_policy")
96
+
97
+ @property
98
+ @pulumi.getter(name="enableSentinelParsing")
99
+ def enable_sentinel_parsing(self) -> bool:
100
+ """
101
+ If set, parse out fields from the provided CSR making them available for Sentinel policies.
102
+ """
103
+ return pulumi.get(self, "enable_sentinel_parsing")
104
+
105
+ @property
106
+ @pulumi.getter
107
+ def enabled(self) -> bool:
108
+ """
109
+ Specifies whether EST is enabled.
110
+ """
111
+ return pulumi.get(self, "enabled")
112
+
113
+ @property
114
+ @pulumi.getter
115
+ def id(self) -> str:
116
+ """
117
+ The provider-assigned unique ID for this managed resource.
118
+ """
119
+ return pulumi.get(self, "id")
120
+
121
+ @property
122
+ @pulumi.getter(name="labelToPathPolicy")
123
+ def label_to_path_policy(self) -> Mapping[str, Any]:
124
+ """
125
+ A pairing of an EST label with the redirected behavior for requests hitting that role. The path policy can be sign-verbatim or a role given by role:<role_name>. Labels must be unique across Vault cluster, and will register .well-known/est/<label> URL paths.
126
+ """
127
+ return pulumi.get(self, "label_to_path_policy")
128
+
129
+ @property
130
+ @pulumi.getter(name="lastUpdated")
131
+ def last_updated(self) -> str:
132
+ """
133
+ A read-only timestamp representing the last time the configuration was updated.
134
+ """
135
+ return pulumi.get(self, "last_updated")
136
+
137
+ @property
138
+ @pulumi.getter
139
+ def namespace(self) -> Optional[str]:
140
+ return pulumi.get(self, "namespace")
141
+
142
+
143
+ class AwaitableGetBackendConfigEstResult(GetBackendConfigEstResult):
144
+ # pylint: disable=using-constant-test
145
+ def __await__(self):
146
+ if False:
147
+ yield self
148
+ return GetBackendConfigEstResult(
149
+ audit_fields=self.audit_fields,
150
+ authenticators=self.authenticators,
151
+ backend=self.backend,
152
+ default_mount=self.default_mount,
153
+ default_path_policy=self.default_path_policy,
154
+ enable_sentinel_parsing=self.enable_sentinel_parsing,
155
+ enabled=self.enabled,
156
+ id=self.id,
157
+ label_to_path_policy=self.label_to_path_policy,
158
+ last_updated=self.last_updated,
159
+ namespace=self.namespace)
160
+
161
+
162
+ def get_backend_config_est(backend: Optional[str] = None,
163
+ namespace: Optional[str] = None,
164
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetBackendConfigEstResult:
165
+ """
166
+ ## Example Usage
167
+
168
+ ```python
169
+ import pulumi
170
+ import pulumi_vault as vault
171
+
172
+ pki = vault.Mount("pki",
173
+ path="pki",
174
+ type="pki",
175
+ description="PKI secret engine mount")
176
+ est_config = vault.pkiSecret.get_backend_config_est_output(backend=pki.path)
177
+ ```
178
+
179
+
180
+ :param str backend: The path to the PKI secret backend to
181
+ read the EST configuration from, with no leading or trailing `/`s.
182
+ :param str namespace: The namespace of the target resource.
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
+ """
187
+ __args__ = dict()
188
+ __args__['backend'] = backend
189
+ __args__['namespace'] = namespace
190
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
191
+ __ret__ = pulumi.runtime.invoke('vault:pkiSecret/getBackendConfigEst:getBackendConfigEst', __args__, opts=opts, typ=GetBackendConfigEstResult).value
192
+
193
+ return AwaitableGetBackendConfigEstResult(
194
+ audit_fields=pulumi.get(__ret__, 'audit_fields'),
195
+ authenticators=pulumi.get(__ret__, 'authenticators'),
196
+ backend=pulumi.get(__ret__, 'backend'),
197
+ default_mount=pulumi.get(__ret__, 'default_mount'),
198
+ default_path_policy=pulumi.get(__ret__, 'default_path_policy'),
199
+ enable_sentinel_parsing=pulumi.get(__ret__, 'enable_sentinel_parsing'),
200
+ enabled=pulumi.get(__ret__, 'enabled'),
201
+ id=pulumi.get(__ret__, 'id'),
202
+ label_to_path_policy=pulumi.get(__ret__, 'label_to_path_policy'),
203
+ last_updated=pulumi.get(__ret__, 'last_updated'),
204
+ namespace=pulumi.get(__ret__, 'namespace'))
205
+
206
+
207
+ @_utilities.lift_output_func(get_backend_config_est)
208
+ def get_backend_config_est_output(backend: Optional[pulumi.Input[str]] = None,
209
+ namespace: Optional[pulumi.Input[Optional[str]]] = None,
210
+ opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetBackendConfigEstResult]:
211
+ """
212
+ ## Example Usage
213
+
214
+ ```python
215
+ import pulumi
216
+ import pulumi_vault as vault
217
+
218
+ pki = vault.Mount("pki",
219
+ path="pki",
220
+ type="pki",
221
+ description="PKI secret engine mount")
222
+ est_config = vault.pkiSecret.get_backend_config_est_output(backend=pki.path)
223
+ ```
224
+
225
+
226
+ :param str backend: The path to the PKI secret backend to
227
+ read the EST configuration from, with no leading or trailing `/`s.
228
+ :param str namespace: The namespace of the target resource.
229
+ The value should not contain leading or trailing forward slashes.
230
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
231
+ *Available only for Vault Enterprise*.
232
+ """
233
+ ...
@@ -10,9 +10,42 @@ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
10
  from .. import _utilities
11
11
 
12
12
  __all__ = [
13
+ 'BackendConfigEstAuthenticators',
13
14
  'SecretBackendRolePolicyIdentifier',
15
+ 'GetBackendConfigEstAuthenticatorResult',
14
16
  ]
15
17
 
18
+ @pulumi.output_type
19
+ class BackendConfigEstAuthenticators(dict):
20
+ def __init__(__self__, *,
21
+ cert: Optional[Mapping[str, Any]] = None,
22
+ userpass: Optional[Mapping[str, Any]] = None):
23
+ """
24
+ :param Mapping[str, Any] cert: "The accessor (required) and cert_role (optional) properties for cert auth backends".
25
+ :param Mapping[str, Any] userpass: "The accessor (required) property for user pass auth backends".
26
+ """
27
+ if cert is not None:
28
+ pulumi.set(__self__, "cert", cert)
29
+ if userpass is not None:
30
+ pulumi.set(__self__, "userpass", userpass)
31
+
32
+ @property
33
+ @pulumi.getter
34
+ def cert(self) -> Optional[Mapping[str, Any]]:
35
+ """
36
+ "The accessor (required) and cert_role (optional) properties for cert auth backends".
37
+ """
38
+ return pulumi.get(self, "cert")
39
+
40
+ @property
41
+ @pulumi.getter
42
+ def userpass(self) -> Optional[Mapping[str, Any]]:
43
+ """
44
+ "The accessor (required) property for user pass auth backends".
45
+ """
46
+ return pulumi.get(self, "userpass")
47
+
48
+
16
49
  @pulumi.output_type
17
50
  class SecretBackendRolePolicyIdentifier(dict):
18
51
  def __init__(__self__, *,
@@ -59,3 +92,34 @@ class SecretBackendRolePolicyIdentifier(dict):
59
92
  return pulumi.get(self, "notice")
60
93
 
61
94
 
95
+ @pulumi.output_type
96
+ class GetBackendConfigEstAuthenticatorResult(dict):
97
+ def __init__(__self__, *,
98
+ cert: Optional[Mapping[str, Any]] = None,
99
+ userpass: Optional[Mapping[str, Any]] = None):
100
+ """
101
+ :param Mapping[str, Any] cert: "The accessor and cert_role properties for cert auth backends".
102
+ :param Mapping[str, Any] userpass: "The accessor property for user pass auth backends".
103
+ """
104
+ if cert is not None:
105
+ pulumi.set(__self__, "cert", cert)
106
+ if userpass is not None:
107
+ pulumi.set(__self__, "userpass", userpass)
108
+
109
+ @property
110
+ @pulumi.getter
111
+ def cert(self) -> Optional[Mapping[str, Any]]:
112
+ """
113
+ "The accessor and cert_role properties for cert auth backends".
114
+ """
115
+ return pulumi.get(self, "cert")
116
+
117
+ @property
118
+ @pulumi.getter
119
+ def userpass(self) -> Optional[Mapping[str, Any]]:
120
+ """
121
+ "The accessor property for user pass auth backends".
122
+ """
123
+ return pulumi.get(self, "userpass")
124
+
125
+
@@ -743,7 +743,7 @@ class SecretBackendCert(pulumi.CustomResource):
743
743
  backend=intermediate["path"],
744
744
  name=test["name"],
745
745
  common_name="app.my.domain",
746
- opts=pulumi.ResourceOptions(depends_on=[admin]))
746
+ opts = pulumi.ResourceOptions(depends_on=[admin]))
747
747
  ```
748
748
 
749
749
  :param str resource_name: The name of the resource.
@@ -786,7 +786,7 @@ class SecretBackendCert(pulumi.CustomResource):
786
786
  backend=intermediate["path"],
787
787
  name=test["name"],
788
788
  common_name="app.my.domain",
789
- opts=pulumi.ResourceOptions(depends_on=[admin]))
789
+ opts = pulumi.ResourceOptions(depends_on=[admin]))
790
790
  ```
791
791
 
792
792
  :param str resource_name: The name of the resource.
@@ -200,7 +200,7 @@ class SecretBackendConfigCa(pulumi.CustomResource):
200
200
  MUR4qFxeUOW/GJGccMUd
201
201
  -----END CERTIFICATE-----
202
202
  \"\"\",
203
- opts=pulumi.ResourceOptions(depends_on=[intermediate_vault_mount]))
203
+ opts = pulumi.ResourceOptions(depends_on=[intermediate_vault_mount]))
204
204
  ```
205
205
 
206
206
  :param str resource_name: The name of the resource.
@@ -276,7 +276,7 @@ class SecretBackendConfigCa(pulumi.CustomResource):
276
276
  MUR4qFxeUOW/GJGccMUd
277
277
  -----END CERTIFICATE-----
278
278
  \"\"\",
279
- opts=pulumi.ResourceOptions(depends_on=[intermediate_vault_mount]))
279
+ opts = pulumi.ResourceOptions(depends_on=[intermediate_vault_mount]))
280
280
  ```
281
281
 
282
282
  :param str resource_name: The name of the resource.
@@ -970,7 +970,7 @@ class SecretBackendIntermediateCertRequest(pulumi.CustomResource):
970
970
  backend=pki["path"],
971
971
  type="internal",
972
972
  common_name="app.my.domain",
973
- opts=pulumi.ResourceOptions(depends_on=[pki]))
973
+ opts = pulumi.ResourceOptions(depends_on=[pki]))
974
974
  ```
975
975
 
976
976
  :param str resource_name: The name of the resource.
@@ -1028,7 +1028,7 @@ class SecretBackendIntermediateCertRequest(pulumi.CustomResource):
1028
1028
  backend=pki["path"],
1029
1029
  type="internal",
1030
1030
  common_name="app.my.domain",
1031
- opts=pulumi.ResourceOptions(depends_on=[pki]))
1031
+ opts = pulumi.ResourceOptions(depends_on=[pki]))
1032
1032
  ```
1033
1033
 
1034
1034
  :param str resource_name: The name of the resource.
@@ -1089,7 +1089,7 @@ class SecretBackendRootCert(pulumi.CustomResource):
1089
1089
  exclude_cn_from_sans=True,
1090
1090
  ou="My OU",
1091
1091
  organization="My organization",
1092
- opts=pulumi.ResourceOptions(depends_on=[pki]))
1092
+ opts = pulumi.ResourceOptions(depends_on=[pki]))
1093
1093
  ```
1094
1094
 
1095
1095
  :param str resource_name: The name of the resource.
@@ -1157,7 +1157,7 @@ class SecretBackendRootCert(pulumi.CustomResource):
1157
1157
  exclude_cn_from_sans=True,
1158
1158
  ou="My OU",
1159
1159
  organization="My organization",
1160
- opts=pulumi.ResourceOptions(depends_on=[pki]))
1160
+ opts = pulumi.ResourceOptions(depends_on=[pki]))
1161
1161
  ```
1162
1162
 
1163
1163
  :param str resource_name: The name of the resource.
@@ -911,7 +911,7 @@ class SecretBackendRootSignIntermediate(pulumi.CustomResource):
911
911
  exclude_cn_from_sans=True,
912
912
  ou="My OU",
913
913
  organization="My organization",
914
- opts=pulumi.ResourceOptions(depends_on=[intermediate]))
914
+ opts = pulumi.ResourceOptions(depends_on=[intermediate]))
915
915
  ```
916
916
 
917
917
  :param str resource_name: The name of the resource.
@@ -968,7 +968,7 @@ class SecretBackendRootSignIntermediate(pulumi.CustomResource):
968
968
  exclude_cn_from_sans=True,
969
969
  ou="My OU",
970
970
  organization="My organization",
971
- opts=pulumi.ResourceOptions(depends_on=[intermediate]))
971
+ opts = pulumi.ResourceOptions(depends_on=[intermediate]))
972
972
  ```
973
973
 
974
974
  :param str resource_name: The name of the resource.
@@ -684,7 +684,7 @@ class SecretBackendSign(pulumi.CustomResource):
684
684
  -----END CERTIFICATE REQUEST-----
685
685
  \"\"\",
686
686
  common_name="test.my.domain",
687
- opts=pulumi.ResourceOptions(depends_on=[admin]))
687
+ opts = pulumi.ResourceOptions(depends_on=[admin]))
688
688
  ```
689
689
 
690
690
  :param str resource_name: The name of the resource.
@@ -756,7 +756,7 @@ class SecretBackendSign(pulumi.CustomResource):
756
756
  -----END CERTIFICATE REQUEST-----
757
757
  \"\"\",
758
758
  common_name="test.my.domain",
759
- opts=pulumi.ResourceOptions(depends_on=[admin]))
759
+ opts = pulumi.ResourceOptions(depends_on=[admin]))
760
760
  ```
761
761
 
762
762
  :param str resource_name: The name of the resource.