pulumi-vault 6.1.1__py3-none-any.whl → 6.2.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.
@@ -18,10 +18,14 @@ class SecretBackendArgs:
18
18
  default_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
19
19
  description: Optional[pulumi.Input[str]] = None,
20
20
  disable_remount: Optional[pulumi.Input[bool]] = None,
21
+ identity_token_audience: Optional[pulumi.Input[str]] = None,
22
+ identity_token_key: Optional[pulumi.Input[str]] = None,
23
+ identity_token_ttl: Optional[pulumi.Input[int]] = None,
21
24
  local: Optional[pulumi.Input[bool]] = None,
22
25
  max_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
23
26
  namespace: Optional[pulumi.Input[str]] = None,
24
- path: Optional[pulumi.Input[str]] = None):
27
+ path: Optional[pulumi.Input[str]] = None,
28
+ service_account_email: Optional[pulumi.Input[str]] = None):
25
29
  """
26
30
  The set of arguments for constructing a SecretBackend resource.
27
31
  :param pulumi.Input[str] credentials: JSON-encoded credentials to use to connect to GCP
@@ -30,6 +34,12 @@ class SecretBackendArgs:
30
34
  :param pulumi.Input[str] description: A human-friendly description for this backend.
31
35
  :param pulumi.Input[bool] disable_remount: If set, opts out of mount migration on path updates.
32
36
  See here for more info on [Mount Migration](https://www.vaultproject.io/docs/concepts/mount-migration)
37
+ :param pulumi.Input[str] identity_token_audience: The audience claim value for plugin identity
38
+ tokens. Must match an allowed audience configured for the target [Workload Identity Pool](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-providers#prepare).
39
+ Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
40
+ :param pulumi.Input[str] identity_token_key: The key to use for signing plugin identity
41
+ tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
42
+ :param pulumi.Input[int] identity_token_ttl: The TTL of generated tokens.
33
43
  :param pulumi.Input[bool] local: Boolean flag that can be explicitly set to true to enforce local mount in HA environment
34
44
  :param pulumi.Input[int] max_lease_ttl_seconds: The maximum TTL that can be requested
35
45
  for credentials issued by this backend. Defaults to '0'.
@@ -39,6 +49,8 @@ class SecretBackendArgs:
39
49
  *Available only for Vault Enterprise*.
40
50
  :param pulumi.Input[str] path: The unique path this backend should be mounted at. Must
41
51
  not begin or end with a `/`. Defaults to `gcp`.
52
+ :param pulumi.Input[str] service_account_email: Service Account to impersonate for plugin workload identity federation.
53
+ Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
42
54
  """
43
55
  if credentials is not None:
44
56
  pulumi.set(__self__, "credentials", credentials)
@@ -48,6 +60,12 @@ class SecretBackendArgs:
48
60
  pulumi.set(__self__, "description", description)
49
61
  if disable_remount is not None:
50
62
  pulumi.set(__self__, "disable_remount", disable_remount)
63
+ if identity_token_audience is not None:
64
+ pulumi.set(__self__, "identity_token_audience", identity_token_audience)
65
+ if identity_token_key is not None:
66
+ pulumi.set(__self__, "identity_token_key", identity_token_key)
67
+ if identity_token_ttl is not None:
68
+ pulumi.set(__self__, "identity_token_ttl", identity_token_ttl)
51
69
  if local is not None:
52
70
  pulumi.set(__self__, "local", local)
53
71
  if max_lease_ttl_seconds is not None:
@@ -56,6 +74,8 @@ class SecretBackendArgs:
56
74
  pulumi.set(__self__, "namespace", namespace)
57
75
  if path is not None:
58
76
  pulumi.set(__self__, "path", path)
77
+ if service_account_email is not None:
78
+ pulumi.set(__self__, "service_account_email", service_account_email)
59
79
 
60
80
  @property
61
81
  @pulumi.getter
@@ -107,6 +127,45 @@ class SecretBackendArgs:
107
127
  def disable_remount(self, value: Optional[pulumi.Input[bool]]):
108
128
  pulumi.set(self, "disable_remount", value)
109
129
 
