pulumi-nomad 2.6.0a1761587385__tar.gz → 2.6.0a1764655701__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/PKG-INFO +1 -1
  2. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/_inputs.py +92 -0
  3. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/config/__init__.pyi +5 -0
  4. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/config/outputs.py +30 -0
  5. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/config/vars.py +7 -0
  6. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/dynamic_host_volume.py +2 -84
  7. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/dynamic_host_volume_registration.py +16 -35
  8. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_namespaces.py +4 -4
  9. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/outputs.py +53 -1
  10. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/provider.py +20 -0
  11. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/pulumi-plugin.json +1 -1
  12. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/sentinel_policy.py +2 -2
  13. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad.egg-info/PKG-INFO +1 -1
  14. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pyproject.toml +1 -1
  15. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/README.md +0 -0
  16. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/__init__.py +0 -0
  17. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/_utilities.py +0 -0
  18. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/acl_auth_method.py +0 -0
  19. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/acl_binding_rule.py +0 -0
  20. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/acl_policy.py +0 -0
  21. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/acl_role.py +0 -0
  22. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/acl_token.py +0 -0
  23. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/config/__init__.py +0 -0
  24. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/csi_volume.py +0 -0
  25. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/csi_volume_registration.py +0 -0
  26. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/external_volume.py +0 -0
  27. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_acl_policies.py +0 -0
  28. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_acl_policy.py +0 -0
  29. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_acl_role.py +0 -0
  30. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_acl_roles.py +0 -0
  31. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_acl_token.py +0 -0
  32. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_acl_tokens.py +0 -0
  33. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_allocations.py +0 -0
  34. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_datacenters.py +0 -0
  35. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_deployments.py +0 -0
  36. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_dynamic_host_volume.py +0 -0
  37. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_job.py +0 -0
  38. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_job_parser.py +0 -0
  39. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_jwks.py +0 -0
  40. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_namespace.py +0 -0
  41. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_node_pool.py +0 -0
  42. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_node_pools.py +0 -0
  43. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_plugin.py +0 -0
  44. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_plugins.py +0 -0
  45. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_regions.py +0 -0
  46. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_scaling_policies.py +0 -0
  47. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_scaling_policy.py +0 -0
  48. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_scheduler_policy.py +0 -0
  49. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_variable.py +0 -0
  50. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/get_volumes.py +0 -0
  51. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/job.py +0 -0
  52. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/namespace.py +0 -0
  53. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/node_pool.py +0 -0
  54. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/py.typed +0 -0
  55. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/quote_specification.py +0 -0
  56. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/scheduler_config.py +0 -0
  57. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/variable.py +0 -0
  58. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad/volume.py +0 -0
  59. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad.egg-info/SOURCES.txt +0 -0
  60. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad.egg-info/dependency_links.txt +0 -0
  61. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad.egg-info/requires.txt +0 -0
  62. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/pulumi_nomad.egg-info/top_level.txt +0 -0
  63. {pulumi_nomad-2.6.0a1761587385 → pulumi_nomad-2.6.0a1764655701}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulumi_nomad
