pulumi-vsphere 4.10.0a1709017641__py3-none-any.whl → 4.17.0a1763710194__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.

Potentially problematic release.


This version of pulumi-vsphere might be problematic. Click here for more details.

Files changed (89) hide show
  1. pulumi_vsphere/__init__.py +51 -1
  2. pulumi_vsphere/_inputs.py +2568 -1025
  3. pulumi_vsphere/_utilities.py +50 -10
  4. pulumi_vsphere/compute_cluster.py +1564 -2373
  5. pulumi_vsphere/compute_cluster_host_group.py +191 -55
  6. pulumi_vsphere/compute_cluster_vm_affinity_rule.py +157 -113
  7. pulumi_vsphere/compute_cluster_vm_anti_affinity_rule.py +133 -89
  8. pulumi_vsphere/compute_cluster_vm_dependency_rule.py +314 -106
  9. pulumi_vsphere/compute_cluster_vm_group.py +256 -55
  10. pulumi_vsphere/compute_cluster_vm_host_rule.py +323 -123
  11. pulumi_vsphere/config/__init__.py +2 -1
  12. pulumi_vsphere/config/__init__.pyi +7 -2
  13. pulumi_vsphere/config/vars.py +20 -15
  14. pulumi_vsphere/configuration_profile.py +286 -0
  15. pulumi_vsphere/content_library.py +177 -71
  16. pulumi_vsphere/content_library_item.py +252 -106
  17. pulumi_vsphere/custom_attribute.py +118 -38
  18. pulumi_vsphere/datacenter.py +128 -107
  19. pulumi_vsphere/datastore_cluster.py +636 -731
  20. pulumi_vsphere/datastore_cluster_vm_anti_affinity_rule.py +251 -89
  21. pulumi_vsphere/distributed_port_group.py +1129 -967
  22. pulumi_vsphere/distributed_virtual_switch.py +1971 -2239
  23. pulumi_vsphere/distributed_virtual_switch_pvlan_mapping.py +294 -0
  24. pulumi_vsphere/dpm_host_override.py +222 -72
  25. pulumi_vsphere/drs_vm_override.py +236 -72
  26. pulumi_vsphere/entity_permissions.py +96 -69
  27. pulumi_vsphere/file.py +173 -178
  28. pulumi_vsphere/folder.py +236 -113
  29. pulumi_vsphere/get_compute_cluster.py +34 -23
  30. pulumi_vsphere/get_compute_cluster_host_group.py +52 -41
  31. pulumi_vsphere/get_configuration_profile.py +145 -0
  32. pulumi_vsphere/get_content_library.py +33 -21
  33. pulumi_vsphere/get_content_library_item.py +47 -31
  34. pulumi_vsphere/get_custom_attribute.py +26 -17
  35. pulumi_vsphere/get_datacenter.py +40 -18
  36. pulumi_vsphere/get_datastore.py +60 -24
  37. pulumi_vsphere/get_datastore_cluster.py +47 -22
  38. pulumi_vsphere/get_datastore_stats.py +204 -0
  39. pulumi_vsphere/get_distributed_virtual_switch.py +36 -23
  40. pulumi_vsphere/get_dynamic.py +55 -45
  41. pulumi_vsphere/get_folder.py +163 -25
  42. pulumi_vsphere/get_guest_os_customization.py +68 -37
  43. pulumi_vsphere/get_host.py +34 -23
  44. pulumi_vsphere/get_host_base_images.py +104 -0
  45. pulumi_vsphere/get_host_pci_device.py +78 -35
  46. pulumi_vsphere/get_host_thumbprint.py +58 -38
  47. pulumi_vsphere/get_host_vgpu_profile.py +195 -0
  48. pulumi_vsphere/get_license.py +44 -28
  49. pulumi_vsphere/get_network.py +157 -46
  50. pulumi_vsphere/get_ovf_vm_template.py +184 -301
  51. pulumi_vsphere/get_policy.py +23 -15
  52. pulumi_vsphere/get_resource_pool.py +107 -40
  53. pulumi_vsphere/get_role.py +49 -35
  54. pulumi_vsphere/get_tag.py +34 -23
  55. pulumi_vsphere/get_tag_category.py +32 -21
  56. pulumi_vsphere/get_vapp_container.py +31 -21
  57. pulumi_vsphere/get_virtual_machine.py +499 -287
  58. pulumi_vsphere/get_vmfs_disks.py +42 -29
  59. pulumi_vsphere/guest_os_customization.py +135 -79
  60. pulumi_vsphere/ha_vm_override.py +470 -577
  61. pulumi_vsphere/host.py +515 -262
  62. pulumi_vsphere/host_port_group.py +352 -355
  63. pulumi_vsphere/host_virtual_switch.py +580 -580
  64. pulumi_vsphere/license.py +110 -92
  65. pulumi_vsphere/nas_datastore.py +398 -270
  66. pulumi_vsphere/offline_software_depot.py +190 -0
  67. pulumi_vsphere/outputs.py +1582 -1027
  68. pulumi_vsphere/provider.py +172 -152
  69. pulumi_vsphere/pulumi-plugin.json +2 -1
  70. pulumi_vsphere/resource_pool.py +357 -273
  71. pulumi_vsphere/role.py +79 -47
  72. pulumi_vsphere/storage_drs_vm_override.py +225 -89
  73. pulumi_vsphere/supervisor.py +1064 -0
  74. pulumi_vsphere/tag.py +217 -55
  75. pulumi_vsphere/tag_category.py +158 -72
  76. pulumi_vsphere/vapp_container.py +425 -259
  77. pulumi_vsphere/vapp_entity.py +324 -174
  78. pulumi_vsphere/virtual_disk.py +245 -153
  79. pulumi_vsphere/virtual_machine.py +1696 -1836
  80. pulumi_vsphere/virtual_machine_class.py +448 -0
  81. pulumi_vsphere/virtual_machine_snapshot.py +137 -131
  82. pulumi_vsphere/vm_storage_policy.py +160 -154
  83. pulumi_vsphere/vmfs_datastore.py +460 -186
  84. pulumi_vsphere/vnic.py +249 -231
  85. {pulumi_vsphere-4.10.0a1709017641.dist-info → pulumi_vsphere-4.17.0a1763710194.dist-info}/METADATA +7 -6
  86. pulumi_vsphere-4.17.0a1763710194.dist-info/RECORD +89 -0
  87. {pulumi_vsphere-4.10.0a1709017641.dist-info → pulumi_vsphere-4.17.0a1763710194.dist-info}/WHEEL +1 -1
  88. pulumi_vsphere-4.10.0a1709017641.dist-info/RECORD +0 -80
  89. {pulumi_vsphere-4.10.0a1709017641.dist-info → pulumi_vsphere-4.17.0a1763710194.dist-info}/top_level.txt +0 -0
