pulumi-vsphere 4.10.0a1710245029__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 +28 -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 +29 -21
  33. pulumi_vsphere/get_datastore_cluster.py +31 -10
  34. pulumi_vsphere/get_datastore_stats.py +63 -57
  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 +20 -15
  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 +205 -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 +717 -270
  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 +698 -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.0a1710245029.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.0a1710245029.dist-info → pulumi_vsphere-4.13.0a1736836157.dist-info}/WHEEL +1 -1
  84. pulumi_vsphere-4.10.0a1710245029.dist-info/RECORD +0 -82
  85. {pulumi_vsphere-4.10.0a1710245029.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',
@@ -46,19 +63,99 @@ __all__ = [
46
63
  'GetGuestOsCustomizationSpecNetworkInterfaceResult',
47
64
  'GetGuestOsCustomizationSpecWindowsOptionResult',
48
65
  'GetHostVgpuProfileVgpuProfileResult',
66
+ 'GetNetworkFilterResult',
49
67
  'GetVirtualMachineDiskResult',
50
68
  'GetVirtualMachineNetworkInterfaceResult',
51
69
  'GetVirtualMachineVappResult',
52
70
  ]
53
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
+
54
151
  @pulumi.output_type
55
152
  class ComputeClusterVsanDiskGroup(dict):
56
153
  def __init__(__self__, *,
57
154
  cache: Optional[str] = None,
58
155
  storages: Optional[Sequence[str]] = None):
59
156
  """
60
- :param str cache: The canonical name of the disk to use for vSAN cache.
61
- :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.
62
159
  """
63
160
  if cache is not None:
64
161
  pulumi.set(__self__, "cache", cache)
@@ -69,7 +166,7 @@ class ComputeClusterVsanDiskGroup(dict):
69
166
  @pulumi.getter
70
167
  def cache(self) -> Optional[str]:
71
168
  """
72
- The canonical name of the disk to use for vSAN cache.
169
+ Cache disk.
73
170
  """
74
171
  return pulumi.get(self, "cache")
75
172
 
@@ -77,7 +174,7 @@ class ComputeClusterVsanDiskGroup(dict):
77
174
  @pulumi.getter
78
175
  def storages(self) -> Optional[Sequence[str]]:
79
176
  """
80
- An array of disk canonical names for vSAN storage.
177
+ List of storage disks.
81
178
  """
82
179
  return pulumi.get(self, "storages")
83
180
 
@@ -201,56 +298,8 @@ class ComputeClusterVsanStretchedCluster(dict):
201
298
  :param Sequence[str] preferred_fault_domain_host_ids: The managed object IDs of the hosts to put in the first fault domain.
202
299
  :param Sequence[str] secondary_fault_domain_host_ids: The managed object IDs of the hosts to put in the second fault domain.
203
300
  :param str witness_node: The managed object IDs of the host selected as witness node when enable stretched cluster.
204
- :param str preferred_fault_domain_name: The name of first fault domain. Default is `Preferred`.
205
- :param str secondary_fault_domain_name: The name of second fault domain. Default is `Secondary`.
206
-
207
- > **NOTE:** You must disable vSphere HA before you enable vSAN on the cluster.
208
- You can enable or re-enable vSphere HA after vSAN is configured.
209
-
210
- <!--Start PulumiCodeChooser -->
211
- ```python
212
- import pulumi
213
- import pulumi_vsphere as vsphere
214
-
215
- compute_cluster = vsphere.ComputeCluster("computeCluster",
216
- datacenter_id=data["vsphere_datacenter"]["datacenter"]["id"],
217
- host_system_ids=[[__item["id"] for __item in data["vsphere_host"]["host"]]],
218
- drs_enabled=True,
219
- drs_automation_level="fullyAutomated",
220
- ha_enabled=False,
221
- vsan_enabled=True,
222
- vsan_esa_enabled=True,
223
- vsan_dedup_enabled=True,
224
- vsan_compression_enabled=True,
225
- vsan_performance_enabled=True,
226
- vsan_verbose_mode_enabled=True,
227
- vsan_network_diagnostic_mode_enabled=True,
228
- vsan_unmap_enabled=True,
229
- vsan_dit_encryption_enabled=True,
230
- vsan_dit_rekey_interval=1800,
231
- vsan_disk_groups=[vsphere.ComputeClusterVsanDiskGroupArgs(
232
- cache=data["vsphere_vmfs_disks"]["cache_disks"],
233
- storages=data["vsphere_vmfs_disks"]["storage_disks"],
234
- )],
235
- vsan_fault_domains=[vsphere.ComputeClusterVsanFaultDomainArgs(
236
- fault_domains=[
237
- vsphere.ComputeClusterVsanFaultDomainFaultDomainArgs(
238
- name="fd1",
239
- host_ids=[[__item["id"] for __item in data["vsphere_host"]["faultdomain1_hosts"]]],
240
- ),
241
- vsphere.ComputeClusterVsanFaultDomainFaultDomainArgs(
242
- name="fd2",
243
- host_ids=[[__item["id"] for __item in data["vsphere_host"]["faultdomain2_hosts"]]],
244
- ),
245
- ],
246
- )],
247
- vsan_stretched_cluster=vsphere.ComputeClusterVsanStretchedClusterArgs(
248
- preferred_fault_domain_host_ids=[[__item["id"] for __item in data["vsphere_host"]["preferred_fault_domain_host"]]],
249
- secondary_fault_domain_host_ids=[[__item["id"] for __item in data["vsphere_host"]["secondary_fault_domain_host"]]],
250
- witness_node=data["vsphere_host"]["witness_host"]["id"],
251
- ))
252
- ```
253
- <!--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.
254
303
  """
255
304
  pulumi.set(__self__, "preferred_fault_domain_host_ids", preferred_fault_domain_host_ids)
256
305
  pulumi.set(__self__, "secondary_fault_domain_host_ids", secondary_fault_domain_host_ids)
@@ -288,7 +337,7 @@ class ComputeClusterVsanStretchedCluster(dict):
288
337
  @pulumi.getter(name="preferredFaultDomainName")
289
338
  def preferred_fault_domain_name(self) -> Optional[str]:
290
339
  """
291
- The name of first fault domain. Default is `Preferred`.
340
+ The name of prepferred fault domain.
292
341
  """
293
342
  return pulumi.get(self, "preferred_fault_domain_name")
294
343
 
@@ -296,55 +345,7 @@ class ComputeClusterVsanStretchedCluster(dict):
296
345
  @pulumi.getter(name="secondaryFaultDomainName")
297
346
  def secondary_fault_domain_name(self) -> Optional[str]:
298
347
  """
299
- The name of second fault domain. Default is `Secondary`.
300
-
301
- > **NOTE:** You must disable vSphere HA before you enable vSAN on the cluster.
302
- You can enable or re-enable vSphere HA after vSAN is configured.
303
-
304
- <!--Start PulumiCodeChooser -->
305
- ```python
306
- import pulumi
307
- import pulumi_vsphere as vsphere
308
-
309
- compute_cluster = vsphere.ComputeCluster("computeCluster",
310
- datacenter_id=data["vsphere_datacenter"]["datacenter"]["id"],
311
- host_system_ids=[[__item["id"] for __item in data["vsphere_host"]["host"]]],
312
- drs_enabled=True,
313
- drs_automation_level="fullyAutomated",
314
- ha_enabled=False,
315
- vsan_enabled=True,
316
- vsan_esa_enabled=True,
317
- vsan_dedup_enabled=True,
318
- vsan_compression_enabled=True,
319
- vsan_performance_enabled=True,
320
- vsan_verbose_mode_enabled=True,
321
- vsan_network_diagnostic_mode_enabled=True,
322
- vsan_unmap_enabled=True,
323
- vsan_dit_encryption_enabled=True,
324
- vsan_dit_rekey_interval=1800,
325
- vsan_disk_groups=[vsphere.ComputeClusterVsanDiskGroupArgs(
326
- cache=data["vsphere_vmfs_disks"]["cache_disks"],
327
- storages=data["vsphere_vmfs_disks"]["storage_disks"],
328
- )],
329
- vsan_fault_domains=[vsphere.ComputeClusterVsanFaultDomainArgs(
330
- fault_domains=[
331
- vsphere.ComputeClusterVsanFaultDomainFaultDomainArgs(
332
- name="fd1",
333
- host_ids=[[__item["id"] for __item in data["vsphere_host"]["faultdomain1_hosts"]]],
334
- ),
335
- vsphere.ComputeClusterVsanFaultDomainFaultDomainArgs(
336
- name="fd2",
337
- host_ids=[[__item["id"] for __item in data["vsphere_host"]["faultdomain2_hosts"]]],
338
- ),
339
- ],
340
- )],
341
- vsan_stretched_cluster=vsphere.ComputeClusterVsanStretchedClusterArgs(
342
- preferred_fault_domain_host_ids=[[__item["id"] for __item in data["vsphere_host"]["preferred_fault_domain_host"]]],
343
- secondary_fault_domain_host_ids=[[__item["id"] for __item in data["vsphere_host"]["secondary_fault_domain_host"]]],
344
- witness_node=data["vsphere_host"]["witness_host"]["id"],
345
- ))
346
- ```
347
- <!--End PulumiCodeChooser -->
348
+ The name of secondary fault domain.
348
349
  """
349
350
  return pulumi.get(self, "secondary_fault_domain_name")
350
351
 
@@ -377,11 +378,11 @@ class ContentLibraryPublication(dict):
377
378
  published: Optional[bool] = None,
378
379
  username: Optional[str] = None):
379
380
  """
380
- :param str authentication_method: Authentication method to connect ro a published content library. Must be `NONE` or `BASIC`.
381
- :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.
382
383
  :param str publish_url: The URL of the published content library.
383
384
  :param bool published: Publish the content library. Default `false`.
384
- :param str username: Username used for authentication.
385
+ :param str username: Username used by subscribers to authenticate. Currently can only be `vcsp`.
385
386
  """
386
387
  if authentication_method is not None:
387
388
  pulumi.set(__self__, "authentication_method", authentication_method)
@@ -398,7 +399,7 @@ class ContentLibraryPublication(dict):
398
399
  @pulumi.getter(name="authenticationMethod")
399
400
  def authentication_method(self) -> Optional[str]:
400
401
  """
401
- Authentication method to connect ro a published content library. Must be `NONE` or `BASIC`.
402
+ Method to authenticate users. Must be `NONE` or `BASIC`.
402
403
  """
403
404
  return pulumi.get(self, "authentication_method")
404
405
 
@@ -406,7 +407,7 @@ class ContentLibraryPublication(dict):
406
407
  @pulumi.getter
407
408
  def password(self) -> Optional[str]:
408
409
  """
409
- Password used for authentication.
410
+ Password used by subscribers to authenticate.
410
411
  """
411
412
  return pulumi.get(self, "password")
412
413
 
@@ -430,7 +431,7 @@ class ContentLibraryPublication(dict):
430
431
  @pulumi.getter
431
432
  def username(self) -> Optional[str]:
432
433
  """
433
- Username used for authentication.
434
+ Username used by subscribers to authenticate. Currently can only be `vcsp`.
434
435
  """
435
436
  return pulumi.get(self, "username")
436
437
 
@@ -608,10 +609,8 @@ class DistributedVirtualSwitchHost(dict):
608
609
  host_system_id: str,
609
610
  devices: Optional[Sequence[str]] = None):
610
611
  """
611
- :param str host_system_id: The host system ID of the host to add to the
612
- VDS.
613
- :param Sequence[str] devices: The list of NIC devices to map to uplinks on the VDS,
614
- 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.
615
614
  """
616
615
  pulumi.set(__self__, "host_system_id", host_system_id)
617
616
  if devices is not None:
@@ -621,8 +620,7 @@ class DistributedVirtualSwitchHost(dict):
621
620
  @pulumi.getter(name="hostSystemId")
622
621
  def host_system_id(self) -> str:
623
622
  """
624
- The host system ID of the host to add to the
625
- VDS.
623
+ The managed object ID of the host this specification applies to.
626
624
  """
627
625
  return pulumi.get(self, "host_system_id")
628
626
 
@@ -630,8 +628,7 @@ class DistributedVirtualSwitchHost(dict):
630
628
  @pulumi.getter
631
629
  def devices(self) -> Optional[Sequence[str]]:
632
630
  """
633
- The list of NIC devices to map to uplinks on the VDS,
634
- added in order they are specified.
631
+ Name of the physical NIC to be added to the proxy switch.
635
632
  """
636
633
  return pulumi.get(self, "devices")
637
634
 
@@ -664,12 +661,9 @@ class DistributedVirtualSwitchPvlanMapping(dict):
664
661
  pvlan_type: str,
665
662
  secondary_vlan_id: int):
666
663
  """
667
- :param int primary_vlan_id: The primary VLAN ID. The VLAN IDs of 0 and
668
- 4095 are reserved and cannot be used in this property.
669
- :param str pvlan_type: The private VLAN type. Valid values are
670
- promiscuous, community and isolated.
671
- :param int secondary_vlan_id: The secondary VLAN ID. The VLAN IDs of 0
672
- 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.
673
667
  """
674
668
  pulumi.set(__self__, "primary_vlan_id", primary_vlan_id)
675
669
  pulumi.set(__self__, "pvlan_type", pvlan_type)
@@ -679,8 +673,7 @@ class DistributedVirtualSwitchPvlanMapping(dict):
679
673
  @pulumi.getter(name="primaryVlanId")
680
674
  def primary_vlan_id(self) -> int:
681
675
  """
682
- The primary VLAN ID. The VLAN IDs of 0 and
683
- 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.
684
677
  """
685
678
  return pulumi.get(self, "primary_vlan_id")
686
679
 
@@ -688,8 +681,7 @@ class DistributedVirtualSwitchPvlanMapping(dict):
688
681
  @pulumi.getter(name="pvlanType")
689
682
  def pvlan_type(self) -> str:
690
683
  """
691
- The private VLAN type. Valid values are
692
- promiscuous, community and isolated.
684
+ The private VLAN type. Valid values are promiscuous, community and isolated.
693
685
  """
694
686
  return pulumi.get(self, "pvlan_type")
695
687
 
@@ -697,8 +689,7 @@ class DistributedVirtualSwitchPvlanMapping(dict):
697
689
  @pulumi.getter(name="secondaryVlanId")
698
690
  def secondary_vlan_id(self) -> int:
699
691
  """
700
- The secondary VLAN ID. The VLAN IDs of 0
701
- 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.
702
693
  """
703
694
  return pulumi.get(self, "secondary_vlan_id")
704
695
 
@@ -780,9 +771,12 @@ class EntityPermissionsPermission(dict):
780
771
  role_id: str,
781
772
  user_or_group: str):
782
773
  """
783
- :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.
784
- :param bool propagate: Whether or not this permission propagates down the hierarchy to sub-entities.
785
- :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.
786
780
  :param str user_or_group: The user/group getting the permission.
787
781
  """
788
782
  pulumi.set(__self__, "is_group", is_group)
@@ -794,7 +788,8 @@ class EntityPermissionsPermission(dict):
794
788
  @pulumi.getter(name="isGroup")
795
789
  def is_group(self) -> bool:
796
790
  """
797
- 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.
798
793
  """
799
794
  return pulumi.get(self, "is_group")
800
795
 
@@ -802,7 +797,8 @@ class EntityPermissionsPermission(dict):
802
797
  @pulumi.getter
803
798
  def propagate(self) -> bool:
804
799
  """
805
- 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.
806
802
  """
807
803
  return pulumi.get(self, "propagate")
808
804
 
@@ -810,7 +806,8 @@ class EntityPermissionsPermission(dict):
810
806
  @pulumi.getter(name="roleId")
811
807
  def role_id(self) -> str:
812
808
  """
813
- 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.
814
811
  """
815
812
  return pulumi.get(self, "role_id")
816
813
 
@@ -1168,6 +1165,8 @@ class GuestOsCustomizationSpecWindowsOptions(dict):
1168
1165
  suggest = "domain_admin_password"
1169
1166
  elif key == "domainAdminUser":
1170
1167
  suggest = "domain_admin_user"
1168
+ elif key == "domainOu":
1169
+ suggest = "domain_ou"
1171
1170
  elif key == "fullName":
1172
1171
  suggest = "full_name"
1173
1172
  elif key == "joinDomain":
@@ -1199,6 +1198,7 @@ class GuestOsCustomizationSpecWindowsOptions(dict):
1199
1198
  auto_logon_count: Optional[int] = None,
1200
1199
  domain_admin_password: Optional[str] = None,
1201
1200
  domain_admin_user: Optional[str] = None,
1201
+ domain_ou: Optional[str] = None,
1202
1202
  full_name: Optional[str] = None,
1203
1203
  join_domain: Optional[str] = None,
1204
1204
  organization_name: Optional[str] = None,
@@ -1213,6 +1213,7 @@ class GuestOsCustomizationSpecWindowsOptions(dict):
1213
1213
  :param int auto_logon_count: Specifies how many times the VM should auto-logon the Administrator account when auto_logon is true.
1214
1214
  :param str domain_admin_password: The password of the domain administrator used to join this virtual machine to the domain.
1215
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.
1216
1217
  :param str full_name: The full name of the user of this virtual machine.
1217
1218
  :param str join_domain: The domain that the virtual machine should join.
1218
1219
  :param str organization_name: The organization name this virtual machine is being installed for.
@@ -1232,6 +1233,8 @@ class GuestOsCustomizationSpecWindowsOptions(dict):
1232
1233
  pulumi.set(__self__, "domain_admin_password", domain_admin_password)
1233
1234
  if domain_admin_user is not None:
1234
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)
1235
1238
  if full_name is not None:
1236
1239
  pulumi.set(__self__, "full_name", full_name)
1237
1240
  if join_domain is not None:
@@ -1295,6 +1298,14 @@ class GuestOsCustomizationSpecWindowsOptions(dict):
1295
1298
  """
1296
1299
  return pulumi.get(self, "domain_admin_user")
1297
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
+
1298
1309
  @property
1299
1310
  @pulumi.getter(name="fullName")
1300
1311
  def full_name(self) -> Optional[str]:
@@ -1412,6 +1423,405 @@ class HostPortGroupPort(dict):
1412
1423
  return pulumi.get(self, "type")
1413
1424
 
1414
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
+
1415
1825
  @pulumi.output_type
1416
1826
  class VirtualMachineCdrom(dict):
1417
1827
  @staticmethod
@@ -1442,15 +1852,11 @@ class VirtualMachineCdrom(dict):
1442
1852
  key: Optional[int] = None,
1443
1853
  path: Optional[str] = None):
