pulumi-vsphere 4.9.0a1698129503__py3-none-any.whl → 4.9.0a1698198425__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 (71) hide show
  1. pulumi_vsphere/_inputs.py +311 -93
  2. pulumi_vsphere/_utilities.py +19 -0
  3. pulumi_vsphere/compute_cluster.py +259 -3
  4. pulumi_vsphere/compute_cluster_host_group.py +17 -3
  5. pulumi_vsphere/compute_cluster_vm_affinity_rule.py +20 -130
  6. pulumi_vsphere/compute_cluster_vm_anti_affinity_rule.py +20 -4
  7. pulumi_vsphere/compute_cluster_vm_dependency_rule.py +27 -5
  8. pulumi_vsphere/compute_cluster_vm_group.py +17 -3
  9. pulumi_vsphere/compute_cluster_vm_host_rule.py +28 -4
  10. pulumi_vsphere/content_library.py +15 -13
  11. pulumi_vsphere/content_library_item.py +21 -3
  12. pulumi_vsphere/custom_attribute.py +10 -2
  13. pulumi_vsphere/datacenter.py +10 -34
  14. pulumi_vsphere/datastore_cluster.py +97 -3
  15. pulumi_vsphere/datastore_cluster_vm_anti_affinity_rule.py +20 -4
  16. pulumi_vsphere/distributed_port_group.py +175 -3
  17. pulumi_vsphere/distributed_virtual_switch.py +355 -115
  18. pulumi_vsphere/dpm_host_override.py +28 -4
  19. pulumi_vsphere/drs_vm_override.py +28 -4
  20. pulumi_vsphere/entity_permissions.py +23 -5
  21. pulumi_vsphere/file.py +35 -61
  22. pulumi_vsphere/folder.py +20 -4
  23. pulumi_vsphere/get_compute_cluster.py +0 -22
  24. pulumi_vsphere/get_compute_cluster_host_group.py +0 -34
  25. pulumi_vsphere/get_content_library.py +0 -18
  26. pulumi_vsphere/get_custom_attribute.py +0 -18
  27. pulumi_vsphere/get_datacenter.py +0 -18
  28. pulumi_vsphere/get_datastore.py +0 -22
  29. pulumi_vsphere/get_datastore_cluster.py +0 -22
  30. pulumi_vsphere/get_distributed_virtual_switch.py +0 -40
  31. pulumi_vsphere/get_dynamic.py +0 -38
  32. pulumi_vsphere/get_folder.py +0 -18
  33. pulumi_vsphere/get_host.py +0 -22
  34. pulumi_vsphere/get_host_pci_device.py +2 -26
  35. pulumi_vsphere/get_host_thumbprint.py +0 -18
  36. pulumi_vsphere/get_license.py +0 -18
  37. pulumi_vsphere/get_network.py +0 -22
  38. pulumi_vsphere/get_policy.py +0 -20
  39. pulumi_vsphere/get_resource_pool.py +0 -64
  40. pulumi_vsphere/get_role.py +0 -18
  41. pulumi_vsphere/get_tag.py +0 -22
  42. pulumi_vsphere/get_tag_category.py +0 -18
  43. pulumi_vsphere/get_vapp_container.py +0 -22
  44. pulumi_vsphere/get_virtual_machine.py +0 -54
  45. pulumi_vsphere/get_vmfs_disks.py +0 -28
  46. pulumi_vsphere/ha_vm_override.py +72 -4
  47. pulumi_vsphere/host.py +23 -101
  48. pulumi_vsphere/host_port_group.py +74 -132
  49. pulumi_vsphere/host_virtual_switch.py +87 -5
  50. pulumi_vsphere/license.py +15 -31
  51. pulumi_vsphere/nas_datastore.py +53 -5
  52. pulumi_vsphere/outputs.py +364 -104
  53. pulumi_vsphere/provider.py +31 -3
  54. pulumi_vsphere/resource_pool.py +61 -83
  55. pulumi_vsphere/role.py +10 -2
  56. pulumi_vsphere/storage_drs_vm_override.py +32 -4
  57. pulumi_vsphere/tag.py +13 -3
  58. pulumi_vsphere/tag_category.py +16 -4
  59. pulumi_vsphere/vapp_container.py +61 -3
  60. pulumi_vsphere/vapp_entity.py +48 -4
  61. pulumi_vsphere/virtual_disk.py +27 -5
  62. pulumi_vsphere/virtual_machine.py +284 -18
  63. pulumi_vsphere/virtual_machine_snapshot.py +33 -39
  64. pulumi_vsphere/vm_storage_policy.py +13 -205
  65. pulumi_vsphere/vmfs_datastore.py +32 -4
  66. pulumi_vsphere/vnic.py +19 -153
  67. {pulumi_vsphere-4.9.0a1698129503.dist-info → pulumi_vsphere-4.9.0a1698198425.dist-info}/METADATA +1 -1
  68. pulumi_vsphere-4.9.0a1698198425.dist-info/RECORD +77 -0
  69. pulumi_vsphere-4.9.0a1698129503.dist-info/RECORD +0 -77
  70. {pulumi_vsphere-4.9.0a1698129503.dist-info → pulumi_vsphere-4.9.0a1698198425.dist-info}/WHEEL +0 -0
  71. {pulumi_vsphere-4.9.0a1698129503.dist-info → pulumi_vsphere-4.9.0a1698198425.dist-info}/top_level.txt +0 -0
