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__ = [
@@ -41,40 +46,40 @@ class GetHostPciDeviceResult:
41
46
  raise TypeError("Expected argument 'vendor_id' to be a str")
42
47
  pulumi.set(__self__, "vendor_id", vendor_id)
43
48
 
44
- @property
49
+ @_builtins.property
45
50
  @pulumi.getter(name="classId")
46
- def class_id(self) -> Optional[str]:
51
+ def class_id(self) -> Optional[_builtins.str]:
47
52
  return pulumi.get(self, "class_id")
48
53
 
49
- @property
54
+ @_builtins.property
50
55
  @pulumi.getter(name="hostId")
51
- def host_id(self) -> str:
56
+ def host_id(self) -> _builtins.str:
52
57
  return pulumi.get(self, "host_id")
53
58
 
54
- @property
59
+ @_builtins.property
55
60
  @pulumi.getter
56
- def id(self) -> str:
61
+ def id(self) -> _builtins.str:
57
62
  """
58
63
  The provider-assigned unique ID for this managed resource.
59
64
  """
60
65
  return pulumi.get(self, "id")
61
66
 
62
- @property
67
+ @_builtins.property
63
68
  @pulumi.getter
64
- def name(self) -> str:
69
+ def name(self) -> _builtins.str:
65
70
  """
66
71
  The name of the PCI device.
67
72
  """
68
73
  return pulumi.get(self, "name")
69
74
 
70
- @property
75
+ @_builtins.property
71
76
  @pulumi.getter(name="nameRegex")
72
- def name_regex(self) -> Optional[str]:
77
+ def name_regex(self) -> Optional[_builtins.str]:
73
78
  return pulumi.get(self, "name_regex")
74
79
 
75
- @property
80
+ @_builtins.property
76
81
  @pulumi.getter(name="vendorId")
77
- def vendor_id(self) -> Optional[str]:
82
+ def vendor_id(self) -> Optional[_builtins.str]:
78
83
  return pulumi.get(self, "vendor_id")
79
84
 
80
85
 
@@ -92,10 +97,10 @@ class AwaitableGetHostPciDeviceResult(GetHostPciDeviceResult):
92
97
  vendor_id=self.vendor_id)
93
98
 
94
99
 