1444
1854
  """
1445
- :param bool client_device: Indicates whether the device should be backed by remote client device. Conflicts with `datastore_id` and `path`.
1446
- :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.
1447
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.
1448
1858
  :param int key: The ID of the device within the virtual machine.
1449
- :param str path: The path to the ISO file. Required for using a datastore ISO. Conflicts with `client_device`.
1450
-
1451
- > **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 .
1452
-
1453
- > **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.
1454
1860
  """
1455
1861
  if client_device is not None:
1456
1862
  pulumi.set(__self__, "client_device", client_device)
@@ -1467,7 +1873,7 @@ class VirtualMachineCdrom(dict):
1467
1873
  @pulumi.getter(name="clientDevice")
1468
1874
  def client_device(self) -> Optional[bool]:
1469
1875
  """
1470
- 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
1471
1877
  """
1472
1878
  return pulumi.get(self, "client_device")
1473
1879
 
@@ -1475,7 +1881,7 @@ class VirtualMachineCdrom(dict):
1475
1881
  @pulumi.getter(name="datastoreId")
1476
1882
  def datastore_id(self) -> Optional[str]:
1477
1883
  """
1478
- 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.
1479
1885
  """
1480
1886
  return pulumi.get(self, "datastore_id")
1481
1887
 
@@ -1499,11 +1905,7 @@ class VirtualMachineCdrom(dict):
1499
1905
  @pulumi.getter
