pulumi-vault 5.19.0a1705474292__py3-none-any.whl → 5.20.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 +59 -0
  2. pulumi_vault/_inputs.py +380 -0
  3. pulumi_vault/_utilities.py +2 -2
  4. pulumi_vault/aws/secret_backend.py +188 -0
  5. pulumi_vault/aws/secret_backend_static_role.py +2 -2
  6. pulumi_vault/azure/backend.py +7 -21
  7. pulumi_vault/azure/backend_role.py +111 -0
  8. pulumi_vault/config/__init__.pyi +0 -3
  9. pulumi_vault/config/outputs.py +380 -0
  10. pulumi_vault/config/vars.py +0 -3
  11. pulumi_vault/consul/secret_backend.py +7 -35
  12. pulumi_vault/database/_inputs.py +536 -0
  13. pulumi_vault/database/outputs.py +483 -3
  14. pulumi_vault/gcp/_inputs.py +162 -4
  15. pulumi_vault/gcp/auth_backend.py +64 -3
  16. pulumi_vault/gcp/outputs.py +161 -4
  17. pulumi_vault/get_raft_autopilot_state.py +0 -12
  18. pulumi_vault/identity/group_alias.py +6 -6
  19. pulumi_vault/kubernetes/auth_backend_config.py +7 -7
  20. pulumi_vault/kubernetes/secret_backend_role.py +8 -4
  21. pulumi_vault/kv/_inputs.py +12 -0
  22. pulumi_vault/kv/outputs.py +12 -0
  23. pulumi_vault/ldap/secret_backend_dynamic_role.py +2 -2
  24. pulumi_vault/ldap/secret_backend_static_role.py +2 -2
  25. pulumi_vault/managed/_inputs.py +12 -0
  26. pulumi_vault/managed/keys.py +20 -0
  27. pulumi_vault/managed/outputs.py +12 -0
  28. pulumi_vault/mongodbatlas/secret_role.py +2 -2
  29. pulumi_vault/namespace.py +46 -14
  30. pulumi_vault/pkisecret/secret_backend_config_issuers.py +0 -6
  31. pulumi_vault/pkisecret/secret_backend_issuer.py +0 -10
  32. pulumi_vault/pkisecret/secret_backend_role.py +54 -7
  33. pulumi_vault/rabbitmq/_inputs.py +36 -0
  34. pulumi_vault/rabbitmq/outputs.py +36 -0
  35. pulumi_vault/saml/auth_backend_role.py +7 -14
  36. pulumi_vault/secrets/__init__.py +14 -0
  37. pulumi_vault/secrets/sync_association.py +464 -0
  38. pulumi_vault/secrets/sync_aws_destination.py +564 -0
  39. pulumi_vault/secrets/sync_azure_destination.py +674 -0
  40. pulumi_vault/secrets/sync_config.py +297 -0
  41. pulumi_vault/secrets/sync_gcp_destination.py +438 -0
  42. pulumi_vault/secrets/sync_gh_destination.py +511 -0
  43. pulumi_vault/secrets/sync_vercel_destination.py +541 -0
  44. pulumi_vault/ssh/secret_backend_role.py +7 -14
  45. {pulumi_vault-5.19.0a1705474292.dist-info → pulumi_vault-5.20.0.dist-info}/METADATA +2 -2
  46. {pulumi_vault-5.19.0a1705474292.dist-info → pulumi_vault-5.20.0.dist-info}/RECORD +48 -40
  47. {pulumi_vault-5.19.0a1705474292.dist-info → pulumi_vault-5.20.0.dist-info}/WHEEL +0 -0
  48. {pulumi_vault-5.19.0a1705474292.dist-info → pulumi_vault-5.20.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,464 @@
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
+
12
+ __all__ = ['SyncAssociationArgs', 'SyncAssociation']
13
+
14
+ @pulumi.input_type
15
+ class SyncAssociationArgs:
16
+ def __init__(__self__, *,
17
+ mount: pulumi.Input[str],
18
+ secret_name: pulumi.Input[str],
19
+ type: pulumi.Input[str],
20
+ name: Optional[pulumi.Input[str]] = None,
21
+ namespace: Optional[pulumi.Input[str]] = None):
22
+ """
23
+ The set of arguments for constructing a SyncAssociation resource.
24
+ :param pulumi.Input[str] mount: Specifies the mount where the secret is located.
25
+ :param pulumi.Input[str] secret_name: Specifies the name of the secret to synchronize.
26
+ :param pulumi.Input[str] type: Specifies the destination type.
27
+ :param pulumi.Input[str] name: Specifies the name of the destination.
28
+ :param pulumi.Input[str] namespace: The namespace to provision the resource in.
29
+ The value should not contain leading or trailing forward slashes.
30
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
31
+ """
32
+ pulumi.set(__self__, "mount", mount)
33
+ pulumi.set(__self__, "secret_name", secret_name)
34
+ pulumi.set(__self__, "type", type)
35
+ if name is not None:
36
+ pulumi.set(__self__, "name", name)
37
+ if namespace is not None:
38
+ pulumi.set(__self__, "namespace", namespace)
39
+
40
+ @property
41
+ @pulumi.getter
42
+ def mount(self) -> pulumi.Input[str]:
43
+ """
44
+ Specifies the mount where the secret is located.
45
+ """
46
+ return pulumi.get(self, "mount")
47
+
48
+ @mount.setter
49
+ def mount(self, value: pulumi.Input[str]):
50
+ pulumi.set(self, "mount", value)
51
+
52
+ @property
53
+ @pulumi.getter(name="secretName")
54
+ def secret_name(self) -> pulumi.Input[str]:
55
+ """
56
+ Specifies the name of the secret to synchronize.
57
+ """
58
+ return pulumi.get(self, "secret_name")
59
+
60
+ @secret_name.setter
61
+ def secret_name(self, value: pulumi.Input[str]):
62
+ pulumi.set(self, "secret_name", value)
63
+
64
+ @property
65
+ @pulumi.getter
66
+ def type(self) -> pulumi.Input[str]:
67
+ """
68
+ Specifies the destination type.
69
+ """
70
+ return pulumi.get(self, "type")
71
+
72
+ @type.setter
73
+ def type(self, value: pulumi.Input[str]):
74
+ pulumi.set(self, "type", value)
75
+
76
+ @property
77
+ @pulumi.getter
78
+ def name(self) -> Optional[pulumi.Input[str]]:
79
+ """
80
+ Specifies the name of the destination.
81
+ """
82
+ return pulumi.get(self, "name")
83
+
84
+ @name.setter
85
+ def name(self, value: Optional[pulumi.Input[str]]):
86
+ pulumi.set(self, "name", value)
87
+
88
+ @property
89
+ @pulumi.getter
90
+ def namespace(self) -> Optional[pulumi.Input[str]]:
91
+ """
92
+ The namespace to provision the resource in.
93
+ The value should not contain leading or trailing forward slashes.
94
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
95
+ """
96
+ return pulumi.get(self, "namespace")
97
+
98
+ @namespace.setter
99
+ def namespace(self, value: Optional[pulumi.Input[str]]):
100
+ pulumi.set(self, "namespace", value)
101
+
102
+
103
+ @pulumi.input_type
104
+ class _SyncAssociationState:
105
+ def __init__(__self__, *,
106
+ mount: Optional[pulumi.Input[str]] = None,
107
+ name: Optional[pulumi.Input[str]] = None,
108
+ namespace: Optional[pulumi.Input[str]] = None,
109
+ secret_name: Optional[pulumi.Input[str]] = None,
110
+ sync_status: Optional[pulumi.Input[str]] = None,
111
+ type: Optional[pulumi.Input[str]] = None,
112
+ updated_at: Optional[pulumi.Input[str]] = None):
113
+ """
114
+ Input properties used for looking up and filtering SyncAssociation resources.
115
+ :param pulumi.Input[str] mount: Specifies the mount where the secret is located.
116
+ :param pulumi.Input[str] name: Specifies the name of the destination.
117
+ :param pulumi.Input[str] namespace: The namespace to provision the resource in.
118
+ The value should not contain leading or trailing forward slashes.
119
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
120
+ :param pulumi.Input[str] secret_name: Specifies the name of the secret to synchronize.
121
+ :param pulumi.Input[str] sync_status: Specifies the status of the association (for eg. `SYNCED`).
122
+ :param pulumi.Input[str] type: Specifies the destination type.
123
+ :param pulumi.Input[str] updated_at: Duration string specifying when the secret was last updated.
124
+ """
125
+ if mount is not None:
126
+ pulumi.set(__self__, "mount", mount)
127
+ if name is not None:
128
+ pulumi.set(__self__, "name", name)
129
+ if namespace is not None:
130
+ pulumi.set(__self__, "namespace", namespace)
131
+ if secret_name is not None:
132
+ pulumi.set(__self__, "secret_name", secret_name)
133
+ if sync_status is not None:
134
+ pulumi.set(__self__, "sync_status", sync_status)
135
+ if type is not None:
136
+ pulumi.set(__self__, "type", type)
137
+ if updated_at is not None:
138
+ pulumi.set(__self__, "updated_at", updated_at)
139
+
140
+ @property
141
+ @pulumi.getter
142
+ def mount(self) -> Optional[pulumi.Input[str]]:
143
+ """
144
+ Specifies the mount where the secret is located.
145
+ """
146
+ return pulumi.get(self, "mount")
147
+
148
+ @mount.setter
149
+ def mount(self, value: Optional[pulumi.Input[str]]):
150
+ pulumi.set(self, "mount", value)
151
+
152
+ @property
153
+ @pulumi.getter
154
+ def name(self) -> Optional[pulumi.Input[str]]:
155
+ """
156
+ Specifies the name of the destination.
157
+ """
158
+ return pulumi.get(self, "name")
159
+
160
+ @name.setter
161
+ def name(self, value: Optional[pulumi.Input[str]]):
162
+ pulumi.set(self, "name", value)
163
+
164
+ @property
165
+ @pulumi.getter
166
+ def namespace(self) -> Optional[pulumi.Input[str]]:
167
+ """
168
+ The namespace to provision the resource in.
169
+ The value should not contain leading or trailing forward slashes.
170
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
171
+ """
172
+ return pulumi.get(self, "namespace")
173
+
174
+ @namespace.setter
175
+ def namespace(self, value: Optional[pulumi.Input[str]]):
176
+ pulumi.set(self, "namespace", value)
177
+
178
+ @property
179
+ @pulumi.getter(name="secretName")
180
+ def secret_name(self) -> Optional[pulumi.Input[str]]:
181
+ """
182
+ Specifies the name of the secret to synchronize.
183
+ """
184
+ return pulumi.get(self, "secret_name")
185
+
186
+ @secret_name.setter
187
+ def secret_name(self, value: Optional[pulumi.Input[str]]):
188
+ pulumi.set(self, "secret_name", value)
189
+
190
+ @property
191
+ @pulumi.getter(name="syncStatus")
192
+ def sync_status(self) -> Optional[pulumi.Input[str]]:
193
+ """
194
+ Specifies the status of the association (for eg. `SYNCED`).
195
+ """
196
+ return pulumi.get(self, "sync_status")
197
+
198
+ @sync_status.setter
199
+ def sync_status(self, value: Optional[pulumi.Input[str]]):
200
+ pulumi.set(self, "sync_status", value)
201
+
202
+ @property
203
+ @pulumi.getter
204
+ def type(self) -> Optional[pulumi.Input[str]]:
205
+ """
206
+ Specifies the destination type.
207
+ """
208
+ return pulumi.get(self, "type")
209
+
210
+ @type.setter
211
+ def type(self, value: Optional[pulumi.Input[str]]):
212
+ pulumi.set(self, "type", value)
213
+
214
+ @property
215
+ @pulumi.getter(name="updatedAt")
216
+ def updated_at(self) -> Optional[pulumi.Input[str]]:
217
+ """
218
+ Duration string specifying when the secret was last updated.
219
+ """
220
+ return pulumi.get(self, "updated_at")
221
+
222
+ @updated_at.setter
223
+ def updated_at(self, value: Optional[pulumi.Input[str]]):
224
+ pulumi.set(self, "updated_at", value)
225
+
226
+
227
+ class SyncAssociation(pulumi.CustomResource):
228
+ @overload
229
+ def __init__(__self__,
230
+ resource_name: str,
231
+ opts: Optional[pulumi.ResourceOptions] = None,
232
+ mount: Optional[pulumi.Input[str]] = None,
233
+ name: Optional[pulumi.Input[str]] = None,
234
+ namespace: Optional[pulumi.Input[str]] = None,
235
+ secret_name: Optional[pulumi.Input[str]] = None,
236
+ type: Optional[pulumi.Input[str]] = None,
237
+ __props__=None):
238
+ """
239
+ ## Example Usage
240
+
241
+ ```python
242
+ import pulumi
243
+ import json
244
+ import pulumi_vault as vault
245
+
246
+ kvv2 = vault.Mount("kvv2",
247
+ path="kvv2",
248
+ type="kv",
249
+ options={
250
+ "version": "2",
251
+ },
252
+ description="KV Version 2 secret engine mount")
253
+ token = vault.kv.SecretV2("token",
254
+ mount=kvv2.path,
255
+ data_json=json.dumps({
256
+ "dev": "B!gS3cr3t",
257
+ "prod": "S3cureP4$$",
258
+ }))
259
+ gh = vault.secrets.SyncGhDestination("gh",
260
+ access_token=var["access_token"],
261
+ repository_owner=var["repo_owner"],
262
+ repository_name="repo-name-example",
263
+ secret_name_template="vault_{{ .MountAccessor | lowercase }}_{{ .SecretPath | lowercase }}")
264
+ gh_token = vault.secrets.SyncAssociation("ghToken",
265
+ type=gh.type,
266
+ mount=kvv2.path,
267
+ secret_name=token.name)
268
+ ```
269
+
270
+ :param str resource_name: The name of the resource.
271
+ :param pulumi.ResourceOptions opts: Options for the resource.
272
+ :param pulumi.Input[str] mount: Specifies the mount where the secret is located.
273
+ :param pulumi.Input[str] name: Specifies the name of the destination.
274
+ :param pulumi.Input[str] namespace: The namespace to provision the resource in.
275
+ The value should not contain leading or trailing forward slashes.
276
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
277
+ :param pulumi.Input[str] secret_name: Specifies the name of the secret to synchronize.
278
+ :param pulumi.Input[str] type: Specifies the destination type.
279
+ """
280
+ ...
281
+ @overload
282
+ def __init__(__self__,
283
+ resource_name: str,
284
+ args: SyncAssociationArgs,
285
+ opts: Optional[pulumi.ResourceOptions] = None):
286
+ """
287
+ ## Example Usage
288
+
289
+ ```python
290
+ import pulumi
291
+ import json
292
+ import pulumi_vault as vault
293
+
294
+ kvv2 = vault.Mount("kvv2",
295
+ path="kvv2",
296
+ type="kv",
297
+ options={
298
+ "version": "2",
299
+ },
300
+ description="KV Version 2 secret engine mount")
301
+ token = vault.kv.SecretV2("token",
302
+ mount=kvv2.path,
303
+ data_json=json.dumps({
304
+ "dev": "B!gS3cr3t",
305
+ "prod": "S3cureP4$$",
306
+ }))
307
+ gh = vault.secrets.SyncGhDestination("gh",
308
+ access_token=var["access_token"],
309
+ repository_owner=var["repo_owner"],
310
+ repository_name="repo-name-example",
311
+ secret_name_template="vault_{{ .MountAccessor | lowercase }}_{{ .SecretPath | lowercase }}")
312
+ gh_token = vault.secrets.SyncAssociation("ghToken",
313
+ type=gh.type,
314
+ mount=kvv2.path,
315
+ secret_name=token.name)
316
+ ```
317
+
318
+ :param str resource_name: The name of the resource.
319
+ :param SyncAssociationArgs args: The arguments to use to populate this resource's properties.
320
+ :param pulumi.ResourceOptions opts: Options for the resource.
321
+ """
322
+ ...
323
+ def __init__(__self__, resource_name: str, *args, **kwargs):
324
+ resource_args, opts = _utilities.get_resource_args_opts(SyncAssociationArgs, pulumi.ResourceOptions, *args, **kwargs)
325
+ if resource_args is not None:
326
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
327
+ else:
328
+ __self__._internal_init(resource_name, *args, **kwargs)
329
+
330
+ def _internal_init(__self__,
331
+ resource_name: str,
332
+ opts: Optional[pulumi.ResourceOptions] = None,
333
+ mount: Optional[pulumi.Input[str]] = None,
334
+ name: Optional[pulumi.Input[str]] = None,
335
+ namespace: Optional[pulumi.Input[str]] = None,
336
+ secret_name: Optional[pulumi.Input[str]] = None,
337
+ type: Optional[pulumi.Input[str]] = None,
338
+ __props__=None):
339
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
340
+ if not isinstance(opts, pulumi.ResourceOptions):
341
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
342
+ if opts.id is None:
343
+ if __props__ is not None:
344
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
345
+ __props__ = SyncAssociationArgs.__new__(SyncAssociationArgs)
346
+
347
+ if mount is None and not opts.urn:
348
+ raise TypeError("Missing required property 'mount'")
349
+ __props__.__dict__["mount"] = mount
350
+ __props__.__dict__["name"] = name
351
+ __props__.__dict__["namespace"] = namespace
352
+ if secret_name is None and not opts.urn:
353
+ raise TypeError("Missing required property 'secret_name'")
354
+ __props__.__dict__["secret_name"] = secret_name
355
+ if type is None and not opts.urn:
356
+ raise TypeError("Missing required property 'type'")
357
+ __props__.__dict__["type"] = type
358
+ __props__.__dict__["sync_status"] = None
359
+ __props__.__dict__["updated_at"] = None
360
+ super(SyncAssociation, __self__).__init__(
361
+ 'vault:secrets/syncAssociation:SyncAssociation',
362
+ resource_name,
363
+ __props__,
364
+ opts)
365
+
366
+ @staticmethod
367
+ def get(resource_name: str,
368
+ id: pulumi.Input[str],
369
+ opts: Optional[pulumi.ResourceOptions] = None,
370
+ mount: Optional[pulumi.Input[str]] = None,
371
+ name: Optional[pulumi.Input[str]] = None,
372
+ namespace: Optional[pulumi.Input[str]] = None,
373
+ secret_name: Optional[pulumi.Input[str]] = None,
374
+ sync_status: Optional[pulumi.Input[str]] = None,
375
+ type: Optional[pulumi.Input[str]] = None,
376
+ updated_at: Optional[pulumi.Input[str]] = None) -> 'SyncAssociation':
377
+ """
378
+ Get an existing SyncAssociation resource's state with the given name, id, and optional extra
379
+ properties used to qualify the lookup.
380
+
381
+ :param str resource_name: The unique name of the resulting resource.
382
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
383
+ :param pulumi.ResourceOptions opts: Options for the resource.
384
+ :param pulumi.Input[str] mount: Specifies the mount where the secret is located.
385
+ :param pulumi.Input[str] name: Specifies the name of the destination.
386
+ :param pulumi.Input[str] namespace: The namespace to provision the resource in.
387
+ The value should not contain leading or trailing forward slashes.
388
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
389
+ :param pulumi.Input[str] secret_name: Specifies the name of the secret to synchronize.
390
+ :param pulumi.Input[str] sync_status: Specifies the status of the association (for eg. `SYNCED`).
391
+ :param pulumi.Input[str] type: Specifies the destination type.
392
+ :param pulumi.Input[str] updated_at: Duration string specifying when the secret was last updated.
393
+ """
394
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
395
+
396
+ __props__ = _SyncAssociationState.__new__(_SyncAssociationState)
397
+
398
+ __props__.__dict__["mount"] = mount
399
+ __props__.__dict__["name"] = name
400
+ __props__.__dict__["namespace"] = namespace
401
+ __props__.__dict__["secret_name"] = secret_name
402
+ __props__.__dict__["sync_status"] = sync_status
403
+ __props__.__dict__["type"] = type
404
+ __props__.__dict__["updated_at"] = updated_at
405
+ return SyncAssociation(resource_name, opts=opts, __props__=__props__)
406
+
407
+ @property
408
+ @pulumi.getter
409
+ def mount(self) -> pulumi.Output[str]:
410
+ """
411
+ Specifies the mount where the secret is located.
412
+ """
413
+ return pulumi.get(self, "mount")
414
+
415
+ @property
416
+ @pulumi.getter
417
+ def name(self) -> pulumi.Output[str]:
418
+ """
419
+ Specifies the name of the destination.
420
+ """
421
+ return pulumi.get(self, "name")
422
+
423
+ @property
424
+ @pulumi.getter
425
+ def namespace(self) -> pulumi.Output[Optional[str]]:
426
+ """
427
+ The namespace to provision the resource in.
428
+ The value should not contain leading or trailing forward slashes.
429
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
430
+ """
431
+ return pulumi.get(self, "namespace")
432
+
433
+ @property
434
+ @pulumi.getter(name="secretName")
435
+ def secret_name(self) -> pulumi.Output[str]:
436
+ """
437
+ Specifies the name of the secret to synchronize.
438
+ """
439
+ return pulumi.get(self, "secret_name")
440
+
441
+ @property
442
+ @pulumi.getter(name="syncStatus")
443
+ def sync_status(self) -> pulumi.Output[str]:
444
+ """
445
+ Specifies the status of the association (for eg. `SYNCED`).
446
+ """
447
+ return pulumi.get(self, "sync_status")
448
+
449
+ @property
450
+ @pulumi.getter
451
+ def type(self) -> pulumi.Output[str]:
452
+ """
453
+ Specifies the destination type.
454
+ """
455
+ return pulumi.get(self, "type")
456
+
457
+ @property
458
+ @pulumi.getter(name="updatedAt")
459
+ def updated_at(self) -> pulumi.Output[str]:
460
+ """
461
+ Duration string specifying when the secret was last updated.
462
+ """
463
+ return pulumi.get(self, "updated_at")
464
+