@@ -1,12 +1,17 @@
1
1
  # coding=utf-8
2
- # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
3
  # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
4
 
5
- import copy
5
+ import builtins as _builtins
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
10
  from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
10
15
  from . import _utilities
11
16
 
12
17
  __all__ = ['ComputeClusterVmHostRuleArgs', 'ComputeClusterVmHostRule']
@@ -14,28 +19,28 @@ __all__ = ['ComputeClusterVmHostRuleArgs', 'ComputeClusterVmHostRule']
14
19
  @pulumi.input_type
15
20
  class ComputeClusterVmHostRuleArgs:
16
21
  def __init__(__self__, *,
17
- compute_cluster_id: pulumi.Input[str],
18
- vm_group_name: pulumi.Input[str],
19
- affinity_host_group_name: Optional[pulumi.Input[str]] = None,
20
- anti_affinity_host_group_name: Optional[pulumi.Input[str]] = None,
21
- enabled: Optional[pulumi.Input[bool]] = None,
22
- mandatory: Optional[pulumi.Input[bool]] = None,
23
- name: Optional[pulumi.Input[str]] = None):
22
+ compute_cluster_id: pulumi.Input[_builtins.str],
23
+ vm_group_name: pulumi.Input[_builtins.str],
24
+ affinity_host_group_name: Optional[pulumi.Input[_builtins.str]] = None,
25
+ anti_affinity_host_group_name: Optional[pulumi.Input[_builtins.str]] = None,
26
+ enabled: Optional[pulumi.Input[_builtins.bool]] = None,
27
+ mandatory: Optional[pulumi.Input[_builtins.bool]] = None,
28
+ name: Optional[pulumi.Input[_builtins.str]] = None):
24
29
  """
25
30
  The set of arguments for constructing a ComputeClusterVmHostRule resource.
26
- :param pulumi.Input[str] compute_cluster_id: The managed object reference
31
+ :param pulumi.Input[_builtins.str] compute_cluster_id: The managed object reference
27
32
  ID of the cluster to put the group in. Forces a new
28
33
  resource if changed.
29
- :param pulumi.Input[str] vm_group_name: The name of the virtual machine group to use
34
+ :param pulumi.Input[_builtins.str] vm_group_name: The name of the virtual machine group to use
30
35
  with this rule.
31
- :param pulumi.Input[str] affinity_host_group_name: When this field is used, the virtual
36
+ :param pulumi.Input[_builtins.str] affinity_host_group_name: When this field is used, the virtual
32
37
  machines defined in `vm_group_name` will be run on the
33
38
  hosts defined in this host group.
34
- :param pulumi.Input[str] anti_affinity_host_group_name: When this field is used, the
39
+ :param pulumi.Input[_builtins.str] anti_affinity_host_group_name: When this field is used, the
35
40
  virtual machines defined in `vm_group_name` will _not_ be
36
41
  run on the hosts defined in this host group.
37
- :param pulumi.Input[bool] enabled: Enable this rule in the cluster. Default: `true`.
38
- :param pulumi.Input[bool] mandatory: When this value is `true`, prevents any virtual
42
+ :param pulumi.Input[_builtins.bool] enabled: Enable this rule in the cluster. Default: `true`.
43
+ :param pulumi.Input[_builtins.bool] mandatory: When this value is `true`, prevents any virtual
39
44
  machine operations that may violate this rule. Default: `false`.
40
45
 
41
46
  > **NOTE:** One of `affinity_host_group_name` or
@@ -45,7 +50,7 @@ class ComputeClusterVmHostRuleArgs:
45
50
  > **NOTE:** The namespace for rule names on this resource (defined by the
46
51
  `name` argument) is shared with all rules in the cluster - consider
47
52
  this when naming your rules.
48
- :param pulumi.Input[str] name: The name of the rule. This must be unique in the
53
+ :param pulumi.Input[_builtins.str] name: The name of the rule. This must be unique in the
49
54
  cluster.
50
55
  """
51
56
  pulumi.set(__self__, "compute_cluster_id", compute_cluster_id)
@@ -61,9 +66,9 @@ class ComputeClusterVmHostRuleArgs:
61
66
  if name is not None:
62
67
  pulumi.set(__self__, "name", name)
63
68
 
64
- @property
69
+ @_builtins.property
65
70
  @pulumi.getter(name="computeClusterId")
66
- def compute_cluster_id(self) -> pulumi.Input[str]:
71
+ def compute_cluster_id(self) -> pulumi.Input[_builtins.str]:
67
72
  """
68
73
  The managed object reference
69
74
  ID of the cluster to put the group in. Forces a new
@@ -72,12 +77,12 @@ class ComputeClusterVmHostRuleArgs:
72
77
  return pulumi.get(self, "compute_cluster_id")
73
78
 
74
79
  @compute_cluster_id.setter
75
- def compute_cluster_id(self, value: pulumi.Input[str]):
80
+ def compute_cluster_id(self, value: pulumi.Input[_builtins.str]):
76
81
  pulumi.set(self, "compute_cluster_id", value)
77
82
 
78
- @property
83
+ @_builtins.property
79
84
  @pulumi.getter(name="vmGroupName")
80
- def vm_group_name(self) -> pulumi.Input[str]:
85
+ def vm_group_name(self) -> pulumi.Input[_builtins.str]:
81
86
  """
