pulumi-vsphere 4.10.0a1709017641__py3-none-any.whl → 4.17.0a1763710194__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (89) hide show
  1. pulumi_vsphere/__init__.py +51 -1
  2. pulumi_vsphere/_inputs.py +2568 -1025
  3. pulumi_vsphere/_utilities.py +50 -10
  4. pulumi_vsphere/compute_cluster.py +1564 -2373
  5. pulumi_vsphere/compute_cluster_host_group.py +191 -55
  6. pulumi_vsphere/compute_cluster_vm_affinity_rule.py +157 -113
  7. pulumi_vsphere/compute_cluster_vm_anti_affinity_rule.py +133 -89
  8. pulumi_vsphere/compute_cluster_vm_dependency_rule.py +314 -106
  9. pulumi_vsphere/compute_cluster_vm_group.py +256 -55
  10. pulumi_vsphere/compute_cluster_vm_host_rule.py +323 -123
  11. pulumi_vsphere/config/__init__.py +2 -1
  12. pulumi_vsphere/config/__init__.pyi +7 -2
  13. pulumi_vsphere/config/vars.py +20 -15
  14. pulumi_vsphere/configuration_profile.py +286 -0
  15. pulumi_vsphere/content_library.py +177 -71
  16. pulumi_vsphere/content_library_item.py +252 -106
  17. pulumi_vsphere/custom_attribute.py +118 -38
  18. pulumi_vsphere/datacenter.py +128 -107
  19. pulumi_vsphere/datastore_cluster.py +636 -731
  20. pulumi_vsphere/datastore_cluster_vm_anti_affinity_rule.py +251 -89
  21. pulumi_vsphere/distributed_port_group.py +1129 -967
  22. pulumi_vsphere/distributed_virtual_switch.py +1971 -2239
  23. pulumi_vsphere/distributed_virtual_switch_pvlan_mapping.py +294 -0
  24. pulumi_vsphere/dpm_host_override.py +222 -72
  25. pulumi_vsphere/drs_vm_override.py +236 -72
  26. pulumi_vsphere/entity_permissions.py +96 -69
  27. pulumi_vsphere/file.py +173 -178
  28. pulumi_vsphere/folder.py +236 -113
  29. pulumi_vsphere/get_compute_cluster.py +34 -23
  30. pulumi_vsphere/get_compute_cluster_host_group.py +52 -41
  31. pulumi_vsphere/get_configuration_profile.py +145 -0
  32. pulumi_vsphere/get_content_library.py +33 -21
  33. pulumi_vsphere/get_content_library_item.py +47 -31
  34. pulumi_vsphere/get_custom_attribute.py +26 -17
  35. pulumi_vsphere/get_datacenter.py +40 -18
  36. pulumi_vsphere/get_datastore.py +60 -24
  37. pulumi_vsphere/get_datastore_cluster.py +47 -22
  38. pulumi_vsphere/get_datastore_stats.py +204 -0
  39. pulumi_vsphere/get_distributed_virtual_switch.py +36 -23
  40. pulumi_vsphere/get_dynamic.py +55 -45
  41. pulumi_vsphere/get_folder.py +163 -25
  42. pulumi_vsphere/get_guest_os_customization.py +68 -37
  43. pulumi_vsphere/get_host.py +34 -23
  44. pulumi_vsphere/get_host_base_images.py +104 -0
  45. pulumi_vsphere/get_host_pci_device.py +78 -35
  46. pulumi_vsphere/get_host_thumbprint.py +58 -38
  47. pulumi_vsphere/get_host_vgpu_profile.py +195 -0
  48. pulumi_vsphere/get_license.py +44 -28
  49. pulumi_vsphere/get_network.py +157 -46
  50. pulumi_vsphere/get_ovf_vm_template.py +184 -301
  51. pulumi_vsphere/get_policy.py +23 -15
  52. pulumi_vsphere/get_resource_pool.py +107 -40
  53. pulumi_vsphere/get_role.py +49 -35
  54. pulumi_vsphere/get_tag.py +34 -23
  55. pulumi_vsphere/get_tag_category.py +32 -21
  56. pulumi_vsphere/get_vapp_container.py +31 -21
  57. pulumi_vsphere/get_virtual_machine.py +499 -287
  58. pulumi_vsphere/get_vmfs_disks.py +42 -29
  59. pulumi_vsphere/guest_os_customization.py +135 -79
  60. pulumi_vsphere/ha_vm_override.py +470 -577
  61. pulumi_vsphere/host.py +515 -262
  62. pulumi_vsphere/host_port_group.py +352 -355
  63. pulumi_vsphere/host_virtual_switch.py +580 -580
  64. pulumi_vsphere/license.py +110 -92
  65. pulumi_vsphere/nas_datastore.py +398 -270
  66. pulumi_vsphere/offline_software_depot.py +190 -0
  67. pulumi_vsphere/outputs.py +1582 -1027
  68. pulumi_vsphere/provider.py +172 -152
  69. pulumi_vsphere/pulumi-plugin.json +2 -1
  70. pulumi_vsphere/resource_pool.py +357 -273
  71. pulumi_vsphere/role.py +79 -47
  72. pulumi_vsphere/storage_drs_vm_override.py +225 -89
  73. pulumi_vsphere/supervisor.py +1064 -0
  74. pulumi_vsphere/tag.py +217 -55
  75. pulumi_vsphere/tag_category.py +158 -72
  76. pulumi_vsphere/vapp_container.py +425 -259
  77. pulumi_vsphere/vapp_entity.py +324 -174
  78. pulumi_vsphere/virtual_disk.py +245 -153
  79. pulumi_vsphere/virtual_machine.py +1696 -1836
  80. pulumi_vsphere/virtual_machine_class.py +448 -0
  81. pulumi_vsphere/virtual_machine_snapshot.py +137 -131
  82. pulumi_vsphere/vm_storage_policy.py +160 -154
  83. pulumi_vsphere/vmfs_datastore.py +460 -186
  84. pulumi_vsphere/vnic.py +249 -231
  85. {pulumi_vsphere-4.10.0a1709017641.dist-info → pulumi_vsphere-4.17.0a1763710194.dist-info}/METADATA +7 -6
  86. pulumi_vsphere-4.17.0a1763710194.dist-info/RECORD +89 -0
  87. {pulumi_vsphere-4.10.0a1709017641.dist-info → pulumi_vsphere-4.17.0a1763710194.dist-info}/WHEEL +1 -1
  88. pulumi_vsphere-4.10.0a1709017641.dist-info/RECORD +0 -80
  89. {pulumi_vsphere-4.10.0a1709017641.dist-info → pulumi_vsphere-4.17.0a1763710194.dist-info}/top_level.txt +0 -0