pulumi_vsphere/_inputs.py CHANGED
@@ -46,31 +46,6 @@ class ComputeClusterVsanDiskGroupArgs:
46
46
 
47
47
  > **NOTE:** You must disable vSphere HA before you enable vSAN on the cluster.
48
48
  You can enable or re-enable vSphere HA after vSAN is configured.
49
-
50
- ```python
51
- import pulumi
52
- import pulumi_vsphere as vsphere
53
-
54
- compute_cluster = vsphere.ComputeCluster("computeCluster",
55
- datacenter_id=data["vsphere_datacenter"]["datacenter"]["id"],
56
- host_system_ids=[[__item["id"] for __item in data["vsphere_host"]["host"]]],
57
- drs_enabled=True,
58
- drs_automation_level="fullyAutomated",
59
- ha_enabled=False,
60
- vsan_enabled=True,
61
- vsan_dedup_enabled=True,
62
- vsan_compression_enabled=True,
63
- vsan_performance_enabled=True,
64
- vsan_verbose_mode_enabled=True,
65
- vsan_network_diagnostic_mode_enabled=True,
66
- vsan_unmap_enabled=True,
67
- vsan_dit_encryption_enabled=True,
68
- vsan_dit_rekey_interval=1800,
69
- vsan_disk_groups=[vsphere.ComputeClusterVsanDiskGroupArgs(
70
- cache=data["vsphere_vmfs_disks"]["cache_disks"],
71
- storages=data["vsphere_vmfs_disks"]["storage_disks"],
72
- )])
73
- ```
74
49
  """
75
50
  ComputeClusterVsanDiskGroupArgs._configure(
76
51
  lambda key, value: pulumi.set(__self__, key, value),
@@ -82,7 +57,9 @@ class ComputeClusterVsanDiskGroupArgs:
82
57
  _setter: Callable[[Any, Any], None],
83
58
  cache: Optional[pulumi.Input[str]] = None,
84
59
  storages: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
85
- opts: Optional[pulumi.ResourceOptions]=None):
60
+ opts: Optional[pulumi.ResourceOptions] = None,
61
+ **kwargs):
62
+
86
63
  if cache is not None:
87
64
  _setter("cache", cache)
88
65
  if storages is not None:
@@ -108,31 +85,6 @@ class ComputeClusterVsanDiskGroupArgs:
108
85
 
109
86
  > **NOTE:** You must disable vSphere HA before you enable vSAN on the cluster.
110
87
  You can enable or re-enable vSphere HA after vSAN is configured.
111
-
112
- ```python
113
- import pulumi
114
- import pulumi_vsphere as vsphere
115
-
116
- compute_cluster = vsphere.ComputeCluster("computeCluster",
117
- datacenter_id=data["vsphere_datacenter"]["datacenter"]["id"],
118
- host_system_ids=[[__item["id"] for __item in data["vsphere_host"]["host"]]],
119
- drs_enabled=True,
120
- drs_automation_level="fullyAutomated",
121
- ha_enabled=False,
122
- vsan_enabled=True,
123
- vsan_dedup_enabled=True,
124
- vsan_compression_enabled=True,
125
- vsan_performance_enabled=True,
126
- vsan_verbose_mode_enabled=True,
127
- vsan_network_diagnostic_mode_enabled=True,
128
- vsan_unmap_enabled=True,
129
- vsan_dit_encryption_enabled=True,
130
- vsan_dit_rekey_interval=1800,
131
- vsan_disk_groups=[vsphere.ComputeClusterVsanDiskGroupArgs(
132
- cache=data["vsphere_vmfs_disks"]["cache_disks"],
133
- storages=data["vsphere_vmfs_disks"]["storage_disks"],
134
- )])
135
- ```
136
88
  """
137
89
  return pulumi.get(self, "storages")
138
90
 
@@ -172,7 +124,13 @@ class ContentLibraryPublicationArgs:
172
124
  publish_url: Optional[pulumi.Input[str]] = None,
173
125
  published: Optional[pulumi.Input[bool]] = None,
174
126
  username: Optional[pulumi.Input[str]] = None,
175
- opts: Optional[pulumi.ResourceOptions]=None):
127
+ opts: Optional[pulumi.ResourceOptions] = None,
128
+ **kwargs):
129
+ if authentication_method is None and 'authenticationMethod' in kwargs:
130
+ authentication_method = kwargs['authenticationMethod']
131
+ if publish_url is None and 'publishUrl' in kwargs:
132
+ publish_url = kwargs['publishUrl']
133
+
176
134
  if authentication_method is not None:
177
135
  _setter("authentication_method", authentication_method)
178
136
  if password is not None:
@@ -280,7 +238,17 @@ class ContentLibrarySubscriptionArgs:
280
238
  password: Optional[pulumi.Input[str]] = None,
281
239
  subscription_url: Optional[pulumi.Input[str]] = None,
282
240
  username: Optional[pulumi.Input[str]] = None,