130
+ @property
131
+ @pulumi.getter(name="identityTokenAudience")
132
+ def identity_token_audience(self) -> Optional[pulumi.Input[str]]:
133
+ """
134
+ The audience claim value for plugin identity
135
+ tokens. Must match an allowed audience configured for the target [Workload Identity Pool](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-providers#prepare).
136
+ Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
137
+ """
138
+ return pulumi.get(self, "identity_token_audience")
139
+
140
+ @identity_token_audience.setter
141
+ def identity_token_audience(self, value: Optional[pulumi.Input[str]]):
142
+ pulumi.set(self, "identity_token_audience", value)
143
+
144
+ @property
145
+ @pulumi.getter(name="identityTokenKey")
146
+ def identity_token_key(self) -> Optional[pulumi.Input[str]]:
147
+ """
148
+ The key to use for signing plugin identity
149
+ tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
150
+ """
151
+ return pulumi.get(self, "identity_token_key")
152
+
153
+ @identity_token_key.setter
154
+ def identity_token_key(self, value: Optional[pulumi.Input[str]]):
155
+ pulumi.set(self, "identity_token_key", value)
156
+
157
+ @property
158
+ @pulumi.getter(name="identityTokenTtl")
159
+ def identity_token_ttl(self) -> Optional[pulumi.Input[int]]:
160
+ """
161
+ The TTL of generated tokens.
162
+ """
163
+ return pulumi.get(self, "identity_token_ttl")
164
+
165
+ @identity_token_ttl.setter
166
+ def identity_token_ttl(self, value: Optional[pulumi.Input[int]]):
167
+ pulumi.set(self, "identity_token_ttl", value)
168
+
110
169
  @property
111
170
  @pulumi.getter
112
171
  def local(self) -> Optional[pulumi.Input[bool]]:
@@ -160,26 +219,51 @@ class SecretBackendArgs:
160
219
  def path(self, value: Optional[pulumi.Input[str]]):
161
220
  pulumi.set(self, "path", value)
162
221
 
222
+ @property
223
+ @pulumi.getter(name="serviceAccountEmail")
224
+ def service_account_email(self) -> Optional[pulumi.Input[str]]:
225
+ """
226
+ Service Account to impersonate for plugin workload identity federation.
227
+ Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
228
+ """
229
+ return pulumi.get(self, "service_account_email")
230
+
231
+ @service_account_email.setter
232
+ def service_account_email(self, value: Optional[pulumi.Input[str]]):
233
+ pulumi.set(self, "service_account_email", value)
234
+
163
235
 
164
236
  @pulumi.input_type
165
237
  class _SecretBackendState:
166
238
  def __init__(__self__, *,
239
+ accessor: Optional[pulumi.Input[str]] = None,
167
240
  credentials: Optional[pulumi.Input[str]] = None,
168
241
  default_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
169
242
  description: Optional[pulumi.Input[str]] = None,
170
243
  disable_remount: Optional[pulumi.Input[bool]] = None,
244
+ identity_token_audience: Optional[pulumi.Input[str]] = None,
245
+ identity_token_key: Optional[pulumi.Input[str]] = None,
246
+ identity_token_ttl: Optional[pulumi.Input[int]] = None,
171
247
  local: Optional[pulumi.Input[bool]] = None,
172
248
  max_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
173
249
  namespace: Optional[pulumi.Input[str]] = None,
174
- path: Optional[pulumi.Input[str]] = None):
250
+ path: Optional[pulumi.Input[str]] = None,
251
+ service_account_email: Optional[pulumi.Input[str]] = None):
175
252
  """
176
253
  Input properties used for looking up and filtering SecretBackend resources.
254
+ :param pulumi.Input[str] accessor: The accessor of the created GCP mount.
177
255
  :param pulumi.Input[str] credentials: JSON-encoded credentials to use to connect to GCP
178
256
  :param pulumi.Input[int] default_lease_ttl_seconds: The default TTL for credentials
179
257
  issued by this backend. Defaults to '0'.
180
258
  :param pulumi.Input[str] description: A human-friendly description for this backend.
181
259
  :param pulumi.Input[bool] disable_remount: If set, opts out of mount migration on path updates.
182
260
  See here for more info on [Mount Migration](https://www.vaultproject.io/docs/concepts/mount-migration)
261
+ :param pulumi.Input[str] identity_token_audience: The audience claim value for plugin identity
262
+ tokens. Must match an allowed audience configured for the target [Workload Identity Pool](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-providers#prepare).
263
+ Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
264
+ :param pulumi.Input[str] identity_token_key: The key to use for signing plugin identity
265
+ tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
266
+ :param pulumi.Input[int] identity_token_ttl: The TTL of generated tokens.
183
267
  :param pulumi.Input[bool] local: Boolean flag that can be explicitly set to true to enforce local mount in HA environment
184
268
  :param pulumi.Input[int] max_lease_ttl_seconds: The maximum TTL that can be requested
185
269
  for credentials issued by this backend. Defaults to '0'.
@@ -189,7 +273,11 @@ class _SecretBackendState:
189
273
  *Available only for Vault Enterprise*.
190
274
  :param pulumi.Input[str] path: The unique path this backend should be mounted at. Must
191
275
  not begin or end with a `/`. Defaults to `gcp`.
276
+ :param pulumi.Input[str] service_account_email: Service Account to impersonate for plugin workload identity federation.
277
+ Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
192
278
  """
