pulumi-vsphere 4.10.0a1710245029__py3-none-any.whl → 4.10.2__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 (64) hide show
  1. pulumi_vsphere/__init__.py +28 -0
  2. pulumi_vsphere/_inputs.py +566 -236
  3. pulumi_vsphere/_utilities.py +35 -0
  4. pulumi_vsphere/compute_cluster.py +747 -1477
  5. pulumi_vsphere/compute_cluster_vm_affinity_rule.py +28 -20
  6. pulumi_vsphere/datacenter.py +33 -40
  7. pulumi_vsphere/datastore_cluster.py +154 -364
  8. pulumi_vsphere/distributed_port_group.py +126 -182
  9. pulumi_vsphere/distributed_virtual_switch.py +301 -819
  10. pulumi_vsphere/entity_permissions.py +56 -35
  11. pulumi_vsphere/file.py +16 -24
  12. pulumi_vsphere/folder.py +7 -28
  13. pulumi_vsphere/get_compute_cluster.py +0 -4
  14. pulumi_vsphere/get_compute_cluster_host_group.py +20 -20
  15. pulumi_vsphere/get_content_library.py +10 -10
  16. pulumi_vsphere/get_content_library_item.py +12 -8
  17. pulumi_vsphere/get_custom_attribute.py +0 -4
  18. pulumi_vsphere/get_datacenter.py +0 -4
  19. pulumi_vsphere/get_datastore.py +9 -13
  20. pulumi_vsphere/get_datastore_cluster.py +0 -4
  21. pulumi_vsphere/get_datastore_stats.py +38 -44
  22. pulumi_vsphere/get_distributed_virtual_switch.py +2 -4
  23. pulumi_vsphere/get_dynamic.py +18 -20
  24. pulumi_vsphere/get_folder.py +10 -6
  25. pulumi_vsphere/get_guest_os_customization.py +8 -47
  26. pulumi_vsphere/get_host.py +0 -4
  27. pulumi_vsphere/get_host_base_images.py +97 -0
  28. pulumi_vsphere/get_host_pci_device.py +8 -14
  29. pulumi_vsphere/get_host_thumbprint.py +12 -16
  30. pulumi_vsphere/get_host_vgpu_profile.py +4 -10
  31. pulumi_vsphere/get_license.py +2 -5
  32. pulumi_vsphere/get_network.py +14 -18
  33. pulumi_vsphere/get_policy.py +0 -4
  34. pulumi_vsphere/get_resource_pool.py +14 -18
  35. pulumi_vsphere/get_role.py +4 -8
  36. pulumi_vsphere/get_tag.py +0 -4
  37. pulumi_vsphere/get_tag_category.py +0 -4
  38. pulumi_vsphere/get_vapp_container.py +0 -4
  39. pulumi_vsphere/get_virtual_machine.py +58 -41
  40. pulumi_vsphere/get_vmfs_disks.py +0 -4
  41. pulumi_vsphere/guest_os_customization.py +50 -0
  42. pulumi_vsphere/ha_vm_override.py +189 -378
  43. pulumi_vsphere/host.py +0 -20
  44. pulumi_vsphere/host_port_group.py +12 -24
  45. pulumi_vsphere/host_virtual_switch.py +140 -287
  46. pulumi_vsphere/license.py +0 -32
  47. pulumi_vsphere/nas_datastore.py +7 -7
  48. pulumi_vsphere/offline_software_depot.py +180 -0
  49. pulumi_vsphere/outputs.py +591 -270
  50. pulumi_vsphere/provider.py +2 -6
  51. pulumi_vsphere/pulumi-plugin.json +2 -1
  52. pulumi_vsphere/resource_pool.py +50 -24
  53. pulumi_vsphere/supervisor.py +962 -0
  54. pulumi_vsphere/virtual_disk.py +14 -20
  55. pulumi_vsphere/virtual_machine.py +580 -809
  56. pulumi_vsphere/virtual_machine_class.py +442 -0
  57. pulumi_vsphere/virtual_machine_snapshot.py +8 -12
  58. pulumi_vsphere/vm_storage_policy.py +74 -86
  59. pulumi_vsphere/vnic.py +61 -77
  60. {pulumi_vsphere-4.10.0a1710245029.dist-info → pulumi_vsphere-4.10.2.dist-info}/METADATA +1 -1
  61. pulumi_vsphere-4.10.2.dist-info/RECORD +86 -0
  62. {pulumi_vsphere-4.10.0a1710245029.dist-info → pulumi_vsphere-4.10.2.dist-info}/WHEEL +1 -1
  63. pulumi_vsphere-4.10.0a1710245029.dist-info/RECORD +0 -82
  64. {pulumi_vsphere-4.10.0a1710245029.dist-info → pulumi_vsphere-4.10.2.dist-info}/top_level.txt +0 -0