283
- opts: Optional[pulumi.ResourceOptions]=None):
241
+ opts: Optional[pulumi.ResourceOptions] = None,
242
+ **kwargs):
243
+ if authentication_method is None and 'authenticationMethod' in kwargs:
244
+ authentication_method = kwargs['authenticationMethod']
245
+ if automatic_sync is None and 'automaticSync' in kwargs:
246
+ automatic_sync = kwargs['automaticSync']
247
+ if on_demand is None and 'onDemand' in kwargs:
248
+ on_demand = kwargs['onDemand']
249
+ if subscription_url is None and 'subscriptionUrl' in kwargs:
250
+ subscription_url = kwargs['subscriptionUrl']
251
+
284
252
  if authentication_method is not None:
285
253
  _setter("authentication_method", authentication_method)
286
254
  if automatic_sync is not None:
@@ -380,9 +348,19 @@ class DistributedPortGroupVlanRangeArgs:
380
348
  @staticmethod
381
349
  def _configure(
382
350
  _setter: Callable[[Any, Any], None],
383
- max_vlan: pulumi.Input[int],
384
- min_vlan: pulumi.Input[int],
385
- opts: Optional[pulumi.ResourceOptions]=None):
351
+ max_vlan: Optional[pulumi.Input[int]] = None,
352
+ min_vlan: Optional[pulumi.Input[int]] = None,
353
+ opts: Optional[pulumi.ResourceOptions] = None,
354
+ **kwargs):
355
+ if max_vlan is None and 'maxVlan' in kwargs:
356
+ max_vlan = kwargs['maxVlan']
357
+ if max_vlan is None:
358
+ raise TypeError("Missing 'max_vlan' argument")
359
+ if min_vlan is None and 'minVlan' in kwargs:
360
+ min_vlan = kwargs['minVlan']
361
+ if min_vlan is None:
362
+ raise TypeError("Missing 'min_vlan' argument")
363
+
386
364
  _setter("max_vlan", max_vlan)
387
365
  _setter("min_vlan", min_vlan)
388
366
 
@@ -424,9 +402,15 @@ class DistributedVirtualSwitchHostArgs:
424
402
  @staticmethod
425
403
  def _configure(
426
404
  _setter: Callable[[Any, Any], None],
427
- host_system_id: pulumi.Input[str],
405
+ host_system_id: Optional[pulumi.Input[str]] = None,
428
406
  devices: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
429
- opts: Optional[pulumi.ResourceOptions]=None):
407
+ opts: Optional[pulumi.ResourceOptions] = None,
408
+ **kwargs):
409
+ if host_system_id is None and 'hostSystemId' in kwargs:
410
+ host_system_id = kwargs['hostSystemId']
411
+ if host_system_id is None:
412
+ raise TypeError("Missing 'host_system_id' argument")
413
+
430
414
  _setter("host_system_id", host_system_id)
431
415
  if devices is not None:
432
416
  _setter("devices", devices)
@@ -481,10 +465,24 @@ class DistributedVirtualSwitchPvlanMappingArgs:
481
465
  @staticmethod
482
466
  def _configure(
483
467
  _setter: Callable[[Any, Any], None],
484
- primary_vlan_id: pulumi.Input[int],
485
- pvlan_type: pulumi.Input[str],
486
- secondary_vlan_id: pulumi.Input[int],
487
- opts: Optional[pulumi.ResourceOptions]=None):
468
+ primary_vlan_id: Optional[pulumi.Input[int]] = None,
469
+ pvlan_type: Optional[pulumi.Input[str]] = None,
470
+ secondary_vlan_id: Optional[pulumi.Input[int]] = None,
471
+ opts: Optional[pulumi.ResourceOptions] = None,
472
+ **kwargs):
473
+ if primary_vlan_id is None and 'primaryVlanId' in kwargs:
474
+ primary_vlan_id = kwargs['primaryVlanId']
475
+ if primary_vlan_id is None:
476
+ raise TypeError("Missing 'primary_vlan_id' argument")
477
+ if pvlan_type is None and 'pvlanType' in kwargs:
478
+ pvlan_type = kwargs['pvlanType']
479
+ if pvlan_type is None:
480
+ raise TypeError("Missing 'pvlan_type' argument")
481
+ if secondary_vlan_id is None and 'secondaryVlanId' in kwargs:
482
+ secondary_vlan_id = kwargs['secondaryVlanId']
483
+ if secondary_vlan_id is None:
484
+ raise TypeError("Missing 'secondary_vlan_id' argument")
485
+
488
486
  _setter("primary_vlan_id", primary_vlan_id)
489
487
  _setter("pvlan_type", pvlan_type)
490
488
  _setter("secondary_vlan_id", secondary_vlan_id)
@@ -542,9 +540,19 @@ class DistributedVirtualSwitchVlanRangeArgs:
542
540
  @staticmethod
543
541
  def _configure(
544
542
  _setter: Callable[[Any, Any], None],
545
- max_vlan: pulumi.Input[int],
546
- min_vlan: pulumi.Input[int],
547
- opts: Optional[pulumi.ResourceOptions]=None):
543
+ max_vlan: Optional[pulumi.Input[int]] = None,
544
+ min_vlan: Optional[pulumi.Input[int]] = None,
545
+ opts: Optional[pulumi.ResourceOptions] = None,
546
+ **kwargs):
547
+ if max_vlan is None and 'maxVlan' in kwargs:
548
+ max_vlan = kwargs['maxVlan']
549
+ if max_vlan is None:
550
+ raise TypeError("Missing 'max_vlan' argument")
551
+ if min_vlan is None and 'minVlan' in kwargs:
552
+ min_vlan = kwargs['minVlan']
553
+ if min_vlan is None:
554
+ raise TypeError("Missing 'min_vlan' argument")
555
+
548
556
  _setter("max_vlan", max_vlan)
