pulumi-nomad 2.5.0a1744783739__py3-none-any.whl → 2.6.0a1745042960__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.
pulumi_nomad/_inputs.py CHANGED
@@ -18,6 +18,10 @@ from . import _utilities
18
18
  __all__ = [
19
19
  'AclAuthMethodConfigArgs',
20
20
  'AclAuthMethodConfigArgsDict',
21
+ 'AclAuthMethodConfigOidcClientAssertionArgs',
22
+ 'AclAuthMethodConfigOidcClientAssertionArgsDict',
23
+ 'AclAuthMethodConfigOidcClientAssertionPrivateKeyArgs',
24
+ 'AclAuthMethodConfigOidcClientAssertionPrivateKeyArgsDict',
21
25
  'AclPolicyJobAclArgs',
22
26
  'AclPolicyJobAclArgsDict',
23
27
  'AclRolePolicyArgs',
@@ -52,6 +56,14 @@ __all__ = [
52
56
  'CsiVolumeTopologyRequestRequiredArgsDict',
53
57
  'CsiVolumeTopologyRequestRequiredTopologyArgs',
54
58
  'CsiVolumeTopologyRequestRequiredTopologyArgsDict',
59
+ 'DynamicHostVolumeCapabilityArgs',
60
+ 'DynamicHostVolumeCapabilityArgsDict',
61
+ 'DynamicHostVolumeConstraintArgs',
62
+ 'DynamicHostVolumeConstraintArgsDict',
63
+ 'DynamicHostVolumeRegistrationCapabilityArgs',
64
+ 'DynamicHostVolumeRegistrationCapabilityArgsDict',
65
+ 'DynamicHostVolumeRegistrationConstraintArgs',
66
+ 'DynamicHostVolumeRegistrationConstraintArgsDict',
55
67
  'ExternalVolumeCapabilityArgs',
56
68
  'ExternalVolumeCapabilityArgsDict',
57
69
  'ExternalVolumeMountOptionsArgs',
@@ -166,6 +178,13 @@ if not MYPY:
166
178
  `(string: <optional>)` - Duration of leeway when validating
167
179
  not before values of a token in the form of a time duration such as "5m" or "1h".
168
180
  """
181
+ oidc_client_assertion: NotRequired[pulumi.Input['AclAuthMethodConfigOidcClientAssertionArgsDict']]
182
+ """
183
+ `(OIDCClientAssertion: <optional>)` - Optionally
184
+ send a signed JWT ("[private key jwt][]") as a client assertion to the OIDC
185
+ provider. Browse to the [OIDC concepts][concepts-assertions] page to learn
186
+ more.
187
+ """
169
188
  oidc_client_id: NotRequired[pulumi.Input[builtins.str]]
170
189
  """
171
190
  `(string: <optional>)` - The OAuth Client ID configured
@@ -188,6 +207,12 @@ if not MYPY:
188
207
  `(string: <optional>)` - The OIDC Discovery URL,
189
208
  without any .well-known component (base path).
190
209
  """
210
+ oidc_enable_pkce: NotRequired[pulumi.Input[builtins.bool]]
211
+ """
212
+ `(bool: false)` - When set to `true`, Nomad will include
213
+ [PKCE][] verification in the auth flow. Even with PKCE enabled in Nomad,
214
+ you may still need to enable it in your OIDC provider.
215
+ """
191
216
  oidc_scopes: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
192
217
  """
193
218
  `([]string: <optional>)` - List of OIDC scopes.
@@ -197,6 +222,10 @@ if not MYPY:
197
222
  `([]string: <optional>)` - A list of supported signing
198
223
  algorithms.
199
224
  """
225
+ verbose_logging: NotRequired[pulumi.Input[builtins.bool]]
226
+ """
227
+ Enable OIDC verbose logging on the Nomad server.
228
+ """
200
229
  elif False:
201
230
  AclAuthMethodConfigArgsDict: TypeAlias = Mapping[str, Any]
202
231
 
@@ -215,12 +244,15 @@ class AclAuthMethodConfigArgs:
215
244
  jwt_validation_pub_keys: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
216
245
  list_claim_mappings: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
217
246
  not_before_leeway: Optional[pulumi.Input[builtins.str]] = None,
247
+ oidc_client_assertion: Optional[pulumi.Input['AclAuthMethodConfigOidcClientAssertionArgs']] = None,
218
248
  oidc_client_id: Optional[pulumi.Input[builtins.str]] = None,
219
249
  oidc_client_secret: Optional[pulumi.Input[builtins.str]] = None,
220
250
  oidc_disable_userinfo: Optional[pulumi.Input[builtins.bool]] = None,
221
251
  oidc_discovery_url: Optional[pulumi.Input[builtins.str]] = None,
252
+ oidc_enable_pkce: Optional[pulumi.Input[builtins.bool]] = None,
222
253
  oidc_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
223
- signing_algs: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
254
+ signing_algs: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
255
+ verbose_logging: Optional[pulumi.Input[builtins.bool]] = None):
224
256
  """
225
257
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] allowed_redirect_uris: `([]string: <optional>)` - A list of allowed values
226
258
  that can be used for the redirect URI.
@@ -244,6 +276,10 @@ class AclAuthMethodConfigArgs:
244
276
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] list_claim_mappings: Mappings of list claims (key) that will be copied to a metadata field (value).
245
277
  :param pulumi.Input[builtins.str] not_before_leeway: `(string: <optional>)` - Duration of leeway when validating