@@ -249,8 +249,6 @@ class ComputeClusterVmAffinityRule(pulumi.CustomResource):
249
249
  > **NOTE:** This resource requires vCenter Server and is not available on
250
250
  direct ESXi host connections.
251
251
 
252
- > **NOTE:** vSphere DRS requires a vSphere Enterprise Plus license.
253
-
254
252
  ## Example Usage
255
253
 
256
254
  The following example creates two virtual machines in a cluster using the
@@ -260,7 +258,6 @@ class ComputeClusterVmAffinityRule(pulumi.CustomResource):
260
258
  then creates an affinity rule for these two virtual machines, ensuring they
261
259
  will run on the same host whenever possible.
262
260
 
263
- <!--Start PulumiCodeChooser -->
264
261
  ```python
265
262
  import pulumi
266
263
  import pulumi_vsphere as vsphere
@@ -275,6 +272,7 @@ class ComputeClusterVmAffinityRule(pulumi.CustomResource):
275
272
  vm = []
276
273
  for range in [{"value": i} for i in range(0, 2)]:
277
274
  vm.append(vsphere.VirtualMachine(f"vm-{range['value']}",
275
+ name=f"foo-{range['value']}",
278
276
  resource_pool_id=cluster.resource_pool_id,
279
277
  datastore_id=datastore.id,
280
278
  num_cpus=1,
@@ -287,17 +285,16 @@ class ComputeClusterVmAffinityRule(pulumi.CustomResource):
287
285
  label="disk0",
288
286
  size=20,
289
287
  )]))
290
- vm_affinity_rule = vsphere.ComputeClusterVmAffinityRule("vmAffinityRule",
288
+ vm_affinity_rule = vsphere.ComputeClusterVmAffinityRule("vm_affinity_rule",
289
+ name="vm-affinity-rule",
291
290
  compute_cluster_id=cluster.id,
292
291
  virtual_machine_ids=[v.id for k, v in vm])
293
292
  ```
294
- <!--End PulumiCodeChooser -->
295
293
 
296
294
  The following example creates an affinity rule for a set of virtual machines
297
295
  in the cluster by looking up the virtual machine UUIDs from the
298
296
  `VirtualMachine` data source.
299
297
 
300
- <!--Start PulumiCodeChooser -->
301
298
  ```python
302
299
  import pulumi
303
300
  import pulumi_vsphere as vsphere
@@ -309,14 +306,21 @@ class ComputeClusterVmAffinityRule(pulumi.CustomResource):
309
306
  datacenter = vsphere.get_datacenter(name="dc-01")
310
307
  cluster = vsphere.get_compute_cluster(name="cluster-01",
311
308
  datacenter_id=datacenter.id)
312
- vms_virtual_machine = [vsphere.get_virtual_machine(name=vms[__index],
309
+ vms_get_virtual_machine = [vsphere.get_virtual_machine(name=vms[__index],
313
310
  datacenter_id=datacenter.id) for __index in range(len(vms))]
314
- vm_affinity_rule = vsphere.ComputeClusterVmAffinityRule("vmAffinityRule",
311
+ vm_affinity_rule = vsphere.ComputeClusterVmAffinityRule("vm_affinity_rule",
312
+ name="vm-affinity-rule",
315
313
  enabled=True,
316
314
  compute_cluster_id=cluster.id,
317
- virtual_machine_ids=[__item.id for __item in vms_virtual_machine])
315
+ virtual_machine_ids=[__item.id for __item in vms_get_virtual_machine])
318
316
  ```
319
- <!--End PulumiCodeChooser -->
317
+
318
+ ## Importing
319
+
320
+ An existing rule can be imported into this resource by supplying
321
+ both the path to the cluster, and the name the rule. If the name or cluster is
322
+ not found, or if the rule is of a different type, an error will be returned. An
323
+ example is below:
320
324
 
321
325
  :param str resource_name: The name of the resource.
322
326
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -361,8 +365,6 @@ class ComputeClusterVmAffinityRule(pulumi.CustomResource):
361
365
  > **NOTE:** This resource requires vCenter Server and is not available on