279
+ if accessor is not None:
280
+ pulumi.set(__self__, "accessor", accessor)
193
281
  if credentials is not None:
194
282
  pulumi.set(__self__, "credentials", credentials)
195
283
  if default_lease_ttl_seconds is not None:
@@ -198,6 +286,12 @@ class _SecretBackendState:
198
286
  pulumi.set(__self__, "description", description)
199
287
  if disable_remount is not None:
200
288
  pulumi.set(__self__, "disable_remount", disable_remount)
289
+ if identity_token_audience is not None:
290
+ pulumi.set(__self__, "identity_token_audience", identity_token_audience)
291
+ if identity_token_key is not None:
292
+ pulumi.set(__self__, "identity_token_key", identity_token_key)
293
+ if identity_token_ttl is not None:
294
+ pulumi.set(__self__, "identity_token_ttl", identity_token_ttl)
201
295
  if local is not None:
202
296
  pulumi.set(__self__, "local", local)
203
297
  if max_lease_ttl_seconds is not None:
@@ -206,6 +300,20 @@ class _SecretBackendState:
206
300
  pulumi.set(__self__, "namespace", namespace)
207
301
  if path is not None:
208
302
  pulumi.set(__self__, "path", path)
303
+ if service_account_email is not None:
304
+ pulumi.set(__self__, "service_account_email", service_account_email)
305
+
306
+ @property
307
+ @pulumi.getter
308
+ def accessor(self) -> Optional[pulumi.Input[str]]:
309
+ """
310
+ The accessor of the created GCP mount.
311
+ """
312
+ return pulumi.get(self, "accessor")
313
+
314
+ @accessor.setter
315
+ def accessor(self, value: Optional[pulumi.Input[str]]):
316
+ pulumi.set(self, "accessor", value)
209
317
 
210
318
  @property
211
319
  @pulumi.getter
@@ -257,6 +365,45 @@ class _SecretBackendState:
257
365
  def disable_remount(self, value: Optional[pulumi.Input[bool]]):
258
366
  pulumi.set(self, "disable_remount", value)
259
367
 
368
+ @property
369
+ @pulumi.getter(name="identityTokenAudience")
370
+ def identity_token_audience(self) -> Optional[pulumi.Input[str]]:
371
+ """
372
+ The audience claim value for plugin identity
373
+ tokens. Must match an allowed audience configured for the target [Workload Identity Pool](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-providers#prepare).
374
+ Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
375
+ """
376
+ return pulumi.get(self, "identity_token_audience")
377
+
378
+ @identity_token_audience.setter
379
+ def identity_token_audience(self, value: Optional[pulumi.Input[str]]):
380
+ pulumi.set(self, "identity_token_audience", value)
381
+
382
+ @property
383
+ @pulumi.getter(name="identityTokenKey")
384
+ def identity_token_key(self) -> Optional[pulumi.Input[str]]:
385
+ """
386
+ The key to use for signing plugin identity
387
+ tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
388
+ """
389
+ return pulumi.get(self, "identity_token_key")
390
+
391
+ @identity_token_key.setter
392
+ def identity_token_key(self, value: Optional[pulumi.Input[str]]):
393
+ pulumi.set(self, "identity_token_key", value)
394
+
395
+ @property
396
+ @pulumi.getter(name="identityTokenTtl")
397
+ def identity_token_ttl(self) -> Optional[pulumi.Input[int]]:
398
+ """
399
+ The TTL of generated tokens.
400
+ """
401
+ return pulumi.get(self, "identity_token_ttl")
402
+
403
+ @identity_token_ttl.setter
404
+ def identity_token_ttl(self, value: Optional[pulumi.Input[int]]):
405
+ pulumi.set(self, "identity_token_ttl", value)
406
+
260
407
  @property
261
408
  @pulumi.getter
262
409
  def local(self) -> Optional[pulumi.Input[bool]]:
@@ -310,6 +457,19 @@ class _SecretBackendState:
310
457
  def path(self, value: Optional[pulumi.Input[str]]):
311
458
  pulumi.set(self, "path", value)
312
459
 
460
+ @property
461
+ @pulumi.getter(name="serviceAccountEmail")
462
+ def service_account_email(self) -> Optional[pulumi.Input[str]]:
463
+ """
464
+ Service Account to impersonate for plugin workload identity federation.
465
+ Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
466
+ """
467
+ return pulumi.get(self, "service_account_email")
468
+
469
+ @service_account_email.setter
470
+ def service_account_email(self, value: Optional[pulumi.Input[str]]):
471
+ pulumi.set(self, "service_account_email", value)
472
+
313
473
 
314
474
  class SecretBackend(pulumi.CustomResource):
315
475
  @overload
@@ -320,14 +480,30 @@ class SecretBackend(pulumi.CustomResource):
320
480
  default_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
321
481
  description: Optional[pulumi.Input[str]] = None,
322
482
  disable_remount: Optional[pulumi.Input[bool]] = None,
483
+ identity_token_audience: Optional[pulumi.Input[str]] = None,
484
+ identity_token_key: Optional[pulumi.Input[str]] = None,
485
+ identity_token_ttl: Optional[pulumi.Input[int]] = None,
323
486
  local: Optional[pulumi.Input[bool]] = None,
324
487
  max_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
325
488
  namespace: Optional[pulumi.Input[str]] = None,
326
489
  path: Optional[pulumi.Input[str]] = None,
490
+ service_account_email: Optional[pulumi.Input[str]] = None,
327
491
  __props__=None):
328
492
  """
329
493
  ## Example Usage
330
494
 
495
+ You can setup the GCP secret backend with Workload Identity Federation (WIF) for a secret-less configuration:
496
+ ```python
497
+ import pulumi
498
+ import pulumi_vault as vault
499
+
500
+ gcp = vault.gcp.SecretBackend("gcp",
501
+ identity_token_key="example-key",
502
+ identity_token_ttl=1800,
503
+ identity_token_audience="<TOKEN_AUDIENCE>",
504
+ service_account_email="<SERVICE_ACCOUNT_EMAIL>")
505
+ ```
506
+
331
507
  ```python
332
508
  import pulumi
333
509
  import pulumi_std as std
@@ -344,6 +520,12 @@ class SecretBackend(pulumi.CustomResource):
344
520
  :param pulumi.Input[str] description: A human-friendly description for this backend.
345
521
  :param pulumi.Input[bool] disable_remount: If set, opts out of mount migration on path updates.
346
522
  See here for more info on [Mount Migration](https://www.vaultproject.io/docs/concepts/mount-migration)
523
+ :param pulumi.Input[str] identity_token_audience: The audience claim value for plugin identity
524
+ tokens. Must match an allowed audience configured for the target [Workload Identity Pool](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-providers#prepare).
525
+ Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
526
+ :param pulumi.Input[str] identity_token_key: The key to use for signing plugin identity
527
+ tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
528
+ :param pulumi.Input[int] identity_token_ttl: The TTL of generated tokens.
347
529
  :param pulumi.Input[bool] local: Boolean flag that can be explicitly set to true to enforce local mount in HA environment
348
530
  :param pulumi.Input[int] max_lease_ttl_seconds: The maximum TTL that can be requested
349
531
  for credentials issued by this backend. Defaults to '0'.
@@ -353,6 +535,8 @@ class SecretBackend(pulumi.CustomResource):
353
535
  *Available only for Vault Enterprise*.
354
536
  :param pulumi.Input[str] path: The unique path this backend should be mounted at. Must
355
537
  not begin or end with a `/`. Defaults to `gcp`.
538
+ :param pulumi.Input[str] service_account_email: Service Account to impersonate for plugin workload identity federation.
539
+ Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
356
540
  """
357
541
  ...
358
542
  @overload