95
- def get_host_pci_device(class_id: Optional[str] = None,
96
- host_id: Optional[str] = None,
97
- name_regex: Optional[str] = None,
98
- vendor_id: Optional[str] = None,
100
+ def get_host_pci_device(class_id: Optional[_builtins.str] = None,
101
+ host_id: Optional[_builtins.str] = None,
102
+ name_regex: Optional[_builtins.str] = None,
103
+ vendor_id: Optional[_builtins.str] = None,
99
104
  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetHostPciDeviceResult:
100
105
  """
101
106
  The `get_host_pci_device` data source can be used to discover the device ID
@@ -103,6 +108,7 @@ def get_host_pci_device(class_id: Optional[str] = None,
103
108
  `VirtualMachine`'s `pci_device_id`.
104
109
 
105
110
  ## Example Usage
111
+
106
112
  ### With Vendor ID And Class ID
107
113
 
108
114
  ```python
@@ -116,18 +122,31 @@ def get_host_pci_device(class_id: Optional[str] = None,
116
122
  class_id="123",
117
123
  vendor_id="456")
118
124
  ```
125
+
119
126
  ### With Name Regular Expression
120
127
 
128
+ ```python
129
+ import pulumi
130
+ import pulumi_vsphere as vsphere
121
131
 
122
- :param str class_id: The hexadecimal PCI device class ID
132
+ datacenter = vsphere.get_datacenter(name="dc-01")
133
+ host = vsphere.get_host(name="esxi-01.example.com",
134
+ datacenter_id=datacenter.id)
135
+ dev = vsphere.get_host_pci_device(host_id=host.id,
136
+ name_regex="MMC")
137
+ ```
138
+
139
+
140
+ :param _builtins.str class_id: The hexadecimal PCI device class ID
123
141
 
124
142
  [docs-about-morefs]: /docs/providers/vsphere/index.html#use-of-managed-object-references-by-the-vsphere-provider
125
143
 
126
144
  > **NOTE:** `name_regex`, `vendor_id`, and `class_id` can all be used together.
127
- :param str host_id: The [managed object reference ID][docs-about-morefs] of a host.
128
- :param str name_regex: A regular expression that will be used to match the
145
+ :param _builtins.str host_id: The [managed object reference ID][docs-about-morefs] of
146
+ a host.
147
+ :param _builtins.str name_regex: A regular expression that will be used to match the
129
148
  host PCI device name.
130
- :param str vendor_id: The hexadecimal PCI device vendor ID.
149
+ :param _builtins.str vendor_id: The hexadecimal PCI device vendor ID.
131
150
  """
132
151
  __args__ = dict()
133
152
  __args__['classId'] = class_id
@@ -144,20 +163,18 @@ def get_host_pci_device(class_id: Optional[str] = None,
144
163
  name=pulumi.get(__ret__, 'name'),
145
164
  name_regex=pulumi.get(__ret__, 'name_regex'),
146
165
  vendor_id=pulumi.get(__ret__, 'vendor_id'))
147
-
148
-
149
- @_utilities.lift_output_func(get_host_pci_device)
150
- def get_host_pci_device_output(class_id: Optional[pulumi.Input[Optional[str]]] = None,
151
- host_id: Optional[pulumi.Input[str]] = None,
152
- name_regex: Optional[pulumi.Input[Optional[str]]] = None,
153
- vendor_id: Optional[pulumi.Input[Optional[str]]] = None,
154
- opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetHostPciDeviceResult]:
166
+ def get_host_pci_device_output(class_id: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
167
+ host_id: Optional[pulumi.Input[_builtins.str]] = None,
168
+ name_regex: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
169
+ vendor_id: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
170
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetHostPciDeviceResult]:
155
171
  """
156
172
  The `get_host_pci_device` data source can be used to discover the device ID
157
173
  of a vSphere host's PCI device. This can then be used with
158
174
  `VirtualMachine`'s `pci_device_id`.
159
175
 
160
176
  ## Example Usage
177
+
161
178
  ### With Vendor ID And Class ID
162
179
 
163
180
  ```python
@@ -171,17 +188,43 @@ def get_host_pci_device_output(class_id: Optional[pulumi.Input[Optional[str]]] =
171
188
  class_id="123",
172
189
  vendor_id="456")
173
190
  ```
191
+
174
192
  ### With Name Regular Expression
175
193
 
194
+ ```python
195
+ import pulumi
196
+ import pulumi_vsphere as vsphere
197
+
198
+ datacenter = vsphere.get_datacenter(name="dc-01")
199
+ host = vsphere.get_host(name="esxi-01.example.com",
200
+ datacenter_id=datacenter.id)
201
+ dev = vsphere.get_host_pci_device(host_id=host.id,
202
+ name_regex="MMC")
203
+ ```
204
+
176
205
 
177
- :param str class_id: The hexadecimal PCI device class ID
206
+ :param _builtins.str class_id: The hexadecimal PCI device class ID
178
207
 
179
208
  [docs-about-morefs]: /docs/providers/vsphere/index.html#use-of-managed-object-references-by-the-vsphere-provider
180
209
 
181
210
  > **NOTE:** `name_regex`, `vendor_id`, and `class_id` can all be used together.
182
- :param str host_id: The [managed object reference ID][docs-about-morefs] of a host.
183
- :param str name_regex: A regular expression that will be used to match the
211
+ :param _builtins.str host_id: The [managed object reference ID][docs-about-morefs] of
212
+ a host.
213
+ :param _builtins.str name_regex: A regular expression that will be used to match the
184
214
  host PCI device name.
185
- :param str vendor_id: The hexadecimal PCI device vendor ID.
215
+ :param _builtins.str vendor_id: The hexadecimal PCI device vendor ID.
186
216
  """
187
- ...
217
+ __args__ = dict()
218
+ __args__['classId'] = class_id
219
+ __args__['hostId'] = host_id
220
+ __args__['nameRegex'] = name_regex
221
+ __args__['vendorId'] = vendor_id
222
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
223
+ __ret__ = pulumi.runtime.invoke_output('vsphere:index/getHostPciDevice:getHostPciDevice', __args__, opts=opts, typ=GetHostPciDeviceResult)
224
+ return __ret__.apply(lambda __response__: GetHostPciDeviceResult(
225
+ class_id=pulumi.get(__response__, 'class_id'),
226
+ host_id=pulumi.get(__response__, 'host_id'),
227
+ id=pulumi.get(__response__, 'id'),
228
+ name=pulumi.get(__response__, 'name'),
229
+ name_regex=pulumi.get(__response__, 'name_regex'),
230
+ vendor_id=pulumi.get(__response__, 'vendor_id')))
@@ -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__ = [
@@ -35,27 +40,27 @@ class GetHostThumbprintResult:
35
40
  raise TypeError("Expected argument 'port' to be a str")
36
41
  pulumi.set(__self__, "port", port)
37
42
 
38
- @property
43
+ @_builtins.property
39
44
  @pulumi.getter
40
- def address(self) -> str:
45
+ def address(self) -> _builtins.str:
41
46
  return pulumi.get(self, "address")
42
47
 
43
- @property
48
+ @_builtins.property
44
49
  @pulumi.getter
45
- def id(self) -> str:
50
+ def id(self) -> _builtins.str:
46
51
  """
47
52
  The provider-assigned unique ID for this managed resource.
48
53
  """
49
54
  return pulumi.get(self, "id")
50
55
 
51
- @property
56
+ @_builtins.property
52
57
  @pulumi.getter
53
- def insecure(self) -> Optional[bool]:
58
+ def insecure(self) -> Optional[_builtins.bool]:
54
59
  return pulumi.get(self, "insecure")
55
60
 
56
- @property
61
+ @_builtins.property
57
62
  @pulumi.getter
58
- def port(self) -> Optional[str]:
63
+ def port(self) -> Optional[_builtins.str]:
59
64
  return pulumi.get(self, "port")
60
65
 
61
66
 
@@ -71,15 +76,20 @@ class AwaitableGetHostThumbprintResult(GetHostThumbprintResult):
71
76
  port=self.port)
72
77
 
73
78
 
74
- def get_host_thumbprint(address: Optional[str] = None,
75
- insecure: Optional[bool] = None,
76
- port: Optional[str] = None,
79
+ def get_host_thumbprint(address: Optional[_builtins.str] = None,
80
+ insecure: Optional[_builtins.bool] = None,
81
+ port: Optional[_builtins.str] = None,
77
82
  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetHostThumbprintResult:
78
83
  """
79
- The `vsphere_thumbprint` data source can be used to discover the host
80
- thumbprint of an ESXi host. This can be used when adding the `Host`
81
- resource. If the ESXi host is using a certificate chain, the first one returned
82
- will be used to generate the thumbprint.
84
+ The `vsphere_thumbprint` data source can be used to discover the host thumbprint
85
+ of an ESXi host. This can be used when adding the `Host` resource to a
86
+ cluster or a vCenter Server instance.
87
+
88
+ * If the ESXi host is using a certificate chain, the first one returned will be
89
+ used to generate the thumbprint.
90
+
91
+ * If the ESXi host has a certificate issued by a certificate authority, ensure
92
+ that the the certificate authority is trusted on the system running the plan.
83
93
 
84
94
  ## Example Usage
85
95
 
@@ -91,11 +101,10 @@ def get_host_thumbprint(address: Optional[str] = None,
91
101
  ```
92
102
 
93
103
 
94
- :param str address: The address of the ESXi host to retrieve the
95
- thumbprint from.
96
- :param bool insecure: Disables SSL certificate verification.
97
- Default: `false`
98
- :param str port: The port to use connecting to the ESXi host. Default: 443
104
+ :param _builtins.str address: The address of the ESXi host to retrieve the thumbprint
105
+ from.
106
+ :param _builtins.bool insecure: Disables SSL certificate verification. Default: `false`
107
+ :param _builtins.str port: The port to use connecting to the ESXi host. Default: 443
99
108
  """
100
109
  __args__ = dict()
101
110
  __args__['address'] = address
@@ -109,18 +118,20 @@ def get_host_thumbprint(address: Optional[str] = None,
109
118
  id=pulumi.get(__ret__, 'id'),
110
119
  insecure=pulumi.get(__ret__, 'insecure'),
111
120
  port=pulumi.get(__ret__, 'port'))
121
+ def get_host_thumbprint_output(address: Optional[pulumi.Input[_builtins.str]] = None,
122
+ insecure: Optional[pulumi.Input[Optional[_builtins.bool]]] = None,
123
+ port: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
124
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetHostThumbprintResult]:
125
+ """
126
+ The `vsphere_thumbprint` data source can be used to discover the host thumbprint
127
+ of an ESXi host. This can be used when adding the `Host` resource to a
128
+ cluster or a vCenter Server instance.
112
129
 
130
+ * If the ESXi host is using a certificate chain, the first one returned will be
131
+ used to generate the thumbprint.
113
132
 
114
- @_utilities.lift_output_func(get_host_thumbprint)
115
- def get_host_thumbprint_output(address: Optional[pulumi.Input[str]] = None,
116
- insecure: Optional[pulumi.Input[Optional[bool]]] = None,
117
- port: Optional[pulumi.Input[Optional[str]]] = None,
118
- opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetHostThumbprintResult]:
119
- """
120
- The `vsphere_thumbprint` data source can be used to discover the host
121
- thumbprint of an ESXi host. This can be used when adding the `Host`
122
- resource. If the ESXi host is using a certificate chain, the first one returned
123
- will be used to generate the thumbprint.
133
+ * If the ESXi host has a certificate issued by a certificate authority, ensure
134
+ that the the certificate authority is trusted on the system running the plan.
124
135
 
125
136
  ## Example Usage
126
137
 
@@ -132,10 +143,19 @@ def get_host_thumbprint_output(address: Optional[pulumi.Input[str]] = None,
132
143
  ```
133
144
 
134
145
 
135
- :param str address: The address of the ESXi host to retrieve the
136
- thumbprint from.
137
- :param bool insecure: Disables SSL certificate verification.
138
- Default: `false`
139
- :param str port: The port to use connecting to the ESXi host. Default: 443
146
+ :param _builtins.str address: The address of the ESXi host to retrieve the thumbprint
147
+ from.
148
+ :param _builtins.bool insecure: Disables SSL certificate verification. Default: `false`
149
+ :param _builtins.str port: The port to use connecting to the ESXi host. Default: 443
140
150
  """
141
- ...
151
+ __args__ = dict()
152
+ __args__['address'] = address
153
+ __args__['insecure'] = insecure
154
+ __args__['port'] = port
155
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
156
+ __ret__ = pulumi.runtime.invoke_output('vsphere:index/getHostThumbprint:getHostThumbprint', __args__, opts=opts, typ=GetHostThumbprintResult)
157
+ return __ret__.apply(lambda __response__: GetHostThumbprintResult(
158
+ address=pulumi.get(__response__, 'address'),
159
+ id=pulumi.get(__response__, 'id'),
160
+ insecure=pulumi.get(__response__, 'insecure'),
161
+ port=pulumi.get(__response__, 'port')))
@@ -0,0 +1,195 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins as _builtins
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
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
15
+ from . import _utilities
16
+ from . import outputs
17
+
18
+ __all__ = [
19
+ 'GetHostVgpuProfileResult',
20
+ 'AwaitableGetHostVgpuProfileResult',
21
+ 'get_host_vgpu_profile',
22
+ 'get_host_vgpu_profile_output',
23
+ ]
24
+
25
+ @pulumi.output_type
26
+ class GetHostVgpuProfileResult:
27
+ """
28
+ A collection of values returned by getHostVgpuProfile.
29
+ """
30
+ def __init__(__self__, host_id=None, id=None, name_regex=None, vgpu_profiles=None):
31
+ if host_id and not isinstance(host_id, str):
32
+ raise TypeError("Expected argument 'host_id' to be a str")
33
+ pulumi.set(__self__, "host_id", host_id)
34
+ if id and not isinstance(id, str):
35
+ raise TypeError("Expected argument 'id' to be a str")
36
+ pulumi.set(__self__, "id", id)
37
+ if name_regex and not isinstance(name_regex, str):
38
+ raise TypeError("Expected argument 'name_regex' to be a str")
39
+ pulumi.set(__self__, "name_regex", name_regex)
40
+ if vgpu_profiles and not isinstance(vgpu_profiles, list):
41
+ raise TypeError("Expected argument 'vgpu_profiles' to be a list")
42
+ pulumi.set(__self__, "vgpu_profiles", vgpu_profiles)
43
+
44
+ @_builtins.property
45
+ @pulumi.getter(name="hostId")
46
+ def host_id(self) -> _builtins.str:
47
+ """
48
+ The [managed objectID][docs-about-morefs] of the ESXi host.
49
+ """
50
+ return pulumi.get(self, "host_id")
51
+
52
+ @_builtins.property
53
+ @pulumi.getter
54
+ def id(self) -> _builtins.str:
55
+ """
56
+ The provider-assigned unique ID for this managed resource.
57
+ """
58
+ return pulumi.get(self, "id")
59
+
60
+ @_builtins.property
61
+ @pulumi.getter(name="nameRegex")
62
+ def name_regex(self) -> Optional[_builtins.str]:
63
+ """
64
+ (Optional) A regular expression that will be used to match the
65
+ host vGPU profile name.
66
+ """
67
+ return pulumi.get(self, "name_regex")
68
+
69
+ @_builtins.property
70
+ @pulumi.getter(name="vgpuProfiles")
71
+ def vgpu_profiles(self) -> Sequence['outputs.GetHostVgpuProfileVgpuProfileResult']:
72
+ """
73
+ The list of available vGPU profiles on the ESXi host.
74
+ This may be and empty array if no vGPU profile are identified.
75
+ """
76
+ return pulumi.get(self, "vgpu_profiles")
77
+
78
+
79
+ class AwaitableGetHostVgpuProfileResult(GetHostVgpuProfileResult):
80
+ # pylint: disable=using-constant-test
81
+ def __await__(self):
82
+ if False:
83
+ yield self
84
+ return GetHostVgpuProfileResult(
85
+ host_id=self.host_id,
86
+ id=self.id,
87
+ name_regex=self.name_regex,
88
+ vgpu_profiles=self.vgpu_profiles)
89
+
90
+
91
+ def get_host_vgpu_profile(host_id: Optional[_builtins.str] = None,
92
+ name_regex: Optional[_builtins.str] = None,
93
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetHostVgpuProfileResult:
94
+ """
95
+ The `get_host_vgpu_profile` data source can be used to discover the
96
+ available vGPU profiles of a vSphere host.
97
+
98
+ ## Example Usage
99
+
100
+ ### To Return All VGPU Profiles
101
+
102
+ ```python
103
+ import pulumi
104
+ import pulumi_vsphere as vsphere
105
+
106
+ datacenter = vsphere.get_datacenter(name="dc-01")
107
+ host = vsphere.get_host(name="esxi-01.example.com",
108
+ datacenter_id=datacenter.id)
109
+ vgpu_profile = vsphere.get_host_vgpu_profile(host_id=host.id)
110
+ ```
111
+
112
+ ### With VGPU Profile Name_regex
113
+
114
+ ```python
115
+ import pulumi
116
+ import pulumi_vsphere as vsphere
117
+
118
+ datacenter = vsphere.get_datacenter(name="dc-01")
119
+ host = vsphere.get_host(name="esxi-01.example.com",
120
+ datacenter_id=datacenter.id)
121
+ vgpu_profile = vsphere.get_host_vgpu_profile(host_id=host.id,
122
+ name_regex="a100")
123
+ ```
124
+
125
+
126
+ :param _builtins.str host_id: The [managed object reference ID][docs-about-morefs] of
127
+ a host.
128
+ :param _builtins.str name_regex: A regular expression that will be used to match the
129
+ host vGPU profile name.
130
+
131
+ [docs-about-morefs]: /docs/providers/vsphere/index.html#use-of-managed-object-references-by-the-vsphere-provider
132
+ """
133
+ __args__ = dict()
134
+ __args__['hostId'] = host_id
135
+ __args__['nameRegex'] = name_regex
136
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
137
+ __ret__ = pulumi.runtime.invoke('vsphere:index/getHostVgpuProfile:getHostVgpuProfile', __args__, opts=opts, typ=GetHostVgpuProfileResult).value
138
+
139
+ return AwaitableGetHostVgpuProfileResult(
140
+ host_id=pulumi.get(__ret__, 'host_id'),
141
+ id=pulumi.get(__ret__, 'id'),
142
+ name_regex=pulumi.get(__ret__, 'name_regex'),
143
+ vgpu_profiles=pulumi.get(__ret__, 'vgpu_profiles'))
144
+ def get_host_vgpu_profile_output(host_id: Optional[pulumi.Input[_builtins.str]] = None,
145
+ name_regex: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
146
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetHostVgpuProfileResult]:
147
+ """
148
+ The `get_host_vgpu_profile` data source can be used to discover the
149
+ available vGPU profiles of a vSphere host.
150
+
151
+ ## Example Usage
152
+
153
+ ### To Return All VGPU Profiles
154
+
155
+ ```python
156
+ import pulumi
157
+ import pulumi_vsphere as vsphere
158
+
159
+ datacenter = vsphere.get_datacenter(name="dc-01")
160
+ host = vsphere.get_host(name="esxi-01.example.com",
161
+ datacenter_id=datacenter.id)
162
+ vgpu_profile = vsphere.get_host_vgpu_profile(host_id=host.id)
163
+ ```
164
+
165
+ ### With VGPU Profile Name_regex
166
+
167
+ ```python
168
+ import pulumi
169
+ import pulumi_vsphere as vsphere
170
+
171
+ datacenter = vsphere.get_datacenter(name="dc-01")
172
+ host = vsphere.get_host(name="esxi-01.example.com",
173
+ datacenter_id=datacenter.id)
174
+ vgpu_profile = vsphere.get_host_vgpu_profile(host_id=host.id,
175
+ name_regex="a100")
176
+ ```
177
+
178
+
179
+ :param _builtins.str host_id: The [managed object reference ID][docs-about-morefs] of
180
+ a host.
181
+ :param _builtins.str name_regex: A regular expression that will be used to match the
182
+ host vGPU profile name.
183
+
184
+ [docs-about-morefs]: /docs/providers/vsphere/index.html#use-of-managed-object-references-by-the-vsphere-provider
185
+ """
186
+ __args__ = dict()
187
+ __args__['hostId'] = host_id
188
+ __args__['nameRegex'] = name_regex
189
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
190
+ __ret__ = pulumi.runtime.invoke_output('vsphere:index/getHostVgpuProfile:getHostVgpuProfile', __args__, opts=opts, typ=GetHostVgpuProfileResult)
191
+ return __ret__.apply(lambda __response__: GetHostVgpuProfileResult(
192
+ host_id=pulumi.get(__response__, 'host_id'),
193
+ id=pulumi.get(__response__, 'id'),
194
+ name_regex=pulumi.get(__response__, 'name_regex'),
195
+ vgpu_profiles=pulumi.get(__response__, 'vgpu_profiles')))