362
366
  direct ESXi host connections.
363
367
 
364
- > **NOTE:** vSphere DRS requires a vSphere Enterprise Plus license.
365
-
366
368
  ## Example Usage
367
369
 
368
370
  The following example creates two virtual machines in a cluster using the
@@ -372,7 +374,6 @@ class ComputeClusterVmAffinityRule(pulumi.CustomResource):
372
374
  then creates an affinity rule for these two virtual machines, ensuring they
373
375
  will run on the same host whenever possible.
374
376
 
375
- <!--Start PulumiCodeChooser -->
376
377
  ```python
377
378
  import pulumi
378
379
  import pulumi_vsphere as vsphere
@@ -387,6 +388,7 @@ class ComputeClusterVmAffinityRule(pulumi.CustomResource):
387
388
  vm = []
388
389
  for range in [{"value": i} for i in range(0, 2)]:
389
390
  vm.append(vsphere.VirtualMachine(f"vm-{range['value']}",
391
+ name=f"foo-{range['value']}",
390
392
  resource_pool_id=cluster.resource_pool_id,
391
393
  datastore_id=datastore.id,
392
394
  num_cpus=1,
@@ -399,17 +401,16 @@ class ComputeClusterVmAffinityRule(pulumi.CustomResource):
399
401
  label="disk0",
400
402
  size=20,
401
403
  )]))
402
- vm_affinity_rule = vsphere.ComputeClusterVmAffinityRule("vmAffinityRule",
404
+ vm_affinity_rule = vsphere.ComputeClusterVmAffinityRule("vm_affinity_rule",
405
+ name="vm-affinity-rule",
403
406
  compute_cluster_id=cluster.id,
404
407
  virtual_machine_ids=[v.id for k, v in vm])
405
408
  ```
406
- <!--End PulumiCodeChooser -->
407
409
 
408
410
  The following example creates an affinity rule for a set of virtual machines
409
411
  in the cluster by looking up the virtual machine UUIDs from the
410
412
  `VirtualMachine` data source.
411
413
 
412
- <!--Start PulumiCodeChooser -->
413
414
  ```python
414
415
  import pulumi
415
416
  import pulumi_vsphere as vsphere
@@ -421,14 +422,21 @@ class ComputeClusterVmAffinityRule(pulumi.CustomResource):
421
422
  datacenter = vsphere.get_datacenter(name="dc-01")
422
423
  cluster = vsphere.get_compute_cluster(name="cluster-01",
423
424
  datacenter_id=datacenter.id)
424
- vms_virtual_machine = [vsphere.get_virtual_machine(name=vms[__index],
425
+ vms_get_virtual_machine = [vsphere.get_virtual_machine(name=vms[__index],
425
426
  datacenter_id=datacenter.id) for __index in range(len(vms))]
426
- vm_affinity_rule = vsphere.ComputeClusterVmAffinityRule("vmAffinityRule",
427
+ vm_affinity_rule = vsphere.ComputeClusterVmAffinityRule("vm_affinity_rule",
428
+ name="vm-affinity-rule",
427
429
  enabled=True,
428
430
  compute_cluster_id=cluster.id,
429
- virtual_machine_ids=[__item.id for __item in vms_virtual_machine])
431
+ virtual_machine_ids=[__item.id for __item in vms_get_virtual_machine])
430
432
  ```
431
- <!--End PulumiCodeChooser -->
433
+
434
+ ## Importing
435
+
436
+ An existing rule can be imported into this resource by supplying
437
+ both the path to the cluster, and the name the rule. If the name or cluster is
438
+ not found, or if the rule is of a different type, an error will be returned. An
439
+ example is below:
432
440
 
433
441
  :param str resource_name: The name of the resource.
434
442
  :param ComputeClusterVmAffinityRuleArgs args: The arguments to use to populate this resource's properties.
@@ -20,7 +20,7 @@ class DatacenterArgs:
20
20
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
21
21
  """
22
22
  The set of arguments for constructing a Datacenter resource.
23
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] custom_attributes: Map of custom attribute ids to value
23
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] custom_attributes: Map of custom attribute ids to value
24
24
  strings to set for datacenter resource. See
25
25
  [here][docs-setting-custom-attributes] for a reference on how to set values
26
26
  for custom attributes.
@@ -34,9 +34,6 @@ class DatacenterArgs:
34
34
  :param pulumi.Input[str] name: The name of the datacenter. This name needs to be unique
35
35
  within the folder. Forces a new resource if changed.
36
36
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The IDs of any tags to attach to this resource.
37
-
38
- > **NOTE:** Tagging support is unsupported on direct ESXi connections and
39
- requires vCenter 6.0 or higher.
40
37
  """