82
87
  The name of the virtual machine group to use
83
88
  with this rule.
@@ -85,12 +90,12 @@ class ComputeClusterVmHostRuleArgs:
85
90
  return pulumi.get(self, "vm_group_name")
86
91
 
87
92
  @vm_group_name.setter
88
- def vm_group_name(self, value: pulumi.Input[str]):
93
+ def vm_group_name(self, value: pulumi.Input[_builtins.str]):
89
94
  pulumi.set(self, "vm_group_name", value)
90
95
 
91
- @property
96
+ @_builtins.property
92
97
  @pulumi.getter(name="affinityHostGroupName")
93
- def affinity_host_group_name(self) -> Optional[pulumi.Input[str]]:
98
+ def affinity_host_group_name(self) -> Optional[pulumi.Input[_builtins.str]]:
94
99
  """
95
100
  When this field is used, the virtual
96
101
  machines defined in `vm_group_name` will be run on the
@@ -99,12 +104,12 @@ class ComputeClusterVmHostRuleArgs:
99
104
  return pulumi.get(self, "affinity_host_group_name")
100
105
 
101
106
  @affinity_host_group_name.setter
102
- def affinity_host_group_name(self, value: Optional[pulumi.Input[str]]):
107
+ def affinity_host_group_name(self, value: Optional[pulumi.Input[_builtins.str]]):
103
108
  pulumi.set(self, "affinity_host_group_name", value)
104
109
 
105
- @property
110
+ @_builtins.property
106
111
  @pulumi.getter(name="antiAffinityHostGroupName")
107
- def anti_affinity_host_group_name(self) -> Optional[pulumi.Input[str]]:
112
+ def anti_affinity_host_group_name(self) -> Optional[pulumi.Input[_builtins.str]]:
108
113
  """
109
114
  When this field is used, the
110
115
  virtual machines defined in `vm_group_name` will _not_ be
@@ -113,24 +118,24 @@ class ComputeClusterVmHostRuleArgs:
113
118
  return pulumi.get(self, "anti_affinity_host_group_name")
114
119
 
115
120
  @anti_affinity_host_group_name.setter
116
- def anti_affinity_host_group_name(self, value: Optional[pulumi.Input[str]]):
121
+ def anti_affinity_host_group_name(self, value: Optional[pulumi.Input[_builtins.str]]):
117
122
  pulumi.set(self, "anti_affinity_host_group_name", value)
118
123
 
119
- @property
124
+ @_builtins.property
120
125
  @pulumi.getter
121
- def enabled(self) -> Optional[pulumi.Input[bool]]:
126
+ def enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
122
127
  """
123
128
  Enable this rule in the cluster. Default: `true`.
124
129
  """
125
130
  return pulumi.get(self, "enabled")
126
131
 
127
132
  @enabled.setter
128
- def enabled(self, value: Optional[pulumi.Input[bool]]):
133
+ def enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
129
134
  pulumi.set(self, "enabled", value)
130
135
 
131
- @property
136
+ @_builtins.property
132
137
  @pulumi.getter
133
- def mandatory(self) -> Optional[pulumi.Input[bool]]:
138
+ def mandatory(self) -> Optional[pulumi.Input[_builtins.bool]]:
134
139
  """
135
140
  When this value is `true`, prevents any virtual
136
141
  machine operations that may violate this rule. Default: `false`.
@@ -146,12 +151,12 @@ class ComputeClusterVmHostRuleArgs:
146
151
  return pulumi.get(self, "mandatory")
147
152
 
148
153
  @mandatory.setter
149
- def mandatory(self, value: Optional[pulumi.Input[bool]]):
154
+ def mandatory(self, value: Optional[pulumi.Input[_builtins.bool]]):
150
155
  pulumi.set(self, "mandatory", value)
151
156
 
152
- @property
157
+ @_builtins.property
153
158
  @pulumi.getter
154
- def name(self) -> Optional[pulumi.Input[str]]:
159
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
155
160
  """
156
161
  The name of the rule. This must be unique in the
157
162
  cluster.
@@ -159,33 +164,33 @@ class ComputeClusterVmHostRuleArgs:
159
164
  return pulumi.get(self, "name")
160
165
 
161
166
  @name.setter
162
- def name(self, value: Optional[pulumi.Input[str]]):
167
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
163
168
  pulumi.set(self, "name", value)
164
169
 
165
170
 
166
171
  @pulumi.input_type
167
172
  class _ComputeClusterVmHostRuleState:
168
173
  def __init__(__self__, *,
169
- affinity_host_group_name: Optional[pulumi.Input[str]] = None,
170
- anti_affinity_host_group_name: Optional[pulumi.Input[str]] = None,
171
- compute_cluster_id: Optional[pulumi.Input[str]] = None,
172
- enabled: Optional[pulumi.Input[bool]] = None,
173
- mandatory: Optional[pulumi.Input[bool]] = None,
174
- name: Optional[pulumi.Input[str]] = None,
175
- vm_group_name: Optional[pulumi.Input[str]] = None):
174
+ affinity_host_group_name: Optional[pulumi.Input[_builtins.str]] = None,
175
+ anti_affinity_host_group_name: Optional[pulumi.Input[_builtins.str]] = None,
176
+ compute_cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
177
+ enabled: Optional[pulumi.Input[_builtins.bool]] = None,
178
+ mandatory: Optional[pulumi.Input[_builtins.bool]] = None,
179
+ name: Optional[pulumi.Input[_builtins.str]] = None,
180
+ vm_group_name: Optional[pulumi.Input[_builtins.str]] = None):
176
181
  """
177
182
  Input properties used for looking up and filtering ComputeClusterVmHostRule resources.
178
- :param pulumi.Input[str] affinity_host_group_name: When this field is used, the virtual
183
+ :param pulumi.Input[_builtins.str] affinity_host_group_name: When this field is used, the virtual
179
184
  machines defined in `vm_group_name` will be run on the
180
185
  hosts defined in this host group.
181
- :param pulumi.Input[str] anti_affinity_host_group_name: When this field is used, the
186
+ :param pulumi.Input[_builtins.str] anti_affinity_host_group_name: When this field is used, the
182
187
  virtual machines defined in `vm_group_name` will _not_ be
183
188
  run on the hosts defined in this host group.
184
- :param pulumi.Input[str] compute_cluster_id: The managed object reference
189
+ :param pulumi.Input[_builtins.str] compute_cluster_id: The managed object reference
185
190
  ID of the cluster to put the group in. Forces a new
186
191
  resource if changed.
187
- :param pulumi.Input[bool] enabled: Enable this rule in the cluster. Default: `true`.
188
- :param pulumi.Input[bool] mandatory: When this value is `true`, prevents any virtual
192
+ :param pulumi.Input[_builtins.bool] enabled: Enable this rule in the cluster. Default: `true`.
193
+ :param pulumi.Input[_builtins.bool] mandatory: When this value is `true`, prevents any virtual
189
194
  machine operations that may violate this rule. Default: `false`.
190
195
 
191
196
  > **NOTE:** One of `affinity_host_group_name` or
@@ -195,9 +200,9 @@ class _ComputeClusterVmHostRuleState:
195
200
  > **NOTE:** The namespace for rule names on this resource (defined by the
196
201
  `name` argument) is shared with all rules in the cluster - consider
197
202
  this when naming your rules.
198
- :param pulumi.Input[str] name: The name of the rule. This must be unique in the
203
+ :param pulumi.Input[_builtins.str] name: The name of the rule. This must be unique in the
199
204
  cluster.
200
- :param pulumi.Input[str] vm_group_name: The name of the virtual machine group to use
205
+ :param pulumi.Input[_builtins.str] vm_group_name: The name of the virtual machine group to use
201
206
  with this rule.
202
207
  """
203
208
  if affinity_host_group_name is not None:
@@ -215,9 +220,9 @@ class _ComputeClusterVmHostRuleState:
215
220
  if vm_group_name is not None:
216
221
  pulumi.set(__self__, "vm_group_name", vm_group_name)
217
222
 
218
- @property
223
+ @_builtins.property
219
224
  @pulumi.getter(name="affinityHostGroupName")
220
- def affinity_host_group_name(self) -> Optional[pulumi.Input[str]]:
225
+ def affinity_host_group_name(self) -> Optional[pulumi.Input[_builtins.str]]:
221
226
  """
222
227
  When this field is used, the virtual
223
228
  machines defined in `vm_group_name` will be run on the
@@ -226,12 +231,12 @@ class _ComputeClusterVmHostRuleState:
226
231
  return pulumi.get(self, "affinity_host_group_name")
227
232
 
228
233
  @affinity_host_group_name.setter
229
- def affinity_host_group_name(self, value: Optional[pulumi.Input[str]]):
234
+ def affinity_host_group_name(self, value: Optional[pulumi.Input[_builtins.str]]):
230
235
  pulumi.set(self, "affinity_host_group_name", value)
231
236
 
232
- @property
237
+ @_builtins.property
233
238
  @pulumi.getter(name="antiAffinityHostGroupName")
234
- def anti_affinity_host_group_name(self) -> Optional[pulumi.Input[str]]:
239
+ def anti_affinity_host_group_name(self) -> Optional[pulumi.Input[_builtins.str]]:
235
240
  """
236
241
  When this field is used, the
237
242
  virtual machines defined in `vm_group_name` will _not_ be
@@ -240,12 +245,12 @@ class _ComputeClusterVmHostRuleState:
240
245
  return pulumi.get(self, "anti_affinity_host_group_name")
241
246
 
242
247
  @anti_affinity_host_group_name.setter
243
- def anti_affinity_host_group_name(self, value: Optional[pulumi.Input[str]]):
248
+ def anti_affinity_host_group_name(self, value: Optional[pulumi.Input[_builtins.str]]):
244
249
  pulumi.set(self, "anti_affinity_host_group_name", value)
245
250
 
246
- @property
251
+ @_builtins.property
247
252
  @pulumi.getter(name="computeClusterId")
248
- def compute_cluster_id(self) -> Optional[pulumi.Input[str]]:
253
+ def compute_cluster_id(self) -> Optional[pulumi.Input[_builtins.str]]:
249
254
  """
250
255
  The managed object reference
251
256
  ID of the cluster to put the group in. Forces a new
@@ -254,24 +259,24 @@ class _ComputeClusterVmHostRuleState:
254
259
  return pulumi.get(self, "compute_cluster_id")
255
260
 
256
261
  @compute_cluster_id.setter
257
- def compute_cluster_id(self, value: Optional[pulumi.Input[str]]):
262
+ def compute_cluster_id(self, value: Optional[pulumi.Input[_builtins.str]]):
258
263
  pulumi.set(self, "compute_cluster_id", value)
259
264
 
260
- @property
265
+ @_builtins.property
261
266
  @pulumi.getter
262
- def enabled(self) -> Optional[pulumi.Input[bool]]:
267
+ def enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
263
268
  """
264
269
  Enable this rule in the cluster. Default: `true`.
265
270
  """
266
271
  return pulumi.get(self, "enabled")
267
272
 
268
273
  @enabled.setter
269
- def enabled(self, value: Optional[pulumi.Input[bool]]):
274
+ def enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
270
275
  pulumi.set(self, "enabled", value)
271
276
 
272
- @property
277
+ @_builtins.property
273
278
  @pulumi.getter
274
- def mandatory(self) -> Optional[pulumi.Input[bool]]:
279
+ def mandatory(self) -> Optional[pulumi.Input[_builtins.bool]]:
275
280
  """
276
281
  When this value is `true`, prevents any virtual
277
282
  machine operations that may violate this rule. Default: `false`.
@@ -287,12 +292,12 @@ class _ComputeClusterVmHostRuleState:
287
292
  return pulumi.get(self, "mandatory")
288
293
 