3
- Version: 2.6.0a1761587385
3
+ Version: 2.6.0a1764655701
4
4
  Summary: A Pulumi package for creating and managing nomad cloud resources.
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://pulumi.io
@@ -95,6 +95,8 @@ __all__ = [
95
95
  'NamespaceNodePoolConfigArgsDict',
96
96
  'NodePoolSchedulerConfigArgs',
97
97
  'NodePoolSchedulerConfigArgsDict',
98
+ 'ProviderAuthJwtArgs',
99
+ 'ProviderAuthJwtArgsDict',
98
100
  'ProviderHeaderArgs',
99
101
  'ProviderHeaderArgsDict',
100
102
  'QuoteSpecificationLimitArgs',
@@ -2621,10 +2623,18 @@ class JobTaskGroupVolumeArgs:
2621
2623
 
2622
2624
  if not MYPY:
2623
2625
  class NamespaceCapabilitiesArgsDict(TypedDict):
2626
+ disabled_network_modes: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
2627
+ """
2628
+ `([]string: <optional>)` - Network modes disabled for the namespace.
2629
+ """
2624
2630
  disabled_task_drivers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
2625
2631
  """
2626
2632
  `([]string: <optional>)` - Task drivers disabled for the namespace.
2627
2633
  """
2634
+ enabled_network_modes: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
2635
+ """
2636
+ `([]string: <optional>)` - Network modes enabled for the namespace.
2637
+ """
2628
2638
  enabled_task_drivers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
2629
2639
  """
2630
2640
  `([]string: <optional>)` - Task drivers enabled for the namespace.
@@ -2635,17 +2645,37 @@ elif False:
2635
2645
  @pulumi.input_type
2636
2646
  class NamespaceCapabilitiesArgs:
2637
2647
  def __init__(__self__, *,
2648
+ disabled_network_modes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2638
2649
  disabled_task_drivers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2650
+ enabled_network_modes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2639
2651
  enabled_task_drivers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
2640
2652
  """
2653
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] disabled_network_modes: `([]string: <optional>)` - Network modes disabled for the namespace.
2641
2654
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] disabled_task_drivers: `([]string: <optional>)` - Task drivers disabled for the namespace.
2655
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] enabled_network_modes: `([]string: <optional>)` - Network modes enabled for the namespace.
2642
2656
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] enabled_task_drivers: `([]string: <optional>)` - Task drivers enabled for the namespace.
2643
2657
  """
2658
+ if disabled_network_modes is not None:
2659
+ pulumi.set(__self__, "disabled_network_modes", disabled_network_modes)
2644
2660
  if disabled_task_drivers is not None:
2645
2661
  pulumi.set(__self__, "disabled_task_drivers", disabled_task_drivers)
2662
+ if enabled_network_modes is not None:
2663
+ pulumi.set(__self__, "enabled_network_modes", enabled_network_modes)
2646
2664
  if enabled_task_drivers is not None:
2647
2665
  pulumi.set(__self__, "enabled_task_drivers", enabled_task_drivers)
2648
2666
 
2667
+ @_builtins.property
2668
+ @pulumi.getter(name="disabledNetworkModes")
2669
+ def disabled_network_modes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
2670
+ """
2671
+ `([]string: <optional>)` - Network modes disabled for the namespace.
2672
+ """
2673
+ return pulumi.get(self, "disabled_network_modes")
2674
+
2675
+ @disabled_network_modes.setter
2676
+ def disabled_network_modes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
2677
+ pulumi.set(self, "disabled_network_modes", value)
2678
+
2649
2679
  @_builtins.property
2650
2680
  @pulumi.getter(name="disabledTaskDrivers")
2651
2681
  def disabled_task_drivers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
@@ -2658,6 +2688,18 @@ class NamespaceCapabilitiesArgs:
2658
2688
  def disabled_task_drivers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
2659
2689
  pulumi.set(self, "disabled_task_drivers", value)
2660
2690
 
2691
+ @_builtins.property
2692
+ @pulumi.getter(name="enabledNetworkModes")
2693
+ def enabled_network_modes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
2694
+ """
2695
+ `([]string: <optional>)` - Network modes enabled for the namespace.
2696
+ """
2697
+ return pulumi.get(self, "enabled_network_modes")
2698
+
2699
+ @enabled_network_modes.setter
2700
+ def enabled_network_modes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
2701
+ pulumi.set(self, "enabled_network_modes", value)
2702
+
2661
2703
  @_builtins.property
2662
2704
  @pulumi.getter(name="enabledTaskDrivers")
2663
2705
  def enabled_task_drivers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
@@ -2822,6 +2864,56 @@ class NodePoolSchedulerConfigArgs:
2822
2864
  pulumi.set(self, "scheduler_algorithm", value)
2823
2865
 
2824
2866
 
2867
+ if not MYPY:
2868
+ class ProviderAuthJwtArgsDict(TypedDict):
2869
+ auth_method: pulumi.Input[_builtins.str]
2870
+ """
2871
+ The name of the auth method to use for login.
2872
+ """
2873
+ login_token: pulumi.Input[_builtins.str]
2874
+ """
2875
+ The externally issued authentication token to be exchanged for a Nomad ACL Token.
2876
+ """
2877
+ elif False:
2878
+ ProviderAuthJwtArgsDict: TypeAlias = Mapping[str, Any]
2879
+
2880
+ @pulumi.input_type
2881
+ class ProviderAuthJwtArgs:
2882
+ def __init__(__self__, *,
2883
+ auth_method: pulumi.Input[_builtins.str],
2884
+ login_token: pulumi.Input[_builtins.str]):
2885
+ """
2886
+ :param pulumi.Input[_builtins.str] auth_method: The name of the auth method to use for login.
2887
+ :param pulumi.Input[_builtins.str] login_token: The externally issued authentication token to be exchanged for a Nomad ACL Token.
2888
+ """
2889
+ pulumi.set(__self__, "auth_method", auth_method)
2890
+ pulumi.set(__self__, "login_token", login_token)
2891
+
2892
+ @_builtins.property
2893
+ @pulumi.getter(name="authMethod")
2894
+ def auth_method(self) -> pulumi.Input[_builtins.str]:
2895
+ """
2896
+ The name of the auth method to use for login.
2897
+ """
2898
+ return pulumi.get(self, "auth_method")
2899
+
2900
+ @auth_method.setter
2901
+ def auth_method(self, value: pulumi.Input[_builtins.str]):
2902
+ pulumi.set(self, "auth_method", value)
2903
+
2904
+ @_builtins.property
2905
+ @pulumi.getter(name="loginToken")
2906
+ def login_token(self) -> pulumi.Input[_builtins.str]:
2907
+ """
2908
+ The externally issued authentication token to be exchanged for a Nomad ACL Token.
2909
+ """
2910
+ return pulumi.get(self, "login_token")
2911
+
2912
+ @login_token.setter
2913
+ def login_token(self, value: pulumi.Input[_builtins.str]):
2914
+ pulumi.set(self, "login_token", value)
2915
+
2916
+
2825
2917
  if not MYPY:
2826
2918
  class ProviderHeaderArgsDict(TypedDict):
2827
2919
  name: pulumi.Input[_builtins.str]
@@ -20,6 +20,11 @@ address: Optional[str]
20
20
  URL of the root of the target Nomad agent.
21
21
  """