549
557
  _setter("min_vlan", min_vlan)
550
558
 
@@ -590,11 +598,27 @@ class EntityPermissionsPermissionArgs:
590
598
  @staticmethod
591
599
  def _configure(
592
600
  _setter: Callable[[Any, Any], None],
593
- is_group: pulumi.Input[bool],
594
- propagate: pulumi.Input[bool],
595
- role_id: pulumi.Input[str],
596
- user_or_group: pulumi.Input[str],
597
- opts: Optional[pulumi.ResourceOptions]=None):
601
+ is_group: Optional[pulumi.Input[bool]] = None,
602
+ propagate: Optional[pulumi.Input[bool]] = None,
603
+ role_id: Optional[pulumi.Input[str]] = None,
604
+ user_or_group: Optional[pulumi.Input[str]] = None,
605
+ opts: Optional[pulumi.ResourceOptions] = None,
606
+ **kwargs):
607
+ if is_group is None and 'isGroup' in kwargs:
608
+ is_group = kwargs['isGroup']
609
+ if is_group is None:
610
+ raise TypeError("Missing 'is_group' argument")
611
+ if propagate is None:
612
+ raise TypeError("Missing 'propagate' argument")
613
+ if role_id is None and 'roleId' in kwargs:
614
+ role_id = kwargs['roleId']
615
+ if role_id is None:
616
+ raise TypeError("Missing 'role_id' argument")
617
+ if user_or_group is None and 'userOrGroup' in kwargs:
618
+ user_or_group = kwargs['userOrGroup']
619
+ if user_or_group is None:
620
+ raise TypeError("Missing 'user_or_group' argument")
621
+
598
622
  _setter("is_group", is_group)
599
623
  _setter("propagate", propagate)
600
624
  _setter("role_id", role_id)
@@ -670,7 +694,11 @@ class HostPortGroupPortArgs:
670
694
  key: Optional[pulumi.Input[str]] = None,
671
695
  mac_addresses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
672
696
  type: Optional[pulumi.Input[str]] = None,
673
- opts: Optional[pulumi.ResourceOptions]=None):
697
+ opts: Optional[pulumi.ResourceOptions] = None,
698
+ **kwargs):
699
+ if mac_addresses is None and 'macAddresses' in kwargs:
700
+ mac_addresses = kwargs['macAddresses']
701
+
674
702
  if key is not None:
675
703
  _setter("key", key)
676
704
  if mac_addresses is not None:
@@ -743,7 +771,15 @@ class VirtualMachineCdromArgs:
743
771
  device_address: Optional[pulumi.Input[str]] = None,
744
772
  key: Optional[pulumi.Input[int]] = None,
745
773
  path: Optional[pulumi.Input[str]] = None,
746
- opts: Optional[pulumi.ResourceOptions]=None):
774
+ opts: Optional[pulumi.ResourceOptions] = None,
775
+ **kwargs):
776
+ if client_device is None and 'clientDevice' in kwargs:
777
+ client_device = kwargs['clientDevice']
778
+ if datastore_id is None and 'datastoreId' in kwargs:
779
+ datastore_id = kwargs['datastoreId']
780
+ if device_address is None and 'deviceAddress' in kwargs:
781
+ device_address = kwargs['deviceAddress']
782
+
747
783
  if client_device is not None:
748
784
  _setter("client_device", client_device)
749
785
  if datastore_id is not None:
@@ -838,13 +874,25 @@ class VirtualMachineCloneArgs:
838
874
  @staticmethod
839
875
  def _configure(
840
876
  _setter: Callable[[Any, Any], None],
841
- template_uuid: pulumi.Input[str],
877
+ template_uuid: Optional[pulumi.Input[str]] = None,
842
878
  customize: Optional[pulumi.Input['VirtualMachineCloneCustomizeArgs']] = None,
843
879
  linked_clone: Optional[pulumi.Input[bool]] = None,
844
880
  ovf_network_map: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
845
881
  ovf_storage_map: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
846
882
  timeout: Optional[pulumi.Input[int]] = None,
847
- opts: Optional[pulumi.ResourceOptions]=None):
883
+ opts: Optional[pulumi.ResourceOptions] = None,
884
+ **kwargs):
885
+ if template_uuid is None and 'templateUuid' in kwargs:
886
+ template_uuid = kwargs['templateUuid']
887
+ if template_uuid is None:
888
+ raise TypeError("Missing 'template_uuid' argument")
889
+ if linked_clone is None and 'linkedClone' in kwargs:
890
+ linked_clone = kwargs['linkedClone']
891
+ if ovf_network_map is None and 'ovfNetworkMap' in kwargs:
892
+ ovf_network_map = kwargs['ovfNetworkMap']
893
+ if ovf_storage_map is None and 'ovfStorageMap' in kwargs:
894
+ ovf_storage_map = kwargs['ovfStorageMap']
895
+
848
896
  _setter("template_uuid", template_uuid)
849
897
  if customize is not None:
850
898
  _setter("customize", customize)
@@ -951,7 +999,25 @@ class VirtualMachineCloneCustomizeArgs:
951
999
  timeout: Optional[pulumi.Input[int]] = None,
952
1000
  windows_options: Optional[pulumi.Input['VirtualMachineCloneCustomizeWindowsOptionsArgs']] = None,
953
1001
  windows_sysprep_text: Optional[pulumi.Input[str]] = None,
954
- opts: Optional[pulumi.ResourceOptions]=None):
1002
+ opts: Optional[pulumi.ResourceOptions] = None,
1003
+ **kwargs):
1004
+ if dns_server_lists is None and 'dnsServerLists' in kwargs:
1005
+ dns_server_lists = kwargs['dnsServerLists']
1006
+ if dns_suffix_lists is None and 'dnsSuffixLists' in kwargs:
1007
+ dns_suffix_lists = kwargs['dnsSuffixLists']
1008
+ if ipv4_gateway is None and 'ipv4Gateway' in kwargs:
1009
+ ipv4_gateway = kwargs['ipv4Gateway']
1010
+ if ipv6_gateway is None and 'ipv6Gateway' in kwargs:
1011
+ ipv6_gateway = kwargs['ipv6Gateway']
1012
+ if linux_options is None and 'linuxOptions' in kwargs:
1013
+ linux_options = kwargs['linuxOptions']
1014
+ if network_interfaces is None and 'networkInterfaces' in kwargs:
1015
+ network_interfaces = kwargs['networkInterfaces']
1016
+ if windows_options is None and 'windowsOptions' in kwargs:
1017
+ windows_options = kwargs['windowsOptions']
1018
+ if windows_sysprep_text is None and 'windowsSysprepText' in kwargs:
1019
+ windows_sysprep_text = kwargs['windowsSysprepText']
1020
+
955
1021
  if dns_server_lists is not None:
956
1022
  _setter("dns_server_lists", dns_server_lists)
957
1023
  if dns_suffix_lists is not None:
@@ -1075,12 +1141,26 @@ class VirtualMachineCloneCustomizeLinuxOptionsArgs:
1075
1141
  @staticmethod
1076
1142
  def _configure(
1077
1143
  _setter: Callable[[Any, Any], None],
1078
- domain: pulumi.Input[str],
1079
- host_name: pulumi.Input[str],
1144
+ domain: Optional[pulumi.Input[str]] = None,
1145
+ host_name: Optional[pulumi.Input[str]] = None,
1080
1146
  hw_clock_utc: Optional[pulumi.Input[bool]] = None,
1081
1147
  script_text: Optional[pulumi.Input[str]] = None,
1082
1148
  time_zone: Optional[pulumi.Input[str]] = None,
1083
- opts: Optional[pulumi.ResourceOptions]=None):
1149
+ opts: Optional[pulumi.ResourceOptions] = None,
1150
+ **kwargs):
1151
+ if domain is None:
1152
+ raise TypeError("Missing 'domain' argument")
1153
+ if host_name is None and 'hostName' in kwargs:
1154
+ host_name = kwargs['hostName']
1155
+ if host_name is None:
1156
+ raise TypeError("Missing 'host_name' argument")
1157
+ if hw_clock_utc is None and 'hwClockUtc' in kwargs:
1158
+ hw_clock_utc = kwargs['hwClockUtc']
1159
+ if script_text is None and 'scriptText' in kwargs:
1160
+ script_text = kwargs['scriptText']
1161
+ if time_zone is None and 'timeZone' in kwargs:
1162
+ time_zone = kwargs['timeZone']
1163
+
1084
1164
  _setter("domain", domain)
1085
1165
  _setter("host_name", host_name)
1086
1166
  if hw_clock_utc is not None:
@@ -1163,7 +1243,21 @@ class VirtualMachineCloneCustomizeNetworkInterfaceArgs:
1163
1243
  ipv4_netmask: Optional[pulumi.Input[int]] = None,
1164
1244
  ipv6_address: Optional[pulumi.Input[str]] = None,
1165
1245
  ipv6_netmask: Optional[pulumi.Input[int]] = None,
1166
- opts: Optional[pulumi.ResourceOptions]=None):
1246
+ opts: Optional[pulumi.ResourceOptions] = None,
1247
+ **kwargs):
1248
+ if dns_domain is None and 'dnsDomain' in kwargs:
1249
+ dns_domain = kwargs['dnsDomain']
1250
+ if dns_server_lists is None and 'dnsServerLists' in kwargs:
1251
+ dns_server_lists = kwargs['dnsServerLists']
1252
+ if ipv4_address is None and 'ipv4Address' in kwargs:
1253
+ ipv4_address = kwargs['ipv4Address']
1254
+ if ipv4_netmask is None and 'ipv4Netmask' in kwargs:
1255
+ ipv4_netmask = kwargs['ipv4Netmask']
1256
+ if ipv6_address is None and 'ipv6Address' in kwargs:
1257
+ ipv6_address = kwargs['ipv6Address']
1258
+ if ipv6_netmask is None and 'ipv6Netmask' in kwargs:
1259
+ ipv6_netmask = kwargs['ipv6Netmask']
1260
+
1167
1261
  if dns_domain is not None:
1168
1262
  _setter("dns_domain", dns_domain)
