pulumi-vsphere 4.14.0a1745952392__py3-none-any.whl → 4.14.0a1747752163__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 (61) hide show
  1. pulumi_vsphere/compute_cluster.py +11 -13
  2. pulumi_vsphere/compute_cluster_host_group.py +71 -3
  3. pulumi_vsphere/compute_cluster_vm_affinity_rule.py +1 -3
  4. pulumi_vsphere/compute_cluster_vm_anti_affinity_rule.py +5 -3
  5. pulumi_vsphere/compute_cluster_vm_dependency_rule.py +5 -3
  6. pulumi_vsphere/compute_cluster_vm_group.py +5 -3
  7. pulumi_vsphere/compute_cluster_vm_host_rule.py +5 -3
  8. pulumi_vsphere/content_library.py +5 -3
  9. pulumi_vsphere/content_library_item.py +5 -3
  10. pulumi_vsphere/custom_attribute.py +5 -3
  11. pulumi_vsphere/datacenter.py +1 -3
  12. pulumi_vsphere/datastore_cluster.py +89 -3
  13. pulumi_vsphere/datastore_cluster_vm_anti_affinity_rule.py +5 -3
  14. pulumi_vsphere/distributed_port_group.py +5 -3
  15. pulumi_vsphere/distributed_virtual_switch.py +5 -3
  16. pulumi_vsphere/distributed_virtual_switch_pvlan_mapping.py +1 -3
  17. pulumi_vsphere/dpm_host_override.py +89 -3
  18. pulumi_vsphere/drs_vm_override.py +5 -3
  19. pulumi_vsphere/entity_permissions.py +1 -3
  20. pulumi_vsphere/file.py +35 -52
  21. pulumi_vsphere/folder.py +17 -15
  22. pulumi_vsphere/get_compute_cluster_host_group.py +0 -4
  23. pulumi_vsphere/get_datastore_cluster.py +1 -1
  24. pulumi_vsphere/get_datastore_stats.py +0 -4
  25. pulumi_vsphere/get_dynamic.py +0 -4
  26. pulumi_vsphere/get_folder.py +130 -8
  27. pulumi_vsphere/get_guest_os_customization.py +21 -2
  28. pulumi_vsphere/get_license.py +8 -6
  29. pulumi_vsphere/get_network.py +35 -1
  30. pulumi_vsphere/get_ovf_vm_template.py +4 -4
  31. pulumi_vsphere/guest_os_customization.py +1 -3
  32. pulumi_vsphere/ha_vm_override.py +5 -3
  33. pulumi_vsphere/host.py +61 -9
  34. pulumi_vsphere/host_port_group.py +1 -3
  35. pulumi_vsphere/host_virtual_switch.py +5 -3
  36. pulumi_vsphere/license.py +67 -29
  37. pulumi_vsphere/nas_datastore.py +63 -3
  38. pulumi_vsphere/offline_software_depot.py +5 -3
  39. pulumi_vsphere/outputs.py +33 -0
  40. pulumi_vsphere/provider.py +21 -3
  41. pulumi_vsphere/pulumi-plugin.json +1 -1
  42. pulumi_vsphere/resource_pool.py +490 -166
  43. pulumi_vsphere/role.py +1 -3
  44. pulumi_vsphere/storage_drs_vm_override.py +5 -3
  45. pulumi_vsphere/supervisor.py +3 -5
  46. pulumi_vsphere/tag.py +5 -3
  47. pulumi_vsphere/tag_category.py +5 -3
  48. pulumi_vsphere/vapp_container.py +5 -3
  49. pulumi_vsphere/vapp_entity.py +5 -3
  50. pulumi_vsphere/virtual_disk.py +5 -3
  51. pulumi_vsphere/virtual_machine.py +5 -7
  52. pulumi_vsphere/virtual_machine_class.py +5 -7
  53. pulumi_vsphere/virtual_machine_snapshot.py +1 -3
  54. pulumi_vsphere/vm_storage_policy.py +1 -3
  55. pulumi_vsphere/vmfs_datastore.py +5 -3
  56. pulumi_vsphere/vnic.py +1 -3
  57. {pulumi_vsphere-4.14.0a1745952392.dist-info → pulumi_vsphere-4.14.0a1747752163.dist-info}/METADATA +3 -3
  58. pulumi_vsphere-4.14.0a1747752163.dist-info/RECORD +87 -0
  59. {pulumi_vsphere-4.14.0a1745952392.dist-info → pulumi_vsphere-4.14.0a1747752163.dist-info}/WHEEL +1 -1
  60. pulumi_vsphere-4.14.0a1745952392.dist-info/RECORD +0 -87
  61. {pulumi_vsphere-4.14.0a1745952392.dist-info → pulumi_vsphere-4.14.0a1747752163.dist-info}/top_level.txt +0 -0