22
22
 
23
+ authJwt: Optional[str]
24
+ """
25
+ Authenticates to Nomad using a JWT authentication method.
26
+ """
27
+
23
28
  caFile: Optional[str]
24
29
  """
25
30
  A path to a PEM-encoded certificate authority used to verify the remote agent's certificate.
@@ -15,9 +15,39 @@ else:
15
15
  from .. import _utilities
16
16
 
17
17
  __all__ = [
18
+ 'AuthJwt',
18
19
  'Headers',
19
20
  ]
20
21
 
22
+ @pulumi.output_type
23
+ class AuthJwt(dict):
24
+ def __init__(__self__, *,
25
+ auth_method: _builtins.str,
26
+ login_token: _builtins.str):
27
+ """
28
+ :param _builtins.str auth_method: The name of the auth method to use for login.
29
+ :param _builtins.str login_token: The externally issued authentication token to be exchanged for a Nomad ACL Token.
30
+ """
31
+ pulumi.set(__self__, "auth_method", auth_method)
32
+ pulumi.set(__self__, "login_token", login_token)
33
+
34
+ @_builtins.property
35
+ @pulumi.getter(name="authMethod")
36
+ def auth_method(self) -> _builtins.str:
37
+ """
38
+ The name of the auth method to use for login.
39
+ """
40
+ return pulumi.get(self, "auth_method")
41
+
42
+ @_builtins.property
43
+ @pulumi.getter(name="loginToken")
44
+ def login_token(self) -> _builtins.str:
45
+ """
46
+ The externally issued authentication token to be exchanged for a Nomad ACL Token.
47
+ """
48
+ return pulumi.get(self, "login_token")
49
+
50
+
21
51
  @pulumi.output_type
22
52
  class Headers(dict):
23
53
  def __init__(__self__, *,
@@ -28,6 +28,13 @@ class _ExportableConfig(types.ModuleType):
28
28
  """
29
29
  return __config__.get('address')
30
30
 
31
+ @_builtins.property
32
+ def auth_jwt(self) -> Optional[str]:
33
+ """
34
+ Authenticates to Nomad using a JWT authentication method.
35
+ """
36
+ return __config__.get('authJwt')
37
+
31
38
  @_builtins.property
32
39
  def ca_file(self) -> Optional[str]:
33
40
  """
@@ -570,48 +570,7 @@ class DynamicHostVolume(pulumi.CustomResource):
570
570
  plugin_id: Optional[pulumi.Input[_builtins.str]] = None,
571
571
  __props__=None):
572
572
  """
573
- layout: "nomad"
574
- page_title: "Nomad: DynamicHostVolume"
575
- sidebar_current: "docs-nomad-resource-dynamic-host-volume"
576
- description: |-
577
- Manages the lifecycle of creating and deleting dynamic host volumes.
578
- ---
579
-
580
- Creates and registers a dynamic host volume in Nomad. Note that Nomad supports
581
- two workflows for dynamic host volumes: create and register. Both resources
582
- result in the same data source with the same outputs.
583
-
584
- > **Warning:** Destroying this resource **will result in data loss**. Use the
585
- [`prevent_destroy`][tf_docs_prevent_destroy] directive to avoid accidental
586
- deletions.
587
-
588
- ## Example Usage
589
-
590
- Creating a dynamic host volume:
591
-
592
- ```python
593
- import pulumi
594
- import pulumi_nomad as nomad
595
-
596
- example = nomad.DynamicHostVolume("example",
597
- name="example",
598
- namespace="prod",
599
- plugin_id="mkdir",
600
- capacity_max="12 GiB",
601
- capacity_min="1.0 GiB",
602
- capabilities=[{
603
- "access_mode": "single-node-writer",
604
- "attachment_mode": "file-system",
605
- }],
606
- constraints=[{
607
- "attribute": "${attr.kernel.name}",
608
- "value": "linux",
609
- }],
610
- parameters={
611
- "some_key": "some_value",
612
- })
613
- ```
614
-
573
+ Create a DynamicHostVolume resource with the given unique name, props, and options.
615
574
  :param str resource_name: The name of the resource.
616
575
  :param pulumi.ResourceOptions opts: Options for the resource.