1169
1263
  if dns_server_lists is not None:
@@ -1267,7 +1361,7 @@ class VirtualMachineCloneCustomizeWindowsOptionsArgs:
1267
1361
  @staticmethod
1268
1362
  def _configure(
1269
1363
  _setter: Callable[[Any, Any], None],
1270
- computer_name: pulumi.Input[str],
1364
+ computer_name: Optional[pulumi.Input[str]] = None,
1271
1365
  admin_password: Optional[pulumi.Input[str]] = None,
1272
1366
  auto_logon: Optional[pulumi.Input[bool]] = None,
1273
1367
  auto_logon_count: Optional[pulumi.Input[int]] = None,
@@ -1280,7 +1374,35 @@ class VirtualMachineCloneCustomizeWindowsOptionsArgs:
1280
1374
  run_once_command_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1281
1375
  time_zone: Optional[pulumi.Input[int]] = None,
1282
1376
  workgroup: Optional[pulumi.Input[str]] = None,
1283
- opts: Optional[pulumi.ResourceOptions]=None):
1377
+ opts: Optional[pulumi.ResourceOptions] = None,
1378
+ **kwargs):
1379
+ if computer_name is None and 'computerName' in kwargs:
1380
+ computer_name = kwargs['computerName']
1381
+ if computer_name is None:
1382
+ raise TypeError("Missing 'computer_name' argument")
1383
+ if admin_password is None and 'adminPassword' in kwargs:
1384
+ admin_password = kwargs['adminPassword']
1385
+ if auto_logon is None and 'autoLogon' in kwargs:
1386
+ auto_logon = kwargs['autoLogon']
1387
+ if auto_logon_count is None and 'autoLogonCount' in kwargs:
1388
+ auto_logon_count = kwargs['autoLogonCount']
1389
+ if domain_admin_password is None and 'domainAdminPassword' in kwargs:
1390
+ domain_admin_password = kwargs['domainAdminPassword']
1391
+ if domain_admin_user is None and 'domainAdminUser' in kwargs:
1392
+ domain_admin_user = kwargs['domainAdminUser']
1393
+ if full_name is None and 'fullName' in kwargs:
1394
+ full_name = kwargs['fullName']
1395
+ if join_domain is None and 'joinDomain' in kwargs:
1396
+ join_domain = kwargs['joinDomain']
1397
+ if organization_name is None and 'organizationName' in kwargs:
1398
+ organization_name = kwargs['organizationName']
1399
+ if product_key is None and 'productKey' in kwargs:
1400
+ product_key = kwargs['productKey']
1401
+ if run_once_command_lists is None and 'runOnceCommandLists' in kwargs:
1402
+ run_once_command_lists = kwargs['runOnceCommandLists']
1403
+ if time_zone is None and 'timeZone' in kwargs:
1404
+ time_zone = kwargs['timeZone']
1405
+
1284
1406
  _setter("computer_name", computer_name)
1285
1407
  if admin_password is not None:
1286
1408
  _setter("admin_password", admin_password)
@@ -1507,7 +1629,7 @@ class VirtualMachineDiskArgs:
1507
1629
  @staticmethod
1508
1630
  def _configure(
1509
1631
  _setter: Callable[[Any, Any], None],
1510
- label: pulumi.Input[str],
1632
+ label: Optional[pulumi.Input[str]] = None,
1511
1633
  attach: Optional[pulumi.Input[bool]] = None,
1512
1634
  controller_type: Optional[pulumi.Input[str]] = None,
1513
1635
  datastore_id: Optional[pulumi.Input[str]] = None,
@@ -1528,7 +1650,41 @@ class VirtualMachineDiskArgs:
1528
1650
  unit_number: Optional[pulumi.Input[int]] = None,
1529
1651
  uuid: Optional[pulumi.Input[str]] = None,
1530
1652
  write_through: Optional[pulumi.Input[bool]] = None,
1531
- opts: Optional[pulumi.ResourceOptions]=None):
1653
+ opts: Optional[pulumi.ResourceOptions] = None,
1654
+ **kwargs):
1655
+ if label is None:
1656
+ raise TypeError("Missing 'label' argument")
1657
+ if controller_type is None and 'controllerType' in kwargs:
1658
+ controller_type = kwargs['controllerType']
1659
+ if datastore_id is None and 'datastoreId' in kwargs:
1660
+ datastore_id = kwargs['datastoreId']
1661
+ if device_address is None and 'deviceAddress' in kwargs:
1662
+ device_address = kwargs['deviceAddress']
1663
+ if disk_mode is None and 'diskMode' in kwargs:
1664
+ disk_mode = kwargs['diskMode']
1665
+ if disk_sharing is None and 'diskSharing' in kwargs:
1666
+ disk_sharing = kwargs['diskSharing']
1667
+ if eagerly_scrub is None and 'eagerlyScrub' in kwargs:
1668
+ eagerly_scrub = kwargs['eagerlyScrub']
1669
+ if io_limit is None and 'ioLimit' in kwargs:
1670
+ io_limit = kwargs['ioLimit']
1671
+ if io_reservation is None and 'ioReservation' in kwargs:
1672
+ io_reservation = kwargs['ioReservation']
1673
+ if io_share_count is None and 'ioShareCount' in kwargs:
1674
+ io_share_count = kwargs['ioShareCount']
1675
+ if io_share_level is None and 'ioShareLevel' in kwargs:
1676
+ io_share_level = kwargs['ioShareLevel']
1677
+ if keep_on_remove is None and 'keepOnRemove' in kwargs:
1678
+ keep_on_remove = kwargs['keepOnRemove']
1679
+ if storage_policy_id is None and 'storagePolicyId' in kwargs:
1680
+ storage_policy_id = kwargs['storagePolicyId']
1681
+ if thin_provisioned is None and 'thinProvisioned' in kwargs:
1682
+ thin_provisioned = kwargs['thinProvisioned']
1683
+ if unit_number is None and 'unitNumber' in kwargs:
1684
+ unit_number = kwargs['unitNumber']
1685
+ if write_through is None and 'writeThrough' in kwargs:
1686
+ write_through = kwargs['writeThrough']
1687
+
1532
1688
  _setter("label", label)