289
294
  @mandatory.setter
290
- def mandatory(self, value: Optional[pulumi.Input[bool]]):
295
+ def mandatory(self, value: Optional[pulumi.Input[_builtins.bool]]):
291
296
  pulumi.set(self, "mandatory", value)
292
297
 
293
- @property
298
+ @_builtins.property
294
299
  @pulumi.getter
295
- def name(self) -> Optional[pulumi.Input[str]]:
300
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
296
301
  """
297
302
  The name of the rule. This must be unique in the
298
303
  cluster.
@@ -300,12 +305,12 @@ class _ComputeClusterVmHostRuleState:
300
305
  return pulumi.get(self, "name")
301
306
 
302
307
  @name.setter
303
- def name(self, value: Optional[pulumi.Input[str]]):
308
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
304
309
  pulumi.set(self, "name", value)
305
310
 
306
- @property
311
+ @_builtins.property
307
312
  @pulumi.getter(name="vmGroupName")
308
- def vm_group_name(self) -> Optional[pulumi.Input[str]]:
313
+ def vm_group_name(self) -> Optional[pulumi.Input[_builtins.str]]:
309
314
  """
310
315
  The name of the virtual machine group to use
311
316
  with this rule.
@@ -313,38 +318,136 @@ class _ComputeClusterVmHostRuleState:
313
318
  return pulumi.get(self, "vm_group_name")
314
319
 
315
320
  @vm_group_name.setter
316
- def vm_group_name(self, value: Optional[pulumi.Input[str]]):
321
+ def vm_group_name(self, value: Optional[pulumi.Input[_builtins.str]]):
317
322
  pulumi.set(self, "vm_group_name", value)
318
323
 
319
324
 
325
+ @pulumi.type_token("vsphere:index/computeClusterVmHostRule:ComputeClusterVmHostRule")
320
326
  class ComputeClusterVmHostRule(pulumi.CustomResource):
321
327
  @overload
322
328
  def __init__(__self__,
323
329
  resource_name: str,
324
330
  opts: Optional[pulumi.ResourceOptions] = None,
325
- affinity_host_group_name: Optional[pulumi.Input[str]] = None,
326
- anti_affinity_host_group_name: Optional[pulumi.Input[str]] = None,
327
- compute_cluster_id: Optional[pulumi.Input[str]] = None,
328
- enabled: Optional[pulumi.Input[bool]] = None,
329
- mandatory: Optional[pulumi.Input[bool]] = None,
330
- name: Optional[pulumi.Input[str]] = None,
331
- vm_group_name: Optional[pulumi.Input[str]] = None,
331
+ affinity_host_group_name: Optional[pulumi.Input[_builtins.str]] = None,
332
+ anti_affinity_host_group_name: Optional[pulumi.Input[_builtins.str]] = None,
333
+ compute_cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
334
+ enabled: Optional[pulumi.Input[_builtins.bool]] = None,
335
+ mandatory: Optional[pulumi.Input[_builtins.bool]] = None,
336
+ name: Optional[pulumi.Input[_builtins.str]] = None,
337
+ vm_group_name: Optional[pulumi.Input[_builtins.str]] = None,
332
338
  __props__=None):