@@ -75,15 +75,76 @@ def get_folder(path: Optional[builtins.str] = None,
75
75
  import pulumi
76
76
  import pulumi_vsphere as vsphere
77
77
 
78
- folder = vsphere.get_folder(path="/dc-01/datastore-01/folder-01")
78
+ datacenter_folder_folder = vsphere.Folder("datacenter_folder",
79
+ path="example-datacenter-folder",
80
+ type="datacenter")
81
+ datacenter_folder = vsphere.get_folder_output(path=datacenter_folder_folder.path.apply(lambda path: f"/{path}"))
82
+ datacenter_datacenter = vsphere.Datacenter("datacenter",
83
+ name="example-datacenter",
84
+ folder=datacenter_folder.path,
85
+ opts = pulumi.ResourceOptions(depends_on=[datacenter_folder]))
86
+ datacenter = vsphere.get_datacenter_output(name=datacenter_datacenter.name)
87
+ vm_folder_folder = vsphere.Folder("vm_folder",
88
+ path="example-vm-folder",
89
+ type="vm",
90
+ datacenter_id=datacenter.id)
91
+ datastore_folder_folder = vsphere.Folder("datastore_folder",
92
+ path="example-datastore-folder",
93
+ type="datastore",
94
+ datacenter_id=datacenter.id)
95
+ network_folder_folder = vsphere.Folder("network_folder",
96
+ path="example-network-folder",
97
+ type="network",
98
+ datacenter_id=datacenter.id)
99
+ host_folder_folder = vsphere.Folder("host_folder",
100
+ path="example-host-folder",
101
+ type="host",
102
+ datacenter_id=datacenter.id)
103
+ vm_folder = vsphere.get_folder_output(path=pulumi.Output.all(
104
+ datacenterFolderFolderPath=datacenter_folder_folder.path,
105
+ name=datacenter_datacenter.name,
106
+ vmFolderFolderPath=vm_folder_folder.path
107
+ ).apply(lambda resolved_outputs: f"/{resolved_outputs['datacenterFolderFolderPath']}/{resolved_outputs['name']}/vm/{resolved_outputs['vmFolderFolderPath']}")
108
+ )
109
+ datastore_folder = vsphere.get_folder_output(path=pulumi.Output.all(
110
+ datacenterFolderFolderPath=datacenter_folder_folder.path,
111
+ name=datacenter_datacenter.name,
112
+ datastoreFolderFolderPath=datastore_folder_folder.path
113
+ ).apply(lambda resolved_outputs: f"/{resolved_outputs['datacenterFolderFolderPath']}/{resolved_outputs['name']}/datastore/{resolved_outputs['datastoreFolderFolderPath']}")
114
+ )
115
+ network_folder = vsphere.get_folder_output(path=pulumi.Output.all(
116
+ datacenterFolderFolderPath=datacenter_folder_folder.path,
117
+ name=datacenter_datacenter.name,
118
+ networkFolderFolderPath=network_folder_folder.path
119
+ ).apply(lambda resolved_outputs: f"/{resolved_outputs['datacenterFolderFolderPath']}/{resolved_outputs['name']}/network/{resolved_outputs['networkFolderFolderPath']}")
120
+ )
121
+ host_folder = vsphere.get_folder_output(path=pulumi.Output.all(
122
+ datacenterFolderFolderPath=datacenter_folder_folder.path,
123
+ name=datacenter_datacenter.name,
124
+ hostFolderFolderPath=host_folder_folder.path
125
+ ).apply(lambda resolved_outputs: f"/{resolved_outputs['datacenterFolderFolderPath']}/{resolved_outputs['name']}/host/{resolved_outputs['hostFolderFolderPath']}")
126
+ )
127
+ pulumi.export("vmFolderId", vm_folder.id)
128
+ pulumi.export("datastoreFolderId", datastore_folder.id)
129
+ pulumi.export("networkFolderId", network_folder.id)
130
+ pulumi.export("hostFolderId", host_folder.id)
131
+ pulumi.export("datacenterId", datacenter.id)
132
+ pulumi.export("datacenterFolderPath", datacenter_folder_folder.path)
79
133
  ```
80
134
 
81
135
 
82
136
  :param builtins.str path: The absolute path of the folder. For example, given a
83
137
  default datacenter of `default-dc`, a folder of type `vm`, and a folder name
84
- of `test-folder`, the resulting path would be
85
- `/default-dc/vm/test-folder`. The valid folder types to be used in
86
- the path are: `vm`, `host`, `datacenter`, `datastore`, or `network`.
138
+ of `example-vm-folder`, the resulting `path` would be
139
+ `/default-dc/vm/example-vm-folder`.
140
+
141
+ For nested datacenters, include the full hierarchy in the path. For example, if datacenter
142
+ `default-dc` is inside folder `parent-folder`, the path to a VM folder would be
143
+ `/parent-folder/default-dc/vm/example-vm-folder`.
144
+
145
+ The valid folder types to be used in a `path` are: `vm`, `host`, `datacenter`, `datastore`, or `network`.
146
+
147
+ Always include a leading slash in the `path`.
87
148
  """
88
149
  __args__ = dict()
89
150
  __args__['path'] = path
@@ -109,15 +170,76 @@ def get_folder_output(path: Optional[pulumi.Input[builtins.str]] = None,
109
170
  import pulumi
110
171
  import pulumi_vsphere as vsphere
111
172
 
112
- folder = vsphere.get_folder(path="/dc-01/datastore-01/folder-01")
173
+ datacenter_folder_folder = vsphere.Folder("datacenter_folder",
174
+ path="example-datacenter-folder",
175
+ type="datacenter")
176
+ datacenter_folder = vsphere.get_folder_output(path=datacenter_folder_folder.path.apply(lambda path: f"/{path}"))
177
+ datacenter_datacenter = vsphere.Datacenter("datacenter",
178
+ name="example-datacenter",
179
+ folder=datacenter_folder.path,
180
+ opts = pulumi.ResourceOptions(depends_on=[datacenter_folder]))
181
+ datacenter = vsphere.get_datacenter_output(name=datacenter_datacenter.name)
182
+ vm_folder_folder = vsphere.Folder("vm_folder",
183
+ path="example-vm-folder",
184
+ type="vm",
185
+ datacenter_id=datacenter.id)
186
+ datastore_folder_folder = vsphere.Folder("datastore_folder",
187
+ path="example-datastore-folder",
188
+ type="datastore",
189
+ datacenter_id=datacenter.id)
190
+ network_folder_folder = vsphere.Folder("network_folder",
191
+ path="example-network-folder",
192
+ type="network",
193
+ datacenter_id=datacenter.id)
194
+ host_folder_folder = vsphere.Folder("host_folder",
195
+ path="example-host-folder",
196
+ type="host",
197
+ datacenter_id=datacenter.id)
198
+ vm_folder = vsphere.get_folder_output(path=pulumi.Output.all(
199
+ datacenterFolderFolderPath=datacenter_folder_folder.path,
200
+ name=datacenter_datacenter.name,
201
+ vmFolderFolderPath=vm_folder_folder.path
202
+ ).apply(lambda resolved_outputs: f"/{resolved_outputs['datacenterFolderFolderPath']}/{resolved_outputs['name']}/vm/{resolved_outputs['vmFolderFolderPath']}")
203
+ )
204
+ datastore_folder = vsphere.get_folder_output(path=pulumi.Output.all(
205
+ datacenterFolderFolderPath=datacenter_folder_folder.path,
206
+ name=datacenter_datacenter.name,
207
+ datastoreFolderFolderPath=datastore_folder_folder.path
208
+ ).apply(lambda resolved_outputs: f"/{resolved_outputs['datacenterFolderFolderPath']}/{resolved_outputs['name']}/datastore/{resolved_outputs['datastoreFolderFolderPath']}")
209
+ )
210
+ network_folder = vsphere.get_folder_output(path=pulumi.Output.all(
211
+ datacenterFolderFolderPath=datacenter_folder_folder.path,
212
+ name=datacenter_datacenter.name,
213
+ networkFolderFolderPath=network_folder_folder.path
214
+ ).apply(lambda resolved_outputs: f"/{resolved_outputs['datacenterFolderFolderPath']}/{resolved_outputs['name']}/network/{resolved_outputs['networkFolderFolderPath']}")
215
+ )
216
+ host_folder = vsphere.get_folder_output(path=pulumi.Output.all(
217
+ datacenterFolderFolderPath=datacenter_folder_folder.path,
218
+ name=datacenter_datacenter.name,
219
+ hostFolderFolderPath=host_folder_folder.path
220
+ ).apply(lambda resolved_outputs: f"/{resolved_outputs['datacenterFolderFolderPath']}/{resolved_outputs['name']}/host/{resolved_outputs['hostFolderFolderPath']}")
221
+ )
222
+ pulumi.export("vmFolderId", vm_folder.id)
223
+ pulumi.export("datastoreFolderId", datastore_folder.id)
224
+ pulumi.export("networkFolderId", network_folder.id)
225
+ pulumi.export("hostFolderId", host_folder.id)
226
+ pulumi.export("datacenterId", datacenter.id)
227
+ pulumi.export("datacenterFolderPath", datacenter_folder_folder.path)
113
228
  ```
114
229
 
115
230
 
116
231
  :param builtins.str path: The absolute path of the folder. For example, given a
117
232
  default datacenter of `default-dc`, a folder of type `vm`, and a folder name
118
- of `test-folder`, the resulting path would be
119
- `/default-dc/vm/test-folder`. The valid folder types to be used in
120
- the path are: `vm`, `host`, `datacenter`, `datastore`, or `network`.
233
+ of `example-vm-folder`, the resulting `path` would be
234
+ `/default-dc/vm/example-vm-folder`.
235
+
236
+ For nested datacenters, include the full hierarchy in the path. For example, if datacenter
237
+ `default-dc` is inside folder `parent-folder`, the path to a VM folder would be
238
+ `/parent-folder/default-dc/vm/example-vm-folder`.
239
+
240
+ The valid folder types to be used in a `path` are: `vm`, `host`, `datacenter`, `datastore`, or `network`.
241
+
242
+ Always include a leading slash in the `path`.
121
243
  """
122
244
  __args__ = dict()
123
245
  __args__['path'] = path
@@ -54,11 +54,18 @@ class GetGuestOsCustomizationResult:
54
54
  @property
55
55
  @pulumi.getter(name="changeVersion")
56
56
  def change_version(self) -> builtins.str:
57
+ """
58
+ The number of last changed version to the customization
59
+ specification.
60
+ """
57
61
  return pulumi.get(self, "change_version")
58
62
 
59
63
  @property
60
64
  @pulumi.getter
61
65
  def description(self) -> builtins.str:
66
+ """
67
+ The description for the customization specification.
68
+ """
62
69
  return pulumi.get(self, "description")
63
70
 
64
71
  @property
@@ -72,6 +79,10 @@ class GetGuestOsCustomizationResult:
72
79
  @property
73
80
  @pulumi.getter(name="lastUpdateTime")
74
81
  def last_update_time(self) -> builtins.str:
82
+ """
83
+ The time of last modification to the customization
84
+ specification.
85
+ """
75
86
  return pulumi.get(self, "last_update_time")
76
87
 
77
88
  @property
@@ -82,11 +93,19 @@ class GetGuestOsCustomizationResult:
82
93
  @property
83
94
  @pulumi.getter
84
95
  def specs(self) -> Sequence['outputs.GetGuestOsCustomizationSpecResult']:
96
+ """
97
+ Container object for the guest operating system properties to be
98
+ customized. See
99
+ virtual machine customizations
100
+ """
85
101
  return pulumi.get(self, "specs")
86
102
 
87
103
  @property
88
104
  @pulumi.getter
89
105
  def type(self) -> builtins.str:
106
+ """
107
+ The type of customization specification: One among: Windows, Linux.
108
+ """
90
109
  return pulumi.get(self, "type")
91
110
 
92
111
 
@@ -113,7 +132,7 @@ def get_guest_os_customization(name: Optional[builtins.str] = None,
113
132
 
114
133
 
115
134
  :param builtins.str name: The name of the customization specification is the unique
116
- identifier per vCenter Server instance. ## Attribute Reference
135
+ identifier per vCenter Server instance.
117
136
  """
118
137
  __args__ = dict()
119
138
  __args__['name'] = name
@@ -136,7 +155,7 @@ def get_guest_os_customization_output(name: Optional[pulumi.Input[builtins.str]]
136
155
 
137
156
 
138
157
  :param builtins.str name: The name of the customization specification is the unique
139
- identifier per vCenter Server instance. ## Attribute Reference
158
+ identifier per vCenter Server instance.
140
159
  """
141
160
  __args__ = dict()
142
161
  __args__['name'] = name
@@ -61,14 +61,16 @@ class GetLicenseResult:
61
61
  @property
62
62
  @pulumi.getter
63
63
  def id(self) -> builtins.str:
64
+ """
65
+ The license key ID.
66
+ """
64
67
  return pulumi.get(self, "id")
65
68
 
66
69
  @property
67
70
  @pulumi.getter
68
71
  def labels(self) -> Mapping[str, builtins.str]:
69
72
  """
70
- A map of key/value pairs attached as labels (tags) to the license
71
- key.
73
+ A map of labels applied to the license key.
72
74
  """
73
75
  return pulumi.get(self, "labels")
74
76
 
@@ -89,7 +91,7 @@ class GetLicenseResult:
89
91
  @pulumi.getter
90
92
  def total(self) -> builtins.int:
91
93
  """
92
- Total number of units (example: CPUs) contained in the license.
94
+ The total number of units contained in the license key.
93
95
  """
94
96
  return pulumi.get(self, "total")
95
97
 
@@ -97,7 +99,7 @@ class GetLicenseResult:
97
99
  @pulumi.getter
98
100
  def used(self) -> builtins.int:
99
101
  """
100
- The number of units (example: CPUs) assigned to this license.
102
+ The number of units assigned to this license key.
101
103
  """
102
104
  return pulumi.get(self, "used")
103
105
 
@@ -133,7 +135,7 @@ def get_license(license_key: Optional[builtins.str] = None,
133
135
  ```
134
136
 
135
137
 
136
- :param builtins.str license_key: The license key.
138
+ :param builtins.str license_key: The license key value.
137
139
  """
138
140
  __args__ = dict()
139
141
  __args__['licenseKey'] = license_key
@@ -164,7 +166,7 @@ def get_license_output(license_key: Optional[pulumi.Input[builtins.str]] = None,
164
166
  ```
165
167
 
166
168
 
167
- :param builtins.str license_key: The license key.
169
+ :param builtins.str license_key: The license key value.
168
170
  """
169
171
  __args__ = dict()
170
172
  __args__['licenseKey'] = license_key
@@ -29,7 +29,7 @@ class GetNetworkResult:
29
29
  """
30
30
  A collection of values returned by getNetwork.
31
31
  """
32
- def __init__(__self__, datacenter_id=None, distributed_virtual_switch_uuid=None, filters=None, id=None, name=None, type=None):
32
+ def __init__(__self__, datacenter_id=None, distributed_virtual_switch_uuid=None, filters=None, id=None, name=None, retry_interval=None, retry_timeout=None, type=None):
33
33
  if datacenter_id and not isinstance(datacenter_id, str):
34
34
  raise TypeError("Expected argument 'datacenter_id' to be a str")
35
35
  pulumi.set(__self__, "datacenter_id", datacenter_id)
@@ -45,6 +45,12 @@ class GetNetworkResult:
45
45
  if name and not isinstance(name, str):
46
46
  raise TypeError("Expected argument 'name' to be a str")
47
47
  pulumi.set(__self__, "name", name)
48
+ if retry_interval and not isinstance(retry_interval, int):
49
+ raise TypeError("Expected argument 'retry_interval' to be a int")
50
+ pulumi.set(__self__, "retry_interval", retry_interval)
51
+ if retry_timeout and not isinstance(retry_timeout, int):
52
+ raise TypeError("Expected argument 'retry_timeout' to be a int")
53
+ pulumi.set(__self__, "retry_timeout", retry_timeout)
48
54
  if type and not isinstance(type, str):
49
55
  raise TypeError("Expected argument 'type' to be a str")
50
56
  pulumi.set(__self__, "type", type)
@@ -77,6 +83,16 @@ class GetNetworkResult:
77
83
  def name(self) -> builtins.str:
78
84
  return pulumi.get(self, "name")
79
85
 
86
+ @property
87
+ @pulumi.getter(name="retryInterval")
88
+ def retry_interval(self) -> Optional[builtins.int]:
89
+ return pulumi.get(self, "retry_interval")
90
+
91
+ @property
92
+ @pulumi.getter(name="retryTimeout")
93
+ def retry_timeout(self) -> Optional[builtins.int]:
94
+ return pulumi.get(self, "retry_timeout")
95
+
80
96
  @property
81
97
  @pulumi.getter
82
98
  def type(self) -> builtins.str:
@@ -100,6 +116,8 @@ class AwaitableGetNetworkResult(GetNetworkResult):
100
116
  filters=self.filters,
101
117
  id=self.id,
102
118
  name=self.name,
119
+ retry_interval=self.retry_interval,
120
+ retry_timeout=self.retry_timeout,
103
121
  type=self.type)
104
122
 
105
123
 
@@ -107,6 +125,8 @@ def get_network(datacenter_id: Optional[builtins.str] = None,
107
125
  distributed_virtual_switch_uuid: Optional[builtins.str] = None,
108
126
  filters: Optional[Sequence[Union['GetNetworkFilterArgs', 'GetNetworkFilterArgsDict']]] = None,
109
127
  name: Optional[builtins.str] = None,
128
+ retry_interval: Optional[builtins.int] = None,
129
+ retry_timeout: Optional[builtins.int] = None,
110
130
  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetNetworkResult:
111
131
  """
112
132
  The `get_network` data source can be used to discover the ID of a network in
@@ -151,12 +171,16 @@ def get_network(datacenter_id: Optional[builtins.str] = None,
151
171
  the distributed virtual switch ID.
152
172
  :param Sequence[Union['GetNetworkFilterArgs', 'GetNetworkFilterArgsDict']] filters: Apply a filter for the discovered network.
153
173
  :param builtins.str name: The name of the network. This can be a name or path.
174
+ :param builtins.int retry_interval: The interval in milliseconds to retry the read operation if `retry_timeout` is set. Default: 500.
175
+ :param builtins.int retry_timeout: The timeout duration in seconds for the data source to retry read operations.
154
176
  """
155
177
  __args__ = dict()
156
178
  __args__['datacenterId'] = datacenter_id
157
179
  __args__['distributedVirtualSwitchUuid'] = distributed_virtual_switch_uuid
158
180
  __args__['filters'] = filters
159
181
  __args__['name'] = name
182
+ __args__['retryInterval'] = retry_interval
183
+ __args__['retryTimeout'] = retry_timeout
160
184
  opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
161
185
  __ret__ = pulumi.runtime.invoke('vsphere:index/getNetwork:getNetwork', __args__, opts=opts, typ=GetNetworkResult).value
162
186
 
@@ -166,11 +190,15 @@ def get_network(datacenter_id: Optional[builtins.str] = None,
166
190
  filters=pulumi.get(__ret__, 'filters'),
167
191
  id=pulumi.get(__ret__, 'id'),
168
192
  name=pulumi.get(__ret__, 'name'),
193
+ retry_interval=pulumi.get(__ret__, 'retry_interval'),
194
+ retry_timeout=pulumi.get(__ret__, 'retry_timeout'),
169
195
  type=pulumi.get(__ret__, 'type'))
170
196
  def get_network_output(datacenter_id: Optional[pulumi.Input[Optional[builtins.str]]] = None,
171
197
  distributed_virtual_switch_uuid: Optional[pulumi.Input[Optional[builtins.str]]] = None,
172
198
  filters: Optional[pulumi.Input[Optional[Sequence[Union['GetNetworkFilterArgs', 'GetNetworkFilterArgsDict']]]]] = None,
173
199
  name: Optional[pulumi.Input[builtins.str]] = None,
200
+ retry_interval: Optional[pulumi.Input[Optional[builtins.int]]] = None,
201
+ retry_timeout: Optional[pulumi.Input[Optional[builtins.int]]] = None,
174
202
  opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetNetworkResult]:
175
203
  """
176
204
  The `get_network` data source can be used to discover the ID of a network in
@@ -215,12 +243,16 @@ def get_network_output(datacenter_id: Optional[pulumi.Input[Optional[builtins.st
215
243
  the distributed virtual switch ID.
216
244
  :param Sequence[Union['GetNetworkFilterArgs', 'GetNetworkFilterArgsDict']] filters: Apply a filter for the discovered network.
217
245
  :param builtins.str name: The name of the network. This can be a name or path.
246
+ :param builtins.int retry_interval: The interval in milliseconds to retry the read operation if `retry_timeout` is set. Default: 500.
247
+ :param builtins.int retry_timeout: The timeout duration in seconds for the data source to retry read operations.
218
248
  """
219
249
  __args__ = dict()
220
250
  __args__['datacenterId'] = datacenter_id
221
251
  __args__['distributedVirtualSwitchUuid'] = distributed_virtual_switch_uuid
222
252
  __args__['filters'] = filters
223
253
  __args__['name'] = name
254
+ __args__['retryInterval'] = retry_interval
255
+ __args__['retryTimeout'] = retry_timeout
224
256
  opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
225
257
  __ret__ = pulumi.runtime.invoke_output('vsphere:index/getNetwork:getNetwork', __args__, opts=opts, typ=GetNetworkResult)
226
258
  return __ret__.apply(lambda __response__: GetNetworkResult(
@@ -229,4 +261,6 @@ def get_network_output(datacenter_id: Optional[pulumi.Input[Optional[builtins.st
229
261
  filters=pulumi.get(__response__, 'filters'),
230
262
  id=pulumi.get(__response__, 'id'),
231
263
  name=pulumi.get(__response__, 'name'),
264
+ retry_interval=pulumi.get(__response__, 'retry_interval'),
265
+ retry_timeout=pulumi.get(__response__, 'retry_timeout'),
232
266
  type=pulumi.get(__response__, 'type')))
@@ -400,8 +400,8 @@ def get_ovf_vm_template(allow_unverified_ssl_cert: Optional[builtins.bool] = Non
400
400
  :param builtins.str deployment_option: The key of the chosen deployment option. If
401
401
  empty, the default option is chosen.
402
402
  :param builtins.str disk_provisioning: The disk provisioning type. If set, all the
403
- disks in the deployed OVA/OVF will have the same specified disk type. Can be
404
- one of `thin`, `flat`, `thick` or `sameAsSource`.
403
+ disks included in the OVF/OVA will have the same specified policy. Can be
404
+ one of `thin`, `thick`, `eagerZeroedThick`, or `sameAsSource`.
405
405
  :param builtins.bool enable_hidden_properties: Allow properties with
406
406
  `ovf:userConfigurable=false` to be set.
407
407
  :param builtins.str folder: The name of the folder in which to place the virtual
@@ -503,8 +503,8 @@ def get_ovf_vm_template_output(allow_unverified_ssl_cert: Optional[pulumi.Input[
503
503
  :param builtins.str deployment_option: The key of the chosen deployment option. If
504
504
  empty, the default option is chosen.
505
505
  :param builtins.str disk_provisioning: The disk provisioning type. If set, all the
506
- disks in the deployed OVA/OVF will have the same specified disk type. Can be
507
- one of `thin`, `flat`, `thick` or `sameAsSource`.
506
+ disks included in the OVF/OVA will have the same specified policy. Can be
507
+ one of `thin`, `thick`, `eagerZeroedThick`, or `sameAsSource`.
508
508
  :param builtins.bool enable_hidden_properties: Allow properties with
509
509
  `ovf:userConfigurable=false` to be set.
510
510
  :param builtins.str folder: The name of the folder in which to place the virtual
@@ -193,10 +193,8 @@ class _GuestOsCustomizationState:
193
193
  pulumi.set(self, "type", value)
194
194
 
195
195
 
196
+ @pulumi.type_token("vsphere:index/guestOsCustomization:GuestOsCustomization")
196
197
  class GuestOsCustomization(pulumi.CustomResource):
197
-
198
- pulumi_type = "vsphere:index/guestOsCustomization:GuestOsCustomization"
199
-
200
198
  @overload
201
199
  def __init__(__self__,
202
200
  resource_name: str,
@@ -559,10 +559,8 @@ class _HaVmOverrideState:
559
559
  pulumi.set(self, "virtual_machine_id", value)
560
560
 
561
561
 
562
+ @pulumi.type_token("vsphere:index/haVmOverride:HaVmOverride")
562
563
  class HaVmOverride(pulumi.CustomResource):
563
-
564
- pulumi_type = "vsphere:index/haVmOverride:HaVmOverride"
565
-
566
564
  @overload
567
565
  def __init__(__self__,
568
566
  resource_name: str,
@@ -655,6 +653,8 @@ class HaVmOverride(pulumi.CustomResource):
655
653
 
656
654
  is below:
657
655
 
656
+ [docs-import]: https://developer.hashicorp.com/terraform/cli/import
657
+
658
658
  ```sh
659
659
  $ pulumi import vsphere:index/haVmOverride:HaVmOverride ha_vm_override \\
660
660
  ```
@@ -771,6 +771,8 @@ class HaVmOverride(pulumi.CustomResource):
771
771
 
772
772
  is below:
773
773
 
774
+ [docs-import]: https://developer.hashicorp.com/terraform/cli/import
775
+
774
776
  ```sh
775
777
  $ pulumi import vsphere:index/haVmOverride:HaVmOverride ha_vm_override \\
776
778
  ```
pulumi_vsphere/host.py CHANGED
@@ -628,10 +628,8 @@ class _HostState:
628
628
  pulumi.set(self, "username", value)
629
629
 
630
630
 
631
+ @pulumi.type_token("vsphere:index/host:Host")
631
632
  class Host(pulumi.CustomResource):
632
-
633
- pulumi_type = "vsphere:index/host:Host"
634
-
635
633
  @overload
636
634
  def __init__(__self__,
637
635
  resource_name: str,
@@ -676,6 +674,33 @@ class Host(pulumi.CustomResource):
676
674
  datacenter=datacenter.id)
677
675
  ```
678
676
 
677
+ ### Create host in a compute cluster
678
+
679
+ ```python
680
+ import pulumi
681
+ import pulumi_vsphere as vsphere
682
+
683
+ datacenter = vsphere.get_datacenter(name="dc-01")
684
+ cluster = vsphere.get_compute_cluster(name="cluster-01",
685
+ datacenter_id=datacenter.id)
686
+ thumbprint = vsphere.get_host_thumbprint(address="esxi-01.example.com",
687
+ insecure=True)
688
+ esx_01 = vsphere.Host("esx-01",
689
+ hostname="esxi-01.example.com",
690
+ username="root",
691
+ password="password",
692
+ license="00000-00000-00000-00000-00000",
693
+ thumbprint=thumbprint.id,
694
+ cluster=cluster.id,
695
+ services=[{
696
+ "ntpd": {
697
+ "enabled": True,
698
+ "policy": "on",
699
+ "ntp_servers": ["pool.ntp.org"],
700
+ },
701
+ }])
702
+ ```
703
+
679
704
  ## Import
680
705
 
681
706
  An existing host can be imported into this resource by supplying
@@ -720,7 +745,7 @@ class Host(pulumi.CustomResource):
720
745
 
721
746
  data "vsphere_host_thumbprint" "thumbprint" {
722
747
 
723
- address = "esxi-01.example.com"
748
+ address = "esxi-01.example.com"
724
749
 
725
750
  insecure = true
726
751
 
@@ -768,9 +793,9 @@ class Host(pulumi.CustomResource):
768
793
 
769
794
  }
770
795
 
771
- }
796
+ }
772
797
 
773
- console
798
+ }
774
799
 