1500
1906
  def path(self) -> Optional[str]:
1501
1907
  """
1502
- The path to the ISO file. Required for using a datastore ISO. Conflicts with `client_device`.
1503
-
1504
- > **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 .
1505
-
1506
- > **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.
1507
1909
  """
1508
1910
  return pulumi.get(self, "path")
1509
1911
 
@@ -1702,7 +2104,7 @@ class VirtualMachineCloneCustomize(dict):
1702
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.
1703
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.
1704
2106
  :param 'VirtualMachineCloneCustomizeLinuxOptionsArgs' linux_options: A list of configuration options specific to Linux virtual machines.
1705
- :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.
1706
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.
1707
2109
  :param 'VirtualMachineCloneCustomizeWindowsOptionsArgs' windows_options: A list of configuration options specific to Windows virtual machines.
1708
2110
  :param str windows_sysprep_text: Use this option to specify a windows sysprep file directly.
@@ -1770,7 +2172,7 @@ class VirtualMachineCloneCustomize(dict):
1770
2172
  @pulumi.getter(name="networkInterfaces")
1771
2173
  def network_interfaces(self) -> Optional[Sequence['outputs.VirtualMachineCloneCustomizeNetworkInterface']]:
1772
2174
  """
1773
- 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.
1774
2176
  """