333
339
  """
334
- Create a ComputeClusterVmHostRule resource with the given unique name, props, and options.
340
+ The `ComputeClusterVmHostRule` resource can be used to manage
341
+ VM-to-host rules in a cluster, either created by the
342
+ `ComputeCluster` resource or looked up
343
+ by the `ComputeCluster` data source.
344
+
345
+ This resource can create both _affinity rules_, where virtual machines run on
346
+ specified hosts, or _anti-affinity_ rules, where virtual machines run on hosts
347
+ outside of the ones specified in the rule. Virtual machines and hosts are
348
+ supplied via groups, which can be managed via the
349
+ `ComputeClusterVmGroup` and
350
+ `ComputeClusterHostGroup`
351
+ resources.
352
+
353
+ > **NOTE:** This resource requires vCenter and is not available on direct ESXi
354
+ connections.
355
+
356
+ ## Example Usage
357
+
358
+ The example below creates a virtual machine in a cluster using the
359
+ `VirtualMachine` resource in a cluster
360
+ looked up by the `ComputeCluster`
361
+ data source. It then creates a group with this virtual machine. It also creates
362
+ a host group off of the host looked up via the
363
+ `Host` data source. Finally, this
364
+ virtual machine is configured to run specifically on that host via a
365
+ `ComputeClusterVmHostRule` resource.
366
+
367
+ > Note how `vm_group_name` and
368
+ `affinity_host_group_name` are sourced off of the
369
+ `name` attributes from the
370
+ `ComputeClusterVmGroup` and
371
+ `ComputeClusterHostGroup`
372
+ resources. This is to ensure that the rule is not created before the groups
373
+ exist, which may not possibly happen in the event that the names came from a
374
+ "static" source such as a variable.
375
+
376
+ ```python
377
+ import pulumi
378
+ import pulumi_vsphere as vsphere
379
+
380
+ datacenter = vsphere.get_datacenter(name="dc-01")
381
+ datastore = vsphere.get_datastore(name="datastore1",
382
+ datacenter_id=datacenter.id)
383
+ cluster = vsphere.get_compute_cluster(name="cluster-01",
384
+ datacenter_id=datacenter.id)
385
+ host = vsphere.get_host(name="esxi-01.example.com",
386
+ datacenter_id=datacenter.id)
387
+ network = vsphere.get_network(name="network1",
388
+ datacenter_id=datacenter.id)
389
+ vm = vsphere.VirtualMachine("vm",
390
+ name="test",
391
+ resource_pool_id=cluster.resource_pool_id,
392
+ datastore_id=datastore.id,
393
+ num_cpus=2,
394
+ memory=2048,
395
+ guest_id="otherLinux64Guest",
396
+ network_interfaces=[{
397
+ "network_id": network.id,
398
+ }],
399
+ disks=[{
400
+ "label": "disk0",
401
+ "size": 20,
402
+ }])
403
+ cluster_vm_group = vsphere.ComputeClusterVmGroup("cluster_vm_group",
404
+ name="test-cluster-vm-group",
405
+ compute_cluster_id=cluster.id,
406
+ virtual_machine_ids=[vm.id])
407
+ cluster_host_group = vsphere.ComputeClusterHostGroup("cluster_host_group",
408
+ name="test-cluster-vm-group",
409
+ compute_cluster_id=cluster.id,
410
+ host_system_ids=[host.id])
411
+ cluster_vm_host_rule = vsphere.ComputeClusterVmHostRule("cluster_vm_host_rule",
412
+ compute_cluster_id=cluster.id,
413
+ name="test-cluster-vm-host-rule",
414
+ vm_group_name=cluster_vm_group.name,
415
+ affinity_host_group_name=cluster_host_group.name)
416
+ ```
417
+
418
+ ## Import
419
+
420
+ An existing rule can be imported into this resource by supplying
421
+
422
+ both the path to the cluster, and the name the rule. If the name or cluster is
423
+
424
+ not found, or if the rule is of a different type, an error will be returned. An
425
+
426
+ example is below:
427
+
428
+ [docs-import]: https://developer.hashicorp.com/terraform/cli/import
429
+
430
+ ```sh
431
+ $ pulumi import vsphere:index/computeClusterVmHostRule:ComputeClusterVmHostRule cluster_vm_host_rule \\
432
+ ```
433
+
434
+ '{"compute_cluster_path": "/dc1/host/cluster1", \\
435
+
436
+ "name": "pulumi-test-cluster-vm-host-rule"}'
437
+
335
438
  :param str resource_name: The name of the resource.
336
439
  :param pulumi.ResourceOptions opts: Options for the resource.
337
- :param pulumi.Input[str] affinity_host_group_name: When this field is used, the virtual
440
+ :param pulumi.Input[_builtins.str] affinity_host_group_name: When this field is used, the virtual
338
441
  machines defined in `vm_group_name` will be run on the
339
442
  hosts defined in this host group.
340
- :param pulumi.Input[str] anti_affinity_host_group_name: When this field is used, the
443
+ :param pulumi.Input[_builtins.str] anti_affinity_host_group_name: When this field is used, the
341
444
  virtual machines defined in `vm_group_name` will _not_ be
342
445
  run on the hosts defined in this host group.
343
- :param pulumi.Input[str] compute_cluster_id: The managed object reference
446
+ :param pulumi.Input[_builtins.str] compute_cluster_id: The managed object reference
344
447
  ID of the cluster to put the group in. Forces a new
345
448
  resource if changed.
346
- :param pulumi.Input[bool] enabled: Enable this rule in the cluster. Default: `true`.
347
- :param pulumi.Input[bool] mandatory: When this value is `true`, prevents any virtual
449
+ :param pulumi.Input[_builtins.bool] enabled: Enable this rule in the cluster. Default: `true`.
450
+ :param pulumi.Input[_builtins.bool] mandatory: When this value is `true`, prevents any virtual
348
451
  machine operations that may violate this rule. Default: `false`.
349
452
 
350
453
  > **NOTE:** One of `affinity_host_group_name` or
@@ -354,9 +457,9 @@ class ComputeClusterVmHostRule(pulumi.CustomResource):
354
457
  > **NOTE:** The namespace for rule names on this resource (defined by the
355
458
  `name` argument) is shared with all rules in the cluster - consider
356
459
  this when naming your rules.
357
- :param pulumi.Input[str] name: The name of the rule. This must be unique in the
460
+ :param pulumi.Input[_builtins.str] name: The name of the rule. This must be unique in the
358
461
  cluster.
359
- :param pulumi.Input[str] vm_group_name: The name of the virtual machine group to use
462
+ :param pulumi.Input[_builtins.str] vm_group_name: The name of the virtual machine group to use
360
463
  with this rule.
361
464
  """
362
465
  ...
@@ -366,7 +469,104 @@ class ComputeClusterVmHostRule(pulumi.CustomResource):
366
469
  args: ComputeClusterVmHostRuleArgs,
367
470
  opts: Optional[pulumi.ResourceOptions] = None):