617
576
  :param pulumi.Input[Sequence[pulumi.Input[Union['DynamicHostVolumeCapabilityArgs', 'DynamicHostVolumeCapabilityArgsDict']]]] capabilities: `(block: <optional>)` - Option for validating the capability of a
@@ -661,48 +620,7 @@ class DynamicHostVolume(pulumi.CustomResource):
661
620
  args: DynamicHostVolumeArgs,
662
621
  opts: Optional[pulumi.ResourceOptions] = None):
663
622
  """
664
- layout: "nomad"
665
- page_title: "Nomad: DynamicHostVolume"
666
- sidebar_current: "docs-nomad-resource-dynamic-host-volume"
667
- description: |-
668
- Manages the lifecycle of creating and deleting dynamic host volumes.
669
- ---
670
-
671
- Creates and registers a dynamic host volume in Nomad. Note that Nomad supports
672
- two workflows for dynamic host volumes: create and register. Both resources
673
- result in the same data source with the same outputs.
674
-
675
- > **Warning:** Destroying this resource **will result in data loss**. Use the
676
- [`prevent_destroy`][tf_docs_prevent_destroy] directive to avoid accidental
677
- deletions.
678
-
679
- ## Example Usage
680
-
681
- Creating a dynamic host volume:
682
-
683
- ```python
684
- import pulumi
685
- import pulumi_nomad as nomad
686
-
687
- example = nomad.DynamicHostVolume("example",
688
- name="example",
689
- namespace="prod",
690
- plugin_id="mkdir",
691
- capacity_max="12 GiB",
692
- capacity_min="1.0 GiB",
693
- capabilities=[{
694
- "access_mode": "single-node-writer",
695
- "attachment_mode": "file-system",
696
- }],
697
- constraints=[{
698
- "attribute": "${attr.kernel.name}",
699
- "value": "linux",
700
- }],
701
- parameters={
702
- "some_key": "some_value",
703
- })
704
- ```
705
-
623
+ Create a DynamicHostVolume resource with the given unique name, props, and options.
706
624
  :param str resource_name: The name of the resource.
707
625
  :param DynamicHostVolumeArgs args: The arguments to use to populate this resource's properties.
708
626
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -50,11 +50,6 @@ class DynamicHostVolumeRegistrationArgs:
50
50
  :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] parameters: `(map<string|string>: <optional>)` - A key-value map of strings
51
51
  passed directly to the plugin to configure the volume. The details of these
52
52
  parameters are specific to the plugin.
53
-
54
-
55
- [`access_mode`]: /nomad/docs/other-specifications/volume/capability#access_mode
56
- [`attachment_mode`]: /nomad/docs/other-specifications/volume/capability#attachment_mode
57
- [volume_source]: /nomad/docs/job-specification/volume#source
58
53
  """
59
54
  pulumi.set(__self__, "capabilities", capabilities)
60
55
  pulumi.set(__self__, "host_path", host_path)
@@ -158,11 +153,6 @@ class DynamicHostVolumeRegistrationArgs:
158
153
  `(map<string|string>: <optional>)` - A key-value map of strings
159
154
  passed directly to the plugin to configure the volume. The details of these
160
155
  parameters are specific to the plugin.
161
-
162
-
163
- [`access_mode`]: /nomad/docs/other-specifications/volume/capability#access_mode
164
- [`attachment_mode`]: /nomad/docs/other-specifications/volume/capability#attachment_mode
165
- [volume_source]: /nomad/docs/job-specification/volume#source
166
156
  """
167
157
  return pulumi.get(self, "parameters")
168
158
 
@@ -212,11 +202,6 @@ class _DynamicHostVolumeRegistrationState:
212
202
  :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] parameters: `(map<string|string>: <optional>)` - A key-value map of strings
213
203
  passed directly to the plugin to configure the volume. The details of these
214
204
  parameters are specific to the plugin.
215
-
216
-
217
- [`access_mode`]: /nomad/docs/other-specifications/volume/capability#access_mode
218
- [`attachment_mode`]: /nomad/docs/other-specifications/volume/capability#attachment_mode
219
- [volume_source]: /nomad/docs/job-specification/volume#source
220
205
  :param pulumi.Input[_builtins.str] plugin_id: Plugin ID
221
206
  :param pulumi.Input[_builtins.str] state: State
222
207
  """
@@ -390,11 +375,6 @@ class _DynamicHostVolumeRegistrationState:
390
375
  `(map<string|string>: <optional>)` - A key-value map of strings
391
376
  passed directly to the plugin to configure the volume. The details of these
392
377
  parameters are specific to the plugin.
