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/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__, *,