@@ -1,12 +1,17 @@
1
1
  # coding=utf-8
2
- # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
3
  # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
4
 
5
- import copy
5
+ import builtins as _builtins
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
10
  from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
10
15
  from . import _utilities
11
16
 
12
17
  __all__ = [
@@ -119,205 +124,205 @@ class GetOvfVmTemplateResult:
119
124
  raise TypeError("Expected argument 'swap_placement_policy' to be a str")
120
125
  pulumi.set(__self__, "swap_placement_policy", swap_placement_policy)
121
126
 
122
- @property
127
+ @_builtins.property
123
128
  @pulumi.getter(name="allowUnverifiedSslCert")
124
- def allow_unverified_ssl_cert(self) -> Optional[bool]:
129
+ def allow_unverified_ssl_cert(self) -> Optional[_builtins.bool]:
125
130
  return pulumi.get(self, "allow_unverified_ssl_cert")
126
131
 
127
- @property
132
+ @_builtins.property
128
133
  @pulumi.getter(name="alternateGuestName")
129
- def alternate_guest_name(self) -> str:
134
+ def alternate_guest_name(self) -> _builtins.str:
130
135
  """
131
136
  An alternate guest operating system name.
132
137
  """
133
138
  return pulumi.get(self, "alternate_guest_name")
134
139
 
135
- @property
140
+ @_builtins.property
136
141
  @pulumi.getter
137
- def annotation(self) -> str:
142
+ def annotation(self) -> _builtins.str:
138
143
  """
139
144
  A description of the virtual machine.
140
145
  """
141
146
  return pulumi.get(self, "annotation")
142
147
 
143
- @property
148
+ @_builtins.property
144
149
  @pulumi.getter(name="cpuHotAddEnabled")
145
- def cpu_hot_add_enabled(self) -> bool:
150
+ def cpu_hot_add_enabled(self) -> _builtins.bool:
146
151
  """
147
152
  Allow CPUs to be added to the virtual machine while
148
153
  powered on.
149
154
  """
150
155
  return pulumi.get(self, "cpu_hot_add_enabled")
151
156
 
152
- @property
157
+ @_builtins.property
153
158
  @pulumi.getter(name="cpuHotRemoveEnabled")
154
- def cpu_hot_remove_enabled(self) -> bool:
159
+ def cpu_hot_remove_enabled(self) -> _builtins.bool:
155
160
  """
156
161
  Allow CPUs to be removed from the virtual machine
157
162
  while powered on.
158
163
  """
159
164
  return pulumi.get(self, "cpu_hot_remove_enabled")
160
165
 
161
- @property
166
+ @_builtins.property
162
167
  @pulumi.getter(name="cpuPerformanceCountersEnabled")
163
- def cpu_performance_counters_enabled(self) -> bool:
168
+ def cpu_performance_counters_enabled(self) -> _builtins.bool:
164
169
  return pulumi.get(self, "cpu_performance_counters_enabled")
165
170
 
166
- @property
171
+ @_builtins.property
167
172
  @pulumi.getter(name="datastoreId")
168
- def datastore_id(self) -> Optional[str]:
173
+ def datastore_id(self) -> Optional[_builtins.str]:
169
174
  return pulumi.get(self, "datastore_id")
170
175
 
171
- @property
176
+ @_builtins.property
172
177
  @pulumi.getter(name="deploymentOption")
173
- def deployment_option(self) -> Optional[str]:
178
+ def deployment_option(self) -> Optional[_builtins.str]:
174
179
  return pulumi.get(self, "deployment_option")
175
180
 
176
- @property
181
+ @_builtins.property
177
182
  @pulumi.getter(name="diskProvisioning")
178
- def disk_provisioning(self) -> Optional[str]:
183
+ def disk_provisioning(self) -> Optional[_builtins.str]:
179
184
  return pulumi.get(self, "disk_provisioning")
180
185
 
181
- @property
186
+ @_builtins.property
182
187
  @pulumi.getter(name="enableHiddenProperties")
183
- def enable_hidden_properties(self) -> Optional[bool]:
188
+ def enable_hidden_properties(self) -> Optional[_builtins.bool]:
184
189
  return pulumi.get(self, "enable_hidden_properties")
185
190
 
186
- @property
191
+ @_builtins.property
187
192
  @pulumi.getter
188
- def firmware(self) -> str:
193
+ def firmware(self) -> _builtins.str:
189
194
  """
190
195
  The firmware to use on the virtual machine.
191
196
  """
192
197
  return pulumi.get(self, "firmware")
193
198
 
194
- @property
199
+ @_builtins.property
195
200
  @pulumi.getter
196
- def folder(self) -> Optional[str]:
201
+ def folder(self) -> Optional[_builtins.str]:
197
202
  return pulumi.get(self, "folder")
198
203
 
199
- @property
204
+ @_builtins.property
200
205
  @pulumi.getter(name="guestId")
201
- def guest_id(self) -> str:
206
+ def guest_id(self) -> _builtins.str:
202
207
  """
203
208
  The ID for the guest operating system
204
209
  """
205
210
  return pulumi.get(self, "guest_id")
206
211
 
207
- @property
212
+ @_builtins.property
208
213
  @pulumi.getter(name="hostSystemId")
209
- def host_system_id(self) -> str:
214
+ def host_system_id(self) -> _builtins.str:
210
215
  return pulumi.get(self, "host_system_id")
211
216
 
212
- @property
217
+ @_builtins.property
213
218
  @pulumi.getter
214
- def id(self) -> str:
219
+ def id(self) -> _builtins.str:
215
220
  """
216
221
  The provider-assigned unique ID for this managed resource.
217
222
  """
218
223
  return pulumi.get(self, "id")
219
224
 
220
- @property
225
+ @_builtins.property
221
226
  @pulumi.getter(name="ideControllerCount")
222
- def ide_controller_count(self) -> int:
227
+ def ide_controller_count(self) -> _builtins.int:
223
228
  return pulumi.get(self, "ide_controller_count")
224
229
 
225
- @property
230
+ @_builtins.property
226
231
  @pulumi.getter(name="ipAllocationPolicy")
227
- def ip_allocation_policy(self) -> Optional[str]:
232
+ def ip_allocation_policy(self) -> Optional[_builtins.str]:
228
233
  return pulumi.get(self, "ip_allocation_policy")
229
234
 
230
- @property
235
+ @_builtins.property
231
236
  @pulumi.getter(name="ipProtocol")
232
- def ip_protocol(self) -> Optional[str]:
237
+ def ip_protocol(self) -> Optional[_builtins.str]:
233
238
  return pulumi.get(self, "ip_protocol")
234
239
 
235
- @property
240
+ @_builtins.property
236
241
  @pulumi.getter(name="localOvfPath")
237
- def local_ovf_path(self) -> Optional[str]:
242
+ def local_ovf_path(self) -> Optional[_builtins.str]:
238
243
  return pulumi.get(self, "local_ovf_path")
239
244
 
240
- @property
245
+ @_builtins.property
241
246
  @pulumi.getter
242
- def memory(self) -> int:
247
+ def memory(self) -> _builtins.int:
243
248
  """
244
249
  The size of the virtual machine memory, in MB.
245
250
  """
246
251
  return pulumi.get(self, "memory")
247
252
 
248
- @property
253
+ @_builtins.property
249
254
  @pulumi.getter(name="memoryHotAddEnabled")
250
- def memory_hot_add_enabled(self) -> bool:
255
+ def memory_hot_add_enabled(self) -> _builtins.bool:
251
256
  """
252
257
  Allow memory to be added to the virtual machine
253
258
  while powered on.
254
259
  """
255
260
  return pulumi.get(self, "memory_hot_add_enabled")
256
261
 
257
- @property
262
+ @_builtins.property
258
263
  @pulumi.getter
259
- def name(self) -> str:
264
+ def name(self) -> _builtins.str:
260
265
  return pulumi.get(self, "name")
261
266
 
262
- @property
267
+ @_builtins.property
263
268
  @pulumi.getter(name="nestedHvEnabled")
264
- def nested_hv_enabled(self) -> bool:
269
+ def nested_hv_enabled(self) -> _builtins.bool:
265
270
  """
266
271
  Enable nested hardware virtualization on the virtual
267
272
  machine, facilitating nested virtualization in the guest.
268
273
  """
269
274
  return pulumi.get(self, "nested_hv_enabled")
270
275
 
271
- @property
276
+ @_builtins.property
272
277
  @pulumi.getter(name="numCoresPerSocket")
273
- def num_cores_per_socket(self) -> int:
278
+ def num_cores_per_socket(self) -> _builtins.int:
274
279
  """
275
280
  The number of cores per virtual CPU in the virtual
276
281
  machine.
277
282
  """
278
283
  return pulumi.get(self, "num_cores_per_socket")
279
284
 
280
- @property
285
+ @_builtins.property
281
286
  @pulumi.getter(name="numCpus")
282
- def num_cpus(self) -> int:
287
+ def num_cpus(self) -> _builtins.int:
283
288
  """
284
289
  The number of virtual CPUs to assign to the virtual machine.
285
290
  """
286
291
  return pulumi.get(self, "num_cpus")
287
292
 
288
- @property
293
+ @_builtins.property
289
294
  @pulumi.getter(name="ovfNetworkMap")
290
- def ovf_network_map(self) -> Optional[Mapping[str, str]]:
295
+ def ovf_network_map(self) -> Optional[Mapping[str, _builtins.str]]:
291
296
  return pulumi.get(self, "ovf_network_map")
292
297
 
293
- @property
298
+ @_builtins.property
294
299
  @pulumi.getter(name="remoteOvfUrl")
295
- def remote_ovf_url(self) -> Optional[str]:
300
+ def remote_ovf_url(self) -> Optional[_builtins.str]:
296
301
  return pulumi.get(self, "remote_ovf_url")
297
302
 
298
- @property
303
+ @_builtins.property
299
304
  @pulumi.getter(name="resourcePoolId")
300
- def resource_pool_id(self) -> str:
305
+ def resource_pool_id(self) -> _builtins.str:
301
306
  return pulumi.get(self, "resource_pool_id")
302
307
 
303
- @property
308
+ @_builtins.property
304
309
  @pulumi.getter(name="sataControllerCount")
305
- def sata_controller_count(self) -> int:
310
+ def sata_controller_count(self) -> _builtins.int:
306
311
  return pulumi.get(self, "sata_controller_count")
307
312
 
308
- @property
313
+ @_builtins.property
309
314
  @pulumi.getter(name="scsiControllerCount")
310
- def scsi_controller_count(self) -> int:
315
+ def scsi_controller_count(self) -> _builtins.int:
311
316
  return pulumi.get(self, "scsi_controller_count")
312
317
 
313
- @property
318
+ @_builtins.property
314
319
  @pulumi.getter(name="scsiType")
315
- def scsi_type(self) -> str:
320
+ def scsi_type(self) -> _builtins.str:
316
321
  return pulumi.get(self, "scsi_type")
317
322
 
318
- @property
323
+ @_builtins.property
319
324
  @pulumi.getter(name="swapPlacementPolicy")
320
- def swap_placement_policy(self) -> str:
325
+ def swap_placement_policy(self) -> _builtins.str:
321
326
  """
322
327
  The swap file placement policy for the virtual
323
328
  machine.
@@ -365,140 +370,56 @@ class AwaitableGetOvfVmTemplateResult(GetOvfVmTemplateResult):
365
370
  swap_placement_policy=self.swap_placement_policy)
366
371
 
367
372
 
368
- def get_ovf_vm_template(allow_unverified_ssl_cert: Optional[bool] = None,
369
- datastore_id: Optional[str] = None,
370
- deployment_option: Optional[str] = None,
371
- disk_provisioning: Optional[str] = None,
372
- enable_hidden_properties: Optional[bool] = None,
373
- folder: Optional[str] = None,
374
- host_system_id: Optional[str] = None,
375
- ip_allocation_policy: Optional[str] = None,
376
- ip_protocol: Optional[str] = None,
377
- local_ovf_path: Optional[str] = None,
378
- name: Optional[str] = None,
379
- ovf_network_map: Optional[Mapping[str, str]] = None,
380
- remote_ovf_url: Optional[str] = None,
381
- resource_pool_id: Optional[str] = None,
373
+ def get_ovf_vm_template(allow_unverified_ssl_cert: Optional[_builtins.bool] = None,
374
+ datastore_id: Optional[_builtins.str] = None,
375
+ deployment_option: Optional[_builtins.str] = None,
376
+ disk_provisioning: Optional[_builtins.str] = None,
377
+ enable_hidden_properties: Optional[_builtins.bool] = None,
378
+ folder: Optional[_builtins.str] = None,
379
+ host_system_id: Optional[_builtins.str] = None,
380
+ ip_allocation_policy: Optional[_builtins.str] = None,
381
+ ip_protocol: Optional[_builtins.str] = None,
382
+ local_ovf_path: Optional[_builtins.str] = None,
383
+ name: Optional[_builtins.str] = None,
384
+ ovf_network_map: Optional[Mapping[str, _builtins.str]] = None,
385
+ remote_ovf_url: Optional[_builtins.str] = None,
386
+ resource_pool_id: Optional[_builtins.str] = None,
382
387
  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetOvfVmTemplateResult:
383
388
  """
384
389
  The `get_ovf_vm_template` data source can be used to submit an OVF to
385
390
  vSphere and extract its hardware settings in a form that can be then used as
386
391
  inputs for a `VirtualMachine` resource.
387
392
 
388
- ## Remote OVF/OVA Source
389
-
390
- data "vsphere_ovf_vm_template" "ovfRemote" {
391
- name = "Nested-ESXi-7.0-Terraform-Deploy-1"
392
- disk_provisioning = "thin"
393
- resource_pool_id = data.vsphere_resource_pool.default.id
394
- datastore_id = data.vsphere_datastore.datastore.id
395
- host_system_id = data.vsphere_host.host.id
396
- remote_ovf_url = "https://download3.vmware.com/software/vmw-tools/nested-esxi/Nested_ESXi7.0u3_Appliance_Template_v1.ova"
397
- ovf_network_map = {
398
- "VM Network" : data.vsphere_network.network.id
399
- }
400
- }
401
-
402
- ## Local OVF/OVA Source
403
-
404
- data "vsphere_ovf_vm_template" "ovfLocal" {
405
- name = "Nested-ESXi-7.0-Terraform-Deploy-2"
406
- disk_provisioning = "thin"
407
- resource_pool_id = data.vsphere_resource_pool.default.id
408
- datastore_id = data.vsphere_datastore.datastore.id
409
- host_system_id = data.vsphere_host.host.id
410
- local_ovf_path = "/Volume/Storage/OVA/Nested_ESXi7.0u3_Appliance_Template_v1.ova"
411
- ovf_network_map = {
412
- "VM Network" : data.vsphere_network.network.id
413
- }
414
- }
415
-
416
- ## Deployment of VM from Remote OVF
417
-
418
- resource "vsphere_virtual_machine" "vmFromRemoteOvf" {
419
- name = "Nested-ESXi-7.0-Terraform-Deploy-1"
420
- datacenter_id = data.vsphere_datacenter.datacenter.id
421
- datastore_id = data.vsphere_datastore.datastore.id
422
- host_system_id = data.vsphere_host.host.id
423
- resource_pool_id = data.vsphere_resource_pool.default.id
424
- num_cpus = data.vsphere_ovf_vm_template.ovfRemote.num_cpus
425
- num_cores_per_socket = data.vsphere_ovf_vm_template.ovfRemote.num_cores_per_socket
426
- memory = data.vsphere_ovf_vm_template.ovfRemote.memory
427
- guest_id = data.vsphere_ovf_vm_template.ovfRemote.guest_id
428
- firmware = data.vsphere_ovf_vm_template.ovfRemote.firmware
429
- scsi_type = data.vsphere_ovf_vm_template.ovfRemote.scsi_type
430
- nested_hv_enabled = data.vsphere_ovf_vm_template.ovfRemote.nested_hv_enabled
431
- dynamic "network_interface" {
432
- for_each = data.vsphere_ovf_vm_template.ovfRemote.ovf_network_map
433
- content {
434
- network_id = network_interface.value
435
- }
436
- }
437
- wait_for_guest_net_timeout = 0
438
- wait_for_guest_ip_timeout = 0
439
-
440
- ovf_deploy {
441
- allow_unverified_ssl_cert = false
442
- remote_ovf_url = data.vsphere_ovf_vm_template.ovfRemote.remote_ovf_url
443
- disk_provisioning = data.vsphere_ovf_vm_template.ovfRemote.disk_provisioning
444
- ovf_network_map = data.vsphere_ovf_vm_template.ovfRemote.ovf_network_map
445
- }
446
-
447
- vapp {
448
- properties = {
449
- "guestinfo.hostname" = "nested-esxi-01.example.com",
450
- "guestinfo.ipaddress" = "172.16.11.101",
451
- "guestinfo.netmask" = "255.255.255.0",
452
- "guestinfo.gateway" = "172.16.11.1",
453
- "guestinfo.dns" = "172.16.11.4",
454
- "guestinfo.domain" = "example.com",
455
- "guestinfo.ntp" = "ntp.example.com",
456
- "guestinfo.password" = "VMware1!",
457
- "guestinfo.ssh" = "True"
458
- }
459
- }
460
-
461
- lifecycle {
462
- ignore_changes = [
463
- annotation,
464
- disk[0].io_share_count,
465
- disk[1].io_share_count,
466
- disk[2].io_share_count,
467
- vapp[0].properties,
468
- ]
469
- }
470
- }
471
-
472
-
473
- :param bool allow_unverified_ssl_cert: Allow unverified SSL certificates
393
+
394
+ :param _builtins.bool allow_unverified_ssl_cert: Allow unverified SSL certificates
474
395
  when deploying OVF/OVA from a URL.
475
- :param str datastore_id: The ID of the virtual machine's datastore. The
396
+ :param _builtins.str datastore_id: The ID of the virtual machine's datastore. The
476
397
  virtual machine configuration is placed here, along with any virtual disks
477
398
  that are created without datastores.
478
- :param str deployment_option: The key of the chosen deployment option. If
399
+ :param _builtins.str deployment_option: The key of the chosen deployment option. If
479
400
  empty, the default option is chosen.
480
- :param str disk_provisioning: The disk provisioning type. If set, all the
481
- disks in the deployed OVA/OVF will have the same specified disk type. Can be
482
- one of `thin`, `flat`, `thick` or `sameAsSource`.
483
- :param bool enable_hidden_properties: Allow properties with
401
+ :param _builtins.str disk_provisioning: The disk provisioning type. If set, all the
402
+ disks included in the OVF/OVA will have the same specified policy. Can be
403
+ one of `thin`, `thick`, or `eagerZeroedThick`.
404
+ :param _builtins.bool enable_hidden_properties: Allow properties with
484
405
  `ovf:userConfigurable=false` to be set.
485
- :param str folder: The name of the folder in which to place the virtual
406
+ :param _builtins.str folder: The name of the folder in which to place the virtual
486
407
  machine.
487
- :param str host_system_id: The ID of the ESXi host system to deploy the
408
+ :param _builtins.str host_system_id: The ID of the ESXi host system to deploy the
488
409
  virtual machine.
489
- :param str ip_allocation_policy: The IP allocation policy.
490
- :param str ip_protocol: The IP protocol.
491
- :param str local_ovf_path: The absolute path to the OVF/OVA file on the
410
+ :param _builtins.str ip_allocation_policy: The IP allocation policy.
411
+ :param _builtins.str ip_protocol: The IP protocol.
412
+ :param _builtins.str local_ovf_path: The absolute path to the OVF/OVA file on the
492
413
  local system. When deploying from an OVF, ensure all necessary files such as
493
414
  the `.vmdk` files are present in the same directory as the OVF.
494
- :param str name: Name of the virtual machine to create.
495
- :param Mapping[str, str] ovf_network_map: The mapping of name of network identifiers
415
+ :param _builtins.str name: Name of the virtual machine to create.
416
+ :param Mapping[str, _builtins.str] ovf_network_map: The mapping of name of network identifiers
496
417
  from the OVF descriptor to network UUID in the environment.
497
- :param str remote_ovf_url: URL of the remote OVF/OVA file to be deployed.
418
+ :param _builtins.str remote_ovf_url: URL of the remote OVF/OVA file to be deployed.
498
419
 
499
420
  > **NOTE:** Either `local_ovf_path` or `remote_ovf_url` is required, both can
500
421
  not be empty.
501
- :param str resource_pool_id: The ID of a resource pool in which to place
422
+ :param _builtins.str resource_pool_id: The ID of a resource pool in which to place
502
423
  the virtual machine.
503
424
  """
504
425
  __args__ = dict()
@@ -552,143 +473,105 @@ def get_ovf_vm_template(allow_unverified_ssl_cert: Optional[bool] = None,
552
473
  scsi_controller_count=pulumi.get(__ret__, 'scsi_controller_count'),
553
474
  scsi_type=pulumi.get(__ret__, 'scsi_type'),
554
475
  swap_placement_policy=pulumi.get(__ret__, 'swap_placement_policy'))
555
-
556
-
557
- @_utilities.lift_output_func(get_ovf_vm_template)
558
- def get_ovf_vm_template_output(allow_unverified_ssl_cert: Optional[pulumi.Input[Optional[bool]]] = None,
559
- datastore_id: Optional[pulumi.Input[Optional[str]]] = None,
560
- deployment_option: Optional[pulumi.Input[Optional[str]]] = None,
561
- disk_provisioning: Optional[pulumi.Input[Optional[str]]] = None,
562
- enable_hidden_properties: Optional[pulumi.Input[Optional[bool]]] = None,
563
- folder: Optional[pulumi.Input[Optional[str]]] = None,
564
- host_system_id: Optional[pulumi.Input[str]] = None,
565
- ip_allocation_policy: Optional[pulumi.Input[Optional[str]]] = None,
566
- ip_protocol: Optional[pulumi.Input[Optional[str]]] = None,
567
- local_ovf_path: Optional[pulumi.Input[Optional[str]]] = None,
568
- name: Optional[pulumi.Input[str]] = None,
569
- ovf_network_map: Optional[pulumi.Input[Optional[Mapping[str, str]]]] = None,
570
- remote_ovf_url: Optional[pulumi.Input[Optional[str]]] = None,
571
- resource_pool_id: Optional[pulumi.Input[str]] = None,
572
- opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetOvfVmTemplateResult]:
476
+ def get_ovf_vm_template_output(allow_unverified_ssl_cert: Optional[pulumi.Input[Optional[_builtins.bool]]] = None,
477
+ datastore_id: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
478
+ deployment_option: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
479
+ disk_provisioning: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
480
+ enable_hidden_properties: Optional[pulumi.Input[Optional[_builtins.bool]]] = None,
481
+ folder: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
482
+ host_system_id: Optional[pulumi.Input[_builtins.str]] = None,
483
+ ip_allocation_policy: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
484
+ ip_protocol: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
485
+ local_ovf_path: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
486
+ name: Optional[pulumi.Input[_builtins.str]] = None,
487
+ ovf_network_map: Optional[pulumi.Input[Optional[Mapping[str, _builtins.str]]]] = None,
488
+ remote_ovf_url: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
489
+ resource_pool_id: Optional[pulumi.Input[_builtins.str]] = None,
490
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetOvfVmTemplateResult]:
573
491
  """
574
492
  The `get_ovf_vm_template` data source can be used to submit an OVF to
575
493
  vSphere and extract its hardware settings in a form that can be then used as
576
494
  inputs for a `VirtualMachine` resource.
577
495
 
578
- ## Remote OVF/OVA Source
579
-
580
- data "vsphere_ovf_vm_template" "ovfRemote" {
581
- name = "Nested-ESXi-7.0-Terraform-Deploy-1"
582
- disk_provisioning = "thin"
583
- resource_pool_id = data.vsphere_resource_pool.default.id
584
- datastore_id = data.vsphere_datastore.datastore.id
585
- host_system_id = data.vsphere_host.host.id
586
- remote_ovf_url = "https://download3.vmware.com/software/vmw-tools/nested-esxi/Nested_ESXi7.0u3_Appliance_Template_v1.ova"
587
- ovf_network_map = {
588
- "VM Network" : data.vsphere_network.network.id
589
- }
590
- }
591
-
592
- ## Local OVF/OVA Source
593
-
594
- data "vsphere_ovf_vm_template" "ovfLocal" {
595
- name = "Nested-ESXi-7.0-Terraform-Deploy-2"
596
- disk_provisioning = "thin"
597
- resource_pool_id = data.vsphere_resource_pool.default.id
598
- datastore_id = data.vsphere_datastore.datastore.id
599
- host_system_id = data.vsphere_host.host.id
600
- local_ovf_path = "/Volume/Storage/OVA/Nested_ESXi7.0u3_Appliance_Template_v1.ova"
601
- ovf_network_map = {
602
- "VM Network" : data.vsphere_network.network.id
603
- }
604
- }
605
-
606
- ## Deployment of VM from Remote OVF
607
-
608
- resource "vsphere_virtual_machine" "vmFromRemoteOvf" {
609
- name = "Nested-ESXi-7.0-Terraform-Deploy-1"
610
- datacenter_id = data.vsphere_datacenter.datacenter.id
611
- datastore_id = data.vsphere_datastore.datastore.id
612
- host_system_id = data.vsphere_host.host.id
613
- resource_pool_id = data.vsphere_resource_pool.default.id
614
- num_cpus = data.vsphere_ovf_vm_template.ovfRemote.num_cpus
615
- num_cores_per_socket = data.vsphere_ovf_vm_template.ovfRemote.num_cores_per_socket
616
- memory = data.vsphere_ovf_vm_template.ovfRemote.memory
617
- guest_id = data.vsphere_ovf_vm_template.ovfRemote.guest_id
618
- firmware = data.vsphere_ovf_vm_template.ovfRemote.firmware
619
- scsi_type = data.vsphere_ovf_vm_template.ovfRemote.scsi_type
620
- nested_hv_enabled = data.vsphere_ovf_vm_template.ovfRemote.nested_hv_enabled
621
- dynamic "network_interface" {
622
- for_each = data.vsphere_ovf_vm_template.ovfRemote.ovf_network_map
623
- content {
624
- network_id = network_interface.value
625
- }
626
- }
627
- wait_for_guest_net_timeout = 0
628
- wait_for_guest_ip_timeout = 0
629
-
630
- ovf_deploy {
631
- allow_unverified_ssl_cert = false
632
- remote_ovf_url = data.vsphere_ovf_vm_template.ovfRemote.remote_ovf_url
633
- disk_provisioning = data.vsphere_ovf_vm_template.ovfRemote.disk_provisioning
634
- ovf_network_map = data.vsphere_ovf_vm_template.ovfRemote.ovf_network_map
635
- }
636
-
637
- vapp {
638
- properties = {
639
- "guestinfo.hostname" = "nested-esxi-01.example.com",
640
- "guestinfo.ipaddress" = "172.16.11.101",
641
- "guestinfo.netmask" = "255.255.255.0",
642
- "guestinfo.gateway" = "172.16.11.1",
643
- "guestinfo.dns" = "172.16.11.4",
644
- "guestinfo.domain" = "example.com",
645
- "guestinfo.ntp" = "ntp.example.com",
646
- "guestinfo.password" = "VMware1!",
647
- "guestinfo.ssh" = "True"
648
- }
649
- }
650
-
651
- lifecycle {
652
- ignore_changes = [
653
- annotation,
654
- disk[0].io_share_count,
655
- disk[1].io_share_count,
656
- disk[2].io_share_count,
657
- vapp[0].properties,
658
- ]
659
- }
660
- }
661
-
662
-
663
- :param bool allow_unverified_ssl_cert: Allow unverified SSL certificates
496
+
497
+ :param _builtins.bool allow_unverified_ssl_cert: Allow unverified SSL certificates
664
498
  when deploying OVF/OVA from a URL.
665
- :param str datastore_id: The ID of the virtual machine's datastore. The
499
+ :param _builtins.str datastore_id: The ID of the virtual machine's datastore. The
666
500
  virtual machine configuration is placed here, along with any virtual disks
667
501
  that are created without datastores.
668
- :param str deployment_option: The key of the chosen deployment option. If
502
+ :param _builtins.str deployment_option: The key of the chosen deployment option. If
669
503
  empty, the default option is chosen.
670
- :param str disk_provisioning: The disk provisioning type. If set, all the
671
- disks in the deployed OVA/OVF will have the same specified disk type. Can be
672
- one of `thin`, `flat`, `thick` or `sameAsSource`.
673
- :param bool enable_hidden_properties: Allow properties with
504
+ :param _builtins.str disk_provisioning: The disk provisioning type. If set, all the
505
+ disks included in the OVF/OVA will have the same specified policy. Can be
506
+ one of `thin`, `thick`, or `eagerZeroedThick`.
507
+ :param _builtins.bool enable_hidden_properties: Allow properties with
674
508
  `ovf:userConfigurable=false` to be set.
675
- :param str folder: The name of the folder in which to place the virtual
509
+ :param _builtins.str folder: The name of the folder in which to place the virtual
676
510
  machine.
677
- :param str host_system_id: The ID of the ESXi host system to deploy the
511
+ :param _builtins.str host_system_id: The ID of the ESXi host system to deploy the
678
512
  virtual machine.
679
- :param str ip_allocation_policy: The IP allocation policy.
680
- :param str ip_protocol: The IP protocol.
681
- :param str local_ovf_path: The absolute path to the OVF/OVA file on the
513
+ :param _builtins.str ip_allocation_policy: The IP allocation policy.
514
+ :param _builtins.str ip_protocol: The IP protocol.
515
+ :param _builtins.str local_ovf_path: The absolute path to the OVF/OVA file on the
682
516
  local system. When deploying from an OVF, ensure all necessary files such as
683
517
  the `.vmdk` files are present in the same directory as the OVF.
684
- :param str name: Name of the virtual machine to create.
685
- :param Mapping[str, str] ovf_network_map: The mapping of name of network identifiers
518
+ :param _builtins.str name: Name of the virtual machine to create.
519
+ :param Mapping[str, _builtins.str] ovf_network_map: The mapping of name of network identifiers
686
520
  from the OVF descriptor to network UUID in the environment.
687
- :param str remote_ovf_url: URL of the remote OVF/OVA file to be deployed.
521
+ :param _builtins.str remote_ovf_url: URL of the remote OVF/OVA file to be deployed.
688
522
 
689
523
  > **NOTE:** Either `local_ovf_path` or `remote_ovf_url` is required, both can
690
524
  not be empty.
691
- :param str resource_pool_id: The ID of a resource pool in which to place
525
+ :param _builtins.str resource_pool_id: The ID of a resource pool in which to place
692
526
  the virtual machine.
693
527
  """
694
- ...
528
+ __args__ = dict()
529
+ __args__['allowUnverifiedSslCert'] = allow_unverified_ssl_cert
530
+ __args__['datastoreId'] = datastore_id
531
+ __args__['deploymentOption'] = deployment_option
532
+ __args__['diskProvisioning'] = disk_provisioning
533
+ __args__['enableHiddenProperties'] = enable_hidden_properties
534
+ __args__['folder'] = folder
535
+ __args__['hostSystemId'] = host_system_id
536
+ __args__['ipAllocationPolicy'] = ip_allocation_policy
537
+ __args__['ipProtocol'] = ip_protocol
538
+ __args__['localOvfPath'] = local_ovf_path
539
+ __args__['name'] = name
540
+ __args__['ovfNetworkMap'] = ovf_network_map
541
+ __args__['remoteOvfUrl'] = remote_ovf_url
542
+ __args__['resourcePoolId'] = resource_pool_id
543
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
544
+ __ret__ = pulumi.runtime.invoke_output('vsphere:index/getOvfVmTemplate:getOvfVmTemplate', __args__, opts=opts, typ=GetOvfVmTemplateResult)
545
+ return __ret__.apply(lambda __response__: GetOvfVmTemplateResult(
546
+ allow_unverified_ssl_cert=pulumi.get(__response__, 'allow_unverified_ssl_cert'),
547
+ alternate_guest_name=pulumi.get(__response__, 'alternate_guest_name'),
548
+ annotation=pulumi.get(__response__, 'annotation'),
549
+ cpu_hot_add_enabled=pulumi.get(__response__, 'cpu_hot_add_enabled'),
550
+ cpu_hot_remove_enabled=pulumi.get(__response__, 'cpu_hot_remove_enabled'),
551
+ cpu_performance_counters_enabled=pulumi.get(__response__, 'cpu_performance_counters_enabled'),
552
+ datastore_id=pulumi.get(__response__, 'datastore_id'),
553
+ deployment_option=pulumi.get(__response__, 'deployment_option'),
554
+ disk_provisioning=pulumi.get(__response__, 'disk_provisioning'),
555
+ enable_hidden_properties=pulumi.get(__response__, 'enable_hidden_properties'),
556
+ firmware=pulumi.get(__response__, 'firmware'),
557
+ folder=pulumi.get(__response__, 'folder'),
558
+ guest_id=pulumi.get(__response__, 'guest_id'),
559
+ host_system_id=pulumi.get(__response__, 'host_system_id'),
560
+ id=pulumi.get(__response__, 'id'),
561
+ ide_controller_count=pulumi.get(__response__, 'ide_controller_count'),
562
+ ip_allocation_policy=pulumi.get(__response__, 'ip_allocation_policy'),
563
+ ip_protocol=pulumi.get(__response__, 'ip_protocol'),
564
+ local_ovf_path=pulumi.get(__response__, 'local_ovf_path'),
565
+ memory=pulumi.get(__response__, 'memory'),
566
+ memory_hot_add_enabled=pulumi.get(__response__, 'memory_hot_add_enabled'),
567
+ name=pulumi.get(__response__, 'name'),
568
+ nested_hv_enabled=pulumi.get(__response__, 'nested_hv_enabled'),
569
+ num_cores_per_socket=pulumi.get(__response__, 'num_cores_per_socket'),
570
+ num_cpus=pulumi.get(__response__, 'num_cpus'),
571
+ ovf_network_map=pulumi.get(__response__, 'ovf_network_map'),
572
+ remote_ovf_url=pulumi.get(__response__, 'remote_ovf_url'),
573
+ resource_pool_id=pulumi.get(__response__, 'resource_pool_id'),
574
+ sata_controller_count=pulumi.get(__response__, 'sata_controller_count'),
575
+ scsi_controller_count=pulumi.get(__response__, 'scsi_controller_count'),
576
+ scsi_type=pulumi.get(__response__, 'scsi_type'),
577
+ swap_placement_policy=pulumi.get(__response__, 'swap_placement_policy')))