368
471
  """
369
- Create a ComputeClusterVmHostRule resource with the given unique name, props, and options.
472
+ The `ComputeClusterVmHostRule` resource can be used to manage
473
+ VM-to-host rules in a cluster, either created by the
474
+ `ComputeCluster` resource or looked up
475
+ by the `ComputeCluster` data source.
476
+
477
+ This resource can create both _affinity rules_, where virtual machines run on
478
+ specified hosts, or _anti-affinity_ rules, where virtual machines run on hosts
479
+ outside of the ones specified in the rule. Virtual machines and hosts are
480
+ supplied via groups, which can be managed via the
481
+ `ComputeClusterVmGroup` and
482
+ `ComputeClusterHostGroup`
483
+ resources.
484
+
485
+ > **NOTE:** This resource requires vCenter and is not available on direct ESXi
486
+ connections.
487
+
488
+ ## Example Usage
489
+
490
+ The example below creates a virtual machine in a cluster using the
491
+ `VirtualMachine` resource in a cluster
492
+ looked up by the `ComputeCluster`
493
+ data source. It then creates a group with this virtual machine. It also creates
494
+ a host group off of the host looked up via the
495
+ `Host` data source. Finally, this
496
+ virtual machine is configured to run specifically on that host via a
497
+ `ComputeClusterVmHostRule` resource.
498
+
499
+ > Note how `vm_group_name` and
500
+ `affinity_host_group_name` are sourced off of the
501
+ `name` attributes from the
502
+ `ComputeClusterVmGroup` and
503
+ `ComputeClusterHostGroup`
504
+ resources. This is to ensure that the rule is not created before the groups
505
+ exist, which may not possibly happen in the event that the names came from a
506
+ "static" source such as a variable.
507
+
508
+ ```python
509
+ import pulumi
510
+ import pulumi_vsphere as vsphere
511
+
512
+ datacenter = vsphere.get_datacenter(name="dc-01")
513
+ datastore = vsphere.get_datastore(name="datastore1",
514
+ datacenter_id=datacenter.id)
515
+ cluster = vsphere.get_compute_cluster(name="cluster-01",
516
+ datacenter_id=datacenter.id)
517
+ host = vsphere.get_host(name="esxi-01.example.com",
518
+ datacenter_id=datacenter.id)
519
+ network = vsphere.get_network(name="network1",
520
+ datacenter_id=datacenter.id)
521
+ vm = vsphere.VirtualMachine("vm",
522
+ name="test",
523
+ resource_pool_id=cluster.resource_pool_id,
524
+ datastore_id=datastore.id,
525
+ num_cpus=2,
526
+ memory=2048,
527
+ guest_id="otherLinux64Guest",
528
+ network_interfaces=[{
529
+ "network_id": network.id,
530
+ }],
531
+ disks=[{
532
+ "label": "disk0",
533
+ "size": 20,
534
+ }])
535
+ cluster_vm_group = vsphere.ComputeClusterVmGroup("cluster_vm_group",
536
+ name="test-cluster-vm-group",
537
+ compute_cluster_id=cluster.id,
538
+ virtual_machine_ids=[vm.id])
539
+ cluster_host_group = vsphere.ComputeClusterHostGroup("cluster_host_group",
540
+ name="test-cluster-vm-group",
541
+ compute_cluster_id=cluster.id,
542
+ host_system_ids=[host.id])
543
+ cluster_vm_host_rule = vsphere.ComputeClusterVmHostRule("cluster_vm_host_rule",
544
+ compute_cluster_id=cluster.id,
545
+ name="test-cluster-vm-host-rule",
546
+ vm_group_name=cluster_vm_group.name,
547
+ affinity_host_group_name=cluster_host_group.name)
548
+ ```
549
+
550
+ ## Import
551
+
552
+ An existing rule can be imported into this resource by supplying
553
+
554
+ both the path to the cluster, and the name the rule. If the name or cluster is
555
+
556
+ not found, or if the rule is of a different type, an error will be returned. An
557
+
558
+ example is below:
559
+
560
+ [docs-import]: https://developer.hashicorp.com/terraform/cli/import
561
+
562
+ ```sh
563
+ $ pulumi import vsphere:index/computeClusterVmHostRule:ComputeClusterVmHostRule cluster_vm_host_rule \\
564
+ ```
565
+
566
+ '{"compute_cluster_path": "/dc1/host/cluster1", \\
567
+
568
+ "name": "pulumi-test-cluster-vm-host-rule"}'
569
+
370
570
  :param str resource_name: The name of the resource.
371
571
  :param ComputeClusterVmHostRuleArgs args: The arguments to use to populate this resource's properties.
372
572
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -382,13 +582,13 @@ class ComputeClusterVmHostRule(pulumi.CustomResource):
382
582
  def _internal_init(__self__,
383
583
  resource_name: str,
384
584
  opts: Optional[pulumi.ResourceOptions] = None,
385
- affinity_host_group_name: Optional[pulumi.Input[str]] = None,
386
- anti_affinity_host_group_name: Optional[pulumi.Input[str]] = None,
387
- compute_cluster_id: Optional[pulumi.Input[str]] = None,
388
- enabled: Optional[pulumi.Input[bool]] = None,
389
- mandatory: Optional[pulumi.Input[bool]] = None,
390
- name: Optional[pulumi.Input[str]] = None,
391
- vm_group_name: Optional[pulumi.Input[str]] = None,
585
+ affinity_host_group_name: Optional[pulumi.Input[_builtins.str]] = None,
586
+ anti_affinity_host_group_name: Optional[pulumi.Input[_builtins.str]] = None,
587
+ compute_cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
588
+ enabled: Optional[pulumi.Input[_builtins.bool]] = None,
589
+ mandatory: Optional[pulumi.Input[_builtins.bool]] = None,
590
+ name: Optional[pulumi.Input[_builtins.str]] = None,
591
+ vm_group_name: Optional[pulumi.Input[_builtins.str]] = None,
392
592
  __props__=None):
393
593
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
394
594
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -419,13 +619,13 @@ class ComputeClusterVmHostRule(pulumi.CustomResource):
419
619
  def get(resource_name: str,
420
620
  id: pulumi.Input[str],
421
621
  opts: Optional[pulumi.ResourceOptions] = None,
422
- affinity_host_group_name: Optional[pulumi.Input[str]] = None,
423
- anti_affinity_host_group_name: Optional[pulumi.Input[str]] = None,
424
- compute_cluster_id: Optional[pulumi.Input[str]] = None,
425
- enabled: Optional[pulumi.Input[bool]] = None,
426
- mandatory: Optional[pulumi.Input[bool]] = None,
427
- name: Optional[pulumi.Input[str]] = None,
428
- vm_group_name: Optional[pulumi.Input[str]] = None) -> 'ComputeClusterVmHostRule':
622
+ affinity_host_group_name: Optional[pulumi.Input[_builtins.str]] = None,
623
+ anti_affinity_host_group_name: Optional[pulumi.Input[_builtins.str]] = None,
624
+ compute_cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
625
+ enabled: Optional[pulumi.Input[_builtins.bool]] = None,
626
+ mandatory: Optional[pulumi.Input[_builtins.bool]] = None,
627
+ name: Optional[pulumi.Input[_builtins.str]] = None,
628
+ vm_group_name: Optional[pulumi.Input[_builtins.str]] = None) -> 'ComputeClusterVmHostRule':
429
629
  """
430
630
  Get an existing ComputeClusterVmHostRule resource's state with the given name, id, and optional extra
431
631
  properties used to qualify the lookup.
@@ -433,17 +633,17 @@ class ComputeClusterVmHostRule(pulumi.CustomResource):
433
633
  :param str resource_name: The unique name of the resulting resource.
434
634
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
435
635
  :param pulumi.ResourceOptions opts: Options for the resource.
