pulumi-nomad 2.5.0a1744697511__py3-none-any.whl → 2.5.0a1744860632__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/__init__.py +19 -0
- pulumi_nomad/_inputs.py +678 -1
- pulumi_nomad/acl_policy.py +14 -7
- pulumi_nomad/config/__init__.pyi +0 -10
- pulumi_nomad/config/vars.py +0 -14
- pulumi_nomad/csi_volume.py +28 -0
- pulumi_nomad/dynamic_host_volume.py +1005 -0
- pulumi_nomad/dynamic_host_volume_registration.py +740 -0
- pulumi_nomad/get_dynamic_host_volume.py +353 -0
- pulumi_nomad/get_volumes.py +2 -2
- pulumi_nomad/job.py +3 -113
- pulumi_nomad/outputs.py +579 -1
- pulumi_nomad/provider.py +1 -59
- pulumi_nomad/pulumi-plugin.json +1 -1
- {pulumi_nomad-2.5.0a1744697511.dist-info → pulumi_nomad-2.5.0a1744860632.dist-info}/METADATA +1 -1
- {pulumi_nomad-2.5.0a1744697511.dist-info → pulumi_nomad-2.5.0a1744860632.dist-info}/RECORD +18 -15
- {pulumi_nomad-2.5.0a1744697511.dist-info → pulumi_nomad-2.5.0a1744860632.dist-info}/WHEEL +0 -0
- {pulumi_nomad-2.5.0a1744697511.dist-info → pulumi_nomad-2.5.0a1744860632.dist-info}/top_level.txt +0 -0
pulumi_nomad/outputs.py
CHANGED
@@ -18,6 +18,8 @@ from . import outputs
|
|
18
18
|
|
19
19
|
__all__ = [
|
20
20
|
'AclAuthMethodConfig',
|
21
|
+
'AclAuthMethodConfigOidcClientAssertion',
|
22
|
+
'AclAuthMethodConfigOidcClientAssertionPrivateKey',
|
21
23
|
'AclPolicyJobAcl',
|
22
24
|
'AclRolePolicy',
|
23
25
|
'AclTokenRole',
|
@@ -35,6 +37,10 @@ __all__ = [
|
|
35
37
|
'CsiVolumeTopologyRequestPreferredTopology',
|
36
38
|
'CsiVolumeTopologyRequestRequired',
|
37
39
|
'CsiVolumeTopologyRequestRequiredTopology',
|
40
|
+
'DynamicHostVolumeCapability',
|
41
|
+
'DynamicHostVolumeConstraint',
|
42
|
+
'DynamicHostVolumeRegistrationCapability',
|
43
|
+
'DynamicHostVolumeRegistrationConstraint',
|
38
44
|
'ExternalVolumeCapability',
|
39
45
|
'ExternalVolumeMountOptions',
|
40
46
|
'ExternalVolumeTopology',
|
@@ -67,6 +73,8 @@ __all__ = [
|
|
67
73
|
'GetAclTokensAclTokenResult',
|
68
74
|
'GetAclTokensAclTokenRoleResult',
|
69
75
|
'GetAllocationsAllocationResult',
|
76
|
+
'GetDynamicHostVolumeCapabilityResult',
|
77
|
+
'GetDynamicHostVolumeConstraintResult',
|
70
78
|
'GetJobConstraintResult',
|
71
79
|
'GetJobPeriodicConfigResult',
|
72
80
|
'GetJobTaskGroupResult',
|
@@ -112,6 +120,8 @@ class AclAuthMethodConfig(dict):
|
|
112
120
|
suggest = "list_claim_mappings"
|
113
121
|
elif key == "notBeforeLeeway":
|
114
122
|
suggest = "not_before_leeway"
|
123
|
+
elif key == "oidcClientAssertion":
|
124
|
+
suggest = "oidc_client_assertion"
|
115
125
|
elif key == "oidcClientId":
|
116
126
|
suggest = "oidc_client_id"
|
117
127
|
elif key == "oidcClientSecret":
|
@@ -120,10 +130,14 @@ class AclAuthMethodConfig(dict):
|
|
120
130
|
suggest = "oidc_disable_userinfo"
|
121
131
|
elif key == "oidcDiscoveryUrl":
|
122
132
|
suggest = "oidc_discovery_url"
|
133
|
+
elif key == "oidcEnablePkce":
|
134
|
+
suggest = "oidc_enable_pkce"
|
123
135
|
elif key == "oidcScopes":
|
124
136
|
suggest = "oidc_scopes"
|
125
137
|
elif key == "signingAlgs":
|
126
138
|
suggest = "signing_algs"
|
139
|
+
elif key == "verboseLogging":
|
140
|
+
suggest = "verbose_logging"
|
127
141
|
|
128
142
|
if suggest:
|
129
143
|
pulumi.log.warn(f"Key '{key}' not found in AclAuthMethodConfig. Access the value via the '{suggest}' property getter instead.")
|
@@ -149,12 +163,15 @@ class AclAuthMethodConfig(dict):
|
|
149
163
|
jwt_validation_pub_keys: Optional[Sequence[builtins.str]] = None,
|
150
164
|
list_claim_mappings: Optional[Mapping[str, builtins.str]] = None,
|
151
165
|
not_before_leeway: Optional[builtins.str] = None,
|
166
|
+
oidc_client_assertion: Optional['outputs.AclAuthMethodConfigOidcClientAssertion'] = None,
|
152
167
|
oidc_client_id: Optional[builtins.str] = None,
|
153
168
|
oidc_client_secret: Optional[builtins.str] = None,
|
154
169
|
oidc_disable_userinfo: Optional[builtins.bool] = None,
|
155
170
|
oidc_discovery_url: Optional[builtins.str] = None,
|
171
|
+
oidc_enable_pkce: Optional[builtins.bool] = None,
|
156
172
|
oidc_scopes: Optional[Sequence[builtins.str]] = None,
|
157
|
-
signing_algs: Optional[Sequence[builtins.str]] = None
|
173
|
+
signing_algs: Optional[Sequence[builtins.str]] = None,
|
174
|
+
verbose_logging: Optional[builtins.bool] = None):
|
158
175
|
"""
|
159
176
|
:param Sequence[builtins.str] allowed_redirect_uris: `([]string: <optional>)` - A list of allowed values
|
160
177
|
that can be used for the redirect URI.
|
@@ -178,6 +195,10 @@ class AclAuthMethodConfig(dict):
|
|
178
195
|
:param Mapping[str, builtins.str] list_claim_mappings: Mappings of list claims (key) that will be copied to a metadata field (value).
|
179
196
|
:param builtins.str not_before_leeway: `(string: <optional>)` - Duration of leeway when validating
|
180
197
|
not before values of a token in the form of a time duration such as "5m" or "1h".
|
198
|
+
:param 'AclAuthMethodConfigOidcClientAssertionArgs' oidc_client_assertion: `(OIDCClientAssertion: <optional>)` - Optionally
|
199
|
+
send a signed JWT ("[private key jwt][]") as a client assertion to the OIDC
|
200
|
+
provider. Browse to the [OIDC concepts][concepts-assertions] page to learn
|
201
|
+
more.
|
181
202
|
:param builtins.str oidc_client_id: `(string: <optional>)` - The OAuth Client ID configured
|
182
203
|
with the OIDC provider.
|
183
204
|
:param builtins.str oidc_client_secret: `(string: <optional>)` - The OAuth Client Secret
|
@@ -188,9 +209,13 @@ class AclAuthMethodConfig(dict):
|
|
188
209
|
additional claims from the `UserInfo` endpoint.
|
189
210
|
:param builtins.str oidc_discovery_url: `(string: <optional>)` - The OIDC Discovery URL,
|
190
211
|
without any .well-known component (base path).
|
212
|
+
:param builtins.bool oidc_enable_pkce: `(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.
|
191
215
|
:param Sequence[builtins.str] oidc_scopes: `([]string: <optional>)` - List of OIDC scopes.
|
192
216
|
:param Sequence[builtins.str] signing_algs: `([]string: <optional>)` - A list of supported signing
|
193
217
|
algorithms.
|
218
|
+
:param builtins.bool verbose_logging: Enable OIDC verbose logging on the Nomad server.
|
194
219
|
"""
|
195
220
|
if allowed_redirect_uris is not None:
|
196
221
|
pulumi.set(__self__, "allowed_redirect_uris", allowed_redirect_uris)
|
@@ -216,6 +241,8 @@ class AclAuthMethodConfig(dict):
|
|
216
241
|
pulumi.set(__self__, "list_claim_mappings", list_claim_mappings)
|
217
242
|
if not_before_leeway is not None:
|
218
243
|
pulumi.set(__self__, "not_before_leeway", not_before_leeway)
|
244
|
+
if oidc_client_assertion is not None:
|
245
|
+
pulumi.set(__self__, "oidc_client_assertion", oidc_client_assertion)
|
219
246
|
if oidc_client_id is not None:
|
220
247
|
pulumi.set(__self__, "oidc_client_id", oidc_client_id)
|
221
248
|
if oidc_client_secret is not None:
|
@@ -224,10 +251,14 @@ class AclAuthMethodConfig(dict):
|
|
224
251
|
pulumi.set(__self__, "oidc_disable_userinfo", oidc_disable_userinfo)
|
225
252
|
if oidc_discovery_url is not None:
|
226
253
|
pulumi.set(__self__, "oidc_discovery_url", oidc_discovery_url)
|
254
|
+
if oidc_enable_pkce is not None:
|
255
|
+
pulumi.set(__self__, "oidc_enable_pkce", oidc_enable_pkce)
|
227
256
|
if oidc_scopes is not None:
|
228
257
|
pulumi.set(__self__, "oidc_scopes", oidc_scopes)
|
229
258
|
if signing_algs is not None:
|
230
259
|
pulumi.set(__self__, "signing_algs", signing_algs)
|
260
|
+
if verbose_logging is not None:
|
261
|
+
pulumi.set(__self__, "verbose_logging", verbose_logging)
|
231
262
|
|
232
263
|
@property
|
233
264
|
@pulumi.getter(name="allowedRedirectUris")
|
@@ -335,6 +366,17 @@ class AclAuthMethodConfig(dict):
|
|
335
366
|
"""
|
336
367
|
return pulumi.get(self, "not_before_leeway")
|
337
368
|
|
369
|
+
@property
|
370
|
+
@pulumi.getter(name="oidcClientAssertion")
|
371
|
+
def oidc_client_assertion(self) -> Optional['outputs.AclAuthMethodConfigOidcClientAssertion']:
|
372
|
+
"""
|
373
|
+
`(OIDCClientAssertion: <optional>)` - Optionally
|
374
|
+
send a signed JWT ("[private key jwt][]") as a client assertion to the OIDC
|
375
|
+
provider. Browse to the [OIDC concepts][concepts-assertions] page to learn
|
376
|
+
more.
|
377
|
+
"""
|
378
|
+
return pulumi.get(self, "oidc_client_assertion")
|
379
|
+
|
338
380
|
@property
|
339
381
|
@pulumi.getter(name="oidcClientId")
|
340
382
|
def oidc_client_id(self) -> Optional[builtins.str]:
|
@@ -373,6 +415,16 @@ class AclAuthMethodConfig(dict):
|
|
373
415
|
"""
|
374
416
|
return pulumi.get(self, "oidc_discovery_url")
|
375
417
|
|
418
|
+
@property
|
419
|
+
@pulumi.getter(name="oidcEnablePkce")
|
420
|
+
def oidc_enable_pkce(self) -> Optional[builtins.bool]:
|
421
|
+
"""
|
422
|
+
`(bool: false)` - When set to `true`, Nomad will include
|
423
|
+
[PKCE][] verification in the auth flow. Even with PKCE enabled in Nomad,
|
424
|
+
you may still need to enable it in your OIDC provider.
|
425
|
+
"""
|
426
|
+
return pulumi.get(self, "oidc_enable_pkce")
|
427
|
+
|
376
428
|
@property
|
377
429
|
@pulumi.getter(name="oidcScopes")
|
378
430
|
def oidc_scopes(self) -> Optional[Sequence[builtins.str]]:
|
@@ -390,6 +442,271 @@ class AclAuthMethodConfig(dict):
|
|
390
442
|
"""
|
391
443
|
return pulumi.get(self, "signing_algs")
|
392
444
|
|
445
|
+
@property
|
446
|
+
@pulumi.getter(name="verboseLogging")
|
447
|
+
def verbose_logging(self) -> Optional[builtins.bool]:
|
448
|
+
"""
|
449
|
+
Enable OIDC verbose logging on the Nomad server.
|
450
|
+
"""
|
451
|
+
return pulumi.get(self, "verbose_logging")
|
452
|
+
|
453
|
+
|
454
|
+
@pulumi.output_type
|
455
|
+
class AclAuthMethodConfigOidcClientAssertion(dict):
|
456
|
+
@staticmethod
|
457
|
+
def __key_warning(key: str):
|
458
|
+
suggest = None
|
459
|
+
if key == "keySource":
|
460
|
+
suggest = "key_source"
|
461
|
+
elif key == "extraHeaders":
|
462
|
+
suggest = "extra_headers"
|
463
|
+
elif key == "keyAlgorithm":
|
464
|
+
suggest = "key_algorithm"
|
465
|
+
elif key == "privateKey":
|
466
|
+
suggest = "private_key"
|
467
|
+
|
468
|
+
if suggest:
|
469
|
+
pulumi.log.warn(f"Key '{key}' not found in AclAuthMethodConfigOidcClientAssertion. Access the value via the '{suggest}' property getter instead.")
|
470
|
+
|
471
|
+
def __getitem__(self, key: str) -> Any:
|
472
|
+
AclAuthMethodConfigOidcClientAssertion.__key_warning(key)
|
473
|
+
return super().__getitem__(key)
|
474
|
+
|
475
|
+
def get(self, key: str, default = None) -> Any:
|
476
|
+
AclAuthMethodConfigOidcClientAssertion.__key_warning(key)
|
477
|
+
return super().get(key, default)
|
478
|
+
|
479
|
+
def __init__(__self__, *,
|
480
|
+
key_source: builtins.str,
|
481
|
+
audiences: Optional[Sequence[builtins.str]] = None,
|
482
|
+
extra_headers: Optional[Mapping[str, builtins.str]] = None,
|
483
|
+
key_algorithm: Optional[builtins.str] = None,
|
484
|
+
private_key: Optional['outputs.AclAuthMethodConfigOidcClientAssertionPrivateKey'] = None):
|
485
|
+
"""
|
486
|
+
:param builtins.str key_source: `(string: <required>)` - Specifies where to get the private
|
487
|
+
key to sign the JWT.
|
488
|
+
Available sources:
|
489
|
+
- "nomad": Use current active key in Nomad's keyring
|
490
|
+
- "private_key": Use key material in the `private_key` field
|
491
|
+
- "client_secret": Use the `oidc_client_secret` as an HMAC key
|
492
|
+
:param Sequence[builtins.str] audiences: `([]string: optional)` - Who processes the assertion.
|
493
|
+
Defaults to the auth method's `oidc_discovery_url`.
|
494
|
+
:param Mapping[str, builtins.str] extra_headers: `(map[string]string: optional)` - Add to the JWT headers,
|
495
|
+
alongside "kid" and "type". Setting the "kid" header here is not allowed;
|
496
|
+
use `private_key.key_id`.
|
497
|
+
:param builtins.str key_algorithm: `(string: <optional>)` is the key's algorithm.
|
498
|
+
Its default values are based on the `key_source`:
|
499
|
+
- "nomad": "RS256"; this is from Nomad's keyring and must not be changed
|
500
|
+
- "private_key": "RS256"; must be RS256, RS384, or RS512
|
501
|
+
- "client_secret": "HS256"; must be HS256, HS384, or HS512
|
502
|
+
:param 'AclAuthMethodConfigOidcClientAssertionPrivateKeyArgs' private_key: `(OIDCClientAssertionKey: <optional>)` - External key
|
503
|
+
to sign the JWT. `key_source` must be "private_key" to enable this.
|
504
|
+
"""
|
505
|
+
pulumi.set(__self__, "key_source", key_source)
|
506
|
+
if audiences is not None:
|
507
|
+
pulumi.set(__self__, "audiences", audiences)
|
508
|
+
if extra_headers is not None:
|
509
|
+
pulumi.set(__self__, "extra_headers", extra_headers)
|
510
|
+
if key_algorithm is not None:
|
511
|
+
pulumi.set(__self__, "key_algorithm", key_algorithm)
|
512
|
+
if private_key is not None:
|
513
|
+
pulumi.set(__self__, "private_key", private_key)
|
514
|
+
|
515
|
+
@property
|
516
|
+
@pulumi.getter(name="keySource")
|
517
|
+
def key_source(self) -> builtins.str:
|
518
|
+
"""
|
519
|
+
`(string: <required>)` - Specifies where to get the private
|
520
|
+
key to sign the JWT.
|
521
|
+
Available sources:
|
522
|
+
- "nomad": Use current active key in Nomad's keyring
|
523
|
+
- "private_key": Use key material in the `private_key` field
|
524
|
+
- "client_secret": Use the `oidc_client_secret` as an HMAC key
|
525
|
+
"""
|
526
|
+
return pulumi.get(self, "key_source")
|
527
|
+
|
528
|
+
@property
|
529
|
+
@pulumi.getter
|
530
|
+
def audiences(self) -> Optional[Sequence[builtins.str]]:
|
531
|
+
"""
|
532
|
+
`([]string: optional)` - Who processes the assertion.
|
533
|
+
Defaults to the auth method's `oidc_discovery_url`.
|
534
|
+
"""
|
535
|
+
return pulumi.get(self, "audiences")
|
536
|
+
|
537
|
+
@property
|
538
|
+
@pulumi.getter(name="extraHeaders")
|
539
|
+
def extra_headers(self) -> Optional[Mapping[str, builtins.str]]:
|
540
|
+
"""
|
541
|
+
`(map[string]string: optional)` - Add to the JWT headers,
|
542
|
+
alongside "kid" and "type". Setting the "kid" header here is not allowed;
|
543
|
+
use `private_key.key_id`.
|
544
|
+
"""
|
545
|
+
return pulumi.get(self, "extra_headers")
|
546
|
+
|
547
|
+
@property
|
548
|
+
@pulumi.getter(name="keyAlgorithm")
|
549
|
+
def key_algorithm(self) -> Optional[builtins.str]:
|
550
|
+
"""
|
551
|
+
`(string: <optional>)` is the key's algorithm.
|
552
|
+
Its default values are based on the `key_source`:
|
553
|
+
- "nomad": "RS256"; this is from Nomad's keyring and must not be changed
|
554
|
+
- "private_key": "RS256"; must be RS256, RS384, or RS512
|
555
|
+
- "client_secret": "HS256"; must be HS256, HS384, or HS512
|
556
|
+
"""
|
557
|
+
return pulumi.get(self, "key_algorithm")
|
558
|
+
|
559
|
+
@property
|
560
|
+
@pulumi.getter(name="privateKey")
|
561
|
+
def private_key(self) -> Optional['outputs.AclAuthMethodConfigOidcClientAssertionPrivateKey']:
|
562
|
+
"""
|
563
|
+
`(OIDCClientAssertionKey: <optional>)` - External key
|
564
|
+
to sign the JWT. `key_source` must be "private_key" to enable this.
|
565
|
+
"""
|
566
|
+
return pulumi.get(self, "private_key")
|
567
|
+
|
568
|
+
|
569
|
+
@pulumi.output_type
|
570
|
+
class AclAuthMethodConfigOidcClientAssertionPrivateKey(dict):
|
571
|
+
@staticmethod
|
572
|
+
def __key_warning(key: str):
|
573
|
+
suggest = None
|
574
|
+
if key == "keyId":
|
575
|
+
suggest = "key_id"
|
576
|
+
elif key == "keyIdHeader":
|
577
|
+
suggest = "key_id_header"
|
578
|
+
elif key == "pemCert":
|
579
|
+
suggest = "pem_cert"
|
580
|
+
elif key == "pemCertFile":
|
581
|
+
suggest = "pem_cert_file"
|
582
|
+
elif key == "pemKey":
|
583
|
+
suggest = "pem_key"
|
584
|
+
elif key == "pemKeyFile":
|
585
|
+
suggest = "pem_key_file"
|
586
|
+
|
587
|
+
if suggest:
|
588
|
+
pulumi.log.warn(f"Key '{key}' not found in AclAuthMethodConfigOidcClientAssertionPrivateKey. Access the value via the '{suggest}' property getter instead.")
|
589
|
+
|
590
|
+
def __getitem__(self, key: str) -> Any:
|
591
|
+
AclAuthMethodConfigOidcClientAssertionPrivateKey.__key_warning(key)
|
592
|
+
return super().__getitem__(key)
|
593
|
+
|
594
|
+
def get(self, key: str, default = None) -> Any:
|
595
|
+
AclAuthMethodConfigOidcClientAssertionPrivateKey.__key_warning(key)
|
596
|
+
return super().get(key, default)
|
597
|
+
|
598
|
+
def __init__(__self__, *,
|
599
|
+
key_id: Optional[builtins.str] = None,
|
600
|
+
key_id_header: Optional[builtins.str] = None,
|
601
|
+
pem_cert: Optional[builtins.str] = None,
|
602
|
+
pem_cert_file: Optional[builtins.str] = None,
|
603
|
+
pem_key: Optional[builtins.str] = None,
|
604
|
+
pem_key_file: Optional[builtins.str] = None):
|
605
|
+
"""
|
606
|
+
:param builtins.str key_id: `(string: optional)` - Becomes the JWT's "kid" header.
|
607
|
+
Mutually exclusive with `pem_cert` and `pem_cert_file`.
|
608
|
+
Allowed `key_id_header` values: "kid" (the default)
|
609
|
+
:param builtins.str key_id_header: `(string: optional)` - Which header the provider uses
|
610
|
+
to find the public key to verify the signed JWT.
|
611
|
+
The default and allowed values depend on whether you set `key_id`,
|
612
|
+
`pem_cert`, or `pem_cert_file`. You must set exactly one of those
|
613
|
+
options, so refer to them for their requirements.
|
614
|
+
:param builtins.str pem_cert: `(string: optional)` - An x509 certificate, signed by the
|
615
|
+
private key or a CA, in pem format. Nomad uses this certificate to
|
616
|
+
derive an [x5t#S256][] (or [x5t][]) key_id.
|
617
|
+
Mutually exclusive with `pem_cert_file` and `key_id`.
|
618
|
+
Allowed `key_id_header` values: "x5t", "x5t#S256" (default "x5t#S256")
|
619
|
+
:param builtins.str pem_cert_file: `(string: optional)` - An absolute path to an x509
|
620
|
+
certificate on Nomad servers' disk, signed by the private key or a CA,
|
621
|
+
in pem format.
|
622
|
+
Nomad uses this certificate to derive an [x5t#S256][] (or [x5t][])
|
623
|
+
header. Mutually exclusive with `pem_cert` and key_id.
|
624
|
+
Allowed `key_id_header` values: "x5t", "x5t#S256" (default "x5t#S256")
|
625
|
+
:param builtins.str pem_key: `(string: <optional>)` - An RSA private key, in pem format.
|
626
|
+
It is used to sign the JWT. Mutually exclusive with `pem_key`.
|
627
|
+
:param builtins.str pem_key_file: `(string: optional)` - An absolute path to a private key
|
628
|
+
on Nomad servers' disk, in pem format. It is used to sign the JWT.
|
629
|
+
Mutually exclusive with `pem_key_file`.
|
630
|
+
"""
|
631
|
+
if key_id is not None:
|
632
|
+
pulumi.set(__self__, "key_id", key_id)
|
633
|
+
if key_id_header is not None:
|
634
|
+
pulumi.set(__self__, "key_id_header", key_id_header)
|
635
|
+
if pem_cert is not None:
|
636
|
+
pulumi.set(__self__, "pem_cert", pem_cert)
|
637
|
+
if pem_cert_file is not None:
|
638
|
+
pulumi.set(__self__, "pem_cert_file", pem_cert_file)
|
639
|
+
if pem_key is not None:
|
640
|
+
pulumi.set(__self__, "pem_key", pem_key)
|
641
|
+
if pem_key_file is not None:
|
642
|
+
pulumi.set(__self__, "pem_key_file", pem_key_file)
|
643
|
+
|
644
|
+
@property
|
645
|
+
@pulumi.getter(name="keyId")
|
646
|
+
def key_id(self) -> Optional[builtins.str]:
|
647
|
+
"""
|
648
|
+
`(string: optional)` - Becomes the JWT's "kid" header.
|
649
|
+
Mutually exclusive with `pem_cert` and `pem_cert_file`.
|
650
|
+
Allowed `key_id_header` values: "kid" (the default)
|
651
|
+
"""
|
652
|
+
return pulumi.get(self, "key_id")
|
653
|
+
|
654
|
+
@property
|
655
|
+
@pulumi.getter(name="keyIdHeader")
|
656
|
+
def key_id_header(self) -> Optional[builtins.str]:
|
657
|
+
"""
|
658
|
+
`(string: optional)` - Which header the provider uses
|
659
|
+
to find the public key to verify the signed JWT.
|
660
|
+
The default and allowed values depend on whether you set `key_id`,
|
661
|
+
`pem_cert`, or `pem_cert_file`. You must set exactly one of those
|
662
|
+
options, so refer to them for their requirements.
|
663
|
+
"""
|
664
|
+
return pulumi.get(self, "key_id_header")
|
665
|
+
|
666
|
+
@property
|
667
|
+
@pulumi.getter(name="pemCert")
|
668
|
+
def pem_cert(self) -> Optional[builtins.str]:
|
669
|
+
"""
|
670
|
+
`(string: optional)` - An x509 certificate, signed by the
|
671
|
+
private key or a CA, in pem format. Nomad uses this certificate to
|
672
|
+
derive an [x5t#S256][] (or [x5t][]) key_id.
|
673
|
+
Mutually exclusive with `pem_cert_file` and `key_id`.
|
674
|
+
Allowed `key_id_header` values: "x5t", "x5t#S256" (default "x5t#S256")
|
675
|
+
"""
|
676
|
+
return pulumi.get(self, "pem_cert")
|
677
|
+
|
678
|
+
@property
|
679
|
+
@pulumi.getter(name="pemCertFile")
|
680
|
+
def pem_cert_file(self) -> Optional[builtins.str]:
|
681
|
+
"""
|
682
|
+
`(string: optional)` - An absolute path to an x509
|
683
|
+
certificate on Nomad servers' disk, signed by the private key or a CA,
|
684
|
+
in pem format.
|
685
|
+
Nomad uses this certificate to derive an [x5t#S256][] (or [x5t][])
|
686
|
+
header. Mutually exclusive with `pem_cert` and key_id.
|
687
|
+
Allowed `key_id_header` values: "x5t", "x5t#S256" (default "x5t#S256")
|
688
|
+
"""
|
689
|
+
return pulumi.get(self, "pem_cert_file")
|
690
|
+
|
691
|
+
@property
|
692
|
+
@pulumi.getter(name="pemKey")
|
693
|
+
def pem_key(self) -> Optional[builtins.str]:
|
694
|
+
"""
|
695
|
+
`(string: <optional>)` - An RSA private key, in pem format.
|
696
|
+
It is used to sign the JWT. Mutually exclusive with `pem_key`.
|
697
|
+
"""
|
698
|
+
return pulumi.get(self, "pem_key")
|
699
|
+
|
700
|
+
@property
|
701
|
+
@pulumi.getter(name="pemKeyFile")
|
702
|
+
def pem_key_file(self) -> Optional[builtins.str]:
|
703
|
+
"""
|
704
|
+
`(string: optional)` - An absolute path to a private key
|
705
|
+
on Nomad servers' disk, in pem format. It is used to sign the JWT.
|
706
|
+
Mutually exclusive with `pem_key_file`.
|
707
|
+
"""
|
708
|
+
return pulumi.get(self, "pem_key_file")
|
709
|
+
|
393
710
|
|
394
711
|
@pulumi.output_type
|
395
712
|
class AclPolicyJobAcl(dict):
|
@@ -942,6 +1259,194 @@ class CsiVolumeTopologyRequestRequiredTopology(dict):
|
|
942
1259
|
return pulumi.get(self, "segments")
|
943
1260
|
|
944
1261
|
|
1262
|
+
@pulumi.output_type
|
1263
|
+
class DynamicHostVolumeCapability(dict):
|
1264
|
+
@staticmethod
|
1265
|
+
def __key_warning(key: str):
|
1266
|
+
suggest = None
|
1267
|
+
if key == "accessMode":
|
1268
|
+
suggest = "access_mode"
|
1269
|
+
elif key == "attachmentMode":
|
1270
|
+
suggest = "attachment_mode"
|
1271
|
+
|
1272
|
+
if suggest:
|
1273
|
+
pulumi.log.warn(f"Key '{key}' not found in DynamicHostVolumeCapability. Access the value via the '{suggest}' property getter instead.")
|
1274
|
+
|
1275
|
+
def __getitem__(self, key: str) -> Any:
|
1276
|
+
DynamicHostVolumeCapability.__key_warning(key)
|
1277
|
+
return super().__getitem__(key)
|
1278
|
+
|
1279
|
+
def get(self, key: str, default = None) -> Any:
|
1280
|
+
DynamicHostVolumeCapability.__key_warning(key)
|
1281
|
+
return super().get(key, default)
|
1282
|
+
|
1283
|
+
def __init__(__self__, *,
|
1284
|
+
access_mode: builtins.str,
|
1285
|
+
attachment_mode: builtins.str):
|
1286
|
+
"""
|
1287
|
+
:param builtins.str access_mode: `(string)` - How the volume can be mounted by
|
1288
|
+
allocations. Refer to the [`access_mode`][] documentation for details.
|
1289
|
+
:param builtins.str attachment_mode: `(string)` - The storage API that will be used by the
|
1290
|
+
volume. Refer to the [`attachment_mode`][] documentation.
|
1291
|
+
"""
|
1292
|
+
pulumi.set(__self__, "access_mode", access_mode)
|
1293
|
+
pulumi.set(__self__, "attachment_mode", attachment_mode)
|
1294
|
+
|
1295
|
+
@property
|
1296
|
+
@pulumi.getter(name="accessMode")
|
1297
|
+
def access_mode(self) -> builtins.str:
|
1298
|
+
"""
|
1299
|
+
`(string)` - How the volume can be mounted by
|
1300
|
+
allocations. Refer to the [`access_mode`][] documentation for details.
|
1301
|
+
"""
|
1302
|
+
return pulumi.get(self, "access_mode")
|
1303
|
+
|
1304
|
+
@property
|
1305
|
+
@pulumi.getter(name="attachmentMode")
|
1306
|
+
def attachment_mode(self) -> builtins.str:
|
1307
|
+
"""
|
1308
|
+
`(string)` - The storage API that will be used by the
|
1309
|
+
volume. Refer to the [`attachment_mode`][] documentation.
|
1310
|
+
"""
|
1311
|
+
return pulumi.get(self, "attachment_mode")
|
1312
|
+
|
1313
|
+
|
1314
|
+
@pulumi.output_type
|
1315
|
+
class DynamicHostVolumeConstraint(dict):
|
1316
|
+
def __init__(__self__, *,
|
1317
|
+
attribute: builtins.str,
|
1318
|
+
operator: Optional[builtins.str] = None,
|
1319
|
+
value: Optional[builtins.str] = None):
|
1320
|
+
"""
|
1321
|
+
:param builtins.str attribute: `(string)` - The [node attribute][] to check for the constraint.
|
1322
|
+
:param builtins.str operator: `(string)`- The operator to use in the comparison.
|
1323
|
+
:param builtins.str value: `(string)` - The value of the attribute to compare against.
|
1324
|
+
"""
|
1325
|
+
pulumi.set(__self__, "attribute", attribute)
|
1326
|
+
if operator is not None:
|
1327
|
+
pulumi.set(__self__, "operator", operator)
|
1328
|
+
if value is not None:
|
1329
|
+
pulumi.set(__self__, "value", value)
|
1330
|
+
|
1331
|
+
@property
|
1332
|
+
@pulumi.getter
|
1333
|
+
def attribute(self) -> builtins.str:
|
1334
|
+
"""
|
1335
|
+
`(string)` - The [node attribute][] to check for the constraint.
|
1336
|
+
"""
|
1337
|
+
return pulumi.get(self, "attribute")
|
1338
|
+
|
1339
|
+
@property
|
1340
|
+
@pulumi.getter
|
1341
|
+
def operator(self) -> Optional[builtins.str]:
|
1342
|
+
"""
|
1343
|
+
`(string)`- The operator to use in the comparison.
|
1344
|
+
"""
|
1345
|
+
return pulumi.get(self, "operator")
|
1346
|
+
|
1347
|
+
@property
|
1348
|
+
@pulumi.getter
|
1349
|
+
def value(self) -> Optional[builtins.str]:
|
1350
|
+
"""
|
1351
|
+
`(string)` - The value of the attribute to compare against.
|
1352
|
+
"""
|
1353
|
+
return pulumi.get(self, "value")
|
1354
|
+
|
1355
|
+
|
1356
|
+
@pulumi.output_type
|
1357
|
+
class DynamicHostVolumeRegistrationCapability(dict):
|
1358
|
+
@staticmethod
|
1359
|
+
def __key_warning(key: str):
|
1360
|
+
suggest = None
|
1361
|
+
if key == "accessMode":
|
1362
|
+
suggest = "access_mode"
|
1363
|
+
elif key == "attachmentMode":
|
1364
|
+
suggest = "attachment_mode"
|
1365
|
+
|
1366
|
+
if suggest:
|
1367
|
+
pulumi.log.warn(f"Key '{key}' not found in DynamicHostVolumeRegistrationCapability. Access the value via the '{suggest}' property getter instead.")
|
1368
|
+
|
1369
|
+
def __getitem__(self, key: str) -> Any:
|
1370
|
+
DynamicHostVolumeRegistrationCapability.__key_warning(key)
|
1371
|
+
return super().__getitem__(key)
|
1372
|
+
|
1373
|
+
def get(self, key: str, default = None) -> Any:
|
1374
|
+
DynamicHostVolumeRegistrationCapability.__key_warning(key)
|
1375
|
+
return super().get(key, default)
|
1376
|
+
|
1377
|
+
def __init__(__self__, *,
|
1378
|
+
access_mode: builtins.str,
|
1379
|
+
attachment_mode: builtins.str):
|
1380
|
+
"""
|
1381
|
+
:param builtins.str access_mode: `(string)` - How the volume can be mounted by
|
1382
|
+
allocations. Refer to the [`access_mode`][] documentation for details.
|
1383
|
+
:param builtins.str attachment_mode: `(string)` - The storage API that will be used by the
|
1384
|
+
volume. Refer to the [`attachment_mode`][] documentation.
|
1385
|
+
"""
|
1386
|
+
pulumi.set(__self__, "access_mode", access_mode)
|
1387
|
+
pulumi.set(__self__, "attachment_mode", attachment_mode)
|
1388
|
+
|
1389
|
+
@property
|
1390
|
+
@pulumi.getter(name="accessMode")
|
1391
|
+
def access_mode(self) -> builtins.str:
|
1392
|
+
"""
|
1393
|
+
`(string)` - How the volume can be mounted by
|
1394
|
+
allocations. Refer to the [`access_mode`][] documentation for details.
|
1395
|
+
"""
|
1396
|
+
return pulumi.get(self, "access_mode")
|
1397
|
+
|
1398
|
+
@property
|
1399
|
+
@pulumi.getter(name="attachmentMode")
|
1400
|
+
def attachment_mode(self) -> builtins.str:
|
1401
|
+
"""
|
1402
|
+
`(string)` - The storage API that will be used by the
|
1403
|
+
volume. Refer to the [`attachment_mode`][] documentation.
|
1404
|
+
"""
|
1405
|
+
return pulumi.get(self, "attachment_mode")
|
1406
|
+
|
1407
|
+
|
1408
|
+
@pulumi.output_type
|
1409
|
+
class DynamicHostVolumeRegistrationConstraint(dict):
|
1410
|
+
def __init__(__self__, *,
|
1411
|
+
attribute: builtins.str,
|
1412
|
+
operator: Optional[builtins.str] = None,
|
1413
|
+
value: Optional[builtins.str] = None):
|
1414
|
+
"""
|
1415
|
+
:param builtins.str attribute: An attribute to check to constrain volume placement
|
1416
|
+
:param builtins.str operator: The operator to use for comparison
|
1417
|
+
:param builtins.str value: The requested value of the attribute
|
1418
|
+
"""
|
1419
|
+
pulumi.set(__self__, "attribute", attribute)
|
1420
|
+
if operator is not None:
|
1421
|
+
pulumi.set(__self__, "operator", operator)
|
1422
|
+
if value is not None:
|
1423
|
+
pulumi.set(__self__, "value", value)
|
1424
|
+
|
1425
|
+
@property
|
1426
|
+
@pulumi.getter
|
1427
|
+
def attribute(self) -> builtins.str:
|
1428
|
+
"""
|
1429
|
+
An attribute to check to constrain volume placement
|
1430
|
+
"""
|
1431
|
+
return pulumi.get(self, "attribute")
|
1432
|
+
|
1433
|
+
@property
|
1434
|
+
@pulumi.getter
|
1435
|
+
def operator(self) -> Optional[builtins.str]:
|
1436
|
+
"""
|
1437
|
+
The operator to use for comparison
|
1438
|
+
"""
|
1439
|
+
return pulumi.get(self, "operator")
|
1440
|
+
|
1441
|
+
@property
|
1442
|
+
@pulumi.getter
|
1443
|
+
def value(self) -> Optional[builtins.str]:
|
1444
|
+
"""
|
1445
|
+
The requested value of the attribute
|
1446
|
+
"""
|
1447
|
+
return pulumi.get(self, "value")
|
1448
|
+
|
1449
|
+
|
945
1450
|
@pulumi.output_type
|
946
1451
|
class ExternalVolumeCapability(dict):
|
947
1452
|
@staticmethod
|
@@ -2379,6 +2884,79 @@ class GetAllocationsAllocationResult(dict):
|
|
2379
2884
|
return pulumi.get(self, "task_group")
|
2380
2885
|
|
2381
2886
|
|
2887
|
+
@pulumi.output_type
|
2888
|
+
class GetDynamicHostVolumeCapabilityResult(dict):
|
2889
|
+
def __init__(__self__, *,
|
2890
|
+
access_mode: builtins.str,
|
2891
|
+
attachment_mode: builtins.str):
|
2892
|
+
"""
|
2893
|
+
:param builtins.str access_mode: `(string)` - How the volume can be mounted by
|
2894
|
+
allocations. Refer to the [`access_mode`][] documentation for details.
|
2895
|
+
:param builtins.str attachment_mode: `(string)` - The storage API that will be used by the
|
2896
|
+
volume. Refer to the [`attachment_mode`][] documentation.
|
2897
|
+
"""
|
2898
|
+
pulumi.set(__self__, "access_mode", access_mode)
|
2899
|
+
pulumi.set(__self__, "attachment_mode", attachment_mode)
|
2900
|
+
|
2901
|
+
@property
|
2902
|
+
@pulumi.getter(name="accessMode")
|
2903
|
+
def access_mode(self) -> builtins.str:
|
2904
|
+
"""
|
2905
|
+
`(string)` - How the volume can be mounted by
|
2906
|
+
allocations. Refer to the [`access_mode`][] documentation for details.
|
2907
|
+
"""
|
2908
|
+
return pulumi.get(self, "access_mode")
|
2909
|
+
|
2910
|
+
@property
|
2911
|
+
@pulumi.getter(name="attachmentMode")
|
2912
|
+
def attachment_mode(self) -> builtins.str:
|
2913
|
+
"""
|
2914
|
+
`(string)` - The storage API that will be used by the
|
2915
|
+
volume. Refer to the [`attachment_mode`][] documentation.
|
2916
|
+
"""
|
2917
|
+
return pulumi.get(self, "attachment_mode")
|
2918
|
+
|
2919
|
+
|
2920
|
+
@pulumi.output_type
|
2921
|
+
class GetDynamicHostVolumeConstraintResult(dict):
|
2922
|
+
def __init__(__self__, *,
|
2923
|
+
attribute: builtins.str,
|
2924
|
+
operator: builtins.str,
|
2925
|
+
value: builtins.str):
|
2926
|
+
"""
|
2927
|
+
:param builtins.str attribute: `(string)` - The [node attribute][] to check for the constraint.
|
2928
|
+
:param builtins.str operator: `(string)`- The operator to use in the comparison.
|
2929
|
+
:param builtins.str value: `(string)` - The value of the attribute to compare against.
|
2930
|
+
"""
|
2931
|
+
pulumi.set(__self__, "attribute", attribute)
|
2932
|
+
pulumi.set(__self__, "operator", operator)
|
2933
|
+
pulumi.set(__self__, "value", value)
|
2934
|
+
|
2935
|
+
@property
|
2936
|
+
@pulumi.getter
|
2937
|
+
def attribute(self) -> builtins.str:
|
2938
|
+
"""
|
2939
|
+
`(string)` - The [node attribute][] to check for the constraint.
|
2940
|
+
"""
|
2941
|
+
return pulumi.get(self, "attribute")
|
2942
|
+
|
2943
|
+
@property
|
2944
|
+
@pulumi.getter
|
2945
|
+
def operator(self) -> builtins.str:
|
2946
|
+
"""
|
2947
|
+
`(string)`- The operator to use in the comparison.
|
2948
|
+
"""
|
2949
|
+
return pulumi.get(self, "operator")
|
2950
|
+
|
2951
|
+
@property
|
2952
|
+
@pulumi.getter
|
2953
|
+
def value(self) -> builtins.str:
|
2954
|
+
"""
|
2955
|
+
`(string)` - The value of the attribute to compare against.
|
2956
|
+
"""
|
2957
|
+
return pulumi.get(self, "value")
|
2958
|
+
|
2959
|
+
|
2382
2960
|
@pulumi.output_type
|
2383
2961
|
class GetJobConstraintResult(dict):
|
2384
2962
|
def __init__(__self__, *,
|