1533
1689
  if attach is not None:
1534
1690
  _setter("attach", attach)
@@ -1871,7 +2027,7 @@ class VirtualMachineNetworkInterfaceArgs:
1871
2027
  @staticmethod
1872
2028
  def _configure(
1873
2029
  _setter: Callable[[Any, Any], None],
1874
- network_id: pulumi.Input[str],
2030
+ network_id: Optional[pulumi.Input[str]] = None,
1875
2031
  adapter_type: Optional[pulumi.Input[str]] = None,
1876
2032
  bandwidth_limit: Optional[pulumi.Input[int]] = None,
1877
2033
  bandwidth_reservation: Optional[pulumi.Input[int]] = None,
@@ -1882,7 +2038,31 @@ class VirtualMachineNetworkInterfaceArgs:
1882
2038
  mac_address: Optional[pulumi.Input[str]] = None,
1883
2039
  ovf_mapping: Optional[pulumi.Input[str]] = None,
1884
2040
  use_static_mac: Optional[pulumi.Input[bool]] = None,
1885
- opts: Optional[pulumi.ResourceOptions]=None):
2041
+ opts: Optional[pulumi.ResourceOptions] = None,
2042
+ **kwargs):
2043
+ if network_id is None and 'networkId' in kwargs:
2044
+ network_id = kwargs['networkId']
2045
+ if network_id is None:
2046
+ raise TypeError("Missing 'network_id' argument")
2047
+ if adapter_type is None and 'adapterType' in kwargs:
2048
+ adapter_type = kwargs['adapterType']
2049
+ if bandwidth_limit is None and 'bandwidthLimit' in kwargs:
2050
+ bandwidth_limit = kwargs['bandwidthLimit']
2051
+ if bandwidth_reservation is None and 'bandwidthReservation' in kwargs:
2052
+ bandwidth_reservation = kwargs['bandwidthReservation']
2053
+ if bandwidth_share_count is None and 'bandwidthShareCount' in kwargs:
2054
+ bandwidth_share_count = kwargs['bandwidthShareCount']
2055
+ if bandwidth_share_level is None and 'bandwidthShareLevel' in kwargs:
2056
+ bandwidth_share_level = kwargs['bandwidthShareLevel']
2057
+ if device_address is None and 'deviceAddress' in kwargs:
2058
+ device_address = kwargs['deviceAddress']
2059
+ if mac_address is None and 'macAddress' in kwargs:
2060
+ mac_address = kwargs['macAddress']
2061
+ if ovf_mapping is None and 'ovfMapping' in kwargs:
2062
+ ovf_mapping = kwargs['ovfMapping']
2063
+ if use_static_mac is None and 'useStaticMac' in kwargs:
2064
+ use_static_mac = kwargs['useStaticMac']
2065
+
1886
2066
  _setter("network_id", network_id)
1887
2067
  if adapter_type is not None:
1888
2068
  _setter("adapter_type", adapter_type)
@@ -2071,7 +2251,27 @@ class VirtualMachineOvfDeployArgs:
2071
2251
  local_ovf_path: Optional[pulumi.Input[str]] = None,
2072
2252
  ovf_network_map: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
2073
2253
  remote_ovf_url: Optional[pulumi.Input[str]] = None,
2074
- opts: Optional[pulumi.ResourceOptions]=None):
2254
+ opts: Optional[pulumi.ResourceOptions] = None,
2255
+ **kwargs):
2256
+ if allow_unverified_ssl_cert is None and 'allowUnverifiedSslCert' in kwargs:
2257
+ allow_unverified_ssl_cert = kwargs['allowUnverifiedSslCert']
2258
+ if deployment_option is None and 'deploymentOption' in kwargs:
2259
+ deployment_option = kwargs['deploymentOption']
2260
+ if disk_provisioning is None and 'diskProvisioning' in kwargs:
2261
+ disk_provisioning = kwargs['diskProvisioning']
2262
+ if enable_hidden_properties is None and 'enableHiddenProperties' in kwargs:
2263
+ enable_hidden_properties = kwargs['enableHiddenProperties']
2264
+ if ip_allocation_policy is None and 'ipAllocationPolicy' in kwargs:
2265
+ ip_allocation_policy = kwargs['ipAllocationPolicy']
2266
+ if ip_protocol is None and 'ipProtocol' in kwargs:
2267
+ ip_protocol = kwargs['ipProtocol']
2268
+ if local_ovf_path is None and 'localOvfPath' in kwargs:
2269
+ local_ovf_path = kwargs['localOvfPath']
2270
+ if ovf_network_map is None and 'ovfNetworkMap' in kwargs:
2271
+ ovf_network_map = kwargs['ovfNetworkMap']
2272
+ if remote_ovf_url is None and 'remoteOvfUrl' in kwargs:
2273
+ remote_ovf_url = kwargs['remoteOvfUrl']
2274
+
2075
2275
  if allow_unverified_ssl_cert is not None:
2076
2276
  _setter("allow_unverified_ssl_cert", allow_unverified_ssl_cert)
2077
2277
  if deployment_option is not None:
@@ -2185,7 +2385,9 @@ class VirtualMachineVappArgs:
2185
2385
  def _configure(
2186
2386
  _setter: Callable[[Any, Any], None],
2187
2387
  properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
2188
- opts: Optional[pulumi.ResourceOptions]=None):
2388
+ opts: Optional[pulumi.ResourceOptions] = None,
2389
+ **kwargs):
2390
+
2189
2391
  if properties is not None:
2190
2392
  _setter("properties", properties)
2191
2393
 
@@ -2219,10 +2421,20 @@ class VmStoragePolicyTagRuleArgs:
2219
2421
  @staticmethod
2220
2422
  def _configure(
2221
2423
  _setter: Callable[[Any, Any], None],
2222
- tag_category: pulumi.Input[str],
2223
- tags: pulumi.Input[Sequence[pulumi.Input[str]]],
2424
+ tag_category: Optional[pulumi.Input[str]] = None,
2425
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2224
2426
  include_datastores_with_tags: Optional[pulumi.Input[bool]] = None,
2225
- opts: Optional[pulumi.ResourceOptions]=None):
2427
+ opts: Optional[pulumi.ResourceOptions] = None,
2428
+ **kwargs):
2429
+ if tag_category is None and 'tagCategory' in kwargs:
2430
+ tag_category = kwargs['tagCategory']
2431
+ if tag_category is None:
2432
+ raise TypeError("Missing 'tag_category' argument")
2433
+ if tags is None:
2434
+ raise TypeError("Missing 'tags' argument")
2435
+ if include_datastores_with_tags is None and 'includeDatastoresWithTags' in kwargs:
2436
+ include_datastores_with_tags = kwargs['includeDatastoresWithTags']
2437
+
2226
2438
  _setter("tag_category", tag_category)
2227
2439
  _setter("tags", tags)
2228
2440
  if include_datastores_with_tags is not None:
@@ -2292,7 +2504,9 @@ class VnicIpv4Args:
2292
2504
  gw: Optional[pulumi.Input[str]] = None,
2293
2505
  ip: Optional[pulumi.Input[str]] = None,
2294
2506
  netmask: Optional[pulumi.Input[str]] = None,
2295
- opts: Optional[pulumi.ResourceOptions]=None):
2507
+ opts: Optional[pulumi.ResourceOptions] = None,
2508
+ **kwargs):
2509
+
2296
2510
  if dhcp is not None:
2297
2511
  _setter("dhcp", dhcp)
2298
2512
  if gw is not None:
@@ -2378,7 +2592,9 @@ class VnicIpv6Args:
2378
2592
  autoconfig: Optional[pulumi.Input[bool]] = None,
2379
2593
  dhcp: Optional[pulumi.Input[bool]] = None,
2380
2594
  gw: Optional[pulumi.Input[str]] = None,
2381
- opts: Optional[pulumi.ResourceOptions]=None):
2595
+ opts: Optional[pulumi.ResourceOptions] = None,
2596
+ **kwargs):
2597
+
2382
2598
  if addresses is not None:
2383
2599
  _setter("addresses", addresses)
2384
2600
  if autoconfig is not None:
@@ -2449,7 +2665,9 @@ class GetVirtualMachineVappArgs:
2449
2665
  def _configure(
2450
2666
  _setter: Callable[[Any, Any], None],
2451
2667
  properties: Optional[Mapping[str, str]] = None,
2452
- opts: Optional[pulumi.ResourceOptions]=None):
2668
+ opts: Optional[pulumi.ResourceOptions] = None,
2669
+ **kwargs):
2670
+
2453
2671
  if properties is not None:
2454
2672
  _setter("properties", properties)
2455
2673
 
@@ -246,5 +246,24 @@ def lift_output_func(func: typing.Any) -> typing.Callable[[_F], _F]:
246
246
 
247
247
  return (lambda _: lifted_func)
248
248
 
249
+
250
+ def configure(val, cls: type, input: bool):
251
+ def _apply(v):
252
+ if isinstance(v, typing.Mapping):
253
+ def _setter(key, value):
254
+ v[key] = value
255
+ cls._configure(_setter, **v)
256
+ return v
257
+
258
+ # Check that cls has a static _configure method. External classes may
259
+ # not have it if it was generated with older codegen.
260
+ if hasattr(cls, "_configure"):
261
+ if isinstance(val, typing.Mapping):
262
+ return _apply(val)
263
+ elif input and val is not None and not isinstance(val, cls):
264
+ return pulumi.Output.from_input(val).apply(_apply)
265
+
266
+ return val
267
+
249
268
  def get_plugin_download_url():
250
269
  return None