1775
2177
  return pulumi.get(self, "network_interfaces")
1776
2178
 
@@ -2010,6 +2412,8 @@ class VirtualMachineCloneCustomizeWindowsOptions(dict):
2010
2412
  suggest = "domain_admin_password"
2011
2413
  elif key == "domainAdminUser":
2012
2414
  suggest = "domain_admin_user"
2415
+ elif key == "domainOu":
2416
+ suggest = "domain_ou"
2013
2417
  elif key == "fullName":
2014
2418
  suggest = "full_name"
2015
2419
  elif key == "joinDomain":
@@ -2041,6 +2445,7 @@ class VirtualMachineCloneCustomizeWindowsOptions(dict):
2041
2445
  auto_logon_count: Optional[int] = None,
2042
2446
  domain_admin_password: Optional[str] = None,
2043
2447
  domain_admin_user: Optional[str] = None,
2448
+ domain_ou: Optional[str] = None,
2044
2449
  full_name: Optional[str] = None,
2045
2450
  join_domain: Optional[str] = None,
2046
2451
  organization_name: Optional[str] = None,
@@ -2055,6 +2460,7 @@ class VirtualMachineCloneCustomizeWindowsOptions(dict):
2055
2460
  :param int auto_logon_count: Specifies how many times the VM should auto-logon the Administrator account when auto_logon is true.
2056
2461
  :param str domain_admin_password: The password of the domain administrator used to join this virtual machine to the domain.
2057
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.
2058
2464
  :param str full_name: The full name of the user of this virtual machine.
2059
2465
  :param str join_domain: The domain that the virtual machine should join.
2060
2466
  :param str organization_name: The organization name this virtual machine is being installed for.
@@ -2074,6 +2480,8 @@ class VirtualMachineCloneCustomizeWindowsOptions(dict):
2074
2480
  pulumi.set(__self__, "domain_admin_password", domain_admin_password)
2075
2481
  if domain_admin_user is not None:
2076
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)
2077
2485
  if full_name is not None:
2078
2486
  pulumi.set(__self__, "full_name", full_name)
2079
2487
  if join_domain is not None:
@@ -2137,6 +2545,14 @@ class VirtualMachineCloneCustomizeWindowsOptions(dict):
2137
2545
  """
2138
2546
  return pulumi.get(self, "domain_admin_user")
2139
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
+
2140
2556
  @property
2141
2557
  @pulumi.getter(name="fullName")
2142
2558
  def full_name(self) -> Optional[str]:
@@ -2265,36 +2681,26 @@ class VirtualMachineDisk(dict):
2265
2681
  write_through: Optional[bool] = None):
2266
2682
  """
2267
2683
  :param str label: A unique label for this disk.
2268
- :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.
2269
-
2270
- > **NOTE:** External disks cannot be attached when `datastore_cluster_id` is used.
2271
- :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`.
2272
- :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.
2273
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.
2274
- :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].
2275
-
2276
- [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
2277
- :param str disk_sharing: The sharing mode of this virtual disk. One of `sharingMultiWriter` or `sharingNone`. Default: `sharingNone`.
2278
-
2279
- > **NOTE:** Disk sharing is only available on vSphere 6.0 and later.
2280
- :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`.
2281
- :param int io_limit: The upper limit of IOPS that this disk can use. The default is no limit.
2282
- :param int io_reservation: The I/O reservation (guarantee) for the virtual disk has, in IOPS. The default is no reservation.
2283
- :param int io_share_count: The share count for the virtual disk when the share level is `custom`.
2284
- :param str io_share_level: The share allocation level for the virtual disk. One of `low`, `normal`, `high`, or `custom`. Default: `normal`.
2285
- :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.
2286
2696
  :param int key: The ID of the device within the virtual machine.