246
278
  not before values of a token in the form of a time duration such as "5m" or "1h".
279
+ :param pulumi.Input['AclAuthMethodConfigOidcClientAssertionArgs'] oidc_client_assertion: `(OIDCClientAssertion: <optional>)` - Optionally
280
+ send a signed JWT ("[private key jwt][]") as a client assertion to the OIDC
281
+ provider. Browse to the [OIDC concepts][concepts-assertions] page to learn
282
+ more.
247
283
  :param pulumi.Input[builtins.str] oidc_client_id: `(string: <optional>)` - The OAuth Client ID configured
248
284
  with the OIDC provider.
249
285
  :param pulumi.Input[builtins.str] oidc_client_secret: `(string: <optional>)` - The OAuth Client Secret
@@ -254,9 +290,13 @@ class AclAuthMethodConfigArgs:
254
290
  additional claims from the `UserInfo` endpoint.
255
291
  :param pulumi.Input[builtins.str] oidc_discovery_url: `(string: <optional>)` - The OIDC Discovery URL,
256
292
  without any .well-known component (base path).
293
+ :param pulumi.Input[builtins.bool] oidc_enable_pkce: `(bool: false)` - When set to `true`, Nomad will include
294
+ [PKCE][] verification in the auth flow. Even with PKCE enabled in Nomad,
295
+ you may still need to enable it in your OIDC provider.
257
296
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] oidc_scopes: `([]string: <optional>)` - List of OIDC scopes.
258
297
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] signing_algs: `([]string: <optional>)` - A list of supported signing
259
298
  algorithms.