775
800
  ```sh
776
801
  $ pulumi import vsphere:index/host:Host esx-01 host-123
@@ -855,6 +880,33 @@ class Host(pulumi.CustomResource):
855
880
  datacenter=datacenter.id)
856
881
  ```
857
882
 
883
+ ### Create host in a compute cluster
884
+
885
+ ```python
886
+ import pulumi
887
+ import pulumi_vsphere as vsphere
888
+
889
+ datacenter = vsphere.get_datacenter(name="dc-01")
890
+ cluster = vsphere.get_compute_cluster(name="cluster-01",
891
+ datacenter_id=datacenter.id)
892
+ thumbprint = vsphere.get_host_thumbprint(address="esxi-01.example.com",
893
+ insecure=True)
894
+ esx_01 = vsphere.Host("esx-01",
895
+ hostname="esxi-01.example.com",
896
+ username="root",
897
+ password="password",
898
+ license="00000-00000-00000-00000-00000",
899
+ thumbprint=thumbprint.id,
900
+ cluster=cluster.id,
901
+ services=[{
902
+ "ntpd": {
903
+ "enabled": True,
904
+ "policy": "on",
905
+ "ntp_servers": ["pool.ntp.org"],
906
+ },
907
+ }])
908
+ ```
909
+
858
910
  ## Import