2287
- :param str path: The path to the ISO file. Required for using a datastore ISO. Conflicts with `client_device`.
2288
-
2289
- > **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 .
2290
-
2291
- > **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.
2292
- :param int size: The size of the disk, in GB. Must be a whole number.
2293
- :param str storage_policy_id: The UUID of the storage policy to assign to the virtual disk.
2294
- :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`.
2295
- :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.
2296
- :param str uuid: The UUID of the virtual disk VMDK file. This is used to track the virtual disk on the virtual machine.
2297
- :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.
2298
2704
  """
2299
2705
  pulumi.set(__self__, "label", label)
2300
2706
  if attach is not None:
@@ -2350,9 +2756,7 @@ class VirtualMachineDisk(dict):
2350
2756
  @pulumi.getter
2351
2757
  def attach(self) -> Optional[bool]:
2352
2758
  """
2353
- 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.
2354
-
2355
- > **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.
2356
2760
  """
2357
2761
  return pulumi.get(self, "attach")
2358
2762
 
@@ -2360,7 +2764,7 @@ class VirtualMachineDisk(dict):
2360
2764
  @pulumi.getter(name="controllerType")
2361
2765
  def controller_type(self) -> Optional[str]:
2362
2766
  """
2363
- 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'.
2364
2768
  """
2365
2769
  return pulumi.get(self, "controller_type")
2366
2770
 
@@ -2368,7 +2772,7 @@ class VirtualMachineDisk(dict):
2368
2772
  @pulumi.getter(name="datastoreId")
2369
2773
  def datastore_id(self) -> Optional[str]:
2370
2774
  """
2371
- 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.
2372
2776
  """
2373
2777
  return pulumi.get(self, "datastore_id")
2374
2778
 
@@ -2384,9 +2788,7 @@ class VirtualMachineDisk(dict):
2384
2788
  @pulumi.getter(name="diskMode")
2385
2789
  def disk_mode(self) -> Optional[str]:
2386
2790
  """
2387
- 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].
2388
-
2389
- [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.
2390
2792
  """
2391
2793
  return pulumi.get(self, "disk_mode")
2392
2794
 
@@ -2394,9 +2796,7 @@ class VirtualMachineDisk(dict):
2394
2796
  @pulumi.getter(name="diskSharing")
2395
2797
  def disk_sharing(self) -> Optional[str]:
2396
2798
  """
2397
- The sharing mode of this virtual disk. One of `sharingMultiWriter` or `sharingNone`. Default: `sharingNone`.
2398
-
2399
- > **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.
2400
2800
  """
2401
2801
  return pulumi.get(self, "disk_sharing")
2402
2802
 
@@ -2404,7 +2804,7 @@ class VirtualMachineDisk(dict):
2404
2804
  @pulumi.getter(name="eagerlyScrub")
2405
2805
  def eagerly_scrub(self) -> Optional[bool]:
2406
2806
  """
2407
- 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.
2408
2808
  """
2409
2809
  return pulumi.get(self, "eagerly_scrub")
2410
2810
 
@@ -2412,7 +2812,7 @@ class VirtualMachineDisk(dict):
2412
2812
  @pulumi.getter(name="ioLimit")
2413
2813
  def io_limit(self) -> Optional[int]:
2414
2814
  """
2415
- 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.
2416
2816
  """
2417
2817
  return pulumi.get(self, "io_limit")
2418
2818
 
@@ -2420,7 +2820,7 @@ class VirtualMachineDisk(dict):
2420
2820
  @pulumi.getter(name="ioReservation")
2421
2821
  def io_reservation(self) -> Optional[int]:
2422
2822
  """
2423
- 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.
2424
2824
  """
2425
2825
  return pulumi.get(self, "io_reservation")
2426
2826
 
@@ -2428,7 +2828,7 @@ class VirtualMachineDisk(dict):
2428
2828
  @pulumi.getter(name="ioShareCount")
2429
2829
  def io_share_count(self) -> Optional[int]:
2430
2830
  """
2431
- 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.
2432
2832
  """
2433
2833
  return pulumi.get(self, "io_share_count")
2434
2834
 
@@ -2436,7 +2836,7 @@ class VirtualMachineDisk(dict):
2436
2836
  @pulumi.getter(name="ioShareLevel")
2437
2837
  def io_share_level(self) -> Optional[str]:
2438
2838
  """
2439
- 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.
2440
2840
  """
2441
2841
  return pulumi.get(self, "io_share_level")
2442
2842
 
@@ -2444,7 +2844,7 @@ class VirtualMachineDisk(dict):
2444
2844
  @pulumi.getter(name="keepOnRemove")
2445
2845
  def keep_on_remove(self) -> Optional[bool]:
2446
2846
  """
2447
- 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.
2448
2848
  """
2449
2849
  return pulumi.get(self, "keep_on_remove")
2450
2850
 
@@ -2460,11 +2860,7 @@ class VirtualMachineDisk(dict):
2460
2860
  @pulumi.getter
2461
2861
  def path(self) -> Optional[str]:
2462
2862
  """
2463
- The path to the ISO file. Required for using a datastore ISO. Conflicts with `client_device`.
2464
-
2465
- > **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 .
2466
-
2467
- > **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.
2468
2864
  """
2469
2865
  return pulumi.get(self, "path")
2470
2866
 
@@ -2472,7 +2868,7 @@ class VirtualMachineDisk(dict):
2472
2868
  @pulumi.getter
2473
2869
  def size(self) -> Optional[int]:
2474
2870
  """
2475
- The size of the disk, in GB. Must be a whole number.
2871
+ The size of the disk, in GB.
2476
2872
  """
2477
2873
  return pulumi.get(self, "size")
2478
2874
 
@@ -2480,7 +2876,7 @@ class VirtualMachineDisk(dict):
2480
2876
  @pulumi.getter(name="storagePolicyId")
2481
2877
  def storage_policy_id(self) -> Optional[str]:
2482
2878
  """
2483
- 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.
2484
2880
  """
2485
2881
  return pulumi.get(self, "storage_policy_id")
2486
2882
 
@@ -2488,7 +2884,7 @@ class VirtualMachineDisk(dict):
2488
2884
  @pulumi.getter(name="thinProvisioned")
2489
2885
  def thin_provisioned(self) -> Optional[bool]:
2490
2886
  """
2491
- 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.
2492
2888
  """
2493
2889
  return pulumi.get(self, "thin_provisioned")
2494
2890
 
@@ -2496,7 +2892,7 @@ class VirtualMachineDisk(dict):
2496
2892
  @pulumi.getter(name="unitNumber")
2497
2893
  def unit_number(self) -> Optional[int]:
2498
2894
  """
2499
- 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.
2500
2896
  """
2501
2897
  return pulumi.get(self, "unit_number")
2502
2898
 
@@ -2504,7 +2900,7 @@ class VirtualMachineDisk(dict):
2504
2900
  @pulumi.getter
2505
2901
  def uuid(self) -> Optional[str]:
2506
2902
  """
2507
- 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.
2508
2904
  """
2509
2905
  return pulumi.get(self, "uuid")
2510
2906
 
@@ -2512,7 +2908,7 @@ class VirtualMachineDisk(dict):
2512
2908
  @pulumi.getter(name="writeThrough")
2513
2909
  def write_through(self) -> Optional[bool]:
2514
2910
  """
2515
- 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.
2516
2912
  """
2517
2913
  return pulumi.get(self, "write_through")
2518
2914
 
@@ -2570,18 +2966,18 @@ class VirtualMachineNetworkInterface(dict):
2570
2966
  physical_function: Optional[str] = None,
2571
2967
  use_static_mac: Optional[bool] = None):
2572
2968
  """
2573
- :param str network_id: The [managed object reference ID][docs-about-morefs] of the network on which to connect the virtual machine network interface.
2574
- :param str adapter_type: The network interface type. One of `e1000`, `e1000e`, `sriov`, or `vmxnet3`. Default: `vmxnet3`.
2575
- :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`.
2576
- :param int bandwidth_reservation: The bandwidth reservation of the network interface, in Mbits/sec. The default is no reservation.
2577
- :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`.
2578
- :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.
2579
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.
2580
2976
  :param int key: The ID of the device within the virtual machine.
2581
- :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.
2582
- :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.
2583
2979
  :param str physical_function: The ID of the Physical SR-IOV NIC to attach to, e.g. '0000:d8:00.0'
2584
- :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.
2585
2981
  """
2586
2982
  pulumi.set(__self__, "network_id", network_id)
2587
2983
  if adapter_type is not None:
@@ -2611,7 +3007,7 @@ class VirtualMachineNetworkInterface(dict):
2611
3007
  @pulumi.getter(name="networkId")
2612
3008
  def network_id(self) -> str:
2613
3009
  """
2614
- 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.
2615
3011
  """
2616
3012
  return pulumi.get(self, "network_id")
2617
3013
 
@@ -2619,7 +3015,7 @@ class VirtualMachineNetworkInterface(dict):
2619
3015
  @pulumi.getter(name="adapterType")
2620
3016
  def adapter_type(self) -> Optional[str]:
2621
3017
  """
2622
- 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.
2623
3019
  """
2624
3020
  return pulumi.get(self, "adapter_type")
2625
3021
 
@@ -2627,7 +3023,7 @@ class VirtualMachineNetworkInterface(dict):
2627
3023
  @pulumi.getter(name="bandwidthLimit")
2628
3024
  def bandwidth_limit(self) -> Optional[int]:
2629
3025
  """
2630
- 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.
2631
3027
  """
2632
3028
  return pulumi.get(self, "bandwidth_limit")
2633
3029
 
@@ -2635,7 +3031,7 @@ class VirtualMachineNetworkInterface(dict):
2635
3031
  @pulumi.getter(name="bandwidthReservation")
2636
3032
  def bandwidth_reservation(self) -> Optional[int]:
2637
3033
  """
2638
- 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.
2639
3035
  """
2640
3036
  return pulumi.get(self, "bandwidth_reservation")
2641
3037
 
@@ -2643,7 +3039,7 @@ class VirtualMachineNetworkInterface(dict):
2643
3039
  @pulumi.getter(name="bandwidthShareCount")
2644
3040
  def bandwidth_share_count(self) -> Optional[int]:
2645
3041
  """
2646
- 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.
2647
3043
  """
2648
3044
  return pulumi.get(self, "bandwidth_share_count")
2649
3045
 
@@ -2651,7 +3047,7 @@ class VirtualMachineNetworkInterface(dict):
2651
3047
  @pulumi.getter(name="bandwidthShareLevel")
2652
3048
  def bandwidth_share_level(self) -> Optional[str]:
2653
3049
  """
2654
- 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.
2655
3051
  """
2656
3052
  return pulumi.get(self, "bandwidth_share_level")
2657
3053
 
@@ -2675,7 +3071,7 @@ class VirtualMachineNetworkInterface(dict):
2675
3071
  @pulumi.getter(name="macAddress")
2676
3072
  def mac_address(self) -> Optional[str]:
2677
3073
  """
2678
- 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.
2679
3075
  """
2680
3076
  return pulumi.get(self, "mac_address")
2681
3077
 
@@ -2683,7 +3079,7 @@ class VirtualMachineNetworkInterface(dict):
2683
3079
  @pulumi.getter(name="ovfMapping")
2684
3080
  def ovf_mapping(self) -> Optional[str]:
2685
3081
  """
2686
- 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.
2687
3083
  """
2688
3084
  return pulumi.get(self, "ovf_mapping")
2689
3085
 
@@ -2699,7 +3095,7 @@ class VirtualMachineNetworkInterface(dict):
2699
3095
  @pulumi.getter(name="useStaticMac")
2700
3096
  def use_static_mac(self) -> Optional[bool]:
2701
3097
  """
2702
- 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.
2703
3099
  """
2704
3100
  return pulumi.get(self, "use_static_mac")
2705
3101
 
@@ -2871,6 +3267,25 @@ class VirtualMachineVapp(dict):
2871
3267
  return pulumi.get(self, "properties")
2872
3268
 
2873
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
+
2874
3289
  @pulumi.output_type
2875
3290
  class VmStoragePolicyTagRule(dict):
2876
3291
  @staticmethod
@@ -2939,10 +3354,10 @@ class VnicIpv4(dict):
2939
3354
  ip: Optional[str] = None,
2940
3355
  netmask: Optional[str] = None):
2941
3356
  """
2942
- :param bool dhcp: Use DHCP to configure the interface's IPv6 stack.
2943
- :param str gw: IP address of the default gateway, if DHCP or autoconfig is not set.
2944
- :param str ip: Address of the interface, if DHCP is not set.
2945
- :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.
2946
3361
  """
2947
3362
  if dhcp is not None:
2948
3363
  pulumi.set(__self__, "dhcp", dhcp)
@@ -2957,7 +3372,7 @@ class VnicIpv4(dict):
2957
3372
  @pulumi.getter
2958
3373
  def dhcp(self) -> Optional[bool]:
2959
3374
  """
2960
- Use DHCP to configure the interface's IPv6 stack.
3375
+ Use DHCP to configure the interface's IPv4 stack.
2961
3376
  """
2962
3377
  return pulumi.get(self, "dhcp")
2963
3378
 
@@ -2965,7 +3380,7 @@ class VnicIpv4(dict):
2965
3380
  @pulumi.getter
2966
3381
  def gw(self) -> Optional[str]:
2967
3382
  """
2968
- 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.
2969
3384
  """
2970
3385
  return pulumi.get(self, "gw")
2971
3386
 
@@ -2973,7 +3388,7 @@ class VnicIpv4(dict):
2973
3388
  @pulumi.getter
2974
3389
  def ip(self) -> Optional[str]:
2975
3390
  """
2976
- Address of the interface, if DHCP is not set.
3391
+ address of the interface, if DHCP is not set.
2977
3392
  """
2978
3393
  return pulumi.get(self, "ip")
2979
3394
 
@@ -2981,7 +3396,7 @@ class VnicIpv4(dict):
2981
3396
  @pulumi.getter
2982
3397
  def netmask(self) -> Optional[str]:
2983
3398
  """
2984
- Netmask of the interface, if DHCP is not set.
3399
+ netmask of the interface, if DHCP is not set.
2985
3400
  """
2986
3401
  return pulumi.get(self, "netmask")
2987
3402
 
@@ -2996,7 +3411,7 @@ class VnicIpv6(dict):
2996
3411
  """
2997
3412
  :param Sequence[str] addresses: List of IPv6 addresses
2998
3413
  :param bool autoconfig: Use IPv6 Autoconfiguration (RFC2462).
2999
- :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.
3000
3415
  :param str gw: IP address of the default gateway, if DHCP or autoconfig is not set.
3001
3416
  """
3002
3417
  if addresses is not None:
@@ -3028,7 +3443,7 @@ class VnicIpv6(dict):
3028
3443
  @pulumi.getter
3029
3444
  def dhcp(self) -> Optional[bool]:
3030
3445
  """
3031
- Use DHCP to configure the interface's IPv6 stack.
3446
+ Use DHCP to configure the interface's IPv4 stack.
3032
3447
  """
3033
3448
  return pulumi.get(self, "dhcp")
3034
3449
 
@@ -3257,6 +3672,7 @@ class GetGuestOsCustomizationSpecWindowsOptionResult(dict):
3257
3672
  auto_logon_count: int,
3258
3673
  computer_name: str,
3259
3674
  domain_admin_user: str,
3675
+ domain_ou: str,
3260
3676
  join_domain: str,
3261
3677
  run_once_command_lists: Sequence[str],
3262
3678
  time_zone: int,
@@ -3268,6 +3684,7 @@ class GetGuestOsCustomizationSpecWindowsOptionResult(dict):
3268
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`.
3269
3685
  :param str computer_name: The hostname for this virtual machine.