299
+ :param pulumi.Input[builtins.bool] verbose_logging: Enable OIDC verbose logging on the Nomad server.
260
300
  """
261
301
  if allowed_redirect_uris is not None:
262
302
  pulumi.set(__self__, "allowed_redirect_uris", allowed_redirect_uris)
@@ -282,6 +322,8 @@ class AclAuthMethodConfigArgs:
282
322
  pulumi.set(__self__, "list_claim_mappings", list_claim_mappings)
283
323
  if not_before_leeway is not None:
284
324
  pulumi.set(__self__, "not_before_leeway", not_before_leeway)
325
+ if oidc_client_assertion is not None:
326
+ pulumi.set(__self__, "oidc_client_assertion", oidc_client_assertion)
285
327
  if oidc_client_id is not None:
286
328
  pulumi.set(__self__, "oidc_client_id", oidc_client_id)
287
329
  if oidc_client_secret is not None:
@@ -290,10 +332,14 @@ class AclAuthMethodConfigArgs:
290
332
  pulumi.set(__self__, "oidc_disable_userinfo", oidc_disable_userinfo)
291
333
  if oidc_discovery_url is not None:
292
334
  pulumi.set(__self__, "oidc_discovery_url", oidc_discovery_url)
335
+ if oidc_enable_pkce is not None:
336
+ pulumi.set(__self__, "oidc_enable_pkce", oidc_enable_pkce)
293
337
  if oidc_scopes is not None:
294
338
  pulumi.set(__self__, "oidc_scopes", oidc_scopes)
295
339
  if signing_algs is not None:
296
340
  pulumi.set(__self__, "signing_algs", signing_algs)
341
+ if verbose_logging is not None:
342
+ pulumi.set(__self__, "verbose_logging", verbose_logging)
297
343
 
298
344
  @property
299
345
  @pulumi.getter(name="allowedRedirectUris")
@@ -449,6 +495,21 @@ class AclAuthMethodConfigArgs:
449
495
  def not_before_leeway(self, value: Optional[pulumi.Input[builtins.str]]):
450
496
  pulumi.set(self, "not_before_leeway", value)
451
497
 
498
+ @property
499
+ @pulumi.getter(name="oidcClientAssertion")
500
+ def oidc_client_assertion(self) -> Optional[pulumi.Input['AclAuthMethodConfigOidcClientAssertionArgs']]:
501
+ """
502
+ `(OIDCClientAssertion: <optional>)` - Optionally
503
+ send a signed JWT ("[private key jwt][]") as a client assertion to the OIDC
504
+ provider. Browse to the [OIDC concepts][concepts-assertions] page to learn
505
+ more.
506
+ """
507
+ return pulumi.get(self, "oidc_client_assertion")
508
+
509
+ @oidc_client_assertion.setter
510
+ def oidc_client_assertion(self, value: Optional[pulumi.Input['AclAuthMethodConfigOidcClientAssertionArgs']]):
511
+ pulumi.set(self, "oidc_client_assertion", value)
512
+
452
513
  @property
453
514
  @pulumi.getter(name="oidcClientId")
454
515
  def oidc_client_id(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -503,6 +564,20 @@ class AclAuthMethodConfigArgs:
503
564
  def oidc_discovery_url(self, value: Optional[pulumi.Input[builtins.str]]):
504
565
  pulumi.set(self, "oidc_discovery_url", value)
505
566
 
567
+ @property
568
+ @pulumi.getter(name="oidcEnablePkce")
569
+ def oidc_enable_pkce(self) -> Optional[pulumi.Input[builtins.bool]]:
570
+ """
571
+ `(bool: false)` - When set to `true`, Nomad will include
572
+ [PKCE][] verification in the auth flow. Even with PKCE enabled in Nomad,
573
+ you may still need to enable it in your OIDC provider.
574
+ """
575
+ return pulumi.get(self, "oidc_enable_pkce")
576
+
577
+ @oidc_enable_pkce.setter
578
+ def oidc_enable_pkce(self, value: Optional[pulumi.Input[builtins.bool]]):
579
+ pulumi.set(self, "oidc_enable_pkce", value)
580
+
506
581
  @property
507
582
  @pulumi.getter(name="oidcScopes")
508
583
  def oidc_scopes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
@@ -528,6 +603,354 @@ class AclAuthMethodConfigArgs:
528
603
  def signing_algs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
529
604
  pulumi.set(self, "signing_algs", value)
530
605
 
606
+ @property
607
+ @pulumi.getter(name="verboseLogging")
608
+ def verbose_logging(self) -> Optional[pulumi.Input[builtins.bool]]:
609
+ """
610
+ Enable OIDC verbose logging on the Nomad server.
611
+ """
612
+ return pulumi.get(self, "verbose_logging")
613
+
614
+ @verbose_logging.setter
615
+ def verbose_logging(self, value: Optional[pulumi.Input[builtins.bool]]):
616
+ pulumi.set(self, "verbose_logging", value)
617
+
618
+
619
+ if not MYPY:
620
+ class AclAuthMethodConfigOidcClientAssertionArgsDict(TypedDict):
621
+ key_source: pulumi.Input[builtins.str]
622
+ """
623
+ `(string: <required>)` - Specifies where to get the private
624
+ key to sign the JWT.
625
+ Available sources:
626
+ - "nomad": Use current active key in Nomad's keyring
627
+ - "private_key": Use key material in the `private_key` field
628
+ - "client_secret": Use the `oidc_client_secret` as an HMAC key
629
+ """
630
+ audiences: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
631
+ """
632
+ `([]string: optional)` - Who processes the assertion.
633
+ Defaults to the auth method's `oidc_discovery_url`.
634
+ """
635
+ extra_headers: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]
636
+ """
637
+ `(map[string]string: optional)` - Add to the JWT headers,
638
+ alongside "kid" and "type". Setting the "kid" header here is not allowed;
639
+ use `private_key.key_id`.
640
+ """
641
+ key_algorithm: NotRequired[pulumi.Input[builtins.str]]
642
+ """
643
+ `(string: <optional>)` is the key's algorithm.
644
+ Its default values are based on the `key_source`:
645
+ - "nomad": "RS256"; this is from Nomad's keyring and must not be changed
646
+ - "private_key": "RS256"; must be RS256, RS384, or RS512
647
+ - "client_secret": "HS256"; must be HS256, HS384, or HS512
648
+ """
649
+ private_key: NotRequired[pulumi.Input['AclAuthMethodConfigOidcClientAssertionPrivateKeyArgsDict']]
650
+ """
651
+ `(OIDCClientAssertionKey: <optional>)` - External key
652
+ to sign the JWT. `key_source` must be "private_key" to enable this.
653
+ """
654
+ elif False:
655
+ AclAuthMethodConfigOidcClientAssertionArgsDict: TypeAlias = Mapping[str, Any]
656
+
657
+ @pulumi.input_type
658
+ class AclAuthMethodConfigOidcClientAssertionArgs:
659
+ def __init__(__self__, *,
660
+ key_source: pulumi.Input[builtins.str],
661
+ audiences: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
662
+ extra_headers: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
663
+ key_algorithm: Optional[pulumi.Input[builtins.str]] = None,
664
+ private_key: Optional[pulumi.Input['AclAuthMethodConfigOidcClientAssertionPrivateKeyArgs']] = None):
665
+ """
666
+ :param pulumi.Input[builtins.str] key_source: `(string: <required>)` - Specifies where to get the private
667
+ key to sign the JWT.
668
+ Available sources:
669
+ - "nomad": Use current active key in Nomad's keyring
670
+ - "private_key": Use key material in the `private_key` field
671
+ - "client_secret": Use the `oidc_client_secret` as an HMAC key
672
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] audiences: `([]string: optional)` - Who processes the assertion.
673
+ Defaults to the auth method's `oidc_discovery_url`.
674
+ :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] extra_headers: `(map[string]string: optional)` - Add to the JWT headers,
675
+ alongside "kid" and "type". Setting the "kid" header here is not allowed;
676
+ use `private_key.key_id`.
677
+ :param pulumi.Input[builtins.str] key_algorithm: `(string: <optional>)` is the key's algorithm.
678
+ Its default values are based on the `key_source`:
679
+ - "nomad": "RS256"; this is from Nomad's keyring and must not be changed
680
+ - "private_key": "RS256"; must be RS256, RS384, or RS512
681
+ - "client_secret": "HS256"; must be HS256, HS384, or HS512
682
+ :param pulumi.Input['AclAuthMethodConfigOidcClientAssertionPrivateKeyArgs'] private_key: `(OIDCClientAssertionKey: <optional>)` - External key
683
+ to sign the JWT. `key_source` must be "private_key" to enable this.
684
+ """
685
+ pulumi.set(__self__, "key_source", key_source)
686
+ if audiences is not None:
687
+ pulumi.set(__self__, "audiences", audiences)
688
+ if extra_headers is not None:
689
+ pulumi.set(__self__, "extra_headers", extra_headers)
690
+ if key_algorithm is not None:
691
+ pulumi.set(__self__, "key_algorithm", key_algorithm)
692
+ if private_key is not None:
693
+ pulumi.set(__self__, "private_key", private_key)
694
+
695
+ @property
696
+ @pulumi.getter(name="keySource")
697
+ def key_source(self) -> pulumi.Input[builtins.str]:
698
+ """
699
+ `(string: <required>)` - Specifies where to get the private
700
+ key to sign the JWT.
701
+ Available sources:
702
+ - "nomad": Use current active key in Nomad's keyring
703
+ - "private_key": Use key material in the `private_key` field
704
+ - "client_secret": Use the `oidc_client_secret` as an HMAC key
705
+ """
706
+ return pulumi.get(self, "key_source")
707
+
708
+ @key_source.setter
709
+ def key_source(self, value: pulumi.Input[builtins.str]):
710
+ pulumi.set(self, "key_source", value)
711
+
712
+ @property
713
+ @pulumi.getter
714
+ def audiences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
715
+ """
716
+ `([]string: optional)` - Who processes the assertion.
717
+ Defaults to the auth method's `oidc_discovery_url`.
718
+ """
719
+ return pulumi.get(self, "audiences")
720
+
721
+ @audiences.setter
722
+ def audiences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
723
+ pulumi.set(self, "audiences", value)
724
+
725
+ @property
726
+ @pulumi.getter(name="extraHeaders")
727
+ def extra_headers(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
728
+ """
729
+ `(map[string]string: optional)` - Add to the JWT headers,
730
+ alongside "kid" and "type". Setting the "kid" header here is not allowed;
731
+ use `private_key.key_id`.
732
+ """
733
+ return pulumi.get(self, "extra_headers")
734
+
735
+ @extra_headers.setter
736
+ def extra_headers(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
737
+ pulumi.set(self, "extra_headers", value)
738
+
739
+ @property
740
+ @pulumi.getter(name="keyAlgorithm")
741
+ def key_algorithm(self) -> Optional[pulumi.Input[builtins.str]]:
742
+ """
743
+ `(string: <optional>)` is the key's algorithm.
744
+ Its default values are based on the `key_source`:
745
+ - "nomad": "RS256"; this is from Nomad's keyring and must not be changed
746
+ - "private_key": "RS256"; must be RS256, RS384, or RS512
747
+ - "client_secret": "HS256"; must be HS256, HS384, or HS512
748
+ """
749
+ return pulumi.get(self, "key_algorithm")
750
+
751
+ @key_algorithm.setter
752
+ def key_algorithm(self, value: Optional[pulumi.Input[builtins.str]]):
753
+ pulumi.set(self, "key_algorithm", value)
754
+
755
+ @property
756
+ @pulumi.getter(name="privateKey")
757
+ def private_key(self) -> Optional[pulumi.Input['AclAuthMethodConfigOidcClientAssertionPrivateKeyArgs']]:
758
+ """
759
+ `(OIDCClientAssertionKey: <optional>)` - External key
760
+ to sign the JWT. `key_source` must be "private_key" to enable this.
761
+ """
762
+ return pulumi.get(self, "private_key")
763
+
764
+ @private_key.setter
765
+ def private_key(self, value: Optional[pulumi.Input['AclAuthMethodConfigOidcClientAssertionPrivateKeyArgs']]):
766
+ pulumi.set(self, "private_key", value)
767
+
768
+
769
+ if not MYPY:
770
+ class AclAuthMethodConfigOidcClientAssertionPrivateKeyArgsDict(TypedDict):
771
+ key_id: NotRequired[pulumi.Input[builtins.str]]
772
+ """
773
+ `(string: optional)` - Becomes the JWT's "kid" header.
774
+ Mutually exclusive with `pem_cert` and `pem_cert_file`.
775
+ Allowed `key_id_header` values: "kid" (the default)
776
+ """
777
+ key_id_header: NotRequired[pulumi.Input[builtins.str]]
778
+ """
779
+ `(string: optional)` - Which header the provider uses
780
+ to find the public key to verify the signed JWT.
781
+ The default and allowed values depend on whether you set `key_id`,
782
+ `pem_cert`, or `pem_cert_file`. You must set exactly one of those
783
+ options, so refer to them for their requirements.
784
+ """
785
+ pem_cert: NotRequired[pulumi.Input[builtins.str]]
786
+ """
787
+ `(string: optional)` - An x509 certificate, signed by the
788
+ private key or a CA, in pem format. Nomad uses this certificate to
789
+ derive an [x5t#S256][] (or [x5t][]) key_id.
790
+ Mutually exclusive with `pem_cert_file` and `key_id`.
791
+ Allowed `key_id_header` values: "x5t", "x5t#S256" (default "x5t#S256")
792
+ """
793
+ pem_cert_file: NotRequired[pulumi.Input[builtins.str]]
794
+ """
795
+ `(string: optional)` - An absolute path to an x509
796
+ certificate on Nomad servers' disk, signed by the private key or a CA,
797
+ in pem format.
798
+ Nomad uses this certificate to derive an [x5t#S256][] (or [x5t][])
799
+ header. Mutually exclusive with `pem_cert` and key_id.
800
+ Allowed `key_id_header` values: "x5t", "x5t#S256" (default "x5t#S256")
801
+ """
802
+ pem_key: NotRequired[pulumi.Input[builtins.str]]
803
+ """
804
+ `(string: <optional>)` - An RSA private key, in pem format.
805
+ It is used to sign the JWT. Mutually exclusive with `pem_key`.
806
+ """
807
+ pem_key_file: NotRequired[pulumi.Input[builtins.str]]
808
+ """
809
+ `(string: optional)` - An absolute path to a private key
810
+ on Nomad servers' disk, in pem format. It is used to sign the JWT.
811
+ Mutually exclusive with `pem_key_file`.
812
+ """
813
+ elif False:
814
+ AclAuthMethodConfigOidcClientAssertionPrivateKeyArgsDict: TypeAlias = Mapping[str, Any]
815
+
816
+ @pulumi.input_type
817
+ class AclAuthMethodConfigOidcClientAssertionPrivateKeyArgs:
818
+ def __init__(__self__, *,
819
+ key_id: Optional[pulumi.Input[builtins.str]] = None,
820
+ key_id_header: Optional[pulumi.Input[builtins.str]] = None,
821
+ pem_cert: Optional[pulumi.Input[builtins.str]] = None,
822
+ pem_cert_file: Optional[pulumi.Input[builtins.str]] = None,
823
+ pem_key: Optional[pulumi.Input[builtins.str]] = None,
824
+ pem_key_file: Optional[pulumi.Input[builtins.str]] = None):
825
+ """
826
+ :param pulumi.Input[builtins.str] key_id: `(string: optional)` - Becomes the JWT's "kid" header.
827
+ Mutually exclusive with `pem_cert` and `pem_cert_file`.
828
+ Allowed `key_id_header` values: "kid" (the default)
829
+ :param pulumi.Input[builtins.str] key_id_header: `(string: optional)` - Which header the provider uses
830
+ to find the public key to verify the signed JWT.
831
+ The default and allowed values depend on whether you set `key_id`,
832
+ `pem_cert`, or `pem_cert_file`. You must set exactly one of those
833
+ options, so refer to them for their requirements.
834
+ :param pulumi.Input[builtins.str] pem_cert: `(string: optional)` - An x509 certificate, signed by the
835
+ private key or a CA, in pem format. Nomad uses this certificate to
836
+ derive an [x5t#S256][] (or [x5t][]) key_id.
837
+ Mutually exclusive with `pem_cert_file` and `key_id`.
838
+ Allowed `key_id_header` values: "x5t", "x5t#S256" (default "x5t#S256")
839
+ :param pulumi.Input[builtins.str] pem_cert_file: `(string: optional)` - An absolute path to an x509
840
+ certificate on Nomad servers' disk, signed by the private key or a CA,
841
+ in pem format.
842
+ Nomad uses this certificate to derive an [x5t#S256][] (or [x5t][])
843
+ header. Mutually exclusive with `pem_cert` and key_id.
844
+ Allowed `key_id_header` values: "x5t", "x5t#S256" (default "x5t#S256")
845
+ :param pulumi.Input[builtins.str] pem_key: `(string: <optional>)` - An RSA private key, in pem format.
846
+ It is used to sign the JWT. Mutually exclusive with `pem_key`.
847
+ :param pulumi.Input[builtins.str] pem_key_file: `(string: optional)` - An absolute path to a private key
848
+ on Nomad servers' disk, in pem format. It is used to sign the JWT.
849
+ Mutually exclusive with `pem_key_file`.
850
+ """
851
+ if key_id is not None:
852
+ pulumi.set(__self__, "key_id", key_id)
853
+ if key_id_header is not None:
854
+ pulumi.set(__self__, "key_id_header", key_id_header)
855
+ if pem_cert is not None:
856
+ pulumi.set(__self__, "pem_cert", pem_cert)
857
+ if pem_cert_file is not None:
858
+ pulumi.set(__self__, "pem_cert_file", pem_cert_file)
859
+ if pem_key is not None:
860
+ pulumi.set(__self__, "pem_key", pem_key)
861
+ if pem_key_file is not None:
862
+ pulumi.set(__self__, "pem_key_file", pem_key_file)
863
+
864
+ @property
865
+ @pulumi.getter(name="keyId")
866
+ def key_id(self) -> Optional[pulumi.Input[builtins.str]]:
867
+ """
868
+ `(string: optional)` - Becomes the JWT's "kid" header.
869
+ Mutually exclusive with `pem_cert` and `pem_cert_file`.
870
+ Allowed `key_id_header` values: "kid" (the default)
871
+ """
872
+ return pulumi.get(self, "key_id")
873
+
874
+ @key_id.setter
875
+ def key_id(self, value: Optional[pulumi.Input[builtins.str]]):
876
+ pulumi.set(self, "key_id", value)
877
+
878
+ @property
879
+ @pulumi.getter(name="keyIdHeader")
880
+ def key_id_header(self) -> Optional[pulumi.Input[builtins.str]]:
881
+ """
882
+ `(string: optional)` - Which header the provider uses
883
+ to find the public key to verify the signed JWT.
884
+ The default and allowed values depend on whether you set `key_id`,
885
+ `pem_cert`, or `pem_cert_file`. You must set exactly one of those
886
+ options, so refer to them for their requirements.
887
+ """
888
+ return pulumi.get(self, "key_id_header")
889
+
890
+ @key_id_header.setter
891
+ def key_id_header(self, value: Optional[pulumi.Input[builtins.str]]):
892
+ pulumi.set(self, "key_id_header", value)
893
+
894
+ @property
895
+ @pulumi.getter(name="pemCert")
896
+ def pem_cert(self) -> Optional[pulumi.Input[builtins.str]]:
897
+ """
898
+ `(string: optional)` - An x509 certificate, signed by the
899
+ private key or a CA, in pem format. Nomad uses this certificate to
900
+ derive an [x5t#S256][] (or [x5t][]) key_id.
901
+ Mutually exclusive with `pem_cert_file` and `key_id`.
902
+ Allowed `key_id_header` values: "x5t", "x5t#S256" (default "x5t#S256")
903
+ """
904
+ return pulumi.get(self, "pem_cert")
905
+
906
+ @pem_cert.setter
907
+ def pem_cert(self, value: Optional[pulumi.Input[builtins.str]]):
908
+ pulumi.set(self, "pem_cert", value)
909
+
910
+ @property
911
+ @pulumi.getter(name="pemCertFile")
912
+ def pem_cert_file(self) -> Optional[pulumi.Input[builtins.str]]:
913
+ """
914
+ `(string: optional)` - An absolute path to an x509
915
+ certificate on Nomad servers' disk, signed by the private key or a CA,
916
+ in pem format.
917
+ Nomad uses this certificate to derive an [x5t#S256][] (or [x5t][])
918
+ header. Mutually exclusive with `pem_cert` and key_id.
919
+ Allowed `key_id_header` values: "x5t", "x5t#S256" (default "x5t#S256")
920
+ """
921
+ return pulumi.get(self, "pem_cert_file")
922
+
923
+ @pem_cert_file.setter
924
+ def pem_cert_file(self, value: Optional[pulumi.Input[builtins.str]]):
925
+ pulumi.set(self, "pem_cert_file", value)
926
+
927
+ @property
928
+ @pulumi.getter(name="pemKey")
929
+ def pem_key(self) -> Optional[pulumi.Input[builtins.str]]:
930
+ """
931
+ `(string: <optional>)` - An RSA private key, in pem format.
932
+ It is used to sign the JWT. Mutually exclusive with `pem_key`.
933
+ """
934
+ return pulumi.get(self, "pem_key")
935
+
936
+ @pem_key.setter
937
+ def pem_key(self, value: Optional[pulumi.Input[builtins.str]]):
938
+ pulumi.set(self, "pem_key", value)
939
+
940
+ @property
941
+ @pulumi.getter(name="pemKeyFile")
942
+ def pem_key_file(self) -> Optional[pulumi.Input[builtins.str]]:
943
+ """
944
+ `(string: optional)` - An absolute path to a private key
945
+ on Nomad servers' disk, in pem format. It is used to sign the JWT.
946
+ Mutually exclusive with `pem_key_file`.
947
+ """
948
+ return pulumi.get(self, "pem_key_file")
949
+
950
+ @pem_key_file.setter
951
+ def pem_key_file(self, value: Optional[pulumi.Input[builtins.str]]):
952
+ pulumi.set(self, "pem_key_file", value)
953
+
531
954
 
532
955
  if not MYPY:
533
956
  class AclPolicyJobAclArgsDict(TypedDict):
@@ -1300,6 +1723,260 @@ class CsiVolumeTopologyRequestRequiredTopologyArgs:
1300
1723
  pulumi.set(self, "segments", value)
1301
1724
 
1302
1725
 
1726
+ if not MYPY:
1727
+ class DynamicHostVolumeCapabilityArgsDict(TypedDict):
1728
+ access_mode: pulumi.Input[builtins.str]
1729
+ """
1730
+ `(string)` - How the volume can be mounted by
1731
+ allocations. Refer to the [`access_mode`][] documentation for details.
1732
+ """
1733
+ attachment_mode: pulumi.Input[builtins.str]
1734
+ """
1735
+ `(string)` - The storage API that will be used by the
1736
+ volume. Refer to the [`attachment_mode`][] documentation.
1737
+ """
1738
+ elif False:
1739
+ DynamicHostVolumeCapabilityArgsDict: TypeAlias = Mapping[str, Any]
1740
+
1741
+ @pulumi.input_type
1742
+ class DynamicHostVolumeCapabilityArgs:
1743
+ def __init__(__self__, *,
1744
+ access_mode: pulumi.Input[builtins.str],
1745
+ attachment_mode: pulumi.Input[builtins.str]):
1746
+ """
1747
+ :param pulumi.Input[builtins.str] access_mode: `(string)` - How the volume can be mounted by
1748
+ allocations. Refer to the [`access_mode`][] documentation for details.
1749
+ :param pulumi.Input[builtins.str] attachment_mode: `(string)` - The storage API that will be used by the
1750
+ volume. Refer to the [`attachment_mode`][] documentation.
1751
+ """
1752
+ pulumi.set(__self__, "access_mode", access_mode)
1753
+ pulumi.set(__self__, "attachment_mode", attachment_mode)
1754
+
1755
+ @property
1756
+ @pulumi.getter(name="accessMode")
1757
+ def access_mode(self) -> pulumi.Input[builtins.str]:
1758
+ """
1759
+ `(string)` - How the volume can be mounted by
1760
+ allocations. Refer to the [`access_mode`][] documentation for details.
1761
+ """
1762
+ return pulumi.get(self, "access_mode")
1763
+
1764
+ @access_mode.setter
1765
+ def access_mode(self, value: pulumi.Input[builtins.str]):
1766
+ pulumi.set(self, "access_mode", value)
1767
+
1768
+ @property
1769
+ @pulumi.getter(name="attachmentMode")
1770
+ def attachment_mode(self) -> pulumi.Input[builtins.str]:
1771
+ """
1772
+ `(string)` - The storage API that will be used by the
1773
+ volume. Refer to the [`attachment_mode`][] documentation.
1774
+ """
1775
+ return pulumi.get(self, "attachment_mode")
1776
+
1777
+ @attachment_mode.setter
1778
+ def attachment_mode(self, value: pulumi.Input[builtins.str]):
1779
+ pulumi.set(self, "attachment_mode", value)
1780
+
1781
+
1782
+ if not MYPY:
1783
+ class DynamicHostVolumeConstraintArgsDict(TypedDict):
1784
+ attribute: pulumi.Input[builtins.str]
1785
+ """
1786
+ `(string)` - The [node attribute][] to check for the constraint.
1787
+ """
1788
+ operator: NotRequired[pulumi.Input[builtins.str]]
1789
+ """
1790
+ `(string)`- The operator to use in the comparison.
1791
+ """
1792
+ value: NotRequired[pulumi.Input[builtins.str]]
1793
+ """
1794
+ `(string)` - The value of the attribute to compare against.
1795
+ """
1796
+ elif False:
1797
+ DynamicHostVolumeConstraintArgsDict: TypeAlias = Mapping[str, Any]
1798
+
1799
+ @pulumi.input_type
1800
+ class DynamicHostVolumeConstraintArgs:
1801
+ def __init__(__self__, *,
1802
+ attribute: pulumi.Input[builtins.str],
1803
+ operator: Optional[pulumi.Input[builtins.str]] = None,
1804
+ value: Optional[pulumi.Input[builtins.str]] = None):
1805
+ """
1806
+ :param pulumi.Input[builtins.str] attribute: `(string)` - The [node attribute][] to check for the constraint.
1807
+ :param pulumi.Input[builtins.str] operator: `(string)`- The operator to use in the comparison.
1808
+ :param pulumi.Input[builtins.str] value: `(string)` - The value of the attribute to compare against.
1809
+ """
1810
+ pulumi.set(__self__, "attribute", attribute)
1811
+ if operator is not None:
1812
+ pulumi.set(__self__, "operator", operator)
1813
+ if value is not None:
1814
+ pulumi.set(__self__, "value", value)
1815
+
1816
+ @property
1817
+ @pulumi.getter
1818
+ def attribute(self) -> pulumi.Input[builtins.str]:
1819
+ """
1820
+ `(string)` - The [node attribute][] to check for the constraint.
1821
+ """
1822
+ return pulumi.get(self, "attribute")
1823
+
1824
+ @attribute.setter
1825
+ def attribute(self, value: pulumi.Input[builtins.str]):
1826
+ pulumi.set(self, "attribute", value)
1827
+
1828
+ @property
1829
+ @pulumi.getter
1830
+ def operator(self) -> Optional[pulumi.Input[builtins.str]]:
1831
+ """
1832
+ `(string)`- The operator to use in the comparison.
1833
+ """
1834
+ return pulumi.get(self, "operator")
1835
+
1836
+ @operator.setter
1837
+ def operator(self, value: Optional[pulumi.Input[builtins.str]]):
1838
+ pulumi.set(self, "operator", value)
1839
+
1840
+ @property
1841
+ @pulumi.getter
1842
+ def value(self) -> Optional[pulumi.Input[builtins.str]]:
1843
+ """
1844
+ `(string)` - The value of the attribute to compare against.
1845
+ """
1846
+ return pulumi.get(self, "value")
1847
+
1848
+ @value.setter
1849
+ def value(self, value: Optional[pulumi.Input[builtins.str]]):
1850
+ pulumi.set(self, "value", value)
1851
+
1852
+
1853
+ if not MYPY:
1854
+ class DynamicHostVolumeRegistrationCapabilityArgsDict(TypedDict):
1855
+ access_mode: pulumi.Input[builtins.str]
1856
+ """
1857
+ `(string)` - How the volume can be mounted by
1858
+ allocations. Refer to the [`access_mode`][] documentation for details.
1859
+ """
1860
+ attachment_mode: pulumi.Input[builtins.str]
1861
+ """
1862
+ `(string)` - The storage API that will be used by the
1863
+ volume. Refer to the [`attachment_mode`][] documentation.
1864
+ """
1865
+ elif False:
1866
+ DynamicHostVolumeRegistrationCapabilityArgsDict: TypeAlias = Mapping[str, Any]
1867
+
1868
+ @pulumi.input_type
1869
+ class DynamicHostVolumeRegistrationCapabilityArgs:
1870
+ def __init__(__self__, *,
1871
+ access_mode: pulumi.Input[builtins.str],
1872
+ attachment_mode: pulumi.Input[builtins.str]):
1873
+ """
1874
+ :param pulumi.Input[builtins.str] access_mode: `(string)` - How the volume can be mounted by
1875
+ allocations. Refer to the [`access_mode`][] documentation for details.
1876
+ :param pulumi.Input[builtins.str] attachment_mode: `(string)` - The storage API that will be used by the
1877
+ volume. Refer to the [`attachment_mode`][] documentation.
1878
+ """
1879
+ pulumi.set(__self__, "access_mode", access_mode)
1880
+ pulumi.set(__self__, "attachment_mode", attachment_mode)
1881
+
1882
+ @property
1883
+ @pulumi.getter(name="accessMode")
1884
+ def access_mode(self) -> pulumi.Input[builtins.str]:
1885
+ """
1886
+ `(string)` - How the volume can be mounted by
1887
+ allocations. Refer to the [`access_mode`][] documentation for details.
1888
+ """
1889
+ return pulumi.get(self, "access_mode")
1890
+
1891
+ @access_mode.setter
1892
+ def access_mode(self, value: pulumi.Input[builtins.str]):
1893
+ pulumi.set(self, "access_mode", value)
1894
+
1895
+ @property
1896
+ @pulumi.getter(name="attachmentMode")
1897
+ def attachment_mode(self) -> pulumi.Input[builtins.str]:
1898
+ """
1899
+ `(string)` - The storage API that will be used by the
1900
+ volume. Refer to the [`attachment_mode`][] documentation.
1901
+ """
1902
+ return pulumi.get(self, "attachment_mode")
1903
+
1904
+ @attachment_mode.setter
1905
+ def attachment_mode(self, value: pulumi.Input[builtins.str]):
1906
+ pulumi.set(self, "attachment_mode", value)
1907
+
1908
+
1909
+ if not MYPY:
1910
+ class DynamicHostVolumeRegistrationConstraintArgsDict(TypedDict):
1911
+ attribute: pulumi.Input[builtins.str]
1912
+ """
1913
+ An attribute to check to constrain volume placement
1914
+ """
1915
+ operator: NotRequired[pulumi.Input[builtins.str]]
1916
+ """
1917
+ The operator to use for comparison
1918
+ """
1919
+ value: NotRequired[pulumi.Input[builtins.str]]
1920
+ """
1921
+ The requested value of the attribute
1922
+ """
1923
+ elif False:
1924
+ DynamicHostVolumeRegistrationConstraintArgsDict: TypeAlias = Mapping[str, Any]
1925
+
1926
+ @pulumi.input_type
1927
+ class DynamicHostVolumeRegistrationConstraintArgs:
1928
+ def __init__(__self__, *,
1929
+ attribute: pulumi.Input[builtins.str],
1930
+ operator: Optional[pulumi.Input[builtins.str]] = None,
1931
+ value: Optional[pulumi.Input[builtins.str]] = None):
1932
+ """
1933
+ :param pulumi.Input[builtins.str] attribute: An attribute to check to constrain volume placement
1934
+ :param pulumi.Input[builtins.str] operator: The operator to use for comparison
1935
+ :param pulumi.Input[builtins.str] value: The requested value of the attribute
1936
+ """
1937
+ pulumi.set(__self__, "attribute", attribute)
1938
+ if operator is not None:
1939
+ pulumi.set(__self__, "operator", operator)
1940
+ if value is not None:
1941
+ pulumi.set(__self__, "value", value)
1942
+
1943
+ @property
1944
+ @pulumi.getter
1945
+ def attribute(self) -> pulumi.Input[builtins.str]:
1946
+ """
1947
+ An attribute to check to constrain volume placement
1948
+ """
1949
+ return pulumi.get(self, "attribute")
1950
+
1951
+ @attribute.setter
1952
+ def attribute(self, value: pulumi.Input[builtins.str]):
1953
+ pulumi.set(self, "attribute", value)
1954
+
1955
+ @property
1956
+ @pulumi.getter
1957
+ def operator(self) -> Optional[pulumi.Input[builtins.str]]:
1958
+ """
1959
+ The operator to use for comparison
1960
+ """
1961
+ return pulumi.get(self, "operator")
1962
+
1963
+ @operator.setter
1964
+ def operator(self, value: Optional[pulumi.Input[builtins.str]]):
1965
+ pulumi.set(self, "operator", value)
1966
+
1967
+ @property
1968
+ @pulumi.getter
1969
+ def value(self) -> Optional[pulumi.Input[builtins.str]]:
1970
+ """
1971
+ The requested value of the attribute
1972
+ """
1973
+ return pulumi.get(self, "value")
1974
+
1975
+ @value.setter
1976
+ def value(self, value: Optional[pulumi.Input[builtins.str]]):
1977
+ pulumi.set(self, "value", value)
1978
+
1979
+
1303
1980
  if not MYPY:
1304
1981
  class ExternalVolumeCapabilityArgsDict(TypedDict):
1305
1982
  access_mode: pulumi.Input[builtins.str]