859
911
 
860
912
  An existing host can be imported into this resource by supplying
@@ -899,7 +951,7 @@ class Host(pulumi.CustomResource):
899
951
 
900
952
  data "vsphere_host_thumbprint" "thumbprint" {
901
953
 
902
- address = "esxi-01.example.com"
954
+ address = "esxi-01.example.com"
903
955
 
904
956
  insecure = true
905
957
 
@@ -947,9 +999,9 @@ class Host(pulumi.CustomResource):
947
999
 
948
1000
  }
949
1001
 
950
- }
1002
+ }
951
1003
 
952
- console
1004
+ }
953
1005
 
954
1006
  ```sh
955
1007
  $ pulumi import vsphere:index/host:Host esx-01 host-123
@@ -665,10 +665,8 @@ class _HostPortGroupState:
665
665
  pulumi.set(self, "vlan_id", value)
666
666
 
667
667
 
668
+ @pulumi.type_token("vsphere:index/hostPortGroup:HostPortGroup")
668
669
  class HostPortGroup(pulumi.CustomResource):
669
-
670
- pulumi_type = "vsphere:index/hostPortGroup:HostPortGroup"
671
-
672
670
  @overload
673
671
  def __init__(__self__,
674
672
  resource_name: str,
@@ -742,10 +742,8 @@ class _HostVirtualSwitchState:
742
742
  pulumi.set(self, "teaming_policy", value)
743
743
 
744
744
 
745
+ @pulumi.type_token("vsphere:index/hostVirtualSwitch:HostVirtualSwitch")
745
746
  class HostVirtualSwitch(pulumi.CustomResource):
746
-
747
- pulumi_type = "vsphere:index/hostVirtualSwitch:HostVirtualSwitch"
748
-
749
747
  @overload
750
748
  def __init__(__self__,
751
749
  resource_name: str,
@@ -843,6 +841,8 @@ class HostVirtualSwitch(pulumi.CustomResource):
843
841
 
844
842
  Import can the be done via the following command:
845
843
 
844
+ [docs-import]: https://developer.hashicorp.com/terraform/cli/import
845
+
846
846
  [docs-about-morefs]: /docs/providers/vsphere/index.html#use-of-managed-object-references-by-the-vsphere-provider
847
847
 
848
848
  ```sh
@@ -964,6 +964,8 @@ class HostVirtualSwitch(pulumi.CustomResource):
964
964
 
965
965
  Import can the be done via the following command:
966
966
 
967
+ [docs-import]: https://developer.hashicorp.com/terraform/cli/import
968
+
967
969
  [docs-about-morefs]: /docs/providers/vsphere/index.html#use-of-managed-object-references-by-the-vsphere-provider
968
970
 
969
971
  ```sh