3270
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.
3271
3688
  :param str join_domain: The Active Directory domain for the virtual machine to join.
3272
3689
  :param Sequence[str] run_once_command_lists: A list of commands to run at first user logon, after guest customization.
3273
3690
  :param int time_zone: The new time zone for the virtual machine. This is a sysprep-dictated timezone code.
@@ -3279,6 +3696,7 @@ class GetGuestOsCustomizationSpecWindowsOptionResult(dict):
3279
3696
  pulumi.set(__self__, "auto_logon_count", auto_logon_count)
3280
3697
  pulumi.set(__self__, "computer_name", computer_name)
3281
3698
  pulumi.set(__self__, "domain_admin_user", domain_admin_user)
3699
+ pulumi.set(__self__, "domain_ou", domain_ou)
3282
3700
  pulumi.set(__self__, "join_domain", join_domain)
3283
3701
  pulumi.set(__self__, "run_once_command_lists", run_once_command_lists)
3284
3702
  pulumi.set(__self__, "time_zone", time_zone)
@@ -3326,6 +3744,14 @@ class GetGuestOsCustomizationSpecWindowsOptionResult(dict):
3326
3744
  """
3327
3745
  return pulumi.get(self, "domain_admin_user")
3328
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
+
3329
3755
  @property
3330
3756
  @pulumi.getter(name="joinDomain")
3331
3757
  def join_domain(self) -> str:
@@ -3378,13 +3804,14 @@ class GetHostVgpuProfileVgpuProfileResult(dict):
3378
3804
  """