436
- :param pulumi.Input[str] affinity_host_group_name: When this field is used, the virtual
636
+ :param pulumi.Input[_builtins.str] affinity_host_group_name: When this field is used, the virtual
437
637
  machines defined in `vm_group_name` will be run on the
438
638
  hosts defined in this host group.
439
- :param pulumi.Input[str] anti_affinity_host_group_name: When this field is used, the
639
+ :param pulumi.Input[_builtins.str] anti_affinity_host_group_name: When this field is used, the
440
640
  virtual machines defined in `vm_group_name` will _not_ be
441
641
  run on the hosts defined in this host group.
442
- :param pulumi.Input[str] compute_cluster_id: The managed object reference
642
+ :param pulumi.Input[_builtins.str] compute_cluster_id: The managed object reference
443
643
  ID of the cluster to put the group in. Forces a new
444
644
  resource if changed.
445
- :param pulumi.Input[bool] enabled: Enable this rule in the cluster. Default: `true`.
446
- :param pulumi.Input[bool] mandatory: When this value is `true`, prevents any virtual
645
+ :param pulumi.Input[_builtins.bool] enabled: Enable this rule in the cluster. Default: `true`.
646
+ :param pulumi.Input[_builtins.bool] mandatory: When this value is `true`, prevents any virtual
447
647
  machine operations that may violate this rule. Default: `false`.
448
648
 
449
649
  > **NOTE:** One of `affinity_host_group_name` or
@@ -453,9 +653,9 @@ class ComputeClusterVmHostRule(pulumi.CustomResource):
453
653
  > **NOTE:** The namespace for rule names on this resource (defined by the
454
654
  `name` argument) is shared with all rules in the cluster - consider
455
655
  this when naming your rules.
456
- :param pulumi.Input[str] name: The name of the rule. This must be unique in the
656
+ :param pulumi.Input[_builtins.str] name: The name of the rule. This must be unique in the
457
657
  cluster.
458
- :param pulumi.Input[str] vm_group_name: The name of the virtual machine group to use
658
+ :param pulumi.Input[_builtins.str] vm_group_name: The name of the virtual machine group to use
459
659
  with this rule.
460
660
  """
461
661
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
@@ -471,9 +671,9 @@ class ComputeClusterVmHostRule(pulumi.CustomResource):
471
671
  __props__.__dict__["vm_group_name"] = vm_group_name
472
672
  return ComputeClusterVmHostRule(resource_name, opts=opts, __props__=__props__)
473
673
 
474
- @property
674
+ @_builtins.property
475
675
  @pulumi.getter(name="affinityHostGroupName")
476
- def affinity_host_group_name(self) -> pulumi.Output[Optional[str]]:
676
+ def affinity_host_group_name(self) -> pulumi.Output[Optional[_builtins.str]]:
477
677
  """
478
678
  When this field is used, the virtual
479
679
  machines defined in `vm_group_name` will be run on the
@@ -481,9 +681,9 @@ class ComputeClusterVmHostRule(pulumi.CustomResource):
481
681
  """
482
682
  return pulumi.get(self, "affinity_host_group_name")
483
683
 
484
- @property
684
+ @_builtins.property
485
685
  @pulumi.getter(name="antiAffinityHostGroupName")
486
- def anti_affinity_host_group_name(self) -> pulumi.Output[Optional[str]]:
686
+ def anti_affinity_host_group_name(self) -> pulumi.Output[Optional[_builtins.str]]:
487
687
  """
488
688
  When this field is used, the
489
689
  virtual machines defined in `vm_group_name` will _not_ be
@@ -491,9 +691,9 @@ class ComputeClusterVmHostRule(pulumi.CustomResource):
491
691
  """
492
692
  return pulumi.get(self, "anti_affinity_host_group_name")
493
693
 
494
- @property
694
+ @_builtins.property
495
695
  @pulumi.getter(name="computeClusterId")
496
- def compute_cluster_id(self) -> pulumi.Output[str]:
696
+ def compute_cluster_id(self) -> pulumi.Output[_builtins.str]:
497
697
  """
498
698
  The managed object reference
499
699
  ID of the cluster to put the group in. Forces a new
@@ -501,17 +701,17 @@ class ComputeClusterVmHostRule(pulumi.CustomResource):
501
701
  """
502
702
  return pulumi.get(self, "compute_cluster_id")
503
703
 
504
- @property
704
+ @_builtins.property
505
705
  @pulumi.getter
506
- def enabled(self) -> pulumi.Output[Optional[bool]]:
706
+ def enabled(self) -> pulumi.Output[Optional[_builtins.bool]]:
507
707
  """
508
708
  Enable this rule in the cluster. Default: `true`.
509
709
  """
510
710
  return pulumi.get(self, "enabled")
511
711
 
512
- @property
712
+ @_builtins.property
513
713
  @pulumi.getter
514
- def mandatory(self) -> pulumi.Output[Optional[bool]]:
714
+ def mandatory(self) -> pulumi.Output[Optional[_builtins.bool]]:
515
715
  """
516
716
  When this value is `true`, prevents any virtual
517
717
  machine operations that may violate this rule. Default: `false`.
@@ -526,18 +726,18 @@ class ComputeClusterVmHostRule(pulumi.CustomResource):
526
726
  """
527
727
  return pulumi.get(self, "mandatory")
528
728
 
529
- @property
729
+ @_builtins.property
530
730
  @pulumi.getter
531
- def name(self) -> pulumi.Output[str]:
731
+ def name(self) -> pulumi.Output[_builtins.str]:
532
732
  """
533
733
  The name of the rule. This must be unique in the
534
734
  cluster.
535
735
  """
536
736
  return pulumi.get(self, "name")
537
737
 
538
- @property
738
+ @_builtins.property
539
739
  @pulumi.getter(name="vmGroupName")
540
- def vm_group_name(self) -> pulumi.Output[str]:
740
+ def vm_group_name(self) -> pulumi.Output[_builtins.str]:
541
741
  """
542
742
  The name of the virtual machine group to use
543
743
  with this rule.