393
-
394
-
395
- [`access_mode`]: /nomad/docs/other-specifications/volume/capability#access_mode
396
- [`attachment_mode`]: /nomad/docs/other-specifications/volume/capability#attachment_mode
397
- [volume_source]: /nomad/docs/job-specification/volume#source
398
378
  """
399
379
  return pulumi.get(self, "parameters")
400
380
 
@@ -446,6 +426,14 @@ class DynamicHostVolumeRegistration(pulumi.CustomResource):
446
426
  that Nomad supports two workflows for dynamic host volumes: create and
447
427
  register. Both resources result in the same data source with the same outputs.
448
428
 
429
+ ## Importing Dynamic Host Volumes
430
+
431
+ Dynamic host volumes are imported using the pattern `<volume ID>@<namespace>` .
432
+
433
+ [`access_mode`]: /nomad/docs/other-specifications/volume/capability#access_mode
434
+ [`attachment_mode`]: /nomad/docs/other-specifications/volume/capability#attachment_mode
435
+ [volume_source]: /nomad/docs/job-specification/volume#source
436
+
449
437
  :param str resource_name: The name of the resource.
450
438
  :param pulumi.ResourceOptions opts: Options for the resource.
451
439
  :param pulumi.Input[Sequence[pulumi.Input[Union['DynamicHostVolumeRegistrationCapabilityArgs', 'DynamicHostVolumeRegistrationCapabilityArgsDict']]]] capabilities: `(block: <optional>)` - Option for validating the capability of a
@@ -468,11 +456,6 @@ class DynamicHostVolumeRegistration(pulumi.CustomResource):
468
456
  :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] parameters: `(map<string|string>: <optional>)` - A key-value map of strings
469
457
  passed directly to the plugin to configure the volume. The details of these
470
458
  parameters are specific to the plugin.
471
-
472
-
473
- [`access_mode`]: /nomad/docs/other-specifications/volume/capability#access_mode
474
- [`attachment_mode`]: /nomad/docs/other-specifications/volume/capability#attachment_mode
475
- [volume_source]: /nomad/docs/job-specification/volume#source
476
459
  """
477
460
  ...
478
461
  @overload
@@ -485,6 +468,14 @@ class DynamicHostVolumeRegistration(pulumi.CustomResource):
485
468
  that Nomad supports two workflows for dynamic host volumes: create and
486
469
  register. Both resources result in the same data source with the same outputs.
487
470
 
471
+ ## Importing Dynamic Host Volumes
472
+
473
+ Dynamic host volumes are imported using the pattern `<volume ID>@<namespace>` .
474
+
475
+ [`access_mode`]: /nomad/docs/other-specifications/volume/capability#access_mode
476
+ [`attachment_mode`]: /nomad/docs/other-specifications/volume/capability#attachment_mode
477
+ [volume_source]: /nomad/docs/job-specification/volume#source
478
+
488
479
  :param str resource_name: The name of the resource.
489
480
  :param DynamicHostVolumeRegistrationArgs args: The arguments to use to populate this resource's properties.
490
481
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -589,11 +580,6 @@ class DynamicHostVolumeRegistration(pulumi.CustomResource):
589
580
  :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] parameters: `(map<string|string>: <optional>)` - A key-value map of strings
590
581
  passed directly to the plugin to configure the volume. The details of these
591
582
  parameters are specific to the plugin.
592
-
593
-
594
- [`access_mode`]: /nomad/docs/other-specifications/volume/capability#access_mode
595
- [`attachment_mode`]: /nomad/docs/other-specifications/volume/capability#attachment_mode
596
- [volume_source]: /nomad/docs/job-specification/volume#source
597
583
  :param pulumi.Input[_builtins.str] plugin_id: Plugin ID
598
584
  :param pulumi.Input[_builtins.str] state: State
599
585
  """
@@ -714,11 +700,6 @@ class DynamicHostVolumeRegistration(pulumi.CustomResource):
714
700
  `(map<string|string>: <optional>)` - A key-value map of strings
715
701
  passed directly to the plugin to configure the volume. The details of these
716
702
  parameters are specific to the plugin.
717
-
718
-
719
- [`access_mode`]: /nomad/docs/other-specifications/volume/capability#access_mode
720
- [`attachment_mode`]: /nomad/docs/other-specifications/volume/capability#attachment_mode
721
- [volume_source]: /nomad/docs/job-specification/volume#source
722
703
  """
723
704
  return pulumi.get(self, "parameters")
724
705
 