@@ -363,6 +547,18 @@ class SecretBackend(pulumi.CustomResource):
363
547
  """
364
548
  ## Example Usage
365
549
 
550
+ You can setup the GCP secret backend with Workload Identity Federation (WIF) for a secret-less configuration:
551
+ ```python
552
+ import pulumi
553
+ import pulumi_vault as vault
554
+
555
+ gcp = vault.gcp.SecretBackend("gcp",
556
+ identity_token_key="example-key",
557
+ identity_token_ttl=1800,
558
+ identity_token_audience="<TOKEN_AUDIENCE>",
559
+ service_account_email="<SERVICE_ACCOUNT_EMAIL>")
560
+ ```
561
+
366
562
  ```python
367
563
  import pulumi
368
564
  import pulumi_std as std
@@ -390,10 +586,14 @@ class SecretBackend(pulumi.CustomResource):
390
586
  default_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
391
587
  description: Optional[pulumi.Input[str]] = None,
392
588
  disable_remount: Optional[pulumi.Input[bool]] = None,
589
+ identity_token_audience: Optional[pulumi.Input[str]] = None,
590
+ identity_token_key: Optional[pulumi.Input[str]] = None,
591
+ identity_token_ttl: Optional[pulumi.Input[int]] = None,
393
592
  local: Optional[pulumi.Input[bool]] = None,
394
593
  max_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
395
594
  namespace: Optional[pulumi.Input[str]] = None,
396
595
  path: Optional[pulumi.Input[str]] = None,
596
+ service_account_email: Optional[pulumi.Input[str]] = None,
397
597
  __props__=None):
398
598
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
399
599
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -407,10 +607,15 @@ class SecretBackend(pulumi.CustomResource):
407
607
  __props__.__dict__["default_lease_ttl_seconds"] = default_lease_ttl_seconds
408
608
  __props__.__dict__["description"] = description
409
609
  __props__.__dict__["disable_remount"] = disable_remount
610
+ __props__.__dict__["identity_token_audience"] = identity_token_audience
611
+ __props__.__dict__["identity_token_key"] = identity_token_key
612
+ __props__.__dict__["identity_token_ttl"] = identity_token_ttl
410
613
  __props__.__dict__["local"] = local
411
614
  __props__.__dict__["max_lease_ttl_seconds"] = max_lease_ttl_seconds
412
615
  __props__.__dict__["namespace"] = namespace
413
616
  __props__.__dict__["path"] = path
617
+ __props__.__dict__["service_account_email"] = service_account_email
618
+ __props__.__dict__["accessor"] = None
414
619
  secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["credentials"])
415
620
  opts = pulumi.ResourceOptions.merge(opts, secret_opts)
416
621
  super(SecretBackend, __self__).__init__(
@@ -423,14 +628,19 @@ class SecretBackend(pulumi.CustomResource):
423
628
  def get(resource_name: str,
424
629
  id: pulumi.Input[str],
425
630
  opts: Optional[pulumi.ResourceOptions] = None,
631
+ accessor: Optional[pulumi.Input[str]] = None,
426
632
  credentials: Optional[pulumi.Input[str]] = None,
427
633
  default_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
428
634
  description: Optional[pulumi.Input[str]] = None,
429
635
  disable_remount: Optional[pulumi.Input[bool]] = None,
636
+ identity_token_audience: Optional[pulumi.Input[str]] = None,
637
+ identity_token_key: Optional[pulumi.Input[str]] = None,
638
+ identity_token_ttl: Optional[pulumi.Input[int]] = None,
430
639
  local: Optional[pulumi.Input[bool]] = None,
431
640
  max_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
432
641
  namespace: Optional[pulumi.Input[str]] = None,
433
- path: Optional[pulumi.Input[str]] = None) -> 'SecretBackend':
642
+ path: Optional[pulumi.Input[str]] = None,
643
+ service_account_email: Optional[pulumi.Input[str]] = None) -> 'SecretBackend':
434
644
  """
435
645
  Get an existing SecretBackend resource's state with the given name, id, and optional extra
436
646
  properties used to qualify the lookup.
@@ -438,12 +648,19 @@ class SecretBackend(pulumi.CustomResource):
438
648
  :param str resource_name: The unique name of the resulting resource.
439
649
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
440
650
  :param pulumi.ResourceOptions opts: Options for the resource.
651
+ :param pulumi.Input[str] accessor: The accessor of the created GCP mount.
441
652
  :param pulumi.Input[str] credentials: JSON-encoded credentials to use to connect to GCP
442
653
  :param pulumi.Input[int] default_lease_ttl_seconds: The default TTL for credentials
443
654
  issued by this backend. Defaults to '0'.
444
655
  :param pulumi.Input[str] description: A human-friendly description for this backend.
445
656
  :param pulumi.Input[bool] disable_remount: If set, opts out of mount migration on path updates.