3379
3805
  :param bool disk_snapshot_supported: Indicates whether the GPU plugin on this host is
3380
3806
  capable of disk-only snapshots when VM is not powered off.
3381
- :param bool memory_snapshot_supported: Indicates whether the GPU plugin on this host is
3382
- capable of memory snapshots.
3383
- :param bool migrate_supported: Indicates whether the GPU plugin on this host is capable
3384
- of migration.
3385
- :param bool suspend_supported: Indicates whether the GPU plugin on this host is capable
3386
- of suspend-resume.
3387
- :param str vgpu: Name of a particular vGPU available as a shared GPU device (vGPU profile).
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).
3388
3815
  """
3389
3816
  pulumi.set(__self__, "disk_snapshot_supported", disk_snapshot_supported)
3390
3817
  pulumi.set(__self__, "memory_snapshot_supported", memory_snapshot_supported)
@@ -3405,8 +3832,8 @@ class GetHostVgpuProfileVgpuProfileResult(dict):
3405
3832
  @pulumi.getter(name="memorySnapshotSupported")
3406
3833
  def memory_snapshot_supported(self) -> bool:
3407
3834
  """
3408
- Indicates whether the GPU plugin on this host is
3409
- capable of memory snapshots.
3835
+ Indicates whether the GPU plugin on this host
3836
+ is capable of memory snapshots.
3410
3837
  """
3411
3838
  return pulumi.get(self, "memory_snapshot_supported")
3412
3839
 
@@ -3414,8 +3841,8 @@ class GetHostVgpuProfileVgpuProfileResult(dict):
3414
3841
  @pulumi.getter(name="migrateSupported")
3415
3842
  def migrate_supported(self) -> bool:
3416
3843
  """