41
38
  if custom_attributes is not None:
42
39
  pulumi.set(__self__, "custom_attributes", custom_attributes)
@@ -51,7 +48,7 @@ class DatacenterArgs:
51
48
  @pulumi.getter(name="customAttributes")
52
49
  def custom_attributes(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
53
50
  """
54
- Map of custom attribute ids to value
51
+ Map of custom attribute ids to value
55
52
  strings to set for datacenter resource. See
56
53
  [here][docs-setting-custom-attributes] for a reference on how to set values
57
54
  for custom attributes.
@@ -98,9 +95,6 @@ class DatacenterArgs:
98
95
  def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
99
96
  """
100
97
  The IDs of any tags to attach to this resource.
101
-
102
- > **NOTE:** Tagging support is unsupported on direct ESXi connections and
103
- requires vCenter 6.0 or higher.
104
98
  """
105
99
  return pulumi.get(self, "tags")
106
100
 
@@ -119,7 +113,7 @@ class _DatacenterState:
119
113
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
120
114
  """
121
115
  Input properties used for looking up and filtering Datacenter resources.
122
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] custom_attributes: Map of custom attribute ids to value
116
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] custom_attributes: Map of custom attribute ids to value
123
117
  strings to set for datacenter resource. See
124
118
  [here][docs-setting-custom-attributes] for a reference on how to set values
125
119
  for custom attributes.
@@ -134,9 +128,6 @@ class _DatacenterState:
134
128
  :param pulumi.Input[str] name: The name of the datacenter. This name needs to be unique
135
129
  within the folder. Forces a new resource if changed.
136
130
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The IDs of any tags to attach to this resource.
137
-
138
- > **NOTE:** Tagging support is unsupported on direct ESXi connections and
139
- requires vCenter 6.0 or higher.
140
131
  """
141
132
  if custom_attributes is not None:
142
133
  pulumi.set(__self__, "custom_attributes", custom_attributes)
@@ -153,7 +144,7 @@ class _DatacenterState:
153
144
  @pulumi.getter(name="customAttributes")
154
145
  def custom_attributes(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
155
146
  """
156
- Map of custom attribute ids to value
147
+ Map of custom attribute ids to value
157
148
  strings to set for datacenter resource. See
158
149
  [here][docs-setting-custom-attributes] for a reference on how to set values
159
150
  for custom attributes.
@@ -212,9 +203,6 @@ class _DatacenterState:
212
203
  def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
213
204
  """
214
205
  The IDs of any tags to attach to this resource.
215
-
216
- > **NOTE:** Tagging support is unsupported on direct ESXi connections and
217
- requires vCenter 6.0 or higher.
218
206
  """
219
207
  return pulumi.get(self, "tags")
220
208
 
@@ -241,29 +229,36 @@ class Datacenter(pulumi.CustomResource):
241
229
 
242
230
  ### Create datacenter on the root folder
243
231
 
244
- <!--Start PulumiCodeChooser -->
245
232
  ```python
246
233
  import pulumi
247
234
  import pulumi_vsphere as vsphere
248
235
 
249
- prod_datacenter = vsphere.Datacenter("prodDatacenter")
236
+ prod_datacenter = vsphere.Datacenter("prod_datacenter", name="my_prod_datacenter")
250
237
  ```
251
- <!--End PulumiCodeChooser -->
252
238
 
253
239
  ### Create datacenter on a subfolder
254
240
 
255
- <!--Start PulumiCodeChooser -->
256
241
  ```python
257
242
  import pulumi
258
243
  import pulumi_vsphere as vsphere
259
244
 
260
- research_datacenter = vsphere.Datacenter("researchDatacenter", folder="/research/")
245
+ research_datacenter = vsphere.Datacenter("research_datacenter",
246
+ name="my_research_datacenter",
247
+ folder="/research/")
261
248
  ```
262
- <!--End PulumiCodeChooser -->
249
+
250
+ ## Importing
251
+
252
+ An existing datacenter can be [imported][docs-import] into this resource
253
+ via supplying the full path to the datacenter. An example is below:
254
+
255
+ [docs-import]: /docs/import/index.html
256
+
257
+ The above would import the datacenter named `dc1`.
263
258
 