@@ -78,8 +78,8 @@ def get_namespaces(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetN
78
78
  namespace.append(nomad.AclPolicy(f"namespace-{range['value']}",
79
79
  name=f"namespace-{namespaces[range['value']]}",
80
80
  description=f"Write to the namespace {namespaces[range['value']]}",
81
- rules_hcl=f\"\"\"namespace "{namespaces[range["value"]]}" {{
82
- policy = "write"
81
+ rules_hcl=f\"\"\"namespace \\"{namespaces[range["value"]]}\\" {{
82
+ policy = \\"write\\"
83
83
  }}
84
84
  \"\"\"))
85
85
 
@@ -110,8 +110,8 @@ def get_namespaces_output(opts: Optional[Union[pulumi.InvokeOptions, pulumi.Invo
110
110
  namespace.append(nomad.AclPolicy(f"namespace-{range['value']}",
111
111
  name=f"namespace-{namespaces[range['value']]}",
112
112
  description=f"Write to the namespace {namespaces[range['value']]}",
113
- rules_hcl=f\"\"\"namespace "{namespaces[range["value"]]}" {{
114
- policy = "write"
113
+ rules_hcl=f\"\"\"namespace \\"{namespaces[range["value"]]}\\" {{
114
+ policy = \\"write\\"
115
115
  }}
116
116
  \"\"\"))
117
117
 
@@ -1940,8 +1940,12 @@ class NamespaceCapabilities(dict):
1940
1940
  @staticmethod
1941
1941
  def __key_warning(key: str):
1942
1942
  suggest = None
1943
- if key == "disabledTaskDrivers":
1943
+ if key == "disabledNetworkModes":
1944
+ suggest = "disabled_network_modes"
1945
+ elif key == "disabledTaskDrivers":
1944
1946
  suggest = "disabled_task_drivers"
1947
+ elif key == "enabledNetworkModes":
1948
+ suggest = "enabled_network_modes"
1945
1949
  elif key == "enabledTaskDrivers":
1946
1950
  suggest = "enabled_task_drivers"
1947
1951
 
@@ -1957,17 +1961,33 @@ class NamespaceCapabilities(dict):
1957
1961
  return super().get(key, default)
1958
1962
 
1959
1963
  def __init__(__self__, *,
1964
+ disabled_network_modes: Optional[Sequence[_builtins.str]] = None,
1960
1965
  disabled_task_drivers: Optional[Sequence[_builtins.str]] = None,
1966
+ enabled_network_modes: Optional[Sequence[_builtins.str]] = None,
1961
1967
  enabled_task_drivers: Optional[Sequence[_builtins.str]] = None):
1962
1968
  """
1969
+ :param Sequence[_builtins.str] disabled_network_modes: `([]string: <optional>)` - Network modes disabled for the namespace.
1963
1970
  :param Sequence[_builtins.str] disabled_task_drivers: `([]string: <optional>)` - Task drivers disabled for the namespace.
1971
+ :param Sequence[_builtins.str] enabled_network_modes: `([]string: <optional>)` - Network modes enabled for the namespace.
1964
1972
  :param Sequence[_builtins.str] enabled_task_drivers: `([]string: <optional>)` - Task drivers enabled for the namespace.
1965
1973
  """
1974
+ if disabled_network_modes is not None:
1975
+ pulumi.set(__self__, "disabled_network_modes", disabled_network_modes)
1966
1976
  if disabled_task_drivers is not None:
1967
1977
  pulumi.set(__self__, "disabled_task_drivers", disabled_task_drivers)
1978
+ if enabled_network_modes is not None:
1979
+ pulumi.set(__self__, "enabled_network_modes", enabled_network_modes)
1968
1980
  if enabled_task_drivers is not None:
1969
1981
  pulumi.set(__self__, "enabled_task_drivers", enabled_task_drivers)
1970
1982
 
1983
+ @_builtins.property
1984
+ @pulumi.getter(name="disabledNetworkModes")
1985
+ def disabled_network_modes(self) -> Optional[Sequence[_builtins.str]]:
1986
+ """
1987
+ `([]string: <optional>)` - Network modes disabled for the namespace.
1988
+ """
1989
+ return pulumi.get(self, "disabled_network_modes")
1990
+
1971
1991
  @_builtins.property
1972
1992
  @pulumi.getter(name="disabledTaskDrivers")
1973
1993
  def disabled_task_drivers(self) -> Optional[Sequence[_builtins.str]]:
@@ -1976,6 +1996,14 @@ class NamespaceCapabilities(dict):
1976
1996
  """
1977
1997
  return pulumi.get(self, "disabled_task_drivers")
1978
1998
 
1999
+ @_builtins.property
2000
+ @pulumi.getter(name="enabledNetworkModes")
2001
+ def enabled_network_modes(self) -> Optional[Sequence[_builtins.str]]:
2002
+ """
2003
+ `([]string: <optional>)` - Network modes enabled for the namespace.
2004
+ """
2005
+ return pulumi.get(self, "enabled_network_modes")
2006
+
1979
2007
  @_builtins.property
1980
2008
  @pulumi.getter(name="enabledTaskDrivers")
1981
2009
  def enabled_task_drivers(self) -> Optional[Sequence[_builtins.str]]:
@@ -3288,17 +3316,33 @@ class GetJwksKeyResult(dict):
3288
3316
  @pulumi.output_type
3289
3317
  class GetNamespaceCapabilityResult(dict):
3290
3318
  def __init__(__self__, *,
3319
+ disabled_network_modes: Optional[Sequence[_builtins.str]] = None,
3291
3320
  disabled_task_drivers: Optional[Sequence[_builtins.str]] = None,
3321
+ enabled_network_modes: Optional[Sequence[_builtins.str]] = None,
3292
3322
  enabled_task_drivers: Optional[Sequence[_builtins.str]] = None):
3293
3323
  """
3324
+ :param Sequence[_builtins.str] disabled_network_modes: `([]string)` - Network modes disabled for the namespace.
3294
3325
  :param Sequence[_builtins.str] disabled_task_drivers: `([]string)` - Task drivers disabled for the namespace.
3326
+ :param Sequence[_builtins.str] enabled_network_modes: `([]string)` - Network modes enabled for the namespace.
3295
3327
  :param Sequence[_builtins.str] enabled_task_drivers: `([]string)` - Task drivers enabled for the namespace.
3296
3328
  """
3329
+ if disabled_network_modes is not None:
3330
+ pulumi.set(__self__, "disabled_network_modes", disabled_network_modes)
3297
3331
  if disabled_task_drivers is not None:
3298
3332
  pulumi.set(__self__, "disabled_task_drivers", disabled_task_drivers)
3333
+ if enabled_network_modes is not None:
3334
+ pulumi.set(__self__, "enabled_network_modes", enabled_network_modes)
3299
3335
  if enabled_task_drivers is not None:
3300
3336
  pulumi.set(__self__, "enabled_task_drivers", enabled_task_drivers)
3301
3337
 
3338
+ @_builtins.property
3339
+ @pulumi.getter(name="disabledNetworkModes")
3340
+ def disabled_network_modes(self) -> Optional[Sequence[_builtins.str]]:
3341
+ """
3342
+ `([]string)` - Network modes disabled for the namespace.
3343
+ """
3344
+ return pulumi.get(self, "disabled_network_modes")
3345
+
3302
3346
  @_builtins.property
3303
3347
  @pulumi.getter(name="disabledTaskDrivers")
3304
3348
  def disabled_task_drivers(self) -> Optional[Sequence[_builtins.str]]:
@@ -3307,6 +3351,14 @@ class GetNamespaceCapabilityResult(dict):
3307
3351
  """
3308
3352
  return pulumi.get(self, "disabled_task_drivers")
3309
3353
 
3354
+ @_builtins.property
3355
+ @pulumi.getter(name="enabledNetworkModes")
3356
+ def enabled_network_modes(self) -> Optional[Sequence[_builtins.str]]:
3357
+ """
3358
+ `([]string)` - Network modes enabled for the namespace.
3359
+ """
3360
+ return pulumi.get(self, "enabled_network_modes")
3361
+
3310
3362
  @_builtins.property
3311
3363
  @pulumi.getter(name="enabledTaskDrivers")
3312
3364
  def enabled_task_drivers(self) -> Optional[Sequence[_builtins.str]]:
@@ -21,6 +21,7 @@ __all__ = ['ProviderArgs', 'Provider']
21
21
  class ProviderArgs:
22
22
  def __init__(__self__, *,
23
23
  address: Optional[pulumi.Input[_builtins.str]] = None,
24
+ auth_jwt: Optional[pulumi.Input['ProviderAuthJwtArgs']] = None,
24
25
  ca_file: Optional[pulumi.Input[_builtins.str]] = None,
25
26
  ca_pem: Optional[pulumi.Input[_builtins.str]] = None,
26
27
  cert_file: Optional[pulumi.Input[_builtins.str]] = None,
@@ -36,6 +37,7 @@ class ProviderArgs:
36
37
  """
37
38
  The set of arguments for constructing a Provider resource.
38
39
  :param pulumi.Input[_builtins.str] address: URL of the root of the target Nomad agent.
40
+ :param pulumi.Input['ProviderAuthJwtArgs'] auth_jwt: Authenticates to Nomad using a JWT authentication method.
39
41
  :param pulumi.Input[_builtins.str] ca_file: A path to a PEM-encoded certificate authority used to verify the remote agent's certificate.
40
42
  :param pulumi.Input[_builtins.str] ca_pem: PEM-encoded certificate authority used to verify the remote agent's certificate.
41
43
  :param pulumi.Input[_builtins.str] cert_file: A path to a PEM-encoded certificate provided to the remote agent; requires use of key_file or key_pem.
@@ -51,6 +53,8 @@ class ProviderArgs:
51
53
  """
52
54
  if address is not None:
53
55
  pulumi.set(__self__, "address", address)
56
+ if auth_jwt is not None:
57
+ pulumi.set(__self__, "auth_jwt", auth_jwt)
54
58
  if ca_file is not None:
55
59
  pulumi.set(__self__, "ca_file", ca_file)
56
60
  if ca_pem is not None:
@@ -88,6 +92,18 @@ class ProviderArgs:
88
92
  def address(self, value: Optional[pulumi.Input[_builtins.str]]):
89
93
  pulumi.set(self, "address", value)
90
94
 
95
+ @_builtins.property
96
+ @pulumi.getter(name="authJwt")
97
+ def auth_jwt(self) -> Optional[pulumi.Input['ProviderAuthJwtArgs']]:
98
+ """
99
+ Authenticates to Nomad using a JWT authentication method.
100
+ """
101
+ return pulumi.get(self, "auth_jwt")
102
+
103
+ @auth_jwt.setter
104
+ def auth_jwt(self, value: Optional[pulumi.Input['ProviderAuthJwtArgs']]):
105
+ pulumi.set(self, "auth_jwt", value)
106
+
91
107
  @_builtins.property
92
108
  @pulumi.getter(name="caFile")
93
109
  def ca_file(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -240,6 +256,7 @@ class Provider(pulumi.ProviderResource):
240
256
  resource_name: str,
241
257
  opts: Optional[pulumi.ResourceOptions] = None,
242
258
  address: Optional[pulumi.Input[_builtins.str]] = None,
259
+ auth_jwt: Optional[pulumi.Input[Union['ProviderAuthJwtArgs', 'ProviderAuthJwtArgsDict']]] = None,
243
260
  ca_file: Optional[pulumi.Input[_builtins.str]] = None,
244
261
  ca_pem: Optional[pulumi.Input[_builtins.str]] = None,
245
262
  cert_file: Optional[pulumi.Input[_builtins.str]] = None,
@@ -262,6 +279,7 @@ class Provider(pulumi.ProviderResource):
262
279
  :param str resource_name: The name of the resource.
263
280
  :param pulumi.ResourceOptions opts: Options for the resource.
264
281
  :param pulumi.Input[_builtins.str] address: URL of the root of the target Nomad agent.
282
+ :param pulumi.Input[Union['ProviderAuthJwtArgs', 'ProviderAuthJwtArgsDict']] auth_jwt: Authenticates to Nomad using a JWT authentication method.
265
283
  :param pulumi.Input[_builtins.str] ca_file: A path to a PEM-encoded certificate authority used to verify the remote agent's certificate.
266
284
  :param pulumi.Input[_builtins.str] ca_pem: PEM-encoded certificate authority used to verify the remote agent's certificate.
267
285
  :param pulumi.Input[_builtins.str] cert_file: A path to a PEM-encoded certificate provided to the remote agent; requires use of key_file or key_pem.
@@ -303,6 +321,7 @@ class Provider(pulumi.ProviderResource):
303
321
  resource_name: str,
304
322
  opts: Optional[pulumi.ResourceOptions] = None,
305
323
  address: Optional[pulumi.Input[_builtins.str]] = None,
324
+ auth_jwt: Optional[pulumi.Input[Union['ProviderAuthJwtArgs', 'ProviderAuthJwtArgsDict']]] = None,
306
325
  ca_file: Optional[pulumi.Input[_builtins.str]] = None,
307
326
  ca_pem: Optional[pulumi.Input[_builtins.str]] = None,
308
327
  cert_file: Optional[pulumi.Input[_builtins.str]] = None,
@@ -325,6 +344,7 @@ class Provider(pulumi.ProviderResource):
325
344
  __props__ = ProviderArgs.__new__(ProviderArgs)
326
345
 
327
346
  __props__.__dict__["address"] = address
347
+ __props__.__dict__["auth_jwt"] = pulumi.Output.from_input(auth_jwt).apply(pulumi.runtime.to_json) if auth_jwt is not None else None
328
348
  __props__.__dict__["ca_file"] = ca_file
329
349
  __props__.__dict__["ca_pem"] = ca_pem
330
350
  __props__.__dict__["cert_file"] = cert_file
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "resource": true,
3
3
  "name": "nomad",
4
- "version": "2.6.0-alpha.1761587385"
4
+ "version": "2.6.0-alpha.1764655701"
5
5
  }
@@ -238,7 +238,7 @@ class SentinelPolicy(pulumi.CustomResource):
238
238
  all_drivers_exec = rule {
239
239
  all job.task_groups as tg {
240
240
  all tg.tasks as task {
241
- task.driver is "exec"
241
+ task.driver is \\"exec\\"
242
242
  }
243
243
  }
244
244
  }
@@ -286,7 +286,7 @@ class SentinelPolicy(pulumi.CustomResource):
286
286
  all_drivers_exec = rule {
287
287
  all job.task_groups as tg {
288
288
  all tg.tasks as task {
289
- task.driver is "exec"
289
+ task.driver is \\"exec\\"
290
290
  }
291
291
  }
292
292
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulumi_nomad
3
- Version: 2.6.0a1761587385
3
+ Version: 2.6.0a1764655701
4
4
  Summary: A Pulumi package for creating and managing nomad cloud resources.
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://pulumi.io
@@ -5,7 +5,7 @@
5
5
  keywords = ["pulumi", "nomad"]
6
6
  readme = "README.md"
7
7
  requires-python = ">=3.9"
8
- version = "2.6.0a1761587385"
8
+ version = "2.6.0a1764655701"
9
9
  [project.license]
10
10
  text = "Apache-2.0"
11
11
  [project.urls]