3417
- Indicates whether the GPU plugin on this host is capable
3418
- of migration.
3844
+ Indicates whether the GPU plugin on this host is
3845
+ capable of migration.
3419
3846
  """
3420
3847
  return pulumi.get(self, "migrate_supported")
3421
3848
 
@@ -3423,8 +3850,8 @@ class GetHostVgpuProfileVgpuProfileResult(dict):
3423
3850
  @pulumi.getter(name="suspendSupported")
3424
3851
  def suspend_supported(self) -> bool:
3425
3852
  """
3426
- Indicates whether the GPU plugin on this host is capable
3427
- of suspend-resume.
3853
+ Indicates whether the GPU plugin on this host is
3854
+ capable of suspend-resume.
3428
3855
  """
3429
3856
  return pulumi.get(self, "suspend_supported")
3430
3857
 
@@ -3432,11 +3859,31 @@ class GetHostVgpuProfileVgpuProfileResult(dict):
3432
3859
  @pulumi.getter
3433
3860
  def vgpu(self) -> str:
3434
3861
  """
3435
- Name of a particular vGPU available as a shared GPU device (vGPU profile).
3862
+ Name of a particular vGPU available as a shared GPU device (vGPU
3863
+ profile).
3436
3864
  """
3437
3865
  return pulumi.get(self, "vgpu")
3438
3866
 
3439
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
+
3440
3887
  @pulumi.output_type
3441
3888
  class GetVirtualMachineDiskResult(dict):
3442
3889
  def __init__(__self__, *,
@@ -3511,21 +3958,21 @@ class GetVirtualMachineNetworkInterfaceResult(dict):
3511
3958
  bandwidth_reservation: Optional[int] = None,
3512
3959
  bandwidth_share_level: Optional[str] = None):
3513
3960
  """
3514
- :param str adapter_type: The network interface types for each network interface found
3515
- on the virtual machine, in device bus order. Will be one of `e1000`, `e1000e`,
3516
- `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`.
3517
3964
  :param int bandwidth_share_count: The share count for this network interface when the
3518
3965
  share level is custom.
3519
3966
  :param str mac_address: The MAC address of this network interface.
3520
- :param str network_id: The managed object reference ID of the network this interface is
3521
- connected to.
3967
+ :param str network_id: The managed object reference ID of the network this interface
3968
+ is connected to.
3522
3969
  :param str physical_function: The ID of the Physical SR-IOV NIC to attach to, e.g. '0000:d8:00.0'
3523
- :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,
3524
3971
  in Mbits/sec.
3525
- :param int bandwidth_reservation: The bandwidth reservation of this network interface,
3526
- in Mbits/sec.
3527
- :param str bandwidth_share_level: The bandwidth share allocation level for this interface.
3528
- 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`.
3529
3976
  """
3530
3977
  pulumi.set(__self__, "adapter_type", adapter_type)
3531
3978
  pulumi.set(__self__, "bandwidth_share_count", bandwidth_share_count)
@@ -3543,9 +3990,9 @@ class GetVirtualMachineNetworkInterfaceResult(dict):
3543
3990
  @pulumi.getter(name="adapterType")
3544
3991
  def adapter_type(self) -> str:
3545
3992
  """
3546
- The network interface types for each network interface found
3547
- on the virtual machine, in device bus order. Will be one of `e1000`, `e1000e`,
3548
- `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`.
3549
3996
  """
3550
3997
  return pulumi.get(self, "adapter_type")
3551
3998
 
@@ -3570,8 +4017,8 @@ class GetVirtualMachineNetworkInterfaceResult(dict):
3570
4017
  @pulumi.getter(name="networkId")
3571
4018
  def network_id(self) -> str:
3572
4019
  """
3573
- The managed object reference ID of the network this interface is
3574
- connected to.
4020
+ The managed object reference ID of the network this interface
4021
+ is connected to.
3575
4022
  """
3576
4023
  return pulumi.get(self, "network_id")
3577
4024
 
@@ -3587,7 +4034,7 @@ class GetVirtualMachineNetworkInterfaceResult(dict):
3587
4034
  @pulumi.getter(name="bandwidthLimit")
3588
4035
  def bandwidth_limit(self) -> Optional[int]:
3589
4036
  """
3590
- The upper bandwidth limit of this network interface,
4037
+ The upper bandwidth limit of this network interface,
3591
4038
  in Mbits/sec.
3592
4039
  """
3593
4040
  return pulumi.get(self, "bandwidth_limit")
@@ -3596,8 +4043,8 @@ class GetVirtualMachineNetworkInterfaceResult(dict):
3596
4043
  @pulumi.getter(name="bandwidthReservation")
3597
4044
  def bandwidth_reservation(self) -> Optional[int]:
3598
4045
  """
3599
- The bandwidth reservation of this network interface,
3600
- in Mbits/sec.
4046
+ The bandwidth reservation of this network
4047
+ interface, in Mbits/sec.
3601
4048
  """
3602
4049
  return pulumi.get(self, "bandwidth_reservation")
3603
4050
 
@@ -3605,8 +4052,8 @@ class GetVirtualMachineNetworkInterfaceResult(dict):
3605
4052
  @pulumi.getter(name="bandwidthShareLevel")
3606
4053
  def bandwidth_share_level(self) -> Optional[str]:
3607
4054
  """
3608
- The bandwidth share allocation level for this interface.
3609
- 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`.
3610
4057
  """
3611
4058
  return pulumi.get(self, "bandwidth_share_level")
3612
4059