pulumi-vsphere 4.10.0a1710160860__py3-none-any.whl → 4.13.0a1736836157__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 (85) hide show
  1. pulumi_vsphere/__init__.py +30 -0
  2. pulumi_vsphere/_inputs.py +1816 -277
  3. pulumi_vsphere/_utilities.py +41 -5
  4. pulumi_vsphere/compute_cluster.py +937 -1488
  5. pulumi_vsphere/compute_cluster_host_group.py +67 -2
  6. pulumi_vsphere/compute_cluster_vm_affinity_rule.py +69 -34
  7. pulumi_vsphere/compute_cluster_vm_anti_affinity_rule.py +41 -2
  8. pulumi_vsphere/compute_cluster_vm_dependency_rule.py +205 -2
  9. pulumi_vsphere/compute_cluster_vm_group.py +198 -2
  10. pulumi_vsphere/compute_cluster_vm_host_rule.py +73 -2
  11. pulumi_vsphere/config/__init__.pyi +5 -0
  12. pulumi_vsphere/config/vars.py +5 -0
  13. pulumi_vsphere/content_library.py +113 -12
  14. pulumi_vsphere/content_library_item.py +143 -2
  15. pulumi_vsphere/custom_attribute.py +77 -2
  16. pulumi_vsphere/datacenter.py +48 -40
  17. pulumi_vsphere/datastore_cluster.py +217 -366
  18. pulumi_vsphere/datastore_cluster_vm_anti_affinity_rule.py +159 -2
  19. pulumi_vsphere/distributed_port_group.py +416 -189
  20. pulumi_vsphere/distributed_virtual_switch.py +571 -830
  21. pulumi_vsphere/dpm_host_override.py +63 -2
  22. pulumi_vsphere/drs_vm_override.py +67 -2
  23. pulumi_vsphere/entity_permissions.py +64 -38
  24. pulumi_vsphere/file.py +21 -24
  25. pulumi_vsphere/folder.py +148 -30
  26. pulumi_vsphere/get_compute_cluster.py +16 -9
  27. pulumi_vsphere/get_compute_cluster_host_group.py +36 -25
  28. pulumi_vsphere/get_content_library.py +23 -15
  29. pulumi_vsphere/get_content_library_item.py +29 -13
  30. pulumi_vsphere/get_custom_attribute.py +14 -9
  31. pulumi_vsphere/get_datacenter.py +30 -12
  32. pulumi_vsphere/get_datastore.py +44 -12
  33. pulumi_vsphere/get_datastore_cluster.py +31 -10
  34. pulumi_vsphere/get_datastore_stats.py +208 -0
  35. pulumi_vsphere/get_distributed_virtual_switch.py +18 -9
  36. pulumi_vsphere/get_dynamic.py +35 -25
  37. pulumi_vsphere/get_folder.py +23 -11
  38. pulumi_vsphere/get_guest_os_customization.py +26 -52
  39. pulumi_vsphere/get_host.py +16 -9
  40. pulumi_vsphere/get_host_base_images.py +104 -0
  41. pulumi_vsphere/get_host_pci_device.py +28 -19
  42. pulumi_vsphere/get_host_thumbprint.py +41 -25
  43. pulumi_vsphere/get_host_vgpu_profile.py +195 -0
  44. pulumi_vsphere/get_license.py +20 -10
  45. pulumi_vsphere/get_network.py +80 -24
  46. pulumi_vsphere/get_ovf_vm_template.py +56 -5
  47. pulumi_vsphere/get_policy.py +13 -9
  48. pulumi_vsphere/get_resource_pool.py +29 -23
  49. pulumi_vsphere/get_role.py +23 -13
  50. pulumi_vsphere/get_tag.py +16 -9
  51. pulumi_vsphere/get_tag_category.py +16 -9
  52. pulumi_vsphere/get_vapp_container.py +15 -9
  53. pulumi_vsphere/get_virtual_machine.py +233 -48
  54. pulumi_vsphere/get_vmfs_disks.py +18 -9
  55. pulumi_vsphere/guest_os_customization.py +60 -5
  56. pulumi_vsphere/ha_vm_override.py +352 -380
  57. pulumi_vsphere/host.py +244 -64
  58. pulumi_vsphere/host_port_group.py +27 -24
  59. pulumi_vsphere/host_virtual_switch.py +209 -289
  60. pulumi_vsphere/license.py +5 -32
  61. pulumi_vsphere/nas_datastore.py +74 -9
  62. pulumi_vsphere/offline_software_depot.py +185 -0
  63. pulumi_vsphere/outputs.py +774 -256
  64. pulumi_vsphere/provider.py +7 -6
  65. pulumi_vsphere/pulumi-plugin.json +2 -1
  66. pulumi_vsphere/resource_pool.py +168 -411
  67. pulumi_vsphere/role.py +33 -2
  68. pulumi_vsphere/storage_drs_vm_override.py +133 -2
  69. pulumi_vsphere/supervisor.py +967 -0
  70. pulumi_vsphere/tag.py +159 -2
  71. pulumi_vsphere/tag_category.py +83 -2
  72. pulumi_vsphere/vapp_container.py +163 -2
  73. pulumi_vsphere/vapp_entity.py +147 -2
  74. pulumi_vsphere/virtual_disk.py +123 -36
  75. pulumi_vsphere/virtual_machine.py +759 -829
  76. pulumi_vsphere/virtual_machine_class.py +447 -0
  77. pulumi_vsphere/virtual_machine_snapshot.py +13 -12
  78. pulumi_vsphere/vm_storage_policy.py +120 -127
  79. pulumi_vsphere/vmfs_datastore.py +271 -2
  80. pulumi_vsphere/vnic.py +104 -105
  81. {pulumi_vsphere-4.10.0a1710160860.dist-info → pulumi_vsphere-4.13.0a1736836157.dist-info}/METADATA +7 -6
  82. pulumi_vsphere-4.13.0a1736836157.dist-info/RECORD +86 -0
  83. {pulumi_vsphere-4.10.0a1710160860.dist-info → pulumi_vsphere-4.13.0a1736836157.dist-info}/WHEEL +1 -1
  84. pulumi_vsphere-4.10.0a1710160860.dist-info/RECORD +0 -80
  85. {pulumi_vsphere-4.10.0a1710160860.dist-info → pulumi_vsphere-4.13.0a1736836157.dist-info}/top_level.txt +0 -0
pulumi_vsphere/outputs.py CHANGED
@@ -4,13 +4,20 @@
4
4
 
5
5
  import copy
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
  from . import outputs
12
17
 