446
657
  See here for more info on [Mount Migration](https://www.vaultproject.io/docs/concepts/mount-migration)
658
+ :param pulumi.Input[str] identity_token_audience: The audience claim value for plugin identity
659
+ tokens. Must match an allowed audience configured for the target [Workload Identity Pool](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-providers#prepare).
660
+ Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
661
+ :param pulumi.Input[str] identity_token_key: The key to use for signing plugin identity
662
+ tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
663
+ :param pulumi.Input[int] identity_token_ttl: The TTL of generated tokens.
447
664
  :param pulumi.Input[bool] local: Boolean flag that can be explicitly set to true to enforce local mount in HA environment
448
665
  :param pulumi.Input[int] max_lease_ttl_seconds: The maximum TTL that can be requested
449
666
  for credentials issued by this backend. Defaults to '0'.
@@ -453,21 +670,36 @@ class SecretBackend(pulumi.CustomResource):
453
670
  *Available only for Vault Enterprise*.
454
671
  :param pulumi.Input[str] path: The unique path this backend should be mounted at. Must
455
672
  not begin or end with a `/`. Defaults to `gcp`.
673
+ :param pulumi.Input[str] service_account_email: Service Account to impersonate for plugin workload identity federation.
674
+ Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
456
675
  """
457
676
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
458
677
 
459
678
  __props__ = _SecretBackendState.__new__(_SecretBackendState)
460
679
 
680
+ __props__.__dict__["accessor"] = accessor
461
681
  __props__.__dict__["credentials"] = credentials
462
682
  __props__.__dict__["default_lease_ttl_seconds"] = default_lease_ttl_seconds
463
683
  __props__.__dict__["description"] = description
464
684
  __props__.__dict__["disable_remount"] = disable_remount
685
+ __props__.__dict__["identity_token_audience"] = identity_token_audience
686
+ __props__.__dict__["identity_token_key"] = identity_token_key
687
+ __props__.__dict__["identity_token_ttl"] = identity_token_ttl
465
688
  __props__.__dict__["local"] = local
466
689
  __props__.__dict__["max_lease_ttl_seconds"] = max_lease_ttl_seconds
467
690
  __props__.__dict__["namespace"] = namespace
468
691
  __props__.__dict__["path"] = path
692
+ __props__.__dict__["service_account_email"] = service_account_email
469
693
  return SecretBackend(resource_name, opts=opts, __props__=__props__)
470
694
 
695
+ @property
696
+ @pulumi.getter
697
+ def accessor(self) -> pulumi.Output[str]:
698
+ """
699
+ The accessor of the created GCP mount.
700
+ """
701
+ return pulumi.get(self, "accessor")
702
+
471
703
  @property
472
704
  @pulumi.getter
473
705
  def credentials(self) -> pulumi.Output[Optional[str]]:
@@ -502,6 +734,33 @@ class SecretBackend(pulumi.CustomResource):
502
734
  """
503
735
  return pulumi.get(self, "disable_remount")
504
736
 
737
+ @property
738
+ @pulumi.getter(name="identityTokenAudience")
739
+ def identity_token_audience(self) -> pulumi.Output[Optional[str]]:
740
+ """
741
+ The audience claim value for plugin identity
742
+ tokens. Must match an allowed audience configured for the target [Workload Identity Pool](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-providers#prepare).
743
+ Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
744
+ """
745
+ return pulumi.get(self, "identity_token_audience")
746
+
747
+ @property
748
+ @pulumi.getter(name="identityTokenKey")
749
+ def identity_token_key(self) -> pulumi.Output[Optional[str]]:
750
+ """
751
+ The key to use for signing plugin identity
752
+ tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
753
+ """
754
+ return pulumi.get(self, "identity_token_key")
755
+
756
+ @property
757
+ @pulumi.getter(name="identityTokenTtl")
758
+ def identity_token_ttl(self) -> pulumi.Output[Optional[int]]:
759
+ """
760
+ The TTL of generated tokens.
761
+ """
762
+ return pulumi.get(self, "identity_token_ttl")
763
+
505
764
  @property
506
765
  @pulumi.getter
507
766
  def local(self) -> pulumi.Output[Optional[bool]]:
@@ -539,3 +798,12 @@ class SecretBackend(pulumi.CustomResource):
539
798
  """
540
799
  return pulumi.get(self, "path")
541
800
 
801
+ @property
802
+ @pulumi.getter(name="serviceAccountEmail")
803
+ def service_account_email(self) -> pulumi.Output[Optional[str]]:
804
+ """
805
+ Service Account to impersonate for plugin workload identity federation.
806
+ Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
807
+ """
808
+ return pulumi.get(self, "service_account_email")
809
+