264
259
  :param str resource_name: The name of the resource.
265
260
  :param pulumi.ResourceOptions opts: Options for the resource.
266
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] custom_attributes: Map of custom attribute ids to value
261
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] custom_attributes: Map of custom attribute ids to value
267
262
  strings to set for datacenter resource. See
268
263
  [here][docs-setting-custom-attributes] for a reference on how to set values
269
264
  for custom attributes.
@@ -277,9 +272,6 @@ class Datacenter(pulumi.CustomResource):
277
272
  :param pulumi.Input[str] name: The name of the datacenter. This name needs to be unique
278
273
  within the folder. Forces a new resource if changed.
279
274
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The IDs of any tags to attach to this resource.
280
-
281
- > **NOTE:** Tagging support is unsupported on direct ESXi connections and
282
- requires vCenter 6.0 or higher.
283
275
  """
284
276
  ...
285
277
  @overload
@@ -295,25 +287,32 @@ class Datacenter(pulumi.CustomResource):
295
287
 
296
288
  ### Create datacenter on the root folder
297
289
 
298
- <!--Start PulumiCodeChooser -->
299
290
  ```python
300
291
  import pulumi
301
292
  import pulumi_vsphere as vsphere
302
293
 
303
- prod_datacenter = vsphere.Datacenter("prodDatacenter")
294
+ prod_datacenter = vsphere.Datacenter("prod_datacenter", name="my_prod_datacenter")
304
295
  ```
305
- <!--End PulumiCodeChooser -->
306
296
 
307
297
  ### Create datacenter on a subfolder
308
298
 
309
- <!--Start PulumiCodeChooser -->
310
299
  ```python
311
300
  import pulumi
312
301
  import pulumi_vsphere as vsphere
313
302
 
314
- research_datacenter = vsphere.Datacenter("researchDatacenter", folder="/research/")
303
+ research_datacenter = vsphere.Datacenter("research_datacenter",
304
+ name="my_research_datacenter",
305
+ folder="/research/")
315
306
  ```
316
- <!--End PulumiCodeChooser -->
307
+
308
+ ## Importing
309
+
310
+ An existing datacenter can be [imported][docs-import] into this resource
311
+ via supplying the full path to the datacenter. An example is below:
312
+
313
+ [docs-import]: /docs/import/index.html
314
+
315
+ The above would import the datacenter named `dc1`.
317
316
 
318
317
  :param str resource_name: The name of the resource.
319
318
  :param DatacenterArgs args: The arguments to use to populate this resource's properties.
@@ -370,7 +369,7 @@ class Datacenter(pulumi.CustomResource):
370
369
  :param str resource_name: The unique name of the resulting resource.
371
370
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
372
371
  :param pulumi.ResourceOptions opts: Options for the resource.
373
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] custom_attributes: Map of custom attribute ids to value
372
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] custom_attributes: Map of custom attribute ids to value
374
373
  strings to set for datacenter resource. See
375
374
  [here][docs-setting-custom-attributes] for a reference on how to set values
376
375
  for custom attributes.
@@ -385,9 +384,6 @@ class Datacenter(pulumi.CustomResource):
385
384
  :param pulumi.Input[str] name: The name of the datacenter. This name needs to be unique
386
385
  within the folder. Forces a new resource if changed.
387
386
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The IDs of any tags to attach to this resource.
388
-
389
- > **NOTE:** Tagging support is unsupported on direct ESXi connections and
390
- requires vCenter 6.0 or higher.
391
387
  """
392
388
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
393
389
 
@@ -404,7 +400,7 @@ class Datacenter(pulumi.CustomResource):
404
400
  @pulumi.getter(name="customAttributes")
405
401
  def custom_attributes(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
406
402
  """
407
- Map of custom attribute ids to value
403
+ Map of custom attribute ids to value
408
404
  strings to set for datacenter resource. See
409
405
  [here][docs-setting-custom-attributes] for a reference on how to set values
410
406
  for custom attributes.
@@ -447,9 +443,6 @@ class Datacenter(pulumi.CustomResource):
447
443
  def tags(self) -> pulumi.Output[Optional[Sequence[str]]]:
448
444
  """
449
445
  The IDs of any tags to attach to this resource.
450
-
451
- > **NOTE:** Tagging support is unsupported on direct ESXi connections and
452
- requires vCenter 6.0 or higher.
453
446
  """
454
447
  return pulumi.get(self, "tags")
455
448