13
18
  __all__ = [
19
+ 'ComputeClusterHostImage',
20
+ 'ComputeClusterHostImageComponent',
14
21
  'ComputeClusterVsanDiskGroup',
15
22
  'ComputeClusterVsanFaultDomain',
16
23
  'ComputeClusterVsanFaultDomainFaultDomain',
@@ -27,6 +34,15 @@ __all__ = [
27
34
  'GuestOsCustomizationSpecNetworkInterface',
28
35
  'GuestOsCustomizationSpecWindowsOptions',
29
36
  'HostPortGroupPort',
37
+ 'HostService',
38
+ 'HostServiceNtpd',
39
+ 'OfflineSoftwareDepotComponent',
40
+ 'SupervisorEgressCidr',
41
+ 'SupervisorIngressCidr',
42
+ 'SupervisorManagementNetwork',
43
+ 'SupervisorNamespace',
44
+ 'SupervisorPodCidr',
45
+ 'SupervisorServiceCidr',
30
46
  'VirtualMachineCdrom',
31
47
  'VirtualMachineClone',
32
48
  'VirtualMachineCloneCustomizationSpec',
@@ -38,6 +54,7 @@ __all__ = [
38
54
  'VirtualMachineNetworkInterface',
39
55
  'VirtualMachineOvfDeploy',
40
56
  'VirtualMachineVapp',
57
+ 'VirtualMachineVtpm',
41
58
  'VmStoragePolicyTagRule',
42
59
  'VnicIpv4',
43
60
  'VnicIpv6',
@@ -45,19 +62,100 @@ __all__ = [
45
62
  'GetGuestOsCustomizationSpecLinuxOptionResult',
46
63
  'GetGuestOsCustomizationSpecNetworkInterfaceResult',
47
64
  'GetGuestOsCustomizationSpecWindowsOptionResult',
65
+ 'GetHostVgpuProfileVgpuProfileResult',
66
+ 'GetNetworkFilterResult',
48
67
  'GetVirtualMachineDiskResult',
49
68
  'GetVirtualMachineNetworkInterfaceResult',
50
69
  'GetVirtualMachineVappResult',
51
70
  ]
52
71
 
72
+ @pulumi.output_type
73
+ class ComputeClusterHostImage(dict):
74
+ @staticmethod
75
+ def __key_warning(key: str):
76
+ suggest = None
77
+ if key == "esxVersion":
78
+ suggest = "esx_version"
79
+
80
+ if suggest:
81
+ pulumi.log.warn(f"Key '{key}' not found in ComputeClusterHostImage. Access the value via the '{suggest}' property getter instead.")
82
+
83
+ def __getitem__(self, key: str) -> Any:
84
+ ComputeClusterHostImage.__key_warning(key)
85
+ return super().__getitem__(key)
86
+
87
+ def get(self, key: str, default = None) -> Any:
88
+ ComputeClusterHostImage.__key_warning(key)
89
+ return super().get(key, default)
90
+
91
+ def __init__(__self__, *,
92
+ components: Optional[Sequence['outputs.ComputeClusterHostImageComponent']] = None,
93
+ esx_version: Optional[str] = None):
94
+ """
95
+ :param Sequence['ComputeClusterHostImageComponentArgs'] components: List of custom components.
96
+ :param str esx_version: The ESXi version which the image is based on.
97
+ """
98
+ if components is not None:
99
+ pulumi.set(__self__, "components", components)
100
+ if esx_version is not None:
101
+ pulumi.set(__self__, "esx_version", esx_version)
102
+
103
+ @property
104
+ @pulumi.getter
105
+ def components(self) -> Optional[Sequence['outputs.ComputeClusterHostImageComponent']]:
106
+ """
107
+ List of custom components.
108
+ """
109
+ return pulumi.get(self, "components")
110
+
111
+ @property
112
+ @pulumi.getter(name="esxVersion")
113
+ def esx_version(self) -> Optional[str]:
114
+ """
115
+ The ESXi version which the image is based on.
116
+ """
117
+ return pulumi.get(self, "esx_version")
118
+
119
+
120
+ @pulumi.output_type
121
+ class ComputeClusterHostImageComponent(dict):
122
+ def __init__(__self__, *,
123
+ key: Optional[str] = None,
124
+ version: Optional[str] = None):
125
+ """
126
+ :param str key: The identifier for the component.
127
+ :param str version: The version to use.
128
+ """
129
+ if key is not None:
130
+ pulumi.set(__self__, "key", key)
131
+ if version is not None:
132
+ pulumi.set(__self__, "version", version)
133
+
134
+ @property
135
+ @pulumi.getter
136
+ def key(self) -> Optional[str]:
137
+ """
138
+ The identifier for the component.
139
+ """
140
+ return pulumi.get(self, "key")
141
+
142
+ @property
143
+ @pulumi.getter
144
+ def version(self) -> Optional[str]:
145
+ """
146
+ The version to use.
147
+ """
148
+ return pulumi.get(self, "version")
149
+
150
+
53
151
  @pulumi.output_type
54
152
  class ComputeClusterVsanDiskGroup(dict):
55
153
  def __init__(__self__, *,
56
154
  cache: Optional[str] = None,
57
155
  storages: Optional[Sequence[str]] = None):
58
156
  """
59
- :param str cache: The canonical name of the disk to use for vSAN cache.
60
- :param Sequence[str] storages: An array of disk canonical names for vSAN storage.
157
+ :param str cache: Cache disk.
158
+ :param Sequence[str] storages: List of storage disks.
61
159
  """
62
160
  if cache is not None:
63
161
  pulumi.set(__self__, "cache", cache)
@@ -68,7 +166,7 @@ class ComputeClusterVsanDiskGroup(dict):
68
166
  @pulumi.getter
69
167
  def cache(self) -> Optional[str]:
70
168
  """
71
- The canonical name of the disk to use for vSAN cache.
169
+ Cache disk.
72
170
  """
73
171
  return pulumi.get(self, "cache")
74
172
 
@@ -76,7 +174,7 @@ class ComputeClusterVsanDiskGroup(dict):
76
174
  @pulumi.getter
77
175
  def storages(self) -> Optional[Sequence[str]]:
78
176
  """
79
- An array of disk canonical names for vSAN storage.
177
+ List of storage disks.
80
178
  """
81
179
  return pulumi.get(self, "storages")
82
180
 
@@ -200,56 +298,8 @@ class ComputeClusterVsanStretchedCluster(dict):
200
298
  :param Sequence[str] preferred_fault_domain_host_ids: The managed object IDs of the hosts to put in the first fault domain.
201
299
  :param Sequence[str] secondary_fault_domain_host_ids: The managed object IDs of the hosts to put in the second fault domain.
202
300
  :param str witness_node: The managed object IDs of the host selected as witness node when enable stretched cluster.
203
- :param str preferred_fault_domain_name: The name of first fault domain. Default is `Preferred`.
204
- :param str secondary_fault_domain_name: The name of second fault domain. Default is `Secondary`.
205
-
206
- > **NOTE:** You must disable vSphere HA before you enable vSAN on the cluster.
207
- You can enable or re-enable vSphere HA after vSAN is configured.
208
-
209
- <!--Start PulumiCodeChooser -->
210
- ```python
211
- import pulumi
212
- import pulumi_vsphere as vsphere
213
-
214
- compute_cluster = vsphere.ComputeCluster("computeCluster",
215
- datacenter_id=data["vsphere_datacenter"]["datacenter"]["id"],
216
- host_system_ids=[[__item["id"] for __item in data["vsphere_host"]["host"]]],
217
- drs_enabled=True,
218
- drs_automation_level="fullyAutomated",
219
- ha_enabled=False,
220
- vsan_enabled=True,
221
- vsan_esa_enabled=True,
222
- vsan_dedup_enabled=True,
223
- vsan_compression_enabled=True,
224
- vsan_performance_enabled=True,
225
- vsan_verbose_mode_enabled=True,
226
- vsan_network_diagnostic_mode_enabled=True,
227
- vsan_unmap_enabled=True,
228
- vsan_dit_encryption_enabled=True,
229
- vsan_dit_rekey_interval=1800,
230
- vsan_disk_groups=[vsphere.ComputeClusterVsanDiskGroupArgs(
231
- cache=data["vsphere_vmfs_disks"]["cache_disks"],
232
- storages=data["vsphere_vmfs_disks"]["storage_disks"],
233
- )],
234
- vsan_fault_domains=[vsphere.ComputeClusterVsanFaultDomainArgs(
235
- fault_domains=[
236
- vsphere.ComputeClusterVsanFaultDomainFaultDomainArgs(
237
- name="fd1",
238
- host_ids=[[__item["id"] for __item in data["vsphere_host"]["faultdomain1_hosts"]]],
239
- ),
240
- vsphere.ComputeClusterVsanFaultDomainFaultDomainArgs(
241
- name="fd2",
242
- host_ids=[[__item["id"] for __item in data["vsphere_host"]["faultdomain2_hosts"]]],
243
- ),
244
- ],
245
- )],
246
- vsan_stretched_cluster=vsphere.ComputeClusterVsanStretchedClusterArgs(
247
- preferred_fault_domain_host_ids=[[__item["id"] for __item in data["vsphere_host"]["preferred_fault_domain_host"]]],
248
- secondary_fault_domain_host_ids=[[__item["id"] for __item in data["vsphere_host"]["secondary_fault_domain_host"]]],
249
- witness_node=data["vsphere_host"]["witness_host"]["id"],
250
- ))
251
- ```
252
- <!--End PulumiCodeChooser -->
301
+ :param str preferred_fault_domain_name: The name of prepferred fault domain.
302
+ :param str secondary_fault_domain_name: The name of secondary fault domain.
253
303
  """
254
304
  pulumi.set(__self__, "preferred_fault_domain_host_ids", preferred_fault_domain_host_ids)
255
305
  pulumi.set(__self__, "secondary_fault_domain_host_ids", secondary_fault_domain_host_ids)
@@ -287,7 +337,7 @@ class ComputeClusterVsanStretchedCluster(dict):
287
337
  @pulumi.getter(name="preferredFaultDomainName")
288
338
  def preferred_fault_domain_name(self) -> Optional[str]:
289
339
  """
290
- The name of first fault domain. Default is `Preferred`.
340
+ The name of prepferred fault domain.
291
341
  """
292
342
  return pulumi.get(self, "preferred_fault_domain_name")
293
343
 
@@ -295,55 +345,7 @@ class ComputeClusterVsanStretchedCluster(dict):
295
345
  @pulumi.getter(name="secondaryFaultDomainName")
296
346
  def secondary_fault_domain_name(self) -> Optional[str]:
297
347
  """
298
- The name of second fault domain. Default is `Secondary`.
299
-
300
- > **NOTE:** You must disable vSphere HA before you enable vSAN on the cluster.
301
- You can enable or re-enable vSphere HA after vSAN is configured.
302
-
303
- <!--Start PulumiCodeChooser -->
304
- ```python
305
- import pulumi
306
- import pulumi_vsphere as vsphere
307
-
308
- compute_cluster = vsphere.ComputeCluster("computeCluster",
309
- datacenter_id=data["vsphere_datacenter"]["datacenter"]["id"],
310
- host_system_ids=[[__item["id"] for __item in data["vsphere_host"]["host"]]],
311
- drs_enabled=True,
312
- drs_automation_level="fullyAutomated",
313
- ha_enabled=False,
314
- vsan_enabled=True,
315
- vsan_esa_enabled=True,
316
- vsan_dedup_enabled=True,
317
- vsan_compression_enabled=True,
318
- vsan_performance_enabled=True,
319
- vsan_verbose_mode_enabled=True,
320
- vsan_network_diagnostic_mode_enabled=True,
321
- vsan_unmap_enabled=True,
322
- vsan_dit_encryption_enabled=True,
323
- vsan_dit_rekey_interval=1800,
324
- vsan_disk_groups=[vsphere.ComputeClusterVsanDiskGroupArgs(
325
- cache=data["vsphere_vmfs_disks"]["cache_disks"],
326
- storages=data["vsphere_vmfs_disks"]["storage_disks"],
327
- )],
328
- vsan_fault_domains=[vsphere.ComputeClusterVsanFaultDomainArgs(
329
- fault_domains=[
330
- vsphere.ComputeClusterVsanFaultDomainFaultDomainArgs(
331
- name="fd1",
332
- host_ids=[[__item["id"] for __item in data["vsphere_host"]["faultdomain1_hosts"]]],
333
- ),
334
- vsphere.ComputeClusterVsanFaultDomainFaultDomainArgs(
335
- name="fd2",
336
- host_ids=[[__item["id"] for __item in data["vsphere_host"]["faultdomain2_hosts"]]],
337
- ),
338
- ],
339
- )],
340
- vsan_stretched_cluster=vsphere.ComputeClusterVsanStretchedClusterArgs(
341
- preferred_fault_domain_host_ids=[[__item["id"] for __item in data["vsphere_host"]["preferred_fault_domain_host"]]],
342
- secondary_fault_domain_host_ids=[[__item["id"] for __item in data["vsphere_host"]["secondary_fault_domain_host"]]],
343
- witness_node=data["vsphere_host"]["witness_host"]["id"],
344
- ))
345
- ```
346
- <!--End PulumiCodeChooser -->
348
+ The name of secondary fault domain.
347
349
  """
348
350
  return pulumi.get(self, "secondary_fault_domain_name")
349
351
 
@@ -376,11 +378,11 @@ class ContentLibraryPublication(dict):
376
378
  published: Optional[bool] = None,
377
379
  username: Optional[str] = None):
378
380
  """
379
- :param str authentication_method: Authentication method to connect ro a published content library. Must be `NONE` or `BASIC`.
380
- :param str password: Password used for authentication.
381
+ :param str authentication_method: Method to authenticate users. Must be `NONE` or `BASIC`.
382
+ :param str password: Password used by subscribers to authenticate.
381
383
  :param str publish_url: The URL of the published content library.
382
384
  :param bool published: Publish the content library. Default `false`.
383
- :param str username: Username used for authentication.
385
+ :param str username: Username used by subscribers to authenticate. Currently can only be `vcsp`.
384
386
  """
385
387
  if authentication_method is not None:
386
388
  pulumi.set(__self__, "authentication_method", authentication_method)
@@ -397,7 +399,7 @@ class ContentLibraryPublication(dict):
397
399
  @pulumi.getter(name="authenticationMethod")
398
400
  def authentication_method(self) -> Optional[str]:
399
401
  """
400
- Authentication method to connect ro a published content library. Must be `NONE` or `BASIC`.
402
+ Method to authenticate users. Must be `NONE` or `BASIC`.
401
403
  """
402
404
  return pulumi.get(self, "authentication_method")
403
405
 
@@ -405,7 +407,7 @@ class ContentLibraryPublication(dict):
405
407
  @pulumi.getter
406
408
  def password(self) -> Optional[str]:
407
409
  """
408
- Password used for authentication.
410
+ Password used by subscribers to authenticate.
409
411
  """
410
412
  return pulumi.get(self, "password")
411
413
 
@@ -429,7 +431,7 @@ class ContentLibraryPublication(dict):
429
431
  @pulumi.getter
430
432
  def username(self) -> Optional[str]:
431
433
  """
432
- Username used for authentication.
434
+ Username used by subscribers to authenticate. Currently can only be `vcsp`.
433
435
  """
434
436
  return pulumi.get(self, "username")
435
437
 
@@ -607,10 +609,8 @@ class DistributedVirtualSwitchHost(dict):
607
609
  host_system_id: str,
608
610
  devices: Optional[Sequence[str]] = None):
609
611
  """
610
- :param str host_system_id: The host system ID of the host to add to the
611
- VDS.
612
- :param Sequence[str] devices: The list of NIC devices to map to uplinks on the VDS,
613
- added in order they are specified.
612
+ :param str host_system_id: The managed object ID of the host this specification applies to.
613
+ :param Sequence[str] devices: Name of the physical NIC to be added to the proxy switch.
614
614
  """
615
615
  pulumi.set(__self__, "host_system_id", host_system_id)
616
616
  if devices is not None:
@@ -620,8 +620,7 @@ class DistributedVirtualSwitchHost(dict):
620
620
  @pulumi.getter(name="hostSystemId")
621
621
  def host_system_id(self) -> str:
622
622
  """
623
- The host system ID of the host to add to the
624
- VDS.
623
+ The managed object ID of the host this specification applies to.
625
624
  """
626
625
  return pulumi.get(self, "host_system_id")
627
626
 
@@ -629,8 +628,7 @@ class DistributedVirtualSwitchHost(dict):
629
628
  @pulumi.getter
630
629
  def devices(self) -> Optional[Sequence[str]]:
631
630
  """
632
- The list of NIC devices to map to uplinks on the VDS,
633
- added in order they are specified.
631
+ Name of the physical NIC to be added to the proxy switch.
634
632
  """
635
633
  return pulumi.get(self, "devices")
636
634
 
@@ -663,12 +661,9 @@ class DistributedVirtualSwitchPvlanMapping(dict):
663
661
  pvlan_type: str,
664
662
  secondary_vlan_id: int):
665
663
  """
666
- :param int primary_vlan_id: The primary VLAN ID. The VLAN IDs of 0 and
667
- 4095 are reserved and cannot be used in this property.
668
- :param str pvlan_type: The private VLAN type. Valid values are
669
- promiscuous, community and isolated.
670
- :param int secondary_vlan_id: The secondary VLAN ID. The VLAN IDs of 0
671
- and 4095 are reserved and cannot be used in this property.
664
+ :param int primary_vlan_id: The primary VLAN ID. The VLAN IDs of 0 and 4095 are reserved and cannot be used in this property.
665
+ :param str pvlan_type: The private VLAN type. Valid values are promiscuous, community and isolated.
666
+ :param int secondary_vlan_id: The secondary VLAN ID. The VLAN IDs of 0 and 4095 are reserved and cannot be used in this property.
672
667
  """
673
668
  pulumi.set(__self__, "primary_vlan_id", primary_vlan_id)
674
669
  pulumi.set(__self__, "pvlan_type", pvlan_type)
@@ -678,8 +673,7 @@ class DistributedVirtualSwitchPvlanMapping(dict):
678
673
  @pulumi.getter(name="primaryVlanId")
679
674
  def primary_vlan_id(self) -> int:
680
675
  """
681
- The primary VLAN ID. The VLAN IDs of 0 and
682
- 4095 are reserved and cannot be used in this property.
676
+ The primary VLAN ID. The VLAN IDs of 0 and 4095 are reserved and cannot be used in this property.
683
677
  """
684
678
  return pulumi.get(self, "primary_vlan_id")
685
679
 
@@ -687,8 +681,7 @@ class DistributedVirtualSwitchPvlanMapping(dict):
687
681
  @pulumi.getter(name="pvlanType")
688
682
  def pvlan_type(self) -> str:
689
683
  """
690
- The private VLAN type. Valid values are
691
- promiscuous, community and isolated.
684
+ The private VLAN type. Valid values are promiscuous, community and isolated.
692
685
  """
693
686
  return pulumi.get(self, "pvlan_type")
694
687
 
@@ -696,8 +689,7 @@ class DistributedVirtualSwitchPvlanMapping(dict):
696
689
  @pulumi.getter(name="secondaryVlanId")
697
690
  def secondary_vlan_id(self) -> int:
698
691
  """
699
- The secondary VLAN ID. The VLAN IDs of 0
700
- and 4095 are reserved and cannot be used in this property.
692
+ The secondary VLAN ID. The VLAN IDs of 0 and 4095 are reserved and cannot be used in this property.
701
693
  """
702
694
  return pulumi.get(self, "secondary_vlan_id")
703
695
 
@@ -779,9 +771,12 @@ class EntityPermissionsPermission(dict):
779
771
  role_id: str,
780
772
  user_or_group: str):
781
773
  """
782
- :param bool is_group: Whether user_or_group field refers to a user or a group. True for a group and false for a user.
783
- :param bool propagate: Whether or not this permission propagates down the hierarchy to sub-entities.
784
- :param str role_id: The role id of the role to be given to the user on the specified entity.
774
+ :param bool is_group: Whether `user_or_group` field refers to a user or a
775
+ group. True for a group and false for a user.
776
+ :param bool propagate: Whether or not this permission propagates down the
777
+ hierarchy to sub-entities.
778
+ :param str role_id: The role id of the role to be given to the user on
779
+ the specified entity.
785
780
  :param str user_or_group: The user/group getting the permission.
786
781
  """
787
782
  pulumi.set(__self__, "is_group", is_group)
@@ -793,7 +788,8 @@ class EntityPermissionsPermission(dict):
793
788
  @pulumi.getter(name="isGroup")
794
789
  def is_group(self) -> bool:
795
790
  """
796
- Whether user_or_group field refers to a user or a group. True for a group and false for a user.
791
+ Whether `user_or_group` field refers to a user or a
792
+ group. True for a group and false for a user.
797
793
  """
798
794
  return pulumi.get(self, "is_group")
799
795
 
@@ -801,7 +797,8 @@ class EntityPermissionsPermission(dict):
801
797
  @pulumi.getter
802
798
  def propagate(self) -> bool:
803
799
  """
804
- Whether or not this permission propagates down the hierarchy to sub-entities.
800
+ Whether or not this permission propagates down the
801
+ hierarchy to sub-entities.
805
802
  """
806
803
  return pulumi.get(self, "propagate")
807
804
 
@@ -809,7 +806,8 @@ class EntityPermissionsPermission(dict):
809
806
  @pulumi.getter(name="roleId")
810
807
  def role_id(self) -> str:
811
808
  """
812
- The role id of the role to be given to the user on the specified entity.
809
+ The role id of the role to be given to the user on
810
+ the specified entity.
813
811
  """
814
812
  return pulumi.get(self, "role_id")
815
813
 
@@ -1167,6 +1165,8 @@ class GuestOsCustomizationSpecWindowsOptions(dict):
1167
1165
  suggest = "domain_admin_password"
1168
1166
  elif key == "domainAdminUser":
1169
1167
  suggest = "domain_admin_user"
1168
+ elif key == "domainOu":
1169
+ suggest = "domain_ou"
1170
1170
  elif key == "fullName":
1171
1171
  suggest = "full_name"
1172
1172
  elif key == "joinDomain":
@@ -1198,6 +1198,7 @@ class GuestOsCustomizationSpecWindowsOptions(dict):
1198
1198
  auto_logon_count: Optional[int] = None,
1199
1199
  domain_admin_password: Optional[str] = None,
1200
1200
  domain_admin_user: Optional[str] = None,
1201
+ domain_ou: Optional[str] = None,
1201
1202
  full_name: Optional[str] = None,
1202
1203
  join_domain: Optional[str] = None,
1203
1204
  organization_name: Optional[str] = None,
@@ -1212,6 +1213,7 @@ class GuestOsCustomizationSpecWindowsOptions(dict):
1212
1213
  :param int auto_logon_count: Specifies how many times the VM should auto-logon the Administrator account when auto_logon is true.
1213
1214
  :param str domain_admin_password: The password of the domain administrator used to join this virtual machine to the domain.
1214
1215
  :param str domain_admin_user: The user account of the domain administrator used to join this virtual machine to the domain.
1216
+ :param str domain_ou: The MachineObjectOU which specifies the full LDAP path name of the OU to which the virtual machine belongs.
1215
1217
  :param str full_name: The full name of the user of this virtual machine.
1216
1218
  :param str join_domain: The domain that the virtual machine should join.
1217
1219
  :param str organization_name: The organization name this virtual machine is being installed for.
@@ -1231,6 +1233,8 @@ class GuestOsCustomizationSpecWindowsOptions(dict):
1231
1233
  pulumi.set(__self__, "domain_admin_password", domain_admin_password)
1232
1234
  if domain_admin_user is not None:
1233
1235
  pulumi.set(__self__, "domain_admin_user", domain_admin_user)
1236
+ if domain_ou is not None:
1237
+ pulumi.set(__self__, "domain_ou", domain_ou)
1234
1238
  if full_name is not None:
1235
1239
  pulumi.set(__self__, "full_name", full_name)
1236
1240
  if join_domain is not None:
@@ -1294,6 +1298,14 @@ class GuestOsCustomizationSpecWindowsOptions(dict):
1294
1298
  """
1295
1299
  return pulumi.get(self, "domain_admin_user")
1296
1300
 
1301
+ @property
1302
+ @pulumi.getter(name="domainOu")
1303
+ def domain_ou(self) -> Optional[str]:
1304
+ """
1305
+ The MachineObjectOU which specifies the full LDAP path name of the OU to which the virtual machine belongs.
1306
+ """
1307
+ return pulumi.get(self, "domain_ou")
1308
+
1297
1309
  @property
1298
1310
  @pulumi.getter(name="fullName")
1299
1311
  def full_name(self) -> Optional[str]:
@@ -1411,6 +1423,405 @@ class HostPortGroupPort(dict):
1411
1423
  return pulumi.get(self, "type")
1412
1424
 
1413
1425
 
1426
+ @pulumi.output_type
1427
+ class HostService(dict):
1428
+ def __init__(__self__, *,
1429
+ ntpd: Optional['outputs.HostServiceNtpd'] = None):
1430
+ """
1431
+ :param 'HostServiceNtpdArgs' ntpd: service has three settings, `enabled` sets service to running or not running, `policy` sets service based on setting of `on` which sets service to "Start and stop with host", `off` which sets service to "Start and stop manually", `automatic` which sets service to "Start and stop with port usage".
1432
+
1433
+ > **NOTE:** `services` only supports ntpd service today.
1434
+ """
1435
+ if ntpd is not None:
1436
+ pulumi.set(__self__, "ntpd", ntpd)
1437
+
1438
+ @property
1439
+ @pulumi.getter
1440
+ def ntpd(self) -> Optional['outputs.HostServiceNtpd']:
1441
+ """
1442
+ service has three settings, `enabled` sets service to running or not running, `policy` sets service based on setting of `on` which sets service to "Start and stop with host", `off` which sets service to "Start and stop manually", `automatic` which sets service to "Start and stop with port usage".
1443
+
1444
+ > **NOTE:** `services` only supports ntpd service today.
1445
+ """
1446
+ return pulumi.get(self, "ntpd")
1447
+
1448
+
1449
+ @pulumi.output_type
1450
+ class HostServiceNtpd(dict):
1451
+ @staticmethod
1452
+ def __key_warning(key: str):
1453
+ suggest = None
1454
+ if key == "ntpServers":
1455
+ suggest = "ntp_servers"
1456
+
1457
+ if suggest:
1458
+ pulumi.log.warn(f"Key '{key}' not found in HostServiceNtpd. Access the value via the '{suggest}' property getter instead.")
1459
+
1460
+ def __getitem__(self, key: str) -> Any:
1461
+ HostServiceNtpd.__key_warning(key)
1462
+ return super().__getitem__(key)
1463
+
1464
+ def get(self, key: str, default = None) -> Any:
1465
+ HostServiceNtpd.__key_warning(key)
1466
+ return super().get(key, default)
1467
+
1468
+ def __init__(__self__, *,
1469
+ enabled: Optional[bool] = None,
1470
+ ntp_servers: Optional[Sequence[str]] = None,
1471
+ policy: Optional[str] = None):
1472
+ """
1473
+ :param bool enabled: Whether the NTP service is enabled. Default is false.
1474
+ :param str policy: The policy for the NTP service. Valid values are 'Start and stop with host', 'Start and stop manually', 'Start and stop with port usage'.
1475
+ """
1476
+ if enabled is not None:
1477
+ pulumi.set(__self__, "enabled", enabled)
1478
+ if ntp_servers is not None:
1479
+ pulumi.set(__self__, "ntp_servers", ntp_servers)
1480
+ if policy is not None:
1481
+ pulumi.set(__self__, "policy", policy)
1482
+
1483
+ @property
1484
+ @pulumi.getter
1485
+ def enabled(self) -> Optional[bool]:
1486
+ """
1487
+ Whether the NTP service is enabled. Default is false.
1488
+ """
1489
+ return pulumi.get(self, "enabled")
1490
+
1491
+ @property
1492
+ @pulumi.getter(name="ntpServers")
1493
+ def ntp_servers(self) -> Optional[Sequence[str]]:
1494
+ return pulumi.get(self, "ntp_servers")
1495
+
1496
+ @property
1497
+ @pulumi.getter
1498
+ def policy(self) -> Optional[str]:
1499
+ """
1500
+ The policy for the NTP service. Valid values are 'Start and stop with host', 'Start and stop manually', 'Start and stop with port usage'.
1501
+ """
1502
+ return pulumi.get(self, "policy")
1503
+
1504
+
1505
+ @pulumi.output_type
1506
+ class OfflineSoftwareDepotComponent(dict):
1507
+ @staticmethod
1508
+ def __key_warning(key: str):
1509
+ suggest = None
1510
+ if key == "displayName":
1511
+ suggest = "display_name"
1512
+
1513
+ if suggest:
1514
+ pulumi.log.warn(f"Key '{key}' not found in OfflineSoftwareDepotComponent. Access the value via the '{suggest}' property getter instead.")
1515
+
1516
+ def __getitem__(self, key: str) -> Any:
1517
+ OfflineSoftwareDepotComponent.__key_warning(key)
1518
+ return super().__getitem__(key)
1519
+
1520
+ def get(self, key: str, default = None) -> Any:
1521
+ OfflineSoftwareDepotComponent.__key_warning(key)
1522
+ return super().get(key, default)
1523
+
1524
+ def __init__(__self__, *,
1525
+ display_name: Optional[str] = None,
1526
+ key: Optional[str] = None,
1527
+ versions: Optional[Sequence[str]] = None):
1528
+ """
1529
+ :param str display_name: The name of the component. Useful for easier identification.
1530
+ :param str key: The identifier of the component.
1531
+ :param Sequence[str] versions: The list of available versions of the component.
1532
+ """
1533
+ if display_name is not None:
1534
+ pulumi.set(__self__, "display_name", display_name)
1535
+ if key is not None:
1536
+ pulumi.set(__self__, "key", key)
1537
+ if versions is not None:
1538
+ pulumi.set(__self__, "versions", versions)
1539
+
1540
+ @property
1541
+ @pulumi.getter(name="displayName")
1542
+ def display_name(self) -> Optional[str]:
1543
+ """
1544
+ The name of the component. Useful for easier identification.
1545
+ """
1546
+ return pulumi.get(self, "display_name")
1547
+
1548
+ @property
1549
+ @pulumi.getter
1550
+ def key(self) -> Optional[str]:
1551
+ """
1552
+ The identifier of the component.
1553
+ """
1554
+ return pulumi.get(self, "key")
1555
+
1556
+ @property
1557
+ @pulumi.getter
1558
+ def versions(self) -> Optional[Sequence[str]]:
1559
+ """
1560
+ The list of available versions of the component.
1561
+ """
1562
+ return pulumi.get(self, "versions")
1563
+
1564
+
1565
+ @pulumi.output_type
1566
+ class SupervisorEgressCidr(dict):
1567
+ def __init__(__self__, *,
1568
+ address: str,
1569
+ prefix: int):
1570
+ """
1571
+ :param str address: Network address.
1572
+ :param int prefix: Subnet prefix.
1573
+ """
1574
+ pulumi.set(__self__, "address", address)
1575
+ pulumi.set(__self__, "prefix", prefix)
1576
+
1577
+ @property
1578
+ @pulumi.getter
1579
+ def address(self) -> str:
1580
+ """
1581
+ Network address.
1582
+ """
1583
+ return pulumi.get(self, "address")
1584
+
1585
+ @property
1586
+ @pulumi.getter
1587
+ def prefix(self) -> int:
1588
+ """
1589
+ Subnet prefix.
1590
+ """
1591
+ return pulumi.get(self, "prefix")
1592
+
1593
+
1594
+ @pulumi.output_type
1595
+ class SupervisorIngressCidr(dict):
1596
+ def __init__(__self__, *,
1597
+ address: str,
1598
+ prefix: int):
1599
+ """
1600
+ :param str address: Network address.
1601
+ :param int prefix: Subnet prefix.
1602
+ """
1603
+ pulumi.set(__self__, "address", address)
1604
+ pulumi.set(__self__, "prefix", prefix)
1605
+
1606
+ @property
1607
+ @pulumi.getter
1608
+ def address(self) -> str:
1609
+ """
1610
+ Network address.
1611
+ """
1612
+ return pulumi.get(self, "address")
1613
+
1614
+ @property
1615
+ @pulumi.getter
1616
+ def prefix(self) -> int:
1617
+ """
1618
+ Subnet prefix.
1619
+ """
1620
+ return pulumi.get(self, "prefix")
1621
+
1622
+
1623
+ @pulumi.output_type
1624
+ class SupervisorManagementNetwork(dict):
1625
+ @staticmethod
1626
+ def __key_warning(key: str):
1627
+ suggest = None
1628
+ if key == "addressCount":
1629
+ suggest = "address_count"
1630
+ elif key == "startingAddress":
1631
+ suggest = "starting_address"
1632
+ elif key == "subnetMask":
1633
+ suggest = "subnet_mask"
1634
+
1635
+ if suggest:
1636
+ pulumi.log.warn(f"Key '{key}' not found in SupervisorManagementNetwork. Access the value via the '{suggest}' property getter instead.")
1637
+
1638
+ def __getitem__(self, key: str) -> Any:
1639
+ SupervisorManagementNetwork.__key_warning(key)
1640
+ return super().__getitem__(key)
1641
+
1642
+ def get(self, key: str, default = None) -> Any:
1643
+ SupervisorManagementNetwork.__key_warning(key)
1644
+ return super().get(key, default)
1645
+
1646
+ def __init__(__self__, *,
1647
+ address_count: int,
1648
+ gateway: str,
1649
+ network: str,
1650
+ starting_address: str,
1651
+ subnet_mask: str):
1652
+ """
1653
+ :param int address_count: Number of addresses to allocate. Starts from 'starting_address'
1654
+ :param str gateway: Gateway IP address.
1655
+ :param str network: ID of the network. (e.g. a distributed port group).
1656
+ :param str starting_address: Starting address of the management network range.
1657
+ :param str subnet_mask: Subnet mask.
1658
+ """
1659
+ pulumi.set(__self__, "address_count", address_count)
1660
+ pulumi.set(__self__, "gateway", gateway)
1661
+ pulumi.set(__self__, "network", network)
1662
+ pulumi.set(__self__, "starting_address", starting_address)
1663
+ pulumi.set(__self__, "subnet_mask", subnet_mask)
1664
+
1665
+ @property
1666
+ @pulumi.getter(name="addressCount")
1667
+ def address_count(self) -> int:
1668
+ """
1669
+ Number of addresses to allocate. Starts from 'starting_address'
1670
+ """
1671
+ return pulumi.get(self, "address_count")
1672
+
1673
+ @property
1674
+ @pulumi.getter
1675
+ def gateway(self) -> str:
1676
+ """
1677
+ Gateway IP address.
1678
+ """
1679
+ return pulumi.get(self, "gateway")
1680
+
1681
+ @property
1682
+ @pulumi.getter
1683
+ def network(self) -> str:
1684
+ """
1685
+ ID of the network. (e.g. a distributed port group).
1686
+ """
1687
+ return pulumi.get(self, "network")
1688
+
1689
+ @property
1690
+ @pulumi.getter(name="startingAddress")
1691
+ def starting_address(self) -> str:
1692
+ """
1693
+ Starting address of the management network range.
1694
+ """
1695
+ return pulumi.get(self, "starting_address")
1696
+
1697
+ @property
1698
+ @pulumi.getter(name="subnetMask")
1699
+ def subnet_mask(self) -> str:
1700
+ """
1701
+ Subnet mask.
1702
+ """
1703
+ return pulumi.get(self, "subnet_mask")
1704
+
1705
+
1706
+ @pulumi.output_type
1707
+ class SupervisorNamespace(dict):
1708
+ @staticmethod
1709
+ def __key_warning(key: str):
1710
+ suggest = None
1711
+ if key == "contentLibraries":
1712
+ suggest = "content_libraries"
1713
+ elif key == "vmClasses":
1714
+ suggest = "vm_classes"
1715
+
1716
+ if suggest:
1717
+ pulumi.log.warn(f"Key '{key}' not found in SupervisorNamespace. Access the value via the '{suggest}' property getter instead.")
1718
+
1719
+ def __getitem__(self, key: str) -> Any:
1720
+ SupervisorNamespace.__key_warning(key)
1721
+ return super().__getitem__(key)
1722
+
1723
+ def get(self, key: str, default = None) -> Any:
1724
+ SupervisorNamespace.__key_warning(key)
1725
+ return super().get(key, default)
1726
+
1727
+ def __init__(__self__, *,
1728
+ name: str,
1729
+ content_libraries: Optional[Sequence[str]] = None,
1730
+ vm_classes: Optional[Sequence[str]] = None):
1731
+ """
1732
+ :param str name: The name of the namespace.
1733
+ :param Sequence[str] content_libraries: A list of content libraries.
1734
+ :param Sequence[str] vm_classes: A list of virtual machine classes.
1735
+ """
1736
+ pulumi.set(__self__, "name", name)
1737
+ if content_libraries is not None:
1738
+ pulumi.set(__self__, "content_libraries", content_libraries)
1739
+ if vm_classes is not None:
1740
+ pulumi.set(__self__, "vm_classes", vm_classes)
1741
+
1742
+ @property
1743
+ @pulumi.getter
1744
+ def name(self) -> str:
1745
+ """
1746
+ The name of the namespace.
1747
+ """
1748
+ return pulumi.get(self, "name")
1749
+
1750
+ @property
1751
+ @pulumi.getter(name="contentLibraries")
1752
+ def content_libraries(self) -> Optional[Sequence[str]]:
1753
+ """
1754
+ A list of content libraries.
1755
+ """
1756
+ return pulumi.get(self, "content_libraries")
1757
+
1758
+ @property
1759
+ @pulumi.getter(name="vmClasses")
1760
+ def vm_classes(self) -> Optional[Sequence[str]]:
1761
+ """
1762
+ A list of virtual machine classes.
1763
+ """
1764
+ return pulumi.get(self, "vm_classes")
1765
+
1766
+
1767
+ @pulumi.output_type
1768
+ class SupervisorPodCidr(dict):
1769
+ def __init__(__self__, *,
1770
+ address: str,
1771
+ prefix: int):
1772
+ """
1773
+ :param str address: Network address.
1774
+ :param int prefix: Subnet prefix.
1775
+ """
1776
+ pulumi.set(__self__, "address", address)
1777
+ pulumi.set(__self__, "prefix", prefix)
1778
+
1779
+ @property
1780
+ @pulumi.getter
1781
+ def address(self) -> str:
1782
+ """
1783
+ Network address.
1784
+ """
1785
+ return pulumi.get(self, "address")
1786
+
1787
+ @property
1788
+ @pulumi.getter
1789
+ def prefix(self) -> int:
1790
+ """
1791
+ Subnet prefix.
1792
+ """
1793
+ return pulumi.get(self, "prefix")
1794
+
1795
+
1796
+ @pulumi.output_type
1797
+ class SupervisorServiceCidr(dict):
1798
+ def __init__(__self__, *,
1799
+ address: str,
1800
+ prefix: int):
1801
+ """
1802
+ :param str address: Network address.
1803
+ :param int prefix: Subnet prefix.
1804
+ """
1805
+ pulumi.set(__self__, "address", address)
1806
+ pulumi.set(__self__, "prefix", prefix)
1807
+
1808
+ @property
1809
+ @pulumi.getter
1810
+ def address(self) -> str:
1811
+ """
1812
+ Network address.
1813
+ """
1814
+ return pulumi.get(self, "address")
1815
+
1816
+ @property
1817
+ @pulumi.getter
1818
+ def prefix(self) -> int:
1819
+ """
1820
+ Subnet prefix.
1821
+ """
1822
+ return pulumi.get(self, "prefix")
1823
+
1824
+
1414
1825
  @pulumi.output_type
1415
1826
  class VirtualMachineCdrom(dict):
1416
1827
  @staticmethod
@@ -1441,15 +1852,11 @@ class VirtualMachineCdrom(dict):
1441
1852
  key: Optional[int] = None,
1442
1853
  path: Optional[str] = None):
1443
1854
  """
1444
- :param bool client_device: Indicates whether the device should be backed by remote client device. Conflicts with `datastore_id` and `path`.
1445
- :param str datastore_id: The datastore ID that on which the ISO is located. Required for using a datastore ISO. Conflicts with `client_device`.
1855
+ :param bool client_device: Indicates whether the device should be mapped to a remote client device
1856
+ :param str datastore_id: The datastore ID the ISO is located on.
1446
1857
  :param str device_address: The internally-computed address of this device, such as scsi:0:1, denoting scsi bus #0 and device unit 1.
1447
1858
  :param int key: The ID of the device within the virtual machine.
1448
- :param str path: The path to the ISO file. Required for using a datastore ISO. Conflicts with `client_device`.
1449
-
1450
- > **NOTE:** Either `client_device` (for a remote backed CD-ROM) or `datastore_id` and `path` (for a datastore ISO backed CD-ROM) are required to .
1451
-
1452
- > **NOTE:** Some CD-ROM drive types are not supported by this resource, such as pass-through devices. If these drives are present in a cloned template, or added outside of the provider, the desired state will be corrected to the defined device, or removed if no `cdrom` block is present.
1859
+ :param str path: The path to the ISO file on the datastore.
1453
1860
  """
1454
1861
  if client_device is not None:
1455
1862
  pulumi.set(__self__, "client_device", client_device)
@@ -1466,7 +1873,7 @@ class VirtualMachineCdrom(dict):
1466
1873
  @pulumi.getter(name="clientDevice")
1467
1874
  def client_device(self) -> Optional[bool]:
1468
1875
  """
1469
- Indicates whether the device should be backed by remote client device. Conflicts with `datastore_id` and `path`.
1876
+ Indicates whether the device should be mapped to a remote client device
1470
1877
  """
1471
1878
  return pulumi.get(self, "client_device")
1472
1879
 
@@ -1474,7 +1881,7 @@ class VirtualMachineCdrom(dict):
1474
1881
  @pulumi.getter(name="datastoreId")
1475
1882
  def datastore_id(self) -> Optional[str]:
1476
1883
  """
1477
- The datastore ID that on which the ISO is located. Required for using a datastore ISO. Conflicts with `client_device`.
1884
+ The datastore ID the ISO is located on.
1478
1885
  """
1479
1886
  return pulumi.get(self, "datastore_id")
1480
1887
 
@@ -1498,11 +1905,7 @@ class VirtualMachineCdrom(dict):
1498
1905
  @pulumi.getter
1499
1906
  def path(self) -> Optional[str]:
1500
1907
  """
1501
- The path to the ISO file. Required for using a datastore ISO. Conflicts with `client_device`.
1502
-
1503
- > **NOTE:** Either `client_device` (for a remote backed CD-ROM) or `datastore_id` and `path` (for a datastore ISO backed CD-ROM) are required to .
1504
-
1505
- > **NOTE:** Some CD-ROM drive types are not supported by this resource, such as pass-through devices. If these drives are present in a cloned template, or added outside of the provider, the desired state will be corrected to the defined device, or removed if no `cdrom` block is present.
1908
+ The path to the ISO file on the datastore.
1506
1909
  """
1507
1910
  return pulumi.get(self, "path")
1508
1911
 
@@ -1701,7 +2104,7 @@ class VirtualMachineCloneCustomize(dict):
1701
2104
  :param str ipv4_gateway: The IPv4 default gateway when using network_interface customization on the virtual machine. This address must be local to a static IPv4 address configured in an interface sub-resource.
1702
2105
  :param str ipv6_gateway: The IPv6 default gateway when using network_interface customization on the virtual machine. This address must be local to a static IPv4 address configured in an interface sub-resource.
1703
2106
  :param 'VirtualMachineCloneCustomizeLinuxOptionsArgs' linux_options: A list of configuration options specific to Linux virtual machines.
1704
- :param Sequence['VirtualMachineCloneCustomizeNetworkInterfaceArgs'] network_interfaces: A specification for a virtual NIC on the virtual machine. See network interface options for more information.
2107
+ :param Sequence['VirtualMachineCloneCustomizeNetworkInterfaceArgs'] network_interfaces: A specification of network interface configuration options.
1705
2108
  :param int timeout: The amount of time, in minutes, to wait for guest OS customization to complete before returning with an error. Setting this value to 0 or a negative value skips the waiter. Default: 10.
1706
2109
  :param 'VirtualMachineCloneCustomizeWindowsOptionsArgs' windows_options: A list of configuration options specific to Windows virtual machines.
1707
2110
  :param str windows_sysprep_text: Use this option to specify a windows sysprep file directly.
@@ -1769,7 +2172,7 @@ class VirtualMachineCloneCustomize(dict):
1769
2172
  @pulumi.getter(name="networkInterfaces")
1770
2173
  def network_interfaces(self) -> Optional[Sequence['outputs.VirtualMachineCloneCustomizeNetworkInterface']]:
1771
2174
  """
1772
- A specification for a virtual NIC on the virtual machine. See network interface options for more information.
2175
+ A specification of network interface configuration options.
1773
2176
  """
1774
2177
  return pulumi.get(self, "network_interfaces")
1775
2178
 
@@ -2009,6 +2412,8 @@ class VirtualMachineCloneCustomizeWindowsOptions(dict):
2009
2412
  suggest = "domain_admin_password"
2010
2413
  elif key == "domainAdminUser":
2011
2414
  suggest = "domain_admin_user"
2415
+ elif key == "domainOu":
2416
+ suggest = "domain_ou"
2012
2417
  elif key == "fullName":
2013
2418
  suggest = "full_name"
2014
2419
  elif key == "joinDomain":
@@ -2040,6 +2445,7 @@ class VirtualMachineCloneCustomizeWindowsOptions(dict):
2040
2445
  auto_logon_count: Optional[int] = None,
2041
2446
  domain_admin_password: Optional[str] = None,
2042
2447
  domain_admin_user: Optional[str] = None,
2448
+ domain_ou: Optional[str] = None,
2043
2449
  full_name: Optional[str] = None,
2044
2450
  join_domain: Optional[str] = None,
2045
2451
  organization_name: Optional[str] = None,
@@ -2054,6 +2460,7 @@ class VirtualMachineCloneCustomizeWindowsOptions(dict):
2054
2460
  :param int auto_logon_count: Specifies how many times the VM should auto-logon the Administrator account when auto_logon is true.
2055
2461
  :param str domain_admin_password: The password of the domain administrator used to join this virtual machine to the domain.
2056
2462
  :param str domain_admin_user: The user account of the domain administrator used to join this virtual machine to the domain.
2463
+ :param str domain_ou: The MachineObjectOU which specifies the full LDAP path name of the OU to which the virtual machine belongs.
2057
2464
  :param str full_name: The full name of the user of this virtual machine.
2058
2465
  :param str join_domain: The domain that the virtual machine should join.
2059
2466
  :param str organization_name: The organization name this virtual machine is being installed for.
@@ -2073,6 +2480,8 @@ class VirtualMachineCloneCustomizeWindowsOptions(dict):
2073
2480
  pulumi.set(__self__, "domain_admin_password", domain_admin_password)
2074
2481
  if domain_admin_user is not None:
2075
2482
  pulumi.set(__self__, "domain_admin_user", domain_admin_user)
2483
+ if domain_ou is not None:
2484
+ pulumi.set(__self__, "domain_ou", domain_ou)
2076
2485
  if full_name is not None:
2077
2486
  pulumi.set(__self__, "full_name", full_name)
2078
2487
  if join_domain is not None:
@@ -2136,6 +2545,14 @@ class VirtualMachineCloneCustomizeWindowsOptions(dict):
2136
2545
  """
2137
2546
  return pulumi.get(self, "domain_admin_user")
2138
2547
 
2548
+ @property
2549
+ @pulumi.getter(name="domainOu")
2550
+ def domain_ou(self) -> Optional[str]:
2551
+ """
2552
+ The MachineObjectOU which specifies the full LDAP path name of the OU to which the virtual machine belongs.
2553
+ """
2554
+ return pulumi.get(self, "domain_ou")
2555
+
2139
2556
  @property
2140
2557
  @pulumi.getter(name="fullName")
2141
2558
  def full_name(self) -> Optional[str]:
@@ -2264,36 +2681,26 @@ class VirtualMachineDisk(dict):
2264
2681
  write_through: Optional[bool] = None):
2265
2682
  """
2266
2683
  :param str label: A unique label for this disk.
2267
- :param bool attach: Attach an external disk instead of creating a new one. Implies and conflicts with `keep_on_remove`. If set, you cannot set `size`, `eagerly_scrub`, or `thin_provisioned`. Must set `path` if used.
2268
-
2269
- > **NOTE:** External disks cannot be attached when `datastore_cluster_id` is used.
2270
- :param str controller_type: The type of storage controller to attach the disk to. Can be `scsi`, `sata`, or `ide`. You must have the appropriate number of controllers enabled for the selected type. Default `scsi`.
2271
- :param str datastore_id: The datastore ID that on which the ISO is located. Required for using a datastore ISO. Conflicts with `client_device`.
2684
+ :param bool attach: If this is true, the disk is attached instead of created. Implies keep_on_remove.
2685
+ :param str controller_type: The type of controller the disk should be connected to. Must be 'scsi', 'sata', or 'ide'.
2686
+ :param str datastore_id: The datastore ID for this virtual disk, if different than the virtual machine.
2272
2687
  :param str device_address: The internally-computed address of this device, such as scsi:0:1, denoting scsi bus #0 and device unit 1.
2273
- :param str disk_mode: The mode of this this virtual disk for purposes of writes and snapshots. One of `append`, `independent_nonpersistent`, `independent_persistent`, `nonpersistent`, `persistent`, or `undoable`. Default: `persistent`. For more information on these option, please refer to the [product documentation][vmware-docs-disk-mode].
2274
-
2275
- [vmware-docs-disk-mode]: https://vdc-download.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.vm.device.VirtualDiskOption.DiskMode.html
2276
- :param str disk_sharing: The sharing mode of this virtual disk. One of `sharingMultiWriter` or `sharingNone`. Default: `sharingNone`.
2277
-
2278
- > **NOTE:** Disk sharing is only available on vSphere 6.0 and later.
2279
- :param bool eagerly_scrub: If set to `true`, the disk space is zeroed out when the virtual machine is created. This will delay the creation of the virtual disk. Cannot be set to `true` when `thin_provisioned` is `true`. See the section on picking a disk type for more information. Default: `false`.
2280
- :param int io_limit: The upper limit of IOPS that this disk can use. The default is no limit.
2281
- :param int io_reservation: The I/O reservation (guarantee) for the virtual disk has, in IOPS. The default is no reservation.
2282
- :param int io_share_count: The share count for the virtual disk when the share level is `custom`.
2283
- :param str io_share_level: The share allocation level for the virtual disk. One of `low`, `normal`, `high`, or `custom`. Default: `normal`.
2284
- :param bool keep_on_remove: Keep this disk when removing the device or destroying the virtual machine. Default: `false`.
2688
+ :param str disk_mode: The mode of this this virtual disk for purposes of writes and snapshotting. Can be one of append, independent_nonpersistent, independent_persistent, nonpersistent, persistent, or undoable.
2689
+ :param str disk_sharing: The sharing mode of this virtual disk. Can be one of sharingMultiWriter or sharingNone.
2690
+ :param bool eagerly_scrub: The virtual disk file zeroing policy when thin_provision is not true. The default is false, which lazily-zeros the disk, speeding up thick-provisioned disk creation time.
2691
+ :param int io_limit: The upper limit of IOPS that this disk can use.
2692
+ :param int io_reservation: The I/O guarantee that this disk has, in IOPS.
2693
+ :param int io_share_count: The share count for this disk when the share level is custom.
2694
+ :param str io_share_level: The share allocation level for this disk. Can be one of low, normal, high, or custom.
2695
+ :param bool keep_on_remove: Set to true to keep the underlying VMDK file when removing this virtual disk from configuration.
2285
2696
  :param int key: The ID of the device within the virtual machine.
2286
- :param str path: The path to the ISO file. Required for using a datastore ISO. Conflicts with `client_device`.
2287
-
2288
- > **NOTE:** Either `client_device` (for a remote backed CD-ROM) or `datastore_id` and `path` (for a datastore ISO backed CD-ROM) are required to .
2289
-
2290
- > **NOTE:** Some CD-ROM drive types are not supported by this resource, such as pass-through devices. If these drives are present in a cloned template, or added outside of the provider, the desired state will be corrected to the defined device, or removed if no `cdrom` block is present.
2291
- :param int size: The size of the disk, in GB. Must be a whole number.
2292
- :param str storage_policy_id: The UUID of the storage policy to assign to the virtual disk.
2293
- :param bool thin_provisioned: If `true`, the disk is thin provisioned, with space for the file being allocated on an as-needed basis. Cannot be set to `true` when `eagerly_scrub` is `true`. See the section on selecting a disk type for more information. Default: `true`.
2294
- :param int unit_number: The disk number on the storage bus. The maximum value for this setting is the value of the controller count times the controller capacity (15 for SCSI, 30 for SATA, and 2 for IDE). Duplicate unit numbers are not allowed. Default `0`, for which one disk must be set to.
2295
- :param str uuid: The UUID of the virtual disk VMDK file. This is used to track the virtual disk on the virtual machine.
2296
- :param bool write_through: If `true`, writes for this disk are sent directly to the filesystem immediately instead of being buffered. Default: `false`.
2697
+ :param str path: The full path of the virtual disk. This can only be provided if attach is set to true, otherwise it is a read-only value.
2698
+ :param int size: The size of the disk, in GB.
2699
+ :param str storage_policy_id: The ID of the storage policy to assign to the virtual disk in VM.
2700
+ :param bool thin_provisioned: If true, this disk is thin provisioned, with space for the file being allocated on an as-needed basis.
2701
+ :param int unit_number: The unique device number for this disk. This number determines where on the SCSI bus this device will be attached.
2702
+ :param str uuid: The UUID of the virtual machine. Also exposed as the `id` of the resource.
2703
+ :param bool write_through: If true, writes for this disk are sent directly to the filesystem immediately instead of being buffered.
2297
2704
  """
2298
2705
  pulumi.set(__self__, "label", label)
2299
2706
  if attach is not None:
@@ -2349,9 +2756,7 @@ class VirtualMachineDisk(dict):
2349
2756
  @pulumi.getter
2350
2757
  def attach(self) -> Optional[bool]:
2351
2758
  """
2352
- Attach an external disk instead of creating a new one. Implies and conflicts with `keep_on_remove`. If set, you cannot set `size`, `eagerly_scrub`, or `thin_provisioned`. Must set `path` if used.
2353
-
2354
- > **NOTE:** External disks cannot be attached when `datastore_cluster_id` is used.
2759
+ If this is true, the disk is attached instead of created. Implies keep_on_remove.
2355
2760
  """
2356
2761
  return pulumi.get(self, "attach")
2357
2762
 
@@ -2359,7 +2764,7 @@ class VirtualMachineDisk(dict):
2359
2764
  @pulumi.getter(name="controllerType")
2360
2765
  def controller_type(self) -> Optional[str]:
2361
2766
  """
2362
- The type of storage controller to attach the disk to. Can be `scsi`, `sata`, or `ide`. You must have the appropriate number of controllers enabled for the selected type. Default `scsi`.
2767
+ The type of controller the disk should be connected to. Must be 'scsi', 'sata', or 'ide'.
2363
2768
  """
2364
2769
  return pulumi.get(self, "controller_type")
2365
2770
 
@@ -2367,7 +2772,7 @@ class VirtualMachineDisk(dict):
2367
2772
  @pulumi.getter(name="datastoreId")
2368
2773
  def datastore_id(self) -> Optional[str]:
2369
2774
  """
2370
- The datastore ID that on which the ISO is located. Required for using a datastore ISO. Conflicts with `client_device`.
2775
+ The datastore ID for this virtual disk, if different than the virtual machine.
2371
2776
  """
2372
2777
  return pulumi.get(self, "datastore_id")
2373
2778
 
@@ -2383,9 +2788,7 @@ class VirtualMachineDisk(dict):
2383
2788
  @pulumi.getter(name="diskMode")
2384
2789
  def disk_mode(self) -> Optional[str]:
2385
2790
  """
2386
- The mode of this this virtual disk for purposes of writes and snapshots. One of `append`, `independent_nonpersistent`, `independent_persistent`, `nonpersistent`, `persistent`, or `undoable`. Default: `persistent`. For more information on these option, please refer to the [product documentation][vmware-docs-disk-mode].
2387
-
2388
- [vmware-docs-disk-mode]: https://vdc-download.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.vm.device.VirtualDiskOption.DiskMode.html
2791
+ The mode of this this virtual disk for purposes of writes and snapshotting. Can be one of append, independent_nonpersistent, independent_persistent, nonpersistent, persistent, or undoable.
2389
2792
  """
2390
2793
  return pulumi.get(self, "disk_mode")
2391
2794
 
@@ -2393,9 +2796,7 @@ class VirtualMachineDisk(dict):
2393
2796
  @pulumi.getter(name="diskSharing")
2394
2797
  def disk_sharing(self) -> Optional[str]:
2395
2798
  """
2396
- The sharing mode of this virtual disk. One of `sharingMultiWriter` or `sharingNone`. Default: `sharingNone`.
2397
-
2398
- > **NOTE:** Disk sharing is only available on vSphere 6.0 and later.
2799
+ The sharing mode of this virtual disk. Can be one of sharingMultiWriter or sharingNone.
2399
2800
  """
2400
2801
  return pulumi.get(self, "disk_sharing")
2401
2802
 
@@ -2403,7 +2804,7 @@ class VirtualMachineDisk(dict):
2403
2804
  @pulumi.getter(name="eagerlyScrub")
2404
2805
  def eagerly_scrub(self) -> Optional[bool]:
2405
2806
  """
2406
- If set to `true`, the disk space is zeroed out when the virtual machine is created. This will delay the creation of the virtual disk. Cannot be set to `true` when `thin_provisioned` is `true`. See the section on picking a disk type for more information. Default: `false`.
2807
+ The virtual disk file zeroing policy when thin_provision is not true. The default is false, which lazily-zeros the disk, speeding up thick-provisioned disk creation time.
2407
2808
  """
2408
2809
  return pulumi.get(self, "eagerly_scrub")
2409
2810
 
@@ -2411,7 +2812,7 @@ class VirtualMachineDisk(dict):
2411
2812
  @pulumi.getter(name="ioLimit")
2412
2813
  def io_limit(self) -> Optional[int]:
2413
2814
  """
2414
- The upper limit of IOPS that this disk can use. The default is no limit.
2815
+ The upper limit of IOPS that this disk can use.
2415
2816
  """
2416
2817
  return pulumi.get(self, "io_limit")
2417
2818
 
@@ -2419,7 +2820,7 @@ class VirtualMachineDisk(dict):
2419
2820
  @pulumi.getter(name="ioReservation")
2420
2821
  def io_reservation(self) -> Optional[int]:
2421
2822
  """
2422
- The I/O reservation (guarantee) for the virtual disk has, in IOPS. The default is no reservation.
2823
+ The I/O guarantee that this disk has, in IOPS.
2423
2824
  """
2424
2825
  return pulumi.get(self, "io_reservation")
2425
2826
 
@@ -2427,7 +2828,7 @@ class VirtualMachineDisk(dict):
2427
2828
  @pulumi.getter(name="ioShareCount")
2428
2829
  def io_share_count(self) -> Optional[int]:
2429
2830
  """
2430
- The share count for the virtual disk when the share level is `custom`.
2831
+ The share count for this disk when the share level is custom.
2431
2832
  """
2432
2833
  return pulumi.get(self, "io_share_count")
2433
2834
 
@@ -2435,7 +2836,7 @@ class VirtualMachineDisk(dict):
2435
2836
  @pulumi.getter(name="ioShareLevel")
2436
2837
  def io_share_level(self) -> Optional[str]:
2437
2838
  """
2438
- The share allocation level for the virtual disk. One of `low`, `normal`, `high`, or `custom`. Default: `normal`.
2839
+ The share allocation level for this disk. Can be one of low, normal, high, or custom.
2439
2840
  """
2440
2841
  return pulumi.get(self, "io_share_level")
2441
2842
 
@@ -2443,7 +2844,7 @@ class VirtualMachineDisk(dict):
2443
2844
  @pulumi.getter(name="keepOnRemove")
2444
2845
  def keep_on_remove(self) -> Optional[bool]:
2445
2846
  """
2446
- Keep this disk when removing the device or destroying the virtual machine. Default: `false`.
2847
+ Set to true to keep the underlying VMDK file when removing this virtual disk from configuration.
2447
2848
  """
2448
2849
  return pulumi.get(self, "keep_on_remove")
2449
2850
 
@@ -2459,11 +2860,7 @@ class VirtualMachineDisk(dict):
2459
2860
  @pulumi.getter
2460
2861
  def path(self) -> Optional[str]:
2461
2862
  """
2462
- The path to the ISO file. Required for using a datastore ISO. Conflicts with `client_device`.
2463
-
2464
- > **NOTE:** Either `client_device` (for a remote backed CD-ROM) or `datastore_id` and `path` (for a datastore ISO backed CD-ROM) are required to .
2465
-
2466
- > **NOTE:** Some CD-ROM drive types are not supported by this resource, such as pass-through devices. If these drives are present in a cloned template, or added outside of the provider, the desired state will be corrected to the defined device, or removed if no `cdrom` block is present.
2863
+ The full path of the virtual disk. This can only be provided if attach is set to true, otherwise it is a read-only value.
2467
2864
  """
2468
2865
  return pulumi.get(self, "path")
2469
2866
 
@@ -2471,7 +2868,7 @@ class VirtualMachineDisk(dict):
2471
2868
  @pulumi.getter
2472
2869
  def size(self) -> Optional[int]:
2473
2870
  """
2474
- The size of the disk, in GB. Must be a whole number.
2871
+ The size of the disk, in GB.
2475
2872
  """
2476
2873
  return pulumi.get(self, "size")
2477
2874
 
@@ -2479,7 +2876,7 @@ class VirtualMachineDisk(dict):
2479
2876
  @pulumi.getter(name="storagePolicyId")
2480
2877
  def storage_policy_id(self) -> Optional[str]:
2481
2878
  """
2482
- The UUID of the storage policy to assign to the virtual disk.
2879
+ The ID of the storage policy to assign to the virtual disk in VM.
2483
2880
  """
2484
2881
  return pulumi.get(self, "storage_policy_id")
2485
2882
 
@@ -2487,7 +2884,7 @@ class VirtualMachineDisk(dict):
2487
2884
  @pulumi.getter(name="thinProvisioned")
2488
2885
  def thin_provisioned(self) -> Optional[bool]:
2489
2886
  """
2490
- If `true`, the disk is thin provisioned, with space for the file being allocated on an as-needed basis. Cannot be set to `true` when `eagerly_scrub` is `true`. See the section on selecting a disk type for more information. Default: `true`.
2887
+ If true, this disk is thin provisioned, with space for the file being allocated on an as-needed basis.
2491
2888
  """
2492
2889
  return pulumi.get(self, "thin_provisioned")
2493
2890
 
@@ -2495,7 +2892,7 @@ class VirtualMachineDisk(dict):
2495
2892
  @pulumi.getter(name="unitNumber")
2496
2893
  def unit_number(self) -> Optional[int]:
2497
2894
  """
2498
- The disk number on the storage bus. The maximum value for this setting is the value of the controller count times the controller capacity (15 for SCSI, 30 for SATA, and 2 for IDE). Duplicate unit numbers are not allowed. Default `0`, for which one disk must be set to.
2895
+ The unique device number for this disk. This number determines where on the SCSI bus this device will be attached.
2499
2896
  """
2500
2897
  return pulumi.get(self, "unit_number")
2501
2898
 
@@ -2503,7 +2900,7 @@ class VirtualMachineDisk(dict):
2503
2900
  @pulumi.getter
2504
2901
  def uuid(self) -> Optional[str]:
2505
2902
  """
2506
- The UUID of the virtual disk VMDK file. This is used to track the virtual disk on the virtual machine.
2903
+ The UUID of the virtual machine. Also exposed as the `id` of the resource.
2507
2904
  """
2508
2905
  return pulumi.get(self, "uuid")
2509
2906
 
@@ -2511,7 +2908,7 @@ class VirtualMachineDisk(dict):
2511
2908
  @pulumi.getter(name="writeThrough")
2512
2909
  def write_through(self) -> Optional[bool]:
2513
2910
  """
2514
- If `true`, writes for this disk are sent directly to the filesystem immediately instead of being buffered. Default: `false`.
2911
+ If true, writes for this disk are sent directly to the filesystem immediately instead of being buffered.
2515
2912
  """
2516
2913
  return pulumi.get(self, "write_through")
2517
2914
 
@@ -2569,18 +2966,18 @@ class VirtualMachineNetworkInterface(dict):
2569
2966
  physical_function: Optional[str] = None,
2570
2967
  use_static_mac: Optional[bool] = None):
2571
2968
  """
2572
- :param str network_id: The [managed object reference ID][docs-about-morefs] of the network on which to connect the virtual machine network interface.
2573
- :param str adapter_type: The network interface type. One of `e1000`, `e1000e`, `sriov`, or `vmxnet3`. Default: `vmxnet3`.
2574
- :param int bandwidth_limit: The upper bandwidth limit of the network interface, in Mbits/sec. The default is no limit. Ignored if `adapter_type` is set to `sriov`.
2575
- :param int bandwidth_reservation: The bandwidth reservation of the network interface, in Mbits/sec. The default is no reservation.
2576
- :param int bandwidth_share_count: The share count for the network interface when the share level is `custom`. Ignored if `adapter_type` is set to `sriov`.
2577
- :param str bandwidth_share_level: The bandwidth share allocation level for the network interface. One of `low`, `normal`, `high`, or `custom`. Default: `normal`. Ignored if `adapter_type` is set to `sriov`.
2969
+ :param str network_id: The ID of the network to connect this network interface to.
2970
+ :param str adapter_type: The controller type. Can be one of e1000, e1000e, sriov, vmxnet3, or vrdma.
2971
+ :param int bandwidth_limit: The upper bandwidth limit of this network interface, in Mbits/sec.
2972
+ :param int bandwidth_reservation: The bandwidth reservation of this network interface, in Mbits/sec.
2973
+ :param int bandwidth_share_count: The share count for this network interface when the share level is custom.
2974
+ :param str bandwidth_share_level: The bandwidth share allocation level for this interface. Can be one of low, normal, high, or custom.
2578
2975
  :param str device_address: The internally-computed address of this device, such as scsi:0:1, denoting scsi bus #0 and device unit 1.
2579
2976
  :param int key: The ID of the device within the virtual machine.
2580
- :param str mac_address: The MAC address of the network interface. Can only be manually set if `use_static_mac` is `true`. Otherwise, the value is computed and presents the assigned MAC address for the interface.
2581
- :param str ovf_mapping: Specifies which NIC in an OVF/OVA the `network_interface` should be associated. Only applies at creation when deploying from an OVF/OVA.
2977
+ :param str mac_address: The MAC address of this network interface. Can only be manually set if use_static_mac is true.
2978
+ :param str ovf_mapping: Mapping of network interface to OVF network.
2582
2979
  :param str physical_function: The ID of the Physical SR-IOV NIC to attach to, e.g. '0000:d8:00.0'
2583
- :param bool use_static_mac: If true, the `mac_address` field is treated as a static MAC address and set accordingly. Setting this to `true` requires `mac_address` to be set. Default: `false`.
2980
+ :param bool use_static_mac: If true, the mac_address field is treated as a static MAC address and set accordingly.
2584
2981
  """
2585
2982
  pulumi.set(__self__, "network_id", network_id)
2586
2983
  if adapter_type is not None:
@@ -2610,7 +3007,7 @@ class VirtualMachineNetworkInterface(dict):
2610
3007
  @pulumi.getter(name="networkId")
2611
3008
  def network_id(self) -> str:
2612
3009
  """
2613
- The [managed object reference ID][docs-about-morefs] of the network on which to connect the virtual machine network interface.
3010
+ The ID of the network to connect this network interface to.
2614
3011
  """
2615
3012
  return pulumi.get(self, "network_id")
2616
3013
 
@@ -2618,7 +3015,7 @@ class VirtualMachineNetworkInterface(dict):
2618
3015
  @pulumi.getter(name="adapterType")
2619
3016
  def adapter_type(self) -> Optional[str]:
2620
3017
  """
2621
- The network interface type. One of `e1000`, `e1000e`, `sriov`, or `vmxnet3`. Default: `vmxnet3`.
3018
+ The controller type. Can be one of e1000, e1000e, sriov, vmxnet3, or vrdma.
2622
3019
  """
2623
3020
  return pulumi.get(self, "adapter_type")
2624
3021
 
@@ -2626,7 +3023,7 @@ class VirtualMachineNetworkInterface(dict):
2626
3023
  @pulumi.getter(name="bandwidthLimit")
2627
3024
  def bandwidth_limit(self) -> Optional[int]:
2628
3025
  """
2629
- The upper bandwidth limit of the network interface, in Mbits/sec. The default is no limit. Ignored if `adapter_type` is set to `sriov`.
3026
+ The upper bandwidth limit of this network interface, in Mbits/sec.
2630
3027
  """
2631
3028
  return pulumi.get(self, "bandwidth_limit")
2632
3029
 
@@ -2634,7 +3031,7 @@ class VirtualMachineNetworkInterface(dict):
2634
3031
  @pulumi.getter(name="bandwidthReservation")
2635
3032
  def bandwidth_reservation(self) -> Optional[int]:
2636
3033
  """
2637
- The bandwidth reservation of the network interface, in Mbits/sec. The default is no reservation.
3034
+ The bandwidth reservation of this network interface, in Mbits/sec.
2638
3035
  """
2639
3036
  return pulumi.get(self, "bandwidth_reservation")
2640
3037
 
@@ -2642,7 +3039,7 @@ class VirtualMachineNetworkInterface(dict):
2642
3039
  @pulumi.getter(name="bandwidthShareCount")
2643
3040
  def bandwidth_share_count(self) -> Optional[int]:
2644
3041
  """
2645
- The share count for the network interface when the share level is `custom`. Ignored if `adapter_type` is set to `sriov`.
3042
+ The share count for this network interface when the share level is custom.
2646
3043
  """
2647
3044
  return pulumi.get(self, "bandwidth_share_count")
2648
3045
 
@@ -2650,7 +3047,7 @@ class VirtualMachineNetworkInterface(dict):
2650
3047
  @pulumi.getter(name="bandwidthShareLevel")
2651
3048
  def bandwidth_share_level(self) -> Optional[str]:
2652
3049
  """
2653
- The bandwidth share allocation level for the network interface. One of `low`, `normal`, `high`, or `custom`. Default: `normal`. Ignored if `adapter_type` is set to `sriov`.
3050
+ The bandwidth share allocation level for this interface. Can be one of low, normal, high, or custom.
2654
3051
  """
2655
3052
  return pulumi.get(self, "bandwidth_share_level")
2656
3053
 
@@ -2674,7 +3071,7 @@ class VirtualMachineNetworkInterface(dict):
2674
3071
  @pulumi.getter(name="macAddress")
2675
3072
  def mac_address(self) -> Optional[str]:
2676
3073
  """
2677
- The MAC address of the network interface. Can only be manually set if `use_static_mac` is `true`. Otherwise, the value is computed and presents the assigned MAC address for the interface.
3074
+ The MAC address of this network interface. Can only be manually set if use_static_mac is true.
2678
3075
  """
2679
3076
  return pulumi.get(self, "mac_address")
2680
3077
 
@@ -2682,7 +3079,7 @@ class VirtualMachineNetworkInterface(dict):
2682
3079
  @pulumi.getter(name="ovfMapping")
2683
3080
  def ovf_mapping(self) -> Optional[str]:
2684
3081
  """
2685
- Specifies which NIC in an OVF/OVA the `network_interface` should be associated. Only applies at creation when deploying from an OVF/OVA.
3082
+ Mapping of network interface to OVF network.
2686
3083
  """
2687
3084
  return pulumi.get(self, "ovf_mapping")
2688
3085
 
@@ -2698,7 +3095,7 @@ class VirtualMachineNetworkInterface(dict):
2698
3095
  @pulumi.getter(name="useStaticMac")
2699
3096
  def use_static_mac(self) -> Optional[bool]:
2700
3097
  """
2701
- If true, the `mac_address` field is treated as a static MAC address and set accordingly. Setting this to `true` requires `mac_address` to be set. Default: `false`.
3098
+ If true, the mac_address field is treated as a static MAC address and set accordingly.
2702
3099
  """
2703
3100
  return pulumi.get(self, "use_static_mac")
2704
3101
 
@@ -2870,6 +3267,25 @@ class VirtualMachineVapp(dict):
2870
3267
  return pulumi.get(self, "properties")
2871
3268
 
2872
3269
 
3270
+ @pulumi.output_type
3271
+ class VirtualMachineVtpm(dict):
3272
+ def __init__(__self__, *,
3273
+ version: Optional[str] = None):
3274
+ """
3275
+ :param str version: The version of the TPM device. Default is 2.0.
3276
+ """
3277
+ if version is not None:
3278
+ pulumi.set(__self__, "version", version)
3279
+
3280
+ @property
3281
+ @pulumi.getter
3282
+ def version(self) -> Optional[str]:
3283
+ """
3284
+ The version of the TPM device. Default is 2.0.
3285
+ """
3286
+ return pulumi.get(self, "version")
3287
+
3288
+
2873
3289
  @pulumi.output_type
2874
3290
  class VmStoragePolicyTagRule(dict):
2875
3291
  @staticmethod
@@ -2938,10 +3354,10 @@ class VnicIpv4(dict):
2938
3354
  ip: Optional[str] = None,
2939
3355
  netmask: Optional[str] = None):
2940
3356
  """
2941
- :param bool dhcp: Use DHCP to configure the interface's IPv6 stack.
2942
- :param str gw: IP address of the default gateway, if DHCP or autoconfig is not set.
2943
- :param str ip: Address of the interface, if DHCP is not set.
2944
- :param str netmask: Netmask of the interface, if DHCP is not set.
3357
+ :param bool dhcp: Use DHCP to configure the interface's IPv4 stack.
3358
+ :param str gw: IP address of the default gateway, if DHCP is not set.
3359
+ :param str ip: address of the interface, if DHCP is not set.
3360
+ :param str netmask: netmask of the interface, if DHCP is not set.
2945
3361
  """
2946
3362
  if dhcp is not None:
2947
3363
  pulumi.set(__self__, "dhcp", dhcp)
@@ -2956,7 +3372,7 @@ class VnicIpv4(dict):
2956
3372
  @pulumi.getter
2957
3373
  def dhcp(self) -> Optional[bool]:
2958
3374
  """
2959
- Use DHCP to configure the interface's IPv6 stack.
3375
+ Use DHCP to configure the interface's IPv4 stack.
2960
3376
  """
2961
3377
  return pulumi.get(self, "dhcp")
2962
3378
 
@@ -2964,7 +3380,7 @@ class VnicIpv4(dict):
2964
3380
  @pulumi.getter
2965
3381
  def gw(self) -> Optional[str]:
2966
3382
  """
2967
- IP address of the default gateway, if DHCP or autoconfig is not set.
3383
+ IP address of the default gateway, if DHCP is not set.
2968
3384
  """
2969
3385
  return pulumi.get(self, "gw")
2970
3386
 
@@ -2972,7 +3388,7 @@ class VnicIpv4(dict):
2972
3388
  @pulumi.getter
2973
3389
  def ip(self) -> Optional[str]:
2974
3390
  """
2975
- Address of the interface, if DHCP is not set.
3391
+ address of the interface, if DHCP is not set.
2976
3392
  """
2977
3393
  return pulumi.get(self, "ip")
2978
3394
 
@@ -2980,7 +3396,7 @@ class VnicIpv4(dict):
2980
3396
  @pulumi.getter
2981
3397
  def netmask(self) -> Optional[str]:
2982
3398
  """
2983
- Netmask of the interface, if DHCP is not set.
3399
+ netmask of the interface, if DHCP is not set.
2984
3400
  """
2985
3401
  return pulumi.get(self, "netmask")
2986
3402
 
@@ -2995,7 +3411,7 @@ class VnicIpv6(dict):
2995
3411
  """
2996
3412
  :param Sequence[str] addresses: List of IPv6 addresses
2997
3413
  :param bool autoconfig: Use IPv6 Autoconfiguration (RFC2462).
2998
- :param bool dhcp: Use DHCP to configure the interface's IPv6 stack.
3414
+ :param bool dhcp: Use DHCP to configure the interface's IPv4 stack.
2999
3415
  :param str gw: IP address of the default gateway, if DHCP or autoconfig is not set.
3000
3416
  """
3001
3417
  if addresses is not None:
@@ -3027,7 +3443,7 @@ class VnicIpv6(dict):
3027
3443
  @pulumi.getter
3028
3444
  def dhcp(self) -> Optional[bool]:
3029
3445
  """
3030
- Use DHCP to configure the interface's IPv6 stack.
3446
+ Use DHCP to configure the interface's IPv4 stack.
3031
3447
  """
3032
3448
  return pulumi.get(self, "dhcp")
3033
3449
 
@@ -3256,6 +3672,7 @@ class GetGuestOsCustomizationSpecWindowsOptionResult(dict):
3256
3672
  auto_logon_count: int,
3257
3673
  computer_name: str,
3258
3674
  domain_admin_user: str,
3675
+ domain_ou: str,
3259
3676
  join_domain: str,
3260
3677
  run_once_command_lists: Sequence[str],
3261
3678
  time_zone: int,
@@ -3267,6 +3684,7 @@ class GetGuestOsCustomizationSpecWindowsOptionResult(dict):
3267
3684
  :param int auto_logon_count: Specifies how many times the guest operating system should auto-logon the Administrator account when `auto_logon` is `true`.
3268
3685
  :param str computer_name: The hostname for this virtual machine.
3269
3686
  :param str domain_admin_user: The user account of the domain administrator used to join this virtual machine to the domain.
3687
+ :param str domain_ou: The MachineObjectOU which specifies the full LDAP path name of the OU to which the virtual machine belongs.
3270
3688
  :param str join_domain: The Active Directory domain for the virtual machine to join.
3271
3689
  :param Sequence[str] run_once_command_lists: A list of commands to run at first user logon, after guest customization.
3272
3690
  :param int time_zone: The new time zone for the virtual machine. This is a sysprep-dictated timezone code.
@@ -3278,6 +3696,7 @@ class GetGuestOsCustomizationSpecWindowsOptionResult(dict):
3278
3696
  pulumi.set(__self__, "auto_logon_count", auto_logon_count)
3279
3697
  pulumi.set(__self__, "computer_name", computer_name)
3280
3698
  pulumi.set(__self__, "domain_admin_user", domain_admin_user)
3699
+ pulumi.set(__self__, "domain_ou", domain_ou)
3281
3700
  pulumi.set(__self__, "join_domain", join_domain)
3282
3701
  pulumi.set(__self__, "run_once_command_lists", run_once_command_lists)
3283
3702
  pulumi.set(__self__, "time_zone", time_zone)
@@ -3325,6 +3744,14 @@ class GetGuestOsCustomizationSpecWindowsOptionResult(dict):
3325
3744
  """
3326
3745
  return pulumi.get(self, "domain_admin_user")
3327
3746
 
3747
+ @property
3748
+ @pulumi.getter(name="domainOu")
3749
+ def domain_ou(self) -> str:
3750
+ """
3751
+ The MachineObjectOU which specifies the full LDAP path name of the OU to which the virtual machine belongs.
3752
+ """
3753
+ return pulumi.get(self, "domain_ou")
3754
+
3328
3755
  @property
3329
3756
  @pulumi.getter(name="joinDomain")
3330
3757
  def join_domain(self) -> str:
@@ -3366,6 +3793,97 @@ class GetGuestOsCustomizationSpecWindowsOptionResult(dict):
3366
3793
  return pulumi.get(self, "domain_admin_password")
3367
3794
 
3368
3795
 
3796
+ @pulumi.output_type
3797
+ class GetHostVgpuProfileVgpuProfileResult(dict):
3798
+ def __init__(__self__, *,
3799
+ disk_snapshot_supported: bool,
3800
+ memory_snapshot_supported: bool,
3801
+ migrate_supported: bool,
3802
+ suspend_supported: bool,
3803
+ vgpu: str):
3804
+ """
3805
+ :param bool disk_snapshot_supported: Indicates whether the GPU plugin on this host is
3806
+ capable of disk-only snapshots when VM is not powered off.
3807
+ :param bool memory_snapshot_supported: Indicates whether the GPU plugin on this host
3808
+ is capable of memory snapshots.
3809
+ :param bool migrate_supported: Indicates whether the GPU plugin on this host is
3810
+ capable of migration.
3811
+ :param bool suspend_supported: Indicates whether the GPU plugin on this host is
3812
+ capable of suspend-resume.
3813
+ :param str vgpu: Name of a particular vGPU available as a shared GPU device (vGPU
3814
+ profile).
3815
+ """
3816
+ pulumi.set(__self__, "disk_snapshot_supported", disk_snapshot_supported)
3817
+ pulumi.set(__self__, "memory_snapshot_supported", memory_snapshot_supported)
3818
+ pulumi.set(__self__, "migrate_supported", migrate_supported)
3819
+ pulumi.set(__self__, "suspend_supported", suspend_supported)
3820
+ pulumi.set(__self__, "vgpu", vgpu)
3821
+
3822
+ @property
3823
+ @pulumi.getter(name="diskSnapshotSupported")
3824
+ def disk_snapshot_supported(self) -> bool:
3825
+ """
3826
+ Indicates whether the GPU plugin on this host is
3827
+ capable of disk-only snapshots when VM is not powered off.
3828
+ """
3829
+ return pulumi.get(self, "disk_snapshot_supported")
3830
+
3831
+ @property
3832
+ @pulumi.getter(name="memorySnapshotSupported")
3833
+ def memory_snapshot_supported(self) -> bool:
3834
+ """
3835
+ Indicates whether the GPU plugin on this host
3836
+ is capable of memory snapshots.
3837
+ """
3838
+ return pulumi.get(self, "memory_snapshot_supported")
3839
+
3840
+ @property
3841
+ @pulumi.getter(name="migrateSupported")
3842
+ def migrate_supported(self) -> bool:
3843
+ """
3844
+ Indicates whether the GPU plugin on this host is
3845
+ capable of migration.
3846
+ """
3847
+ return pulumi.get(self, "migrate_supported")
3848
+
3849
+ @property
3850
+ @pulumi.getter(name="suspendSupported")
3851
+ def suspend_supported(self) -> bool:
3852
+ """
3853
+ Indicates whether the GPU plugin on this host is
3854
+ capable of suspend-resume.
3855
+ """
3856
+ return pulumi.get(self, "suspend_supported")
3857
+
3858
+ @property
3859
+ @pulumi.getter
3860
+ def vgpu(self) -> str:
3861
+ """
3862
+ Name of a particular vGPU available as a shared GPU device (vGPU
3863
+ profile).
3864
+ """
3865
+ return pulumi.get(self, "vgpu")
3866
+
3867
+
3868
+ @pulumi.output_type
3869
+ class GetNetworkFilterResult(dict):
3870
+ def __init__(__self__, *,
3871
+ network_type: Optional[str] = None):
3872
+ """
3873
+ :param str network_type: This is required if you have multiple port groups with the same name. This will be one of `DistributedVirtualPortgroup` for distributed port groups, `Network` for standard (host-based) port groups, or `OpaqueNetwork` for networks managed externally, such as those managed by NSX.
3874
+ """
3875
+ if network_type is not None:
3876
+ pulumi.set(__self__, "network_type", network_type)
3877
+
3878
+ @property
3879
+ @pulumi.getter(name="networkType")
3880
+ def network_type(self) -> Optional[str]:
3881
+ """
3882
+ This is required if you have multiple port groups with the same name. This will be one of `DistributedVirtualPortgroup` for distributed port groups, `Network` for standard (host-based) port groups, or `OpaqueNetwork` for networks managed externally, such as those managed by NSX.
3883
+ """
3884
+ return pulumi.get(self, "network_type")
3885
+
3886
+
3369
3887
  @pulumi.output_type
3370
3888
  class GetVirtualMachineDiskResult(dict):
3371
3889
  def __init__(__self__, *,
@@ -3440,21 +3958,21 @@ class GetVirtualMachineNetworkInterfaceResult(dict):
3440
3958
  bandwidth_reservation: Optional[int] = None,
3441
3959
  bandwidth_share_level: Optional[str] = None):
3442
3960
  """
3443
- :param str adapter_type: The network interface types for each network interface found
3444
- on the virtual machine, in device bus order. Will be one of `e1000`, `e1000e`,
3445
- `vmxnet3vrdma`, or `vmxnet3`.
3961
+ :param str adapter_type: The network interface types for each network interface found
3962
+ on the virtual machine, in device bus order. Will be one of `e1000`,
3963
+ `e1000e`, `vmxnet3vrdma`, or `vmxnet3`.
3446
3964
  :param int bandwidth_share_count: The share count for this network interface when the
3447
3965
  share level is custom.
3448
3966
  :param str mac_address: The MAC address of this network interface.
3449
- :param str network_id: The managed object reference ID of the network this interface is
3450
- connected to.
3967
+ :param str network_id: The managed object reference ID of the network this interface
3968
+ is connected to.
3451
3969
  :param str physical_function: The ID of the Physical SR-IOV NIC to attach to, e.g. '0000:d8:00.0'
3452
- :param int bandwidth_limit: The upper bandwidth limit of this network interface,
3970
+ :param int bandwidth_limit: The upper bandwidth limit of this network interface,
3453
3971
  in Mbits/sec.
3454
- :param int bandwidth_reservation: The bandwidth reservation of this network interface,
3455
- in Mbits/sec.
3456
- :param str bandwidth_share_level: The bandwidth share allocation level for this interface.
3457
- Can be one of `low`, `normal`, `high`, or `custom`.
3972
+ :param int bandwidth_reservation: The bandwidth reservation of this network
3973
+ interface, in Mbits/sec.
3974
+ :param str bandwidth_share_level: The bandwidth share allocation level for this
3975
+ interface. Can be one of `low`, `normal`, `high`, or `custom`.
3458
3976
  """
3459
3977
  pulumi.set(__self__, "adapter_type", adapter_type)
3460
3978
  pulumi.set(__self__, "bandwidth_share_count", bandwidth_share_count)
@@ -3472,9 +3990,9 @@ class GetVirtualMachineNetworkInterfaceResult(dict):
3472
3990
  @pulumi.getter(name="adapterType")
3473
3991
  def adapter_type(self) -> str:
3474
3992
  """
3475
- The network interface types for each network interface found
3476
- on the virtual machine, in device bus order. Will be one of `e1000`, `e1000e`,
3477
- `vmxnet3vrdma`, or `vmxnet3`.
3993
+ The network interface types for each network interface found
3994
+ on the virtual machine, in device bus order. Will be one of `e1000`,
3995
+ `e1000e`, `vmxnet3vrdma`, or `vmxnet3`.
3478
3996
  """
3479
3997
  return pulumi.get(self, "adapter_type")
3480
3998
 
@@ -3499,8 +4017,8 @@ class GetVirtualMachineNetworkInterfaceResult(dict):
3499
4017
  @pulumi.getter(name="networkId")
3500
4018
  def network_id(self) -> str:
3501
4019
  """
3502
- The managed object reference ID of the network this interface is
3503
- connected to.
4020
+ The managed object reference ID of the network this interface
4021
+ is connected to.
3504
4022
  """
3505
4023
  return pulumi.get(self, "network_id")
3506
4024
 
@@ -3516,7 +4034,7 @@ class GetVirtualMachineNetworkInterfaceResult(dict):
3516
4034
  @pulumi.getter(name="bandwidthLimit")
3517
4035
  def bandwidth_limit(self) -> Optional[int]:
3518
4036
  """
3519
- The upper bandwidth limit of this network interface,
4037
+ The upper bandwidth limit of this network interface,
3520
4038
  in Mbits/sec.
3521
4039
  """
3522
4040
  return pulumi.get(self, "bandwidth_limit")
@@ -3525,8 +4043,8 @@ class GetVirtualMachineNetworkInterfaceResult(dict):
3525
4043
  @pulumi.getter(name="bandwidthReservation")
3526
4044
  def bandwidth_reservation(self) -> Optional[int]:
3527
4045
  """
3528
- The bandwidth reservation of this network interface,
3529
- in Mbits/sec.
4046
+ The bandwidth reservation of this network
4047
+ interface, in Mbits/sec.
3530
4048
  """
3531
4049
  return pulumi.get(self, "bandwidth_reservation")
3532
4050
 
@@ -3534,8 +4052,8 @@ class GetVirtualMachineNetworkInterfaceResult(dict):
3534
4052
  @pulumi.getter(name="bandwidthShareLevel")
3535
4053
  def bandwidth_share_level(self) -> Optional[str]:
3536
4054
  """
3537
- The bandwidth share allocation level for this interface.
3538
- Can be one of `low`, `normal`, `high`, or `custom`.
4055
+ The bandwidth share allocation level for this
4056
+ interface. Can be one of `low`, `normal`, `high`, or `custom`.
3539
4057
  """
3540
4058
  return pulumi.get(self, "bandwidth_share_level")
3541
4059