vsphere

package
v0.0.0-...-b5d6d96 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 2, 2018 License: MPL-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ComputeCluster

type ComputeCluster struct {
	// contains filtered or unexported fields
}

-> **A note on the naming of this resource:** VMware refers to clusters of hosts in the UI and documentation as _clusters_, _HA clusters_, or _DRS clusters_. All of these refer to the same kind of resource (with the latter two referring to specific features of clustering). In Terraform, we use `vsphere_compute_cluster` to differentiate host clusters from _datastore clusters_, which are clusters of datastores that can be used to distribute load and ensure fault tolerance via distribution of virtual machines. Datastore clusters can also be managed through Terraform, via the [`vsphere_datastore_cluster` resource][docs-r-vsphere-datastore-cluster].

[docs-r-vsphere-datastore-cluster]: /docs/providers/vsphere/r/datastore_cluster.html

The `vsphere_compute_cluster` resource can be used to create and manage clusters of hosts allowing for resource control of compute resources, load balancing through DRS, and high availability through vSphere HA.

For more information on vSphere clusters and DRS, see [this page]ref-vsphere-drs-clusters. For more information on vSphere HA, see [this page]ref-vsphere-ha-clusters.

~> **NOTE:** This resource requires vCenter and is not available on direct ESXi connections.

~> **NOTE:** vSphere DRS requires a vSphere Enterprise Plus license.

func GetComputeCluster

func GetComputeCluster(ctx *pulumi.Context,
	name string, id pulumi.ID, state *ComputeClusterState, opts ...pulumi.ResourceOpt) (*ComputeCluster, error)

GetComputeCluster gets an existing ComputeCluster resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewComputeCluster

func NewComputeCluster(ctx *pulumi.Context,
	name string, args *ComputeClusterArgs, opts ...pulumi.ResourceOpt) (*ComputeCluster, error)

NewComputeCluster registers a new resource with the given unique name, arguments, and options.

func (*ComputeCluster) CustomAttributes

func (r *ComputeCluster) CustomAttributes() *pulumi.MapOutput

A map of custom attribute ids to attribute value strings to set for the datastore cluster. See [here][docs-setting-custom-attributes] for a reference on how to set values for custom attributes.

func (*ComputeCluster) DatacenterId

func (r *ComputeCluster) DatacenterId() *pulumi.StringOutput

The [managed object ID][docs-about-morefs] of the datacenter to create the cluster in. Forces a new resource if changed.

func (*ComputeCluster) DpmAutomationLevel

func (r *ComputeCluster) DpmAutomationLevel() *pulumi.StringOutput

The automation level for host power operations in this cluster. Can be one of `manual` or `automated`. Default: `manual`.

func (*ComputeCluster) DpmEnabled

func (r *ComputeCluster) DpmEnabled() *pulumi.BoolOutput

Enable DPM support for DRS in this cluster. Requires `drs_enabled` to be `true` in order to be effective. Default: `false`.

func (*ComputeCluster) DpmThreshold

func (r *ComputeCluster) DpmThreshold() *pulumi.IntOutput

A value between `1` and `5` indicating the threshold of load within the cluster that influences host power operations. This affects both power on and power off operations - a lower setting will tolerate more of a surplus/deficit than a higher setting. Default: `3`.

func (*ComputeCluster) DrsAdvancedOptions

func (r *ComputeCluster) DrsAdvancedOptions() *pulumi.MapOutput

A key/value map that specifies advanced options for DRS and DPM.

func (*ComputeCluster) DrsAutomationLevel

func (r *ComputeCluster) DrsAutomationLevel() *pulumi.StringOutput

The default automation level for all virtual machines in this cluster. Can be one of `manual`, `partiallyAutomated`, or `fullyAutomated`. Default: `manual`.

func (*ComputeCluster) DrsEnablePredictiveDrs

func (r *ComputeCluster) DrsEnablePredictiveDrs() *pulumi.BoolOutput

When `true`, enables DRS to use data from [vRealize Operations Manager][ref-vsphere-vro] to make proactive DRS recommendations. <sup>\*</sup>

func (*ComputeCluster) DrsEnableVmOverrides

func (r *ComputeCluster) DrsEnableVmOverrides() *pulumi.BoolOutput

Allow individual DRS overrides to be set for virtual machines in the cluster. Default: `true`.

func (*ComputeCluster) DrsEnabled

func (r *ComputeCluster) DrsEnabled() *pulumi.BoolOutput

Enable DRS for this cluster. Default: `false`.

func (*ComputeCluster) DrsMigrationThreshold

func (r *ComputeCluster) DrsMigrationThreshold() *pulumi.IntOutput

A value between `1` and `5` indicating the threshold of imbalance tolerated between hosts. A lower setting will tolerate more imbalance while a higher setting will tolerate less. Default: `3`.

func (*ComputeCluster) Folder

func (r *ComputeCluster) Folder() *pulumi.StringOutput

The relative path to a folder to put this cluster in. This is a path relative to the datacenter you are deploying the cluster to. Example: for the `dc1` datacenter, and a provided `folder` of `foo/bar`, Terraform will place a cluster named `terraform-compute-cluster-test` in a host folder located at `/dc1/host/foo/bar`, with the final inventory path being `/dc1/host/foo/bar/terraform-datastore-cluster-test`.

func (*ComputeCluster) ForceEvacuateOnDestroy

func (r *ComputeCluster) ForceEvacuateOnDestroy() *pulumi.BoolOutput

When destroying the resource, setting this to `true` will auto-remove any hosts that are currently a member of the cluster, as if they were removed by taking their entry out of `host_system_ids` (see below). This is an advanced option and should only be used for testing. Default: `false`.

func (*ComputeCluster) HaAdmissionControlFailoverHostSystemIds

func (r *ComputeCluster) HaAdmissionControlFailoverHostSystemIds() *pulumi.ArrayOutput

Defines the [managed object IDs][docs-about-morefs] of hosts to use as dedicated failover hosts. These hosts are kept as available as possible - admission control will block access to the host, and DRS will ignore the host when making recommendations.

func (*ComputeCluster) HaAdmissionControlHostFailureTolerance

func (r *ComputeCluster) HaAdmissionControlHostFailureTolerance() *pulumi.IntOutput

The maximum number of failed hosts that admission control tolerates when making decisions on whether to permit virtual machine operations. The maximum is one less than the number of hosts in the cluster. Default: `1`. <sup>\*</sup>

func (*ComputeCluster) HaAdmissionControlPerformanceTolerance

func (r *ComputeCluster) HaAdmissionControlPerformanceTolerance() *pulumi.IntOutput

The percentage of resource reduction that a cluster of virtual machines can tolerate in case of a failover. A value of 0 produces warnings only, whereas a value of 100 disables the setting. Default: `100` (disabled).

func (*ComputeCluster) HaAdmissionControlPolicy

func (r *ComputeCluster) HaAdmissionControlPolicy() *pulumi.StringOutput

The type of admission control policy to use with vSphere HA. Can be one of `resourcePercentage`, `slotPolicy`, `failoverHosts`, or `disabled`. Default: `resourcePercentage`.

func (*ComputeCluster) HaAdmissionControlResourcePercentageAutoCompute

func (r *ComputeCluster) HaAdmissionControlResourcePercentageAutoCompute() *pulumi.BoolOutput

Automatically determine available resource percentages by subtracting the average number of host resources represented by the `ha_admission_control_host_failure_tolerance` setting from the total amount of resources in the cluster. Disable to supply user-defined values. Default: `true`. <sup>\*</sup>

func (*ComputeCluster) HaAdmissionControlResourcePercentageCpu

func (r *ComputeCluster) HaAdmissionControlResourcePercentageCpu() *pulumi.IntOutput

Controls the user-defined percentage of CPU resources in the cluster to reserve for failover. Default: `100`.

func (*ComputeCluster) HaAdmissionControlResourcePercentageMemory

func (r *ComputeCluster) HaAdmissionControlResourcePercentageMemory() *pulumi.IntOutput

Controls the user-defined percentage of memory resources in the cluster to reserve for failover. Default: `100`.

func (*ComputeCluster) HaAdmissionControlSlotPolicyExplicitCpu

func (r *ComputeCluster) HaAdmissionControlSlotPolicyExplicitCpu() *pulumi.IntOutput

Controls the user-defined CPU slot size, in MHz. Default: `32`.

func (*ComputeCluster) HaAdmissionControlSlotPolicyExplicitMemory

func (r *ComputeCluster) HaAdmissionControlSlotPolicyExplicitMemory() *pulumi.IntOutput

Controls the user-defined memory slot size, in MB. Default: `100`.

func (*ComputeCluster) HaAdmissionControlSlotPolicyUseExplicitSize

func (r *ComputeCluster) HaAdmissionControlSlotPolicyUseExplicitSize() *pulumi.BoolOutput

Controls whether or not you wish to supply explicit values to CPU and memory slot sizes. The default is `false`, which tells vSphere to gather a automatic average based on all powered-on virtual machines currently in the cluster.

func (*ComputeCluster) HaAdvancedOptions

func (r *ComputeCluster) HaAdvancedOptions() *pulumi.MapOutput

A key/value map that specifies advanced options for vSphere HA.

func (*ComputeCluster) HaDatastoreApdRecoveryAction

func (r *ComputeCluster) HaDatastoreApdRecoveryAction() *pulumi.StringOutput

Controls the action to take on virtual machines if an APD status on an affected datastore clears in the middle of an APD event. Can be one of `none` or `reset`. Default: `none`. <sup>\*</sup>

func (*ComputeCluster) HaDatastoreApdResponse

func (r *ComputeCluster) HaDatastoreApdResponse() *pulumi.StringOutput

Controls the action to take on virtual machines when the cluster has detected loss to all paths to a relevant datastore. Can be one of `disabled`, `warning`, `restartConservative`, or `restartAggressive`. Default: `disabled`. <sup>\*</sup>

func (*ComputeCluster) HaDatastoreApdResponseDelay

func (r *ComputeCluster) HaDatastoreApdResponseDelay() *pulumi.IntOutput

Controls the delay in minutes to wait after an APD timeout event to execute the response action defined in `ha_datastore_apd_response`. Default: `3` minutes. <sup>\*</sup>

func (*ComputeCluster) HaDatastorePdlResponse

func (r *ComputeCluster) HaDatastorePdlResponse() *pulumi.StringOutput

Controls the action to take on virtual machines when the cluster has detected a permanent device loss to a relevant datastore. Can be one of `disabled`, `warning`, or `restartAggressive`. Default: `disabled`. <sup>\*</sup>

func (*ComputeCluster) HaEnabled

func (r *ComputeCluster) HaEnabled() *pulumi.BoolOutput

Enable vSphere HA for this cluster. Default: `false`.

func (*ComputeCluster) HaHeartbeatDatastoreIds

func (r *ComputeCluster) HaHeartbeatDatastoreIds() *pulumi.ArrayOutput

The list of managed object IDs for preferred datastores to use for HA heartbeating. This setting is only useful when `ha_heartbeat_datastore_policy` is set to either `userSelectedDs` or `allFeasibleDsWithUserPreference`.

func (*ComputeCluster) HaHeartbeatDatastorePolicy

func (r *ComputeCluster) HaHeartbeatDatastorePolicy() *pulumi.StringOutput

The selection policy for HA heartbeat datastores. Can be one of `allFeasibleDs`, `userSelectedDs`, or `allFeasibleDsWithUserPreference`. Default: `allFeasibleDsWithUserPreference`.

func (*ComputeCluster) HaHostIsolationResponse

func (r *ComputeCluster) HaHostIsolationResponse() *pulumi.StringOutput

The action to take on virtual machines when a host has detected that it has been isolated from the rest of the cluster. Can be one of `none`, `powerOff`, or `shutdown`. Default: `none`.

func (*ComputeCluster) HaHostMonitoring

func (r *ComputeCluster) HaHostMonitoring() *pulumi.StringOutput

Global setting that controls whether vSphere HA remediates virtual machines on host failure. Can be one of `enabled` or `disabled`. Default: `enabled`.

func (*ComputeCluster) HaVmComponentProtection

func (r *ComputeCluster) HaVmComponentProtection() *pulumi.StringOutput

Controls vSphere VM component protection for virtual machines in this cluster. Can be one of `enabled` or `disabled`. Default: `enabled`. <sup>\*</sup>

func (*ComputeCluster) HaVmDependencyRestartCondition

func (r *ComputeCluster) HaVmDependencyRestartCondition() *pulumi.StringOutput

The condition used to determine whether or not virtual machines in a certain restart priority class are online, allowing HA to move on to restarting virtual machines on the next priority. Can be one of `none`, `poweredOn`, `guestHbStatusGreen`, or `appHbStatusGreen`. The default is `none`, which means that a virtual machine is considered ready immediately after a host is found to start it on. <sup>\*</sup>

func (*ComputeCluster) HaVmFailureInterval

func (r *ComputeCluster) HaVmFailureInterval() *pulumi.IntOutput

If a heartbeat from a virtual machine is not received within this configured interval, the virtual machine is marked as failed. The value is in seconds. Default: `30`.

func (*ComputeCluster) HaVmMaximumFailureWindow

func (r *ComputeCluster) HaVmMaximumFailureWindow() *pulumi.IntOutput

The length of the reset window in which `ha_vm_maximum_resets` can operate. When this window expires, no more resets are attempted regardless of the setting configured in `ha_vm_maximum_resets`. `-1` means no window, meaning an unlimited reset time is allotted. The value is specified in seconds. Default: `-1` (no window).

func (*ComputeCluster) HaVmMaximumResets

func (r *ComputeCluster) HaVmMaximumResets() *pulumi.IntOutput

The maximum number of resets that HA will perform to a virtual machine when responding to a failure event. Default: `3`

func (*ComputeCluster) HaVmMinimumUptime

func (r *ComputeCluster) HaVmMinimumUptime() *pulumi.IntOutput

The time, in seconds, that HA waits after powering on a virtual machine before monitoring for heartbeats. Default: `120` (2 minutes).

func (*ComputeCluster) HaVmMonitoring

func (r *ComputeCluster) HaVmMonitoring() *pulumi.StringOutput

The type of virtual machine monitoring to use when HA is enabled in the cluster. Can be one of `vmMonitoringDisabled`, `vmMonitoringOnly`, or `vmAndAppMonitoring`. Default: `vmMonitoringDisabled`.

func (*ComputeCluster) HaVmRestartAdditionalDelay

func (r *ComputeCluster) HaVmRestartAdditionalDelay() *pulumi.IntOutput

Additional delay in seconds after ready condition is met. A VM is considered ready at this point. Default: `0` (no delay). <sup>\*</sup>

func (*ComputeCluster) HaVmRestartPriority

func (r *ComputeCluster) HaVmRestartPriority() *pulumi.StringOutput

The default restart priority for affected virtual machines when vSphere detects a host failure. Can be one of `lowest`, `low`, `medium`, `high`, or `highest`. Default: `medium`.

func (*ComputeCluster) HaVmRestartTimeout

func (r *ComputeCluster) HaVmRestartTimeout() *pulumi.IntOutput

The maximum time, in seconds, that vSphere HA will wait for virtual machines in one priority to be ready before proceeding with the next priority. Default: `600` (10 minutes). <sup>\*</sup>

func (*ComputeCluster) HostClusterExitTimeout

func (r *ComputeCluster) HostClusterExitTimeout() *pulumi.IntOutput

The timeout for each host maintenance mode operation when removing hosts from a cluster. The value is specified in seconds. Default: `3600` (1 hour).

func (*ComputeCluster) HostSystemIds

func (r *ComputeCluster) HostSystemIds() *pulumi.ArrayOutput

The [managed object IDs][docs-about-morefs] of the hosts to put in the cluster.

func (*ComputeCluster) ID

func (r *ComputeCluster) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*ComputeCluster) Name

func (r *ComputeCluster) Name() *pulumi.StringOutput

The name of the cluster.

func (*ComputeCluster) ProactiveHaAutomationLevel

func (r *ComputeCluster) ProactiveHaAutomationLevel() *pulumi.StringOutput

Determines how the host quarantine, maintenance mode, or virtual machine migration recommendations made by proactive HA are to be handled. Can be one of `Automated` or `Manual`. Default: `Manual`. <sup>\*</sup>

func (*ComputeCluster) ProactiveHaEnabled

func (r *ComputeCluster) ProactiveHaEnabled() *pulumi.BoolOutput

Enables Proactive HA. Default: `false`. <sup>\*</sup>

func (*ComputeCluster) ProactiveHaModerateRemediation

func (r *ComputeCluster) ProactiveHaModerateRemediation() *pulumi.StringOutput

The configured remediation for moderately degraded hosts. Can be one of `MaintenanceMode` or `QuarantineMode`. Note that this cannot be set to `MaintenanceMode` when `proactive_ha_severe_remediation` is set to `QuarantineMode`. Default: `QuarantineMode`. <sup>\*</sup>

func (*ComputeCluster) ProactiveHaProviderIds

func (r *ComputeCluster) ProactiveHaProviderIds() *pulumi.ArrayOutput

The list of IDs for health update providers configured for this cluster. <sup>\*</sup>

func (*ComputeCluster) ProactiveHaSevereRemediation

func (r *ComputeCluster) ProactiveHaSevereRemediation() *pulumi.StringOutput

The configured remediation for severely degraded hosts. Can be one of `MaintenanceMode` or `QuarantineMode`. Note that this cannot be set to `QuarantineMode` when `proactive_ha_moderate_remediation` is set to `MaintenanceMode`. Default: `QuarantineMode`. <sup>\*</sup>

func (*ComputeCluster) ResourcePoolId

func (r *ComputeCluster) ResourcePoolId() *pulumi.StringOutput

The managed object ID of the cluster's root resource pool.

func (*ComputeCluster) Tags

func (r *ComputeCluster) Tags() *pulumi.ArrayOutput

The IDs of any tags to attach to this resource. See [here][docs-applying-tags] for a reference on how to apply tags.

func (*ComputeCluster) URN

func (r *ComputeCluster) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

type ComputeClusterArgs

type ComputeClusterArgs struct {
	// A map of custom attribute ids to attribute
	// value strings to set for the datastore cluster. See
	// [here][docs-setting-custom-attributes] for a reference on how to set values
	// for custom attributes.
	CustomAttributes interface{}
	// The [managed object ID][docs-about-morefs] of
	// the datacenter to create the cluster in. Forces a new resource if changed.
	DatacenterId interface{}
	// The automation level for host power
	// operations in this cluster. Can be one of `manual` or `automated`. Default:
	// `manual`.
	DpmAutomationLevel interface{}
	// Enable DPM support for DRS in this cluster.
	// Requires `drs_enabled` to be `true` in order to be effective.
	// Default: `false`.
	DpmEnabled interface{}
	// A value between `1` and `5` indicating the
	// threshold of load within the cluster that influences host power operations.
	// This affects both power on and power off operations - a lower setting will
	// tolerate more of a surplus/deficit than a higher setting. Default: `3`.
	DpmThreshold interface{}
	// A key/value map that specifies advanced
	// options for DRS and DPM.
	DrsAdvancedOptions interface{}
	// The default automation level for all
	// virtual machines in this cluster. Can be one of `manual`,
	// `partiallyAutomated`, or `fullyAutomated`. Default: `manual`.
	DrsAutomationLevel interface{}
	// When `true`, enables DRS to use data
	// from [vRealize Operations Manager][ref-vsphere-vro] to make proactive DRS
	// recommendations. <sup>\*</sup>
	DrsEnablePredictiveDrs interface{}
	// Allow individual DRS overrides to be
	// set for virtual machines in the cluster. Default: `true`.
	DrsEnableVmOverrides interface{}
	// Enable DRS for this cluster. Default: `false`.
	DrsEnabled interface{}
	// A value between `1` and `5` indicating
	// the threshold of imbalance tolerated between hosts. A lower setting will
	// tolerate more imbalance while a higher setting will tolerate less. Default:
	// `3`.
	DrsMigrationThreshold interface{}
	// The relative path to a folder to put this cluster in.
	// This is a path relative to the datacenter you are deploying the cluster to.
	// Example: for the `dc1` datacenter, and a provided `folder` of `foo/bar`,
	// Terraform will place a cluster named `terraform-compute-cluster-test` in a
	// host folder located at `/dc1/host/foo/bar`, with the final inventory path
	// being `/dc1/host/foo/bar/terraform-datastore-cluster-test`.
	Folder interface{}
	// When destroying the resource, setting this to
	// `true` will auto-remove any hosts that are currently a member of the cluster,
	// as if they were removed by taking their entry out of `host_system_ids` (see
	// below). This is an advanced
	// option and should only be used for testing. Default: `false`.
	ForceEvacuateOnDestroy interface{}
	// Defines the
	// [managed object IDs][docs-about-morefs] of hosts to use as dedicated failover
	// hosts. These hosts are kept as available as possible - admission control will
	// block access to the host, and DRS will ignore the host when making
	// recommendations.
	HaAdmissionControlFailoverHostSystemIds interface{}
	// The maximum number
	// of failed hosts that admission control tolerates when making decisions on
	// whether to permit virtual machine operations. The maximum is one less than
	// the number of hosts in the cluster. Default: `1`.
	// <sup>\*</sup>
	HaAdmissionControlHostFailureTolerance interface{}
	// The percentage of
	// resource reduction that a cluster of virtual machines can tolerate in case of
	// a failover. A value of 0 produces warnings only, whereas a value of 100
	// disables the setting. Default: `100` (disabled).
	HaAdmissionControlPerformanceTolerance interface{}
	// The type of admission control
	// policy to use with vSphere HA. Can be one of `resourcePercentage`,
	// `slotPolicy`, `failoverHosts`, or `disabled`. Default: `resourcePercentage`.
	HaAdmissionControlPolicy interface{}
	//
	// Automatically determine available resource percentages by subtracting the
	// average number of host resources represented by the
	// `ha_admission_control_host_failure_tolerance`
	// setting from the total amount of resources in the cluster. Disable to supply
	// user-defined values. Default: `true`.
	// <sup>\*</sup>
	HaAdmissionControlResourcePercentageAutoCompute interface{}
	// Controls the
	// user-defined percentage of CPU resources in the cluster to reserve for
	// failover. Default: `100`.
	HaAdmissionControlResourcePercentageCpu interface{}
	// Controls the
	// user-defined percentage of memory resources in the cluster to reserve for
	// failover. Default: `100`.
	HaAdmissionControlResourcePercentageMemory interface{}
	// Controls the
	// user-defined CPU slot size, in MHz. Default: `32`.
	HaAdmissionControlSlotPolicyExplicitCpu interface{}
	// Controls the
	// user-defined memory slot size, in MB. Default: `100`.
	HaAdmissionControlSlotPolicyExplicitMemory interface{}
	// Controls
	// whether or not you wish to supply explicit values to CPU and memory slot
	// sizes. The default is `false`, which tells vSphere to gather a automatic
	// average based on all powered-on virtual machines currently in the cluster.
	HaAdmissionControlSlotPolicyUseExplicitSize interface{}
	// A key/value map that specifies advanced
	// options for vSphere HA.
	HaAdvancedOptions interface{}
	// Controls the action to take
	// on virtual machines if an APD status on an affected datastore clears in the
	// middle of an APD event. Can be one of `none` or `reset`. Default: `none`.
	// <sup>\*</sup>
	HaDatastoreApdRecoveryAction interface{}
	// Controls the action to take on
	// virtual machines when the cluster has detected loss to all paths to a
	// relevant datastore. Can be one of `disabled`, `warning`,
	// `restartConservative`, or `restartAggressive`.  Default: `disabled`.
	// <sup>\*</sup>
	HaDatastoreApdResponse interface{}
	// Controls the delay in minutes
	// to wait after an APD timeout event to execute the response action defined in
	// `ha_datastore_apd_response`. Default: `3`
	// minutes. <sup>\*</sup>
	HaDatastoreApdResponseDelay interface{}
	// Controls the action to take on
	// virtual machines when the cluster has detected a permanent device loss to a
	// relevant datastore. Can be one of `disabled`, `warning`, or
	// `restartAggressive`. Default: `disabled`.
	// <sup>\*</sup>
	HaDatastorePdlResponse interface{}
	// Enable vSphere HA for this cluster. Default:
	// `false`.
	HaEnabled interface{}
	// The list of managed object IDs for
	// preferred datastores to use for HA heartbeating. This setting is only useful
	// when `ha_heartbeat_datastore_policy` is set
	// to either `userSelectedDs` or `allFeasibleDsWithUserPreference`.
	HaHeartbeatDatastoreIds interface{}
	// The selection policy for HA
	// heartbeat datastores. Can be one of `allFeasibleDs`, `userSelectedDs`, or
	// `allFeasibleDsWithUserPreference`. Default:
	// `allFeasibleDsWithUserPreference`.
	HaHeartbeatDatastorePolicy interface{}
	// The action to take on virtual
	// machines when a host has detected that it has been isolated from the rest of
	// the cluster. Can be one of `none`, `powerOff`, or `shutdown`. Default:
	// `none`.
	HaHostIsolationResponse interface{}
	// Global setting that controls whether
	// vSphere HA remediates virtual machines on host failure. Can be one of `enabled`
	// or `disabled`. Default: `enabled`.
	HaHostMonitoring interface{}
	// Controls vSphere VM component
	// protection for virtual machines in this cluster. Can be one of `enabled` or
	// `disabled`. Default: `enabled`.
	// <sup>\*</sup>
	HaVmComponentProtection interface{}
	// The condition used to
	// determine whether or not virtual machines in a certain restart priority class
	// are online, allowing HA to move on to restarting virtual machines on the next
	// priority. Can be one of `none`, `poweredOn`, `guestHbStatusGreen`, or
	// `appHbStatusGreen`. The default is `none`, which means that a virtual machine
	// is considered ready immediately after a host is found to start it on.
	// <sup>\*</sup>
	HaVmDependencyRestartCondition interface{}
	// If a heartbeat from a virtual machine
	// is not received within this configured interval, the virtual machine is
	// marked as failed. The value is in seconds. Default: `30`.
	HaVmFailureInterval interface{}
	// The length of the reset window in
	// which `ha_vm_maximum_resets` can operate. When this
	// window expires, no more resets are attempted regardless of the setting
	// configured in `ha_vm_maximum_resets`. `-1` means no window, meaning an
	// unlimited reset time is allotted. The value is specified in seconds. Default:
	// `-1` (no window).
	HaVmMaximumFailureWindow interface{}
	// The maximum number of resets that HA will
	// perform to a virtual machine when responding to a failure event. Default: `3`
	HaVmMaximumResets interface{}
	// The time, in seconds, that HA waits after
	// powering on a virtual machine before monitoring for heartbeats. Default:
	// `120` (2 minutes).
	HaVmMinimumUptime interface{}
	// The type of virtual machine monitoring to use
	// when HA is enabled in the cluster. Can be one of `vmMonitoringDisabled`,
	// `vmMonitoringOnly`, or `vmAndAppMonitoring`. Default: `vmMonitoringDisabled`.
	HaVmMonitoring interface{}
	// Additional delay in seconds
	// after ready condition is met. A VM is considered ready at this point.
	// Default: `0` (no delay). <sup>\*</sup>
	HaVmRestartAdditionalDelay interface{}
	// The default restart priority
	// for affected virtual machines when vSphere detects a host failure. Can be one
	// of `lowest`, `low`, `medium`, `high`, or `highest`. Default: `medium`.
	HaVmRestartPriority interface{}
	// The maximum time, in seconds,
	// that vSphere HA will wait for virtual machines in one priority to be ready
	// before proceeding with the next priority. Default: `600` (10 minutes).
	// <sup>\*</sup>
	HaVmRestartTimeout interface{}
	// The timeout for each host maintenance mode
	// operation when removing hosts from a cluster. The value is specified in
	// seconds. Default: `3600` (1 hour).
	HostClusterExitTimeout interface{}
	// The [managed object IDs][docs-about-morefs] of
	// the hosts to put in the cluster.
	HostSystemIds interface{}
	// The name of the cluster.
	Name interface{}
	// Determines how the host
	// quarantine, maintenance mode, or virtual machine migration recommendations
	// made by proactive HA are to be handled. Can be one of `Automated` or
	// `Manual`. Default: `Manual`. <sup>\*</sup>
	ProactiveHaAutomationLevel interface{}
	// Enables Proactive HA. Default: `false`.
	// <sup>\*</sup>
	ProactiveHaEnabled interface{}
	// The configured remediation
	// for moderately degraded hosts. Can be one of `MaintenanceMode` or
	// `QuarantineMode`. Note that this cannot be set to `MaintenanceMode` when
	// `proactive_ha_severe_remediation` is set
	// to `QuarantineMode`. Default: `QuarantineMode`.
	// <sup>\*</sup>
	ProactiveHaModerateRemediation interface{}
	// The list of IDs for health update
	// providers configured for this cluster.
	// <sup>\*</sup>
	ProactiveHaProviderIds interface{}
	// The configured remediation for
	// severely degraded hosts. Can be one of `MaintenanceMode` or `QuarantineMode`.
	// Note that this cannot be set to `QuarantineMode` when
	// `proactive_ha_moderate_remediation` is
	// set to `MaintenanceMode`. Default: `QuarantineMode`.
	// <sup>\*</sup>
	ProactiveHaSevereRemediation interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
}

The set of arguments for constructing a ComputeCluster resource.

type ComputeClusterHostGroup

type ComputeClusterHostGroup struct {
	// contains filtered or unexported fields
}

The `vsphere_compute_cluster_host_group` resource can be used to manage groups of hosts in a cluster, either created by the [`vsphere_compute_cluster`][tf-vsphere-cluster-resource] resource or looked up by the [`vsphere_compute_cluster`][tf-vsphere-cluster-data-source] data source.

[tf-vsphere-cluster-resource]: /docs/providers/vsphere/r/compute_cluster.html [tf-vsphere-cluster-data-source]: /docs/providers/vsphere/d/compute_cluster.html

This resource mainly serves as an input to the [`vsphere_compute_cluster_vm_host_rule`][tf-vsphere-cluster-vm-host-rule-resource] resource - see the documentation for that resource for further details on how to use host groups.

[tf-vsphere-cluster-vm-host-rule-resource]: /docs/providers/vsphere/r/compute_cluster_vm_host_rule.html

~> **NOTE:** This resource requires vCenter and is not available on direct ESXi connections.

~> **NOTE:** vSphere DRS requires a vSphere Enterprise Plus license.

func GetComputeClusterHostGroup

func GetComputeClusterHostGroup(ctx *pulumi.Context,
	name string, id pulumi.ID, state *ComputeClusterHostGroupState, opts ...pulumi.ResourceOpt) (*ComputeClusterHostGroup, error)

GetComputeClusterHostGroup gets an existing ComputeClusterHostGroup resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewComputeClusterHostGroup

func NewComputeClusterHostGroup(ctx *pulumi.Context,
	name string, args *ComputeClusterHostGroupArgs, opts ...pulumi.ResourceOpt) (*ComputeClusterHostGroup, error)

NewComputeClusterHostGroup registers a new resource with the given unique name, arguments, and options.

func (*ComputeClusterHostGroup) ComputeClusterId

func (r *ComputeClusterHostGroup) ComputeClusterId() *pulumi.StringOutput

The [managed object reference ID][docs-about-morefs] of the cluster to put the group in. Forces a new resource if changed.

func (*ComputeClusterHostGroup) HostSystemIds

func (r *ComputeClusterHostGroup) HostSystemIds() *pulumi.ArrayOutput

The [managed object IDs][docs-about-morefs] of the hosts to put in the cluster.

func (*ComputeClusterHostGroup) ID

ID is this resource's unique identifier assigned by its provider.

func (*ComputeClusterHostGroup) Name

The name of the host group. This must be unique in the cluster. Forces a new resource if changed.

func (*ComputeClusterHostGroup) URN

URN is this resource's unique name assigned by Pulumi.

type ComputeClusterHostGroupArgs

type ComputeClusterHostGroupArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the cluster to put the group in.  Forces a new
	// resource if changed.
	ComputeClusterId interface{}
	// The [managed object IDs][docs-about-morefs] of
	// the hosts to put in the cluster.
	HostSystemIds interface{}
	// The name of the host group. This must be unique in the
	// cluster. Forces a new resource if changed.
	Name interface{}
}

The set of arguments for constructing a ComputeClusterHostGroup resource.

type ComputeClusterHostGroupState

type ComputeClusterHostGroupState struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the cluster to put the group in.  Forces a new
	// resource if changed.
	ComputeClusterId interface{}
	// The [managed object IDs][docs-about-morefs] of
	// the hosts to put in the cluster.
	HostSystemIds interface{}
	// The name of the host group. This must be unique in the
	// cluster. Forces a new resource if changed.
	Name interface{}
}

Input properties used for looking up and filtering ComputeClusterHostGroup resources.

type ComputeClusterState

type ComputeClusterState struct {
	// A map of custom attribute ids to attribute
	// value strings to set for the datastore cluster. See
	// [here][docs-setting-custom-attributes] for a reference on how to set values
	// for custom attributes.
	CustomAttributes interface{}
	// The [managed object ID][docs-about-morefs] of
	// the datacenter to create the cluster in. Forces a new resource if changed.
	DatacenterId interface{}
	// The automation level for host power
	// operations in this cluster. Can be one of `manual` or `automated`. Default:
	// `manual`.
	DpmAutomationLevel interface{}
	// Enable DPM support for DRS in this cluster.
	// Requires `drs_enabled` to be `true` in order to be effective.
	// Default: `false`.
	DpmEnabled interface{}
	// A value between `1` and `5` indicating the
	// threshold of load within the cluster that influences host power operations.
	// This affects both power on and power off operations - a lower setting will
	// tolerate more of a surplus/deficit than a higher setting. Default: `3`.
	DpmThreshold interface{}
	// A key/value map that specifies advanced
	// options for DRS and DPM.
	DrsAdvancedOptions interface{}
	// The default automation level for all
	// virtual machines in this cluster. Can be one of `manual`,
	// `partiallyAutomated`, or `fullyAutomated`. Default: `manual`.
	DrsAutomationLevel interface{}
	// When `true`, enables DRS to use data
	// from [vRealize Operations Manager][ref-vsphere-vro] to make proactive DRS
	// recommendations. <sup>\*</sup>
	DrsEnablePredictiveDrs interface{}
	// Allow individual DRS overrides to be
	// set for virtual machines in the cluster. Default: `true`.
	DrsEnableVmOverrides interface{}
	// Enable DRS for this cluster. Default: `false`.
	DrsEnabled interface{}
	// A value between `1` and `5` indicating
	// the threshold of imbalance tolerated between hosts. A lower setting will
	// tolerate more imbalance while a higher setting will tolerate less. Default:
	// `3`.
	DrsMigrationThreshold interface{}
	// The relative path to a folder to put this cluster in.
	// This is a path relative to the datacenter you are deploying the cluster to.
	// Example: for the `dc1` datacenter, and a provided `folder` of `foo/bar`,
	// Terraform will place a cluster named `terraform-compute-cluster-test` in a
	// host folder located at `/dc1/host/foo/bar`, with the final inventory path
	// being `/dc1/host/foo/bar/terraform-datastore-cluster-test`.
	Folder interface{}
	// When destroying the resource, setting this to
	// `true` will auto-remove any hosts that are currently a member of the cluster,
	// as if they were removed by taking their entry out of `host_system_ids` (see
	// below). This is an advanced
	// option and should only be used for testing. Default: `false`.
	ForceEvacuateOnDestroy interface{}
	// Defines the
	// [managed object IDs][docs-about-morefs] of hosts to use as dedicated failover
	// hosts. These hosts are kept as available as possible - admission control will
	// block access to the host, and DRS will ignore the host when making
	// recommendations.
	HaAdmissionControlFailoverHostSystemIds interface{}
	// The maximum number
	// of failed hosts that admission control tolerates when making decisions on
	// whether to permit virtual machine operations. The maximum is one less than
	// the number of hosts in the cluster. Default: `1`.
	// <sup>\*</sup>
	HaAdmissionControlHostFailureTolerance interface{}
	// The percentage of
	// resource reduction that a cluster of virtual machines can tolerate in case of
	// a failover. A value of 0 produces warnings only, whereas a value of 100
	// disables the setting. Default: `100` (disabled).
	HaAdmissionControlPerformanceTolerance interface{}
	// The type of admission control
	// policy to use with vSphere HA. Can be one of `resourcePercentage`,
	// `slotPolicy`, `failoverHosts`, or `disabled`. Default: `resourcePercentage`.
	HaAdmissionControlPolicy interface{}
	//
	// Automatically determine available resource percentages by subtracting the
	// average number of host resources represented by the
	// `ha_admission_control_host_failure_tolerance`
	// setting from the total amount of resources in the cluster. Disable to supply
	// user-defined values. Default: `true`.
	// <sup>\*</sup>
	HaAdmissionControlResourcePercentageAutoCompute interface{}
	// Controls the
	// user-defined percentage of CPU resources in the cluster to reserve for
	// failover. Default: `100`.
	HaAdmissionControlResourcePercentageCpu interface{}
	// Controls the
	// user-defined percentage of memory resources in the cluster to reserve for
	// failover. Default: `100`.
	HaAdmissionControlResourcePercentageMemory interface{}
	// Controls the
	// user-defined CPU slot size, in MHz. Default: `32`.
	HaAdmissionControlSlotPolicyExplicitCpu interface{}
	// Controls the
	// user-defined memory slot size, in MB. Default: `100`.
	HaAdmissionControlSlotPolicyExplicitMemory interface{}
	// Controls
	// whether or not you wish to supply explicit values to CPU and memory slot
	// sizes. The default is `false`, which tells vSphere to gather a automatic
	// average based on all powered-on virtual machines currently in the cluster.
	HaAdmissionControlSlotPolicyUseExplicitSize interface{}
	// A key/value map that specifies advanced
	// options for vSphere HA.
	HaAdvancedOptions interface{}
	// Controls the action to take
	// on virtual machines if an APD status on an affected datastore clears in the
	// middle of an APD event. Can be one of `none` or `reset`. Default: `none`.
	// <sup>\*</sup>
	HaDatastoreApdRecoveryAction interface{}
	// Controls the action to take on
	// virtual machines when the cluster has detected loss to all paths to a
	// relevant datastore. Can be one of `disabled`, `warning`,
	// `restartConservative`, or `restartAggressive`.  Default: `disabled`.
	// <sup>\*</sup>
	HaDatastoreApdResponse interface{}
	// Controls the delay in minutes
	// to wait after an APD timeout event to execute the response action defined in
	// `ha_datastore_apd_response`. Default: `3`
	// minutes. <sup>\*</sup>
	HaDatastoreApdResponseDelay interface{}
	// Controls the action to take on
	// virtual machines when the cluster has detected a permanent device loss to a
	// relevant datastore. Can be one of `disabled`, `warning`, or
	// `restartAggressive`. Default: `disabled`.
	// <sup>\*</sup>
	HaDatastorePdlResponse interface{}
	// Enable vSphere HA for this cluster. Default:
	// `false`.
	HaEnabled interface{}
	// The list of managed object IDs for
	// preferred datastores to use for HA heartbeating. This setting is only useful
	// when `ha_heartbeat_datastore_policy` is set
	// to either `userSelectedDs` or `allFeasibleDsWithUserPreference`.
	HaHeartbeatDatastoreIds interface{}
	// The selection policy for HA
	// heartbeat datastores. Can be one of `allFeasibleDs`, `userSelectedDs`, or
	// `allFeasibleDsWithUserPreference`. Default:
	// `allFeasibleDsWithUserPreference`.
	HaHeartbeatDatastorePolicy interface{}
	// The action to take on virtual
	// machines when a host has detected that it has been isolated from the rest of
	// the cluster. Can be one of `none`, `powerOff`, or `shutdown`. Default:
	// `none`.
	HaHostIsolationResponse interface{}
	// Global setting that controls whether
	// vSphere HA remediates virtual machines on host failure. Can be one of `enabled`
	// or `disabled`. Default: `enabled`.
	HaHostMonitoring interface{}
	// Controls vSphere VM component
	// protection for virtual machines in this cluster. Can be one of `enabled` or
	// `disabled`. Default: `enabled`.
	// <sup>\*</sup>
	HaVmComponentProtection interface{}
	// The condition used to
	// determine whether or not virtual machines in a certain restart priority class
	// are online, allowing HA to move on to restarting virtual machines on the next
	// priority. Can be one of `none`, `poweredOn`, `guestHbStatusGreen`, or
	// `appHbStatusGreen`. The default is `none`, which means that a virtual machine
	// is considered ready immediately after a host is found to start it on.
	// <sup>\*</sup>
	HaVmDependencyRestartCondition interface{}
	// If a heartbeat from a virtual machine
	// is not received within this configured interval, the virtual machine is
	// marked as failed. The value is in seconds. Default: `30`.
	HaVmFailureInterval interface{}
	// The length of the reset window in
	// which `ha_vm_maximum_resets` can operate. When this
	// window expires, no more resets are attempted regardless of the setting
	// configured in `ha_vm_maximum_resets`. `-1` means no window, meaning an
	// unlimited reset time is allotted. The value is specified in seconds. Default:
	// `-1` (no window).
	HaVmMaximumFailureWindow interface{}
	// The maximum number of resets that HA will
	// perform to a virtual machine when responding to a failure event. Default: `3`
	HaVmMaximumResets interface{}
	// The time, in seconds, that HA waits after
	// powering on a virtual machine before monitoring for heartbeats. Default:
	// `120` (2 minutes).
	HaVmMinimumUptime interface{}
	// The type of virtual machine monitoring to use
	// when HA is enabled in the cluster. Can be one of `vmMonitoringDisabled`,
	// `vmMonitoringOnly`, or `vmAndAppMonitoring`. Default: `vmMonitoringDisabled`.
	HaVmMonitoring interface{}
	// Additional delay in seconds
	// after ready condition is met. A VM is considered ready at this point.
	// Default: `0` (no delay). <sup>\*</sup>
	HaVmRestartAdditionalDelay interface{}
	// The default restart priority
	// for affected virtual machines when vSphere detects a host failure. Can be one
	// of `lowest`, `low`, `medium`, `high`, or `highest`. Default: `medium`.
	HaVmRestartPriority interface{}
	// The maximum time, in seconds,
	// that vSphere HA will wait for virtual machines in one priority to be ready
	// before proceeding with the next priority. Default: `600` (10 minutes).
	// <sup>\*</sup>
	HaVmRestartTimeout interface{}
	// The timeout for each host maintenance mode
	// operation when removing hosts from a cluster. The value is specified in
	// seconds. Default: `3600` (1 hour).
	HostClusterExitTimeout interface{}
	// The [managed object IDs][docs-about-morefs] of
	// the hosts to put in the cluster.
	HostSystemIds interface{}
	// The name of the cluster.
	Name interface{}
	// Determines how the host
	// quarantine, maintenance mode, or virtual machine migration recommendations
	// made by proactive HA are to be handled. Can be one of `Automated` or
	// `Manual`. Default: `Manual`. <sup>\*</sup>
	ProactiveHaAutomationLevel interface{}
	// Enables Proactive HA. Default: `false`.
	// <sup>\*</sup>
	ProactiveHaEnabled interface{}
	// The configured remediation
	// for moderately degraded hosts. Can be one of `MaintenanceMode` or
	// `QuarantineMode`. Note that this cannot be set to `MaintenanceMode` when
	// `proactive_ha_severe_remediation` is set
	// to `QuarantineMode`. Default: `QuarantineMode`.
	// <sup>\*</sup>
	ProactiveHaModerateRemediation interface{}
	// The list of IDs for health update
	// providers configured for this cluster.
	// <sup>\*</sup>
	ProactiveHaProviderIds interface{}
	// The configured remediation for
	// severely degraded hosts. Can be one of `MaintenanceMode` or `QuarantineMode`.
	// Note that this cannot be set to `QuarantineMode` when
	// `proactive_ha_moderate_remediation` is
	// set to `MaintenanceMode`. Default: `QuarantineMode`.
	// <sup>\*</sup>
	ProactiveHaSevereRemediation interface{}
	// The managed object ID of the cluster's root resource pool.
	ResourcePoolId interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
}

Input properties used for looking up and filtering ComputeCluster resources.

type ComputeClusterVmAffinityRule

type ComputeClusterVmAffinityRule struct {
	// contains filtered or unexported fields
}

The `vsphere_compute_cluster_vm_affinity_rule` resource can be used to manage VM affinity rules in a cluster, either created by the [`vsphere_compute_cluster`][tf-vsphere-cluster-resource] resource or looked up by the [`vsphere_compute_cluster`][tf-vsphere-cluster-data-source] data source.

[tf-vsphere-cluster-resource]: /docs/providers/vsphere/r/compute_cluster.html [tf-vsphere-cluster-data-source]: /docs/providers/vsphere/d/compute_cluster.html

This rule can be used to tell a set to virtual machines to run together on a single host within a cluster. When configured, DRS will make a best effort to ensure that the virtual machines run on the same host, or prevent any operation that would keep that from happening, depending on the value of the `mandatory` flag.

-> Keep in mind that this rule can only be used to tell VMs to run together on a _non-specific_ host - it can't be used to pin VMs to a host. For that, see the [`vsphere_compute_cluster_vm_host_rule`][tf-vsphere-cluster-vm-host-rule-resource] resource.

[tf-vsphere-cluster-vm-host-rule-resource]: /docs/providers/vsphere/r/compute_cluster_vm_host_rule.html

~> **NOTE:** This resource requires vCenter and is not available on direct ESXi connections.

~> **NOTE:** vSphere DRS requires a vSphere Enterprise Plus license.

func GetComputeClusterVmAffinityRule

func GetComputeClusterVmAffinityRule(ctx *pulumi.Context,
	name string, id pulumi.ID, state *ComputeClusterVmAffinityRuleState, opts ...pulumi.ResourceOpt) (*ComputeClusterVmAffinityRule, error)

GetComputeClusterVmAffinityRule gets an existing ComputeClusterVmAffinityRule resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewComputeClusterVmAffinityRule

func NewComputeClusterVmAffinityRule(ctx *pulumi.Context,
	name string, args *ComputeClusterVmAffinityRuleArgs, opts ...pulumi.ResourceOpt) (*ComputeClusterVmAffinityRule, error)

NewComputeClusterVmAffinityRule registers a new resource with the given unique name, arguments, and options.

func (*ComputeClusterVmAffinityRule) ComputeClusterId

func (r *ComputeClusterVmAffinityRule) ComputeClusterId() *pulumi.StringOutput

The [managed object reference ID][docs-about-morefs] of the cluster to put the group in. Forces a new resource if changed.

func (*ComputeClusterVmAffinityRule) Enabled

Enable this rule in the cluster. Default: `true`.

func (*ComputeClusterVmAffinityRule) ID

ID is this resource's unique identifier assigned by its provider.

func (*ComputeClusterVmAffinityRule) Mandatory

When this value is `true`, prevents any virtual machine operations that may violate this rule. Default: `false`.

func (*ComputeClusterVmAffinityRule) Name

The name of the rule. This must be unique in the cluster.

func (*ComputeClusterVmAffinityRule) URN

URN is this resource's unique name assigned by Pulumi.

func (*ComputeClusterVmAffinityRule) VirtualMachineIds

func (r *ComputeClusterVmAffinityRule) VirtualMachineIds() *pulumi.ArrayOutput

The UUIDs of the virtual machines to run on the same host together.

type ComputeClusterVmAffinityRuleArgs

type ComputeClusterVmAffinityRuleArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the cluster to put the group in.  Forces a new
	// resource if changed.
	ComputeClusterId interface{}
	// Enable this rule in the cluster. Default: `true`.
	Enabled interface{}
	// When this value is `true`, prevents any virtual
	// machine operations that may violate this rule. Default: `false`.
	Mandatory interface{}
	// The name of the rule. This must be unique in the cluster.
	Name interface{}
	// The UUIDs of the virtual machines to run
	// on the same host together.
	VirtualMachineIds interface{}
}

The set of arguments for constructing a ComputeClusterVmAffinityRule resource.

type ComputeClusterVmAffinityRuleState

type ComputeClusterVmAffinityRuleState struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the cluster to put the group in.  Forces a new
	// resource if changed.
	ComputeClusterId interface{}
	// Enable this rule in the cluster. Default: `true`.
	Enabled interface{}
	// When this value is `true`, prevents any virtual
	// machine operations that may violate this rule. Default: `false`.
	Mandatory interface{}
	// The name of the rule. This must be unique in the cluster.
	Name interface{}
	// The UUIDs of the virtual machines to run
	// on the same host together.
	VirtualMachineIds interface{}
}

Input properties used for looking up and filtering ComputeClusterVmAffinityRule resources.

type ComputeClusterVmDependencyRule

type ComputeClusterVmDependencyRule struct {
	// contains filtered or unexported fields
}

The `vsphere_compute_cluster_vm_dependency_rule` resource can be used to manage VM dependency rules in a cluster, either created by the [`vsphere_compute_cluster`][tf-vsphere-cluster-resource] resource or looked up by the [`vsphere_compute_cluster`][tf-vsphere-cluster-data-source] data source.

[tf-vsphere-cluster-resource]: /docs/providers/vsphere/r/compute_cluster.html [tf-vsphere-cluster-data-source]: /docs/providers/vsphere/d/compute_cluster.html

A virtual machine dependency rule applies to vSphere HA, and allows user-defined startup orders for virtual machines in the case of host failure. Virtual machines are supplied via groups, which can be managed via the [`vsphere_compute_cluster_vm_group`][tf-vsphere-cluster-vm-group-resource] resource.

[tf-vsphere-cluster-vm-group-resource]: /docs/providers/vsphere/r/compute_cluster_vm_group.html

~> **NOTE:** This resource requires vCenter and is not available on direct ESXi connections.

func GetComputeClusterVmDependencyRule

func GetComputeClusterVmDependencyRule(ctx *pulumi.Context,
	name string, id pulumi.ID, state *ComputeClusterVmDependencyRuleState, opts ...pulumi.ResourceOpt) (*ComputeClusterVmDependencyRule, error)

GetComputeClusterVmDependencyRule gets an existing ComputeClusterVmDependencyRule resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewComputeClusterVmDependencyRule

func NewComputeClusterVmDependencyRule(ctx *pulumi.Context,
	name string, args *ComputeClusterVmDependencyRuleArgs, opts ...pulumi.ResourceOpt) (*ComputeClusterVmDependencyRule, error)

NewComputeClusterVmDependencyRule registers a new resource with the given unique name, arguments, and options.

func (*ComputeClusterVmDependencyRule) ComputeClusterId

func (r *ComputeClusterVmDependencyRule) ComputeClusterId() *pulumi.StringOutput

The [managed object reference ID][docs-about-morefs] of the cluster to put the group in. Forces a new resource if changed.

func (*ComputeClusterVmDependencyRule) DependencyVmGroupName

func (r *ComputeClusterVmDependencyRule) DependencyVmGroupName() *pulumi.StringOutput

The name of the VM group that this rule depends on. The VMs defined in the group specified by `vm_group_name` will not be started until the VMs in this group are started.

func (*ComputeClusterVmDependencyRule) Enabled

Enable this rule in the cluster. Default: `true`.

func (*ComputeClusterVmDependencyRule) ID

ID is this resource's unique identifier assigned by its provider.

func (*ComputeClusterVmDependencyRule) Mandatory

When this value is `true`, prevents any virtual machine operations that may violate this rule. Default: `false`.

func (*ComputeClusterVmDependencyRule) Name

The name of the rule. This must be unique in the cluster.

func (*ComputeClusterVmDependencyRule) URN

URN is this resource's unique name assigned by Pulumi.

func (*ComputeClusterVmDependencyRule) VmGroupName

The name of the VM group that is the subject of this rule. The VMs defined in this group will not be started until the VMs in the group specified by `dependency_vm_group_name` are started.

type ComputeClusterVmDependencyRuleArgs

type ComputeClusterVmDependencyRuleArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the cluster to put the group in.  Forces a new
	// resource if changed.
	ComputeClusterId interface{}
	// The name of the VM group that this
	// rule depends on. The VMs defined in the group specified by
	// `vm_group_name` will not be started until the VMs in this
	// group are started.
	DependencyVmGroupName interface{}
	// Enable this rule in the cluster. Default: `true`.
	Enabled interface{}
	// When this value is `true`, prevents any virtual
	// machine operations that may violate this rule. Default: `false`.
	Mandatory interface{}
	// The name of the rule. This must be unique in the
	// cluster.
	Name interface{}
	// The name of the VM group that is the subject of
	// this rule. The VMs defined in this group will not be started until the VMs in
	// the group specified by
	// `dependency_vm_group_name` are started.
	VmGroupName interface{}
}

The set of arguments for constructing a ComputeClusterVmDependencyRule resource.

type ComputeClusterVmDependencyRuleState

type ComputeClusterVmDependencyRuleState struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the cluster to put the group in.  Forces a new
	// resource if changed.
	ComputeClusterId interface{}
	// The name of the VM group that this
	// rule depends on. The VMs defined in the group specified by
	// `vm_group_name` will not be started until the VMs in this
	// group are started.
	DependencyVmGroupName interface{}
	// Enable this rule in the cluster. Default: `true`.
	Enabled interface{}
	// When this value is `true`, prevents any virtual
	// machine operations that may violate this rule. Default: `false`.
	Mandatory interface{}
	// The name of the rule. This must be unique in the
	// cluster.
	Name interface{}
	// The name of the VM group that is the subject of
	// this rule. The VMs defined in this group will not be started until the VMs in
	// the group specified by
	// `dependency_vm_group_name` are started.
	VmGroupName interface{}
}

Input properties used for looking up and filtering ComputeClusterVmDependencyRule resources.

type ComputeClusterVmGroup

type ComputeClusterVmGroup struct {
	// contains filtered or unexported fields
}

The `vsphere_compute_cluster_vm_group` resource can be used to manage groups of virtual machines in a cluster, either created by the [`vsphere_compute_cluster`][tf-vsphere-cluster-resource] resource or looked up by the [`vsphere_compute_cluster`][tf-vsphere-cluster-data-source] data source.

[tf-vsphere-cluster-resource]: /docs/providers/vsphere/r/compute_cluster.html [tf-vsphere-cluster-data-source]: /docs/providers/vsphere/d/compute_cluster.html

This resource mainly serves as an input to the [`vsphere_compute_cluster_vm_dependency_rule`][tf-vsphere-cluster-vm-dependency-rule-resource] and [`vsphere_compute_cluster_vm_host_rule`][tf-vsphere-cluster-vm-host-rule-resource] resources. See the individual resource documentation pages for more information.

[tf-vsphere-cluster-vm-dependency-rule-resource]: /docs/providers/vsphere/r/compute_cluster_vm_dependency_rule.html [tf-vsphere-cluster-vm-host-rule-resource]: /docs/providers/vsphere/r/compute_cluster_vm_host_rule.html

~> **NOTE:** This resource requires vCenter and is not available on direct ESXi connections.

~> **NOTE:** vSphere DRS requires a vSphere Enterprise Plus license.

func GetComputeClusterVmGroup

func GetComputeClusterVmGroup(ctx *pulumi.Context,
	name string, id pulumi.ID, state *ComputeClusterVmGroupState, opts ...pulumi.ResourceOpt) (*ComputeClusterVmGroup, error)

GetComputeClusterVmGroup gets an existing ComputeClusterVmGroup resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewComputeClusterVmGroup

func NewComputeClusterVmGroup(ctx *pulumi.Context,
	name string, args *ComputeClusterVmGroupArgs, opts ...pulumi.ResourceOpt) (*ComputeClusterVmGroup, error)

NewComputeClusterVmGroup registers a new resource with the given unique name, arguments, and options.

func (*ComputeClusterVmGroup) ComputeClusterId

func (r *ComputeClusterVmGroup) ComputeClusterId() *pulumi.StringOutput

The [managed object reference ID][docs-about-morefs] of the cluster to put the group in. Forces a new resource if changed.

func (*ComputeClusterVmGroup) ID

ID is this resource's unique identifier assigned by its provider.

func (*ComputeClusterVmGroup) Name

The name of the VM group. This must be unique in the cluster. Forces a new resource if changed.

func (*ComputeClusterVmGroup) URN

URN is this resource's unique name assigned by Pulumi.

func (*ComputeClusterVmGroup) VirtualMachineIds

func (r *ComputeClusterVmGroup) VirtualMachineIds() *pulumi.ArrayOutput

The UUIDs of the virtual machines in this group.

type ComputeClusterVmGroupArgs

type ComputeClusterVmGroupArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the cluster to put the group in.  Forces a new
	// resource if changed.
	ComputeClusterId interface{}
	// The name of the VM group. This must be unique in the
	// cluster. Forces a new resource if changed.
	Name interface{}
	// The UUIDs of the virtual machines in this
	// group.
	VirtualMachineIds interface{}
}

The set of arguments for constructing a ComputeClusterVmGroup resource.

type ComputeClusterVmGroupState

type ComputeClusterVmGroupState struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the cluster to put the group in.  Forces a new
	// resource if changed.
	ComputeClusterId interface{}
	// The name of the VM group. This must be unique in the
	// cluster. Forces a new resource if changed.
	Name interface{}
	// The UUIDs of the virtual machines in this
	// group.
	VirtualMachineIds interface{}
}

Input properties used for looking up and filtering ComputeClusterVmGroup resources.

type ComputeClusterVmHostRule

type ComputeClusterVmHostRule struct {
	// contains filtered or unexported fields
}

The `vsphere_compute_cluster_vm_host_rule` resource can be used to manage VM-to-host rules in a cluster, either created by the [`vsphere_compute_cluster`][tf-vsphere-cluster-resource] resource or looked up by the [`vsphere_compute_cluster`][tf-vsphere-cluster-data-source] data source.

[tf-vsphere-cluster-resource]: /docs/providers/vsphere/r/compute_cluster.html [tf-vsphere-cluster-data-source]: /docs/providers/vsphere/d/compute_cluster.html

This resource can create both _affinity rules_, where virtual machines run on specified hosts, or _anti-affinity_ rules, where virtual machines run on hosts outside of the ones specified in the rule. Virtual machines and hosts are supplied via groups, which can be managed via the [`vsphere_compute_cluster_vm_group`][tf-vsphere-cluster-vm-group-resource] and [`vsphere_compute_cluster_host_group`][tf-vsphere-cluster-host-group-resource] resources.

[tf-vsphere-cluster-vm-group-resource]: /docs/providers/vsphere/r/compute_cluster_vm_group.html [tf-vsphere-cluster-host-group-resource]: /docs/providers/vsphere/r/compute_cluster_host_group.html

~> **NOTE:** This resource requires vCenter and is not available on direct ESXi connections.

~> **NOTE:** vSphere DRS requires a vSphere Enterprise Plus license.

func GetComputeClusterVmHostRule

func GetComputeClusterVmHostRule(ctx *pulumi.Context,
	name string, id pulumi.ID, state *ComputeClusterVmHostRuleState, opts ...pulumi.ResourceOpt) (*ComputeClusterVmHostRule, error)

GetComputeClusterVmHostRule gets an existing ComputeClusterVmHostRule resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewComputeClusterVmHostRule

func NewComputeClusterVmHostRule(ctx *pulumi.Context,
	name string, args *ComputeClusterVmHostRuleArgs, opts ...pulumi.ResourceOpt) (*ComputeClusterVmHostRule, error)

NewComputeClusterVmHostRule registers a new resource with the given unique name, arguments, and options.

func (*ComputeClusterVmHostRule) AffinityHostGroupName

func (r *ComputeClusterVmHostRule) AffinityHostGroupName() *pulumi.StringOutput

When this field is used, the virtual machines defined in `vm_group_name` will be run on the hosts defined in this host group.

func (*ComputeClusterVmHostRule) AntiAffinityHostGroupName

func (r *ComputeClusterVmHostRule) AntiAffinityHostGroupName() *pulumi.StringOutput

When this field is used, the virtual machines defined in `vm_group_name` will _not_ be run on the hosts defined in this host group.

func (*ComputeClusterVmHostRule) ComputeClusterId

func (r *ComputeClusterVmHostRule) ComputeClusterId() *pulumi.StringOutput

The [managed object reference ID][docs-about-morefs] of the cluster to put the group in. Forces a new resource if changed.

func (*ComputeClusterVmHostRule) Enabled

Enable this rule in the cluster. Default: `true`.

func (*ComputeClusterVmHostRule) ID

ID is this resource's unique identifier assigned by its provider.

func (*ComputeClusterVmHostRule) Mandatory

func (r *ComputeClusterVmHostRule) Mandatory() *pulumi.BoolOutput

When this value is `true`, prevents any virtual machine operations that may violate this rule. Default: `false`.

func (*ComputeClusterVmHostRule) Name

The name of the rule. This must be unique in the cluster.

func (*ComputeClusterVmHostRule) URN

URN is this resource's unique name assigned by Pulumi.

func (*ComputeClusterVmHostRule) VmGroupName

func (r *ComputeClusterVmHostRule) VmGroupName() *pulumi.StringOutput

The name of the virtual machine group to use with this rule.

type ComputeClusterVmHostRuleArgs

type ComputeClusterVmHostRuleArgs struct {
	// When this field is used, the virtual
	// machines defined in `vm_group_name` will be run on the
	// hosts defined in this host group.
	AffinityHostGroupName interface{}
	// When this field is used, the
	// virtual machines defined in `vm_group_name` will _not_ be
	// run on the hosts defined in this host group.
	AntiAffinityHostGroupName interface{}
	// The [managed object reference
	// ID][docs-about-morefs] of the cluster to put the group in.  Forces a new
	// resource if changed.
	ComputeClusterId interface{}
	// Enable this rule in the cluster. Default: `true`.
	Enabled interface{}
	// When this value is `true`, prevents any virtual
	// machine operations that may violate this rule. Default: `false`.
	Mandatory interface{}
	// The name of the rule. This must be unique in the
	// cluster.
	Name interface{}
	// The name of the virtual machine group to use
	// with this rule.
	VmGroupName interface{}
}

The set of arguments for constructing a ComputeClusterVmHostRule resource.

type ComputeClusterVmHostRuleState

type ComputeClusterVmHostRuleState struct {
	// When this field is used, the virtual
	// machines defined in `vm_group_name` will be run on the
	// hosts defined in this host group.
	AffinityHostGroupName interface{}
	// When this field is used, the
	// virtual machines defined in `vm_group_name` will _not_ be
	// run on the hosts defined in this host group.
	AntiAffinityHostGroupName interface{}
	// The [managed object reference
	// ID][docs-about-morefs] of the cluster to put the group in.  Forces a new
	// resource if changed.
	ComputeClusterId interface{}
	// Enable this rule in the cluster. Default: `true`.
	Enabled interface{}
	// When this value is `true`, prevents any virtual
	// machine operations that may violate this rule. Default: `false`.
	Mandatory interface{}
	// The name of the rule. This must be unique in the
	// cluster.
	Name interface{}
	// The name of the virtual machine group to use
	// with this rule.
	VmGroupName interface{}
}

Input properties used for looking up and filtering ComputeClusterVmHostRule resources.

type CustomAttribute

type CustomAttribute struct {
	// contains filtered or unexported fields
}

The `vsphere_custom_attribute` resource can be used to create and manage custom attributes, which allow users to associate user-specific meta-information with vSphere managed objects. Custom attribute values must be strings and are stored on the vCenter Server and not the managed object.

For more information about custom attributes, click [here]ext-custom-attributes.

~> **NOTE:** Custom attributes are unsupported on direct ESXi connections and require vCenter.

func GetCustomAttribute

func GetCustomAttribute(ctx *pulumi.Context,
	name string, id pulumi.ID, state *CustomAttributeState, opts ...pulumi.ResourceOpt) (*CustomAttribute, error)

GetCustomAttribute gets an existing CustomAttribute resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewCustomAttribute

func NewCustomAttribute(ctx *pulumi.Context,
	name string, args *CustomAttributeArgs, opts ...pulumi.ResourceOpt) (*CustomAttribute, error)

NewCustomAttribute registers a new resource with the given unique name, arguments, and options.

func (*CustomAttribute) ID

func (r *CustomAttribute) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*CustomAttribute) ManagedObjectType

func (r *CustomAttribute) ManagedObjectType() *pulumi.StringOutput

The object type that this attribute may be applied to. If not set, the custom attribute may be applied to any object type. For a full list, click here. Forces a new resource if changed.

func (*CustomAttribute) Name

func (r *CustomAttribute) Name() *pulumi.StringOutput

The name of the custom attribute.

func (*CustomAttribute) URN

func (r *CustomAttribute) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

type CustomAttributeArgs

type CustomAttributeArgs struct {
	// The object type that this attribute may be
	// applied to. If not set, the custom attribute may be applied to any object
	// type. For a full list, click here. Forces a new
	// resource if changed.
	ManagedObjectType interface{}
	// The name of the custom attribute.
	Name interface{}
}

The set of arguments for constructing a CustomAttribute resource.

type CustomAttributeState

type CustomAttributeState struct {
	// The object type that this attribute may be
	// applied to. If not set, the custom attribute may be applied to any object
	// type. For a full list, click here. Forces a new
	// resource if changed.
	ManagedObjectType interface{}
	// The name of the custom attribute.
	Name interface{}
}

Input properties used for looking up and filtering CustomAttribute resources.

type Datacenter

type Datacenter struct {
	// contains filtered or unexported fields
}

Provides a VMware vSphere datacenter resource. This can be used as the primary container of inventory objects such as hosts and virtual machines.

func GetDatacenter

func GetDatacenter(ctx *pulumi.Context,
	name string, id pulumi.ID, state *DatacenterState, opts ...pulumi.ResourceOpt) (*Datacenter, error)

GetDatacenter gets an existing Datacenter resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDatacenter

func NewDatacenter(ctx *pulumi.Context,
	name string, args *DatacenterArgs, opts ...pulumi.ResourceOpt) (*Datacenter, error)

NewDatacenter registers a new resource with the given unique name, arguments, and options.

func (*Datacenter) CustomAttributes

func (r *Datacenter) CustomAttributes() *pulumi.MapOutput

Map of custom attribute ids to value strings to set for datacenter resource. See [here][docs-setting-custom-attributes] for a reference on how to set values for custom attributes.

func (*Datacenter) Folder

func (r *Datacenter) Folder() *pulumi.StringOutput

The folder where the datacenter should be created. Forces a new resource if changed.

func (*Datacenter) ID

func (r *Datacenter) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*Datacenter) Moid

func (r *Datacenter) Moid() *pulumi.StringOutput

[Managed object ID][docs-about-morefs] of this datacenter.

func (*Datacenter) Name

func (r *Datacenter) Name() *pulumi.StringOutput

The name of the datacenter. This name needs to be unique within the folder. Forces a new resource if changed.

func (*Datacenter) Tags

func (r *Datacenter) Tags() *pulumi.ArrayOutput

The IDs of any tags to attach to this resource. See [here][docs-applying-tags] for a reference on how to apply tags.

func (*Datacenter) URN

func (r *Datacenter) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

type DatacenterArgs

type DatacenterArgs struct {
	// Map of custom attribute ids to value
	// strings to set for datacenter resource. See
	// [here][docs-setting-custom-attributes] for a reference on how to set values
	// for custom attributes.
	CustomAttributes interface{}
	// The folder where the datacenter should be created.
	// Forces a new resource if changed.
	Folder interface{}
	// The name of the datacenter. This name needs to be unique
	// within the folder. Forces a new resource if changed.
	Name interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
}

The set of arguments for constructing a Datacenter resource.

type DatacenterState

type DatacenterState struct {
	// Map of custom attribute ids to value
	// strings to set for datacenter resource. See
	// [here][docs-setting-custom-attributes] for a reference on how to set values
	// for custom attributes.
	CustomAttributes interface{}
	// The folder where the datacenter should be created.
	// Forces a new resource if changed.
	Folder interface{}
	// [Managed object ID][docs-about-morefs] of this datacenter.
	Moid interface{}
	// The name of the datacenter. This name needs to be unique
	// within the folder. Forces a new resource if changed.
	Name interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
}

Input properties used for looking up and filtering Datacenter resources.

type DatastoreCluster

type DatastoreCluster struct {
	// contains filtered or unexported fields
}

The `vsphere_datastore_cluster` resource can be used to create and manage datastore clusters. This can be used to create groups of datastores with a shared management interface, allowing for resource control and load balancing through Storage DRS.

For more information on vSphere datastore clusters and Storage DRS, see [this page]ref-vsphere-datastore-clusters.

~> **NOTE:** This resource requires vCenter and is not available on direct ESXi connections.

~> **NOTE:** Storage DRS requires a vSphere Enterprise Plus license.

func GetDatastoreCluster

func GetDatastoreCluster(ctx *pulumi.Context,
	name string, id pulumi.ID, state *DatastoreClusterState, opts ...pulumi.ResourceOpt) (*DatastoreCluster, error)

GetDatastoreCluster gets an existing DatastoreCluster resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDatastoreCluster

func NewDatastoreCluster(ctx *pulumi.Context,
	name string, args *DatastoreClusterArgs, opts ...pulumi.ResourceOpt) (*DatastoreCluster, error)

NewDatastoreCluster registers a new resource with the given unique name, arguments, and options.

func (*DatastoreCluster) CustomAttributes

func (r *DatastoreCluster) CustomAttributes() *pulumi.MapOutput

A map of custom attribute ids to attribute value strings to set for the datastore cluster. See [here][docs-setting-custom-attributes] for a reference on how to set values for custom attributes.

func (*DatastoreCluster) DatacenterId

func (r *DatastoreCluster) DatacenterId() *pulumi.StringOutput

The [managed object ID][docs-about-morefs] of the datacenter to create the datastore cluster in. Forces a new resource if changed.

func (*DatastoreCluster) Folder

func (r *DatastoreCluster) Folder() *pulumi.StringOutput

The relative path to a folder to put this datastore cluster in. This is a path relative to the datacenter you are deploying the datastore to. Example: for the `dc1` datacenter, and a provided `folder` of `foo/bar`, Terraform will place a datastore cluster named `terraform-datastore-cluster-test` in a datastore folder located at `/dc1/datastore/foo/bar`, with the final inventory path being `/dc1/datastore/foo/bar/terraform-datastore-cluster-test`.

func (*DatastoreCluster) ID

func (r *DatastoreCluster) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*DatastoreCluster) Name

The name of the datastore cluster.

func (*DatastoreCluster) SdrsAdvancedOptions

func (r *DatastoreCluster) SdrsAdvancedOptions() *pulumi.MapOutput

A key/value map of advanced Storage DRS settings that are not exposed via Terraform or the vSphere client.

func (*DatastoreCluster) SdrsAutomationLevel

func (r *DatastoreCluster) SdrsAutomationLevel() *pulumi.StringOutput

The global automation level for all virtual machines in this datastore cluster. Default: `manual`.

func (*DatastoreCluster) SdrsDefaultIntraVmAffinity

func (r *DatastoreCluster) SdrsDefaultIntraVmAffinity() *pulumi.BoolOutput

When `true`, all disks in a single virtual machine will be kept on the same datastore. Default: `true`.

func (*DatastoreCluster) SdrsEnabled

func (r *DatastoreCluster) SdrsEnabled() *pulumi.BoolOutput

Enable Storage DRS for this datastore cluster. Default: `false`.

func (*DatastoreCluster) SdrsFreeSpaceThreshold

func (r *DatastoreCluster) SdrsFreeSpaceThreshold() *pulumi.IntOutput

The free space threshold to use. When set to `utilization`, `drs_space_utilization_threshold` is used, and when set to `freeSpace`, `drs_free_space_threshold` is used. Default: `utilization`.

func (*DatastoreCluster) SdrsFreeSpaceThresholdMode

func (r *DatastoreCluster) SdrsFreeSpaceThresholdMode() *pulumi.StringOutput

The free space threshold to use. When set to utilization, drs_space_utilization_threshold is used, and when set to freeSpace, drs_free_space_threshold is used.

func (*DatastoreCluster) SdrsFreeSpaceUtilizationDifference

func (r *DatastoreCluster) SdrsFreeSpaceUtilizationDifference() *pulumi.IntOutput

The threshold, in percent, of difference between space utilization in datastores before storage DRS makes decisions to balance the space. Default: `5` percent.

func (*DatastoreCluster) SdrsIoBalanceAutomationLevel

func (r *DatastoreCluster) SdrsIoBalanceAutomationLevel() *pulumi.StringOutput

Overrides the default automation settings when correcting I/O load imbalances.

func (*DatastoreCluster) SdrsIoLatencyThreshold

func (r *DatastoreCluster) SdrsIoLatencyThreshold() *pulumi.IntOutput

The I/O latency threshold, in milliseconds, that storage DRS uses to make recommendations to move disks from this datastore. Default: `15` seconds.

func (*DatastoreCluster) SdrsIoLoadBalanceEnabled

func (r *DatastoreCluster) SdrsIoLoadBalanceEnabled() *pulumi.BoolOutput

Enable I/O load balancing for this datastore cluster. Default: `true`.

func (*DatastoreCluster) SdrsIoLoadImbalanceThreshold

func (r *DatastoreCluster) SdrsIoLoadImbalanceThreshold() *pulumi.IntOutput

The difference between load in datastores in the cluster before storage DRS makes recommendations to balance the load. Default: `5` percent.

func (*DatastoreCluster) SdrsIoReservableIopsThreshold

func (r *DatastoreCluster) SdrsIoReservableIopsThreshold() *pulumi.IntOutput

The threshold of reservable IOPS of all virtual machines on the datastore before storage DRS makes recommendations to move VMs off of a datastore. Note that this setting should only be set if `sdrs_io_reservable_percent_threshold` cannot make an accurate estimate of the capacity of the datastores in your cluster, and should be set to roughly 50-60% of the worst case peak performance of the backing LUNs.

func (*DatastoreCluster) SdrsIoReservablePercentThreshold

func (r *DatastoreCluster) SdrsIoReservablePercentThreshold() *pulumi.IntOutput

The threshold, in percent, of actual estimated performance of the datastore (in IOPS) that storage DRS uses to make recommendations to move VMs off of a datastore when the total reservable IOPS exceeds the threshold. Default: `60` percent.

func (*DatastoreCluster) SdrsIoReservableThresholdMode

func (r *DatastoreCluster) SdrsIoReservableThresholdMode() *pulumi.StringOutput

The reservable IOPS threshold setting to use, `sdrs_io_reservable_percent_threshold` in the event of `automatic`, or `sdrs_io_reservable_iops_threshold` in the event of `manual`. Default: `automatic`.

func (*DatastoreCluster) SdrsLoadBalanceInterval

func (r *DatastoreCluster) SdrsLoadBalanceInterval() *pulumi.IntOutput

The storage DRS poll interval, in minutes. Default: `480` minutes.

func (*DatastoreCluster) SdrsPolicyEnforcementAutomationLevel

func (r *DatastoreCluster) SdrsPolicyEnforcementAutomationLevel() *pulumi.StringOutput

Overrides the default automation settings when correcting storage and VM policy violations.

func (*DatastoreCluster) SdrsRuleEnforcementAutomationLevel

func (r *DatastoreCluster) SdrsRuleEnforcementAutomationLevel() *pulumi.StringOutput

Overrides the default automation settings when correcting affinity rule violations.

func (*DatastoreCluster) SdrsSpaceBalanceAutomationLevel

func (r *DatastoreCluster) SdrsSpaceBalanceAutomationLevel() *pulumi.StringOutput

Overrides the default automation settings when correcting disk space imbalances.

func (*DatastoreCluster) SdrsSpaceUtilizationThreshold

func (r *DatastoreCluster) SdrsSpaceUtilizationThreshold() *pulumi.IntOutput

The threshold, in percent of used space, that storage DRS uses to make decisions to migrate VMs out of a datastore.

func (*DatastoreCluster) SdrsVmEvacuationAutomationLevel

func (r *DatastoreCluster) SdrsVmEvacuationAutomationLevel() *pulumi.StringOutput

Overrides the default automation settings when generating recommendations for datastore evacuation.

func (*DatastoreCluster) Tags

func (r *DatastoreCluster) Tags() *pulumi.ArrayOutput

The IDs of any tags to attach to this resource. See [here][docs-applying-tags] for a reference on how to apply tags.

func (*DatastoreCluster) URN

func (r *DatastoreCluster) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

type DatastoreClusterArgs

type DatastoreClusterArgs struct {
	// A map of custom attribute ids to attribute
	// value strings to set for the datastore cluster. See
	// [here][docs-setting-custom-attributes] for a reference on how to set values
	// for custom attributes.
	CustomAttributes interface{}
	// The [managed object ID][docs-about-morefs] of
	// the datacenter to create the datastore cluster in. Forces a new resource if
	// changed.
	DatacenterId interface{}
	// The relative path to a folder to put this datastore
	// cluster in.  This is a path relative to the datacenter you are deploying the
	// datastore to.  Example: for the `dc1` datacenter, and a provided `folder` of
	// `foo/bar`, Terraform will place a datastore cluster named
	// `terraform-datastore-cluster-test` in a datastore folder located at
	// `/dc1/datastore/foo/bar`, with the final inventory path being
	// `/dc1/datastore/foo/bar/terraform-datastore-cluster-test`.
	Folder interface{}
	// The name of the datastore cluster.
	Name interface{}
	// A key/value map of advanced Storage DRS
	// settings that are not exposed via Terraform or the vSphere client.
	SdrsAdvancedOptions interface{}
	// The global automation level for all
	// virtual machines in this datastore cluster. Default: `manual`.
	SdrsAutomationLevel interface{}
	// When `true`, all disks in a
	// single virtual machine will be kept on the same datastore. Default: `true`.
	SdrsDefaultIntraVmAffinity interface{}
	// Enable Storage DRS for this datastore cluster.
	// Default: `false`.
	SdrsEnabled interface{}
	// The free space threshold to use.
	// When set to `utilization`, `drs_space_utilization_threshold` is used, and
	// when set to `freeSpace`, `drs_free_space_threshold` is used. Default:
	// `utilization`.
	SdrsFreeSpaceThreshold interface{}
	// The free space threshold to use. When set to utilization, drs_space_utilization_threshold is used, and when set to
	// freeSpace, drs_free_space_threshold is used.
	SdrsFreeSpaceThresholdMode interface{}
	// The threshold, in
	// percent, of difference between space utilization in datastores before storage
	// DRS makes decisions to balance the space. Default: `5` percent.
	SdrsFreeSpaceUtilizationDifference interface{}
	// Overrides the default
	// automation settings when correcting I/O load imbalances.
	SdrsIoBalanceAutomationLevel interface{}
	// The I/O latency threshold, in
	// milliseconds, that storage DRS uses to make recommendations to move disks
	// from this datastore. Default: `15` seconds.
	SdrsIoLatencyThreshold interface{}
	// Enable I/O load balancing for
	// this datastore cluster. Default: `true`.
	SdrsIoLoadBalanceEnabled interface{}
	// The difference between load
	// in datastores in the cluster before storage DRS makes recommendations to
	// balance the load. Default: `5` percent.
	SdrsIoLoadImbalanceThreshold interface{}
	// The threshold of reservable
	// IOPS of all virtual machines on the datastore before storage DRS makes
	// recommendations to move VMs off of a datastore. Note that this setting should
	// only be set if `sdrs_io_reservable_percent_threshold` cannot make an accurate
	// estimate of the capacity of the datastores in your cluster, and should be set
	// to roughly 50-60% of the worst case peak performance of the backing LUNs.
	SdrsIoReservableIopsThreshold interface{}
	// The threshold, in
	// percent, of actual estimated performance of the datastore (in IOPS) that
	// storage DRS uses to make recommendations to move VMs off of a datastore when
	// the total reservable IOPS exceeds the threshold. Default: `60` percent.
	SdrsIoReservablePercentThreshold interface{}
	// The reservable IOPS
	// threshold setting to use, `sdrs_io_reservable_percent_threshold` in the event
	// of `automatic`, or `sdrs_io_reservable_iops_threshold` in the event of
	// `manual`. Default: `automatic`.
	SdrsIoReservableThresholdMode interface{}
	// The storage DRS poll interval, in
	// minutes. Default: `480` minutes.
	SdrsLoadBalanceInterval interface{}
	// Overrides the default
	// automation settings when correcting storage and VM policy violations.
	SdrsPolicyEnforcementAutomationLevel interface{}
	// Overrides the default
	// automation settings when correcting affinity rule violations.
	SdrsRuleEnforcementAutomationLevel interface{}
	// Overrides the default
	// automation settings when correcting disk space imbalances.
	SdrsSpaceBalanceAutomationLevel interface{}
	// The threshold, in percent of used space, that storage DRS uses to make decisions to migrate VMs out of a datastore.
	SdrsSpaceUtilizationThreshold interface{}
	// Overrides the default
	// automation settings when generating recommendations for datastore evacuation.
	SdrsVmEvacuationAutomationLevel interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
}

The set of arguments for constructing a DatastoreCluster resource.

type DatastoreClusterState

type DatastoreClusterState struct {
	// A map of custom attribute ids to attribute
	// value strings to set for the datastore cluster. See
	// [here][docs-setting-custom-attributes] for a reference on how to set values
	// for custom attributes.
	CustomAttributes interface{}
	// The [managed object ID][docs-about-morefs] of
	// the datacenter to create the datastore cluster in. Forces a new resource if
	// changed.
	DatacenterId interface{}
	// The relative path to a folder to put this datastore
	// cluster in.  This is a path relative to the datacenter you are deploying the
	// datastore to.  Example: for the `dc1` datacenter, and a provided `folder` of
	// `foo/bar`, Terraform will place a datastore cluster named
	// `terraform-datastore-cluster-test` in a datastore folder located at
	// `/dc1/datastore/foo/bar`, with the final inventory path being
	// `/dc1/datastore/foo/bar/terraform-datastore-cluster-test`.
	Folder interface{}
	// The name of the datastore cluster.
	Name interface{}
	// A key/value map of advanced Storage DRS
	// settings that are not exposed via Terraform or the vSphere client.
	SdrsAdvancedOptions interface{}
	// The global automation level for all
	// virtual machines in this datastore cluster. Default: `manual`.
	SdrsAutomationLevel interface{}
	// When `true`, all disks in a
	// single virtual machine will be kept on the same datastore. Default: `true`.
	SdrsDefaultIntraVmAffinity interface{}
	// Enable Storage DRS for this datastore cluster.
	// Default: `false`.
	SdrsEnabled interface{}
	// The free space threshold to use.
	// When set to `utilization`, `drs_space_utilization_threshold` is used, and
	// when set to `freeSpace`, `drs_free_space_threshold` is used. Default:
	// `utilization`.
	SdrsFreeSpaceThreshold interface{}
	// The free space threshold to use. When set to utilization, drs_space_utilization_threshold is used, and when set to
	// freeSpace, drs_free_space_threshold is used.
	SdrsFreeSpaceThresholdMode interface{}
	// The threshold, in
	// percent, of difference between space utilization in datastores before storage
	// DRS makes decisions to balance the space. Default: `5` percent.
	SdrsFreeSpaceUtilizationDifference interface{}
	// Overrides the default
	// automation settings when correcting I/O load imbalances.
	SdrsIoBalanceAutomationLevel interface{}
	// The I/O latency threshold, in
	// milliseconds, that storage DRS uses to make recommendations to move disks
	// from this datastore. Default: `15` seconds.
	SdrsIoLatencyThreshold interface{}
	// Enable I/O load balancing for
	// this datastore cluster. Default: `true`.
	SdrsIoLoadBalanceEnabled interface{}
	// The difference between load
	// in datastores in the cluster before storage DRS makes recommendations to
	// balance the load. Default: `5` percent.
	SdrsIoLoadImbalanceThreshold interface{}
	// The threshold of reservable
	// IOPS of all virtual machines on the datastore before storage DRS makes
	// recommendations to move VMs off of a datastore. Note that this setting should
	// only be set if `sdrs_io_reservable_percent_threshold` cannot make an accurate
	// estimate of the capacity of the datastores in your cluster, and should be set
	// to roughly 50-60% of the worst case peak performance of the backing LUNs.
	SdrsIoReservableIopsThreshold interface{}
	// The threshold, in
	// percent, of actual estimated performance of the datastore (in IOPS) that
	// storage DRS uses to make recommendations to move VMs off of a datastore when
	// the total reservable IOPS exceeds the threshold. Default: `60` percent.
	SdrsIoReservablePercentThreshold interface{}
	// The reservable IOPS
	// threshold setting to use, `sdrs_io_reservable_percent_threshold` in the event
	// of `automatic`, or `sdrs_io_reservable_iops_threshold` in the event of
	// `manual`. Default: `automatic`.
	SdrsIoReservableThresholdMode interface{}
	// The storage DRS poll interval, in
	// minutes. Default: `480` minutes.
	SdrsLoadBalanceInterval interface{}
	// Overrides the default
	// automation settings when correcting storage and VM policy violations.
	SdrsPolicyEnforcementAutomationLevel interface{}
	// Overrides the default
	// automation settings when correcting affinity rule violations.
	SdrsRuleEnforcementAutomationLevel interface{}
	// Overrides the default
	// automation settings when correcting disk space imbalances.
	SdrsSpaceBalanceAutomationLevel interface{}
	// The threshold, in percent of used space, that storage DRS uses to make decisions to migrate VMs out of a datastore.
	SdrsSpaceUtilizationThreshold interface{}
	// Overrides the default
	// automation settings when generating recommendations for datastore evacuation.
	SdrsVmEvacuationAutomationLevel interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
}

Input properties used for looking up and filtering DatastoreCluster resources.

type DatastoreClusterVmAntiAffinityRule

type DatastoreClusterVmAntiAffinityRule struct {
	// contains filtered or unexported fields
}

The `vsphere_datastore_cluster_vm_anti_affinity_rule` resource can be used to manage VM anti-affinity rules in a datastore cluster, either created by the [`vsphere_datastore_cluster`][tf-vsphere-datastore-cluster-resource] resource or looked up by the [`vsphere_datastore_cluster`][tf-vsphere-datastore-cluster-data-source] data source.

[tf-vsphere-datastore-cluster-resource]: /docs/providers/vsphere/r/datastore_cluster.html [tf-vsphere-datastore-cluster-data-source]: /docs/providers/vsphere/d/datastore_cluster.html

This rule can be used to tell a set to virtual machines to run on different datastores within a cluster, useful for preventing single points of failure in application cluster scenarios. When configured, Storage DRS will make a best effort to ensure that the virtual machines run on different datastores, or prevent any operation that would keep that from happening, depending on the value of the `mandatory` flag.

~> **NOTE:** This resource requires vCenter and is not available on direct ESXi connections.

~> **NOTE:** Storage DRS requires a vSphere Enterprise Plus license.

func GetDatastoreClusterVmAntiAffinityRule

func GetDatastoreClusterVmAntiAffinityRule(ctx *pulumi.Context,
	name string, id pulumi.ID, state *DatastoreClusterVmAntiAffinityRuleState, opts ...pulumi.ResourceOpt) (*DatastoreClusterVmAntiAffinityRule, error)

GetDatastoreClusterVmAntiAffinityRule gets an existing DatastoreClusterVmAntiAffinityRule resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDatastoreClusterVmAntiAffinityRule

func NewDatastoreClusterVmAntiAffinityRule(ctx *pulumi.Context,
	name string, args *DatastoreClusterVmAntiAffinityRuleArgs, opts ...pulumi.ResourceOpt) (*DatastoreClusterVmAntiAffinityRule, error)

NewDatastoreClusterVmAntiAffinityRule registers a new resource with the given unique name, arguments, and options.

func (*DatastoreClusterVmAntiAffinityRule) DatastoreClusterId

func (r *DatastoreClusterVmAntiAffinityRule) DatastoreClusterId() *pulumi.StringOutput

The [managed object reference ID][docs-about-morefs] of the datastore cluster to put the group in. Forces a new resource if changed.

func (*DatastoreClusterVmAntiAffinityRule) Enabled

Enable this rule in the cluster. Default: `true`.

func (*DatastoreClusterVmAntiAffinityRule) ID

ID is this resource's unique identifier assigned by its provider.

func (*DatastoreClusterVmAntiAffinityRule) Mandatory

When this value is `true`, prevents any virtual machine operations that may violate this rule. Default: `false`.

func (*DatastoreClusterVmAntiAffinityRule) Name

The name of the rule. This must be unique in the cluster.

func (*DatastoreClusterVmAntiAffinityRule) URN

URN is this resource's unique name assigned by Pulumi.

func (*DatastoreClusterVmAntiAffinityRule) VirtualMachineIds

func (r *DatastoreClusterVmAntiAffinityRule) VirtualMachineIds() *pulumi.ArrayOutput

The UUIDs of the virtual machines to run on different datastores from each other.

type DatastoreClusterVmAntiAffinityRuleArgs

type DatastoreClusterVmAntiAffinityRuleArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the datastore cluster to put the group in.  Forces
	// a new resource if changed.
	DatastoreClusterId interface{}
	// Enable this rule in the cluster. Default: `true`.
	Enabled interface{}
	// When this value is `true`, prevents any virtual
	// machine operations that may violate this rule. Default: `false`.
	Mandatory interface{}
	// The name of the rule. This must be unique in the cluster.
	Name interface{}
	// The UUIDs of the virtual machines to run
	// on different datastores from each other.
	VirtualMachineIds interface{}
}

The set of arguments for constructing a DatastoreClusterVmAntiAffinityRule resource.

type DatastoreClusterVmAntiAffinityRuleState

type DatastoreClusterVmAntiAffinityRuleState struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the datastore cluster to put the group in.  Forces
	// a new resource if changed.
	DatastoreClusterId interface{}
	// Enable this rule in the cluster. Default: `true`.
	Enabled interface{}
	// When this value is `true`, prevents any virtual
	// machine operations that may violate this rule. Default: `false`.
	Mandatory interface{}
	// The name of the rule. This must be unique in the cluster.
	Name interface{}
	// The UUIDs of the virtual machines to run
	// on different datastores from each other.
	VirtualMachineIds interface{}
}

Input properties used for looking up and filtering DatastoreClusterVmAntiAffinityRule resources.

type DistributedPortGroup

type DistributedPortGroup struct {
	// contains filtered or unexported fields
}

The `vsphere_distributed_port_group` resource can be used to manage vSphere distributed virtual port groups. These port groups are connected to distributed virtual switches, which can be managed by the [`vsphere_distributed_virtual_switch`][distributed-virtual-switch] resource.

Distributed port groups can be used as networks for virtual machines, allowing VMs to use the networking supplied by a distributed virtual switch (DVS), with a set of policies that apply to that individual newtork, if desired.

For an overview on vSphere networking concepts, see [this page][ref-vsphere-net-concepts]. For more information on vSphere DVS portgroups, see [this page][ref-vsphere-dvportgroup].

[distributed-virtual-switch]: /docs/providers/vsphere/r/distributed_virtual_switch.html [ref-vsphere-net-concepts]: https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.networking.doc/GUID-2B11DBB8-CB3C-4AFF-8885-EFEA0FC562F4.html [ref-vsphere-dvportgroup]: https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.networking.doc/GUID-69933F6E-2442-46CF-AA17-1196CB9A0A09.html

~> **NOTE:** This resource requires vCenter and is not available on direct ESXi connections.

func GetDistributedPortGroup

func GetDistributedPortGroup(ctx *pulumi.Context,
	name string, id pulumi.ID, state *DistributedPortGroupState, opts ...pulumi.ResourceOpt) (*DistributedPortGroup, error)

GetDistributedPortGroup gets an existing DistributedPortGroup resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDistributedPortGroup

func NewDistributedPortGroup(ctx *pulumi.Context,
	name string, args *DistributedPortGroupArgs, opts ...pulumi.ResourceOpt) (*DistributedPortGroup, error)

NewDistributedPortGroup registers a new resource with the given unique name, arguments, and options.

func (r *DistributedPortGroup) ActiveUplinks() *pulumi.ArrayOutput

List of active uplinks used for load balancing, matching the names of the uplinks assigned in the DVS.

func (*DistributedPortGroup) AllowForgedTransmits

func (r *DistributedPortGroup) AllowForgedTransmits() *pulumi.BoolOutput

Controls whether or not the virtual network adapter is allowed to send network traffic with a different MAC address than that of its own.

func (*DistributedPortGroup) AllowMacChanges

func (r *DistributedPortGroup) AllowMacChanges() *pulumi.BoolOutput

Controls whether or not the Media Access Control (MAC) address can be changed.

func (*DistributedPortGroup) AllowPromiscuous

func (r *DistributedPortGroup) AllowPromiscuous() *pulumi.BoolOutput

Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port.

func (*DistributedPortGroup) AutoExpand

func (r *DistributedPortGroup) AutoExpand() *pulumi.BoolOutput

Allows the port group to create additional ports past the limit specified in `number_of_ports` if necessary. Default: `true`.

func (*DistributedPortGroup) BlockAllPorts

func (r *DistributedPortGroup) BlockAllPorts() *pulumi.BoolOutput

Indicates whether to block all ports by default.

func (*DistributedPortGroup) BlockOverrideAllowed

func (r *DistributedPortGroup) BlockOverrideAllowed() *pulumi.BoolOutput

Allow the [port shutdown policy][port-shutdown-policy] to be overridden on an individual port.

func (*DistributedPortGroup) CheckBeacon

func (r *DistributedPortGroup) CheckBeacon() *pulumi.BoolOutput

Enable beacon probing on the ports this policy applies to.

func (*DistributedPortGroup) ConfigVersion

func (r *DistributedPortGroup) ConfigVersion() *pulumi.StringOutput

Version string of the configuration that this spec is trying to change.

func (*DistributedPortGroup) CustomAttributes

func (r *DistributedPortGroup) CustomAttributes() *pulumi.MapOutput

Map of custom attribute ids to attribute value string to set for port group. See [here][docs-setting-custom-attributes] for a reference on how to set values for custom attributes.

func (*DistributedPortGroup) Description

func (r *DistributedPortGroup) Description() *pulumi.StringOutput

An optional description for the port group.

func (*DistributedPortGroup) DirectpathGen2Allowed

func (r *DistributedPortGroup) DirectpathGen2Allowed() *pulumi.BoolOutput

Allow VMDirectPath Gen2 on the ports this policy applies to.

func (*DistributedPortGroup) DistributedVirtualSwitchUuid

func (r *DistributedPortGroup) DistributedVirtualSwitchUuid() *pulumi.StringOutput

The ID of the DVS to add the port group to. Forces a new resource if changed.

func (*DistributedPortGroup) EgressShapingAverageBandwidth

func (r *DistributedPortGroup) EgressShapingAverageBandwidth() *pulumi.IntOutput

The average egress bandwidth in bits per second if egress shaping is enabled on the port.

func (*DistributedPortGroup) EgressShapingBurstSize

func (r *DistributedPortGroup) EgressShapingBurstSize() *pulumi.IntOutput

The maximum egress burst size allowed in bytes if egress shaping is enabled on the port.

func (*DistributedPortGroup) EgressShapingEnabled

func (r *DistributedPortGroup) EgressShapingEnabled() *pulumi.BoolOutput

True if the traffic shaper is enabled for egress traffic on the port.

func (*DistributedPortGroup) EgressShapingPeakBandwidth

func (r *DistributedPortGroup) EgressShapingPeakBandwidth() *pulumi.IntOutput

The peak egress bandwidth during bursts in bits per second if egress traffic shaping is enabled on the port.

func (*DistributedPortGroup) Failback

func (r *DistributedPortGroup) Failback() *pulumi.BoolOutput

If true, the teaming policy will re-activate failed interfaces higher in precedence when they come back up.

func (*DistributedPortGroup) ID

ID is this resource's unique identifier assigned by its provider.

func (*DistributedPortGroup) IngressShapingAverageBandwidth

func (r *DistributedPortGroup) IngressShapingAverageBandwidth() *pulumi.IntOutput

The average ingress bandwidth in bits per second if ingress shaping is enabled on the port.

func (*DistributedPortGroup) IngressShapingBurstSize

func (r *DistributedPortGroup) IngressShapingBurstSize() *pulumi.IntOutput

The maximum ingress burst size allowed in bytes if ingress shaping is enabled on the port.

func (*DistributedPortGroup) IngressShapingEnabled

func (r *DistributedPortGroup) IngressShapingEnabled() *pulumi.BoolOutput

True if the traffic shaper is enabled for ingress traffic on the port.

func (*DistributedPortGroup) IngressShapingPeakBandwidth

func (r *DistributedPortGroup) IngressShapingPeakBandwidth() *pulumi.IntOutput

The peak ingress bandwidth during bursts in bits per second if ingress traffic shaping is enabled on the port.

func (*DistributedPortGroup) Key

The generated UUID of the portgroup.

func (*DistributedPortGroup) LacpEnabled

func (r *DistributedPortGroup) LacpEnabled() *pulumi.BoolOutput

Whether or not to enable LACP on all uplink ports.

func (*DistributedPortGroup) LacpMode

func (r *DistributedPortGroup) LacpMode() *pulumi.StringOutput

The uplink LACP mode to use. Can be one of active or passive.

func (*DistributedPortGroup) LivePortMovingAllowed

func (r *DistributedPortGroup) LivePortMovingAllowed() *pulumi.BoolOutput

Allow a port in this port group to be moved to another port group while it is connected.

func (*DistributedPortGroup) Name

The name of the port group.

func (*DistributedPortGroup) NetflowEnabled

func (r *DistributedPortGroup) NetflowEnabled() *pulumi.BoolOutput

Indicates whether to enable netflow on all ports.

func (*DistributedPortGroup) NetflowOverrideAllowed

func (r *DistributedPortGroup) NetflowOverrideAllowed() *pulumi.BoolOutput

Allow the [Netflow policy][netflow-policy] on this port group to be overridden on an individual port.

func (*DistributedPortGroup) NetworkResourcePoolKey

func (r *DistributedPortGroup) NetworkResourcePoolKey() *pulumi.StringOutput

The key of a network resource pool to associate with this port group. The default is `-1`, which implies no association.

func (*DistributedPortGroup) NetworkResourcePoolOverrideAllowed

func (r *DistributedPortGroup) NetworkResourcePoolOverrideAllowed() *pulumi.BoolOutput

Allow the network resource pool set on this port group to be overridden on an individual port.

func (*DistributedPortGroup) NotifySwitches

func (r *DistributedPortGroup) NotifySwitches() *pulumi.BoolOutput

If true, the teaming policy will notify the broadcast network of a NIC failover, triggering cache updates.

func (*DistributedPortGroup) NumberOfPorts

func (r *DistributedPortGroup) NumberOfPorts() *pulumi.IntOutput

The number of ports available on this port group. Cannot be decreased below the amount of used ports on the port group.

func (*DistributedPortGroup) PortConfigResetAtDisconnect

func (r *DistributedPortGroup) PortConfigResetAtDisconnect() *pulumi.BoolOutput

Reset a port's settings to the settings defined on this port group policy when the port disconnects.

func (*DistributedPortGroup) PortNameFormat

func (r *DistributedPortGroup) PortNameFormat() *pulumi.StringOutput

An optional formatting policy for naming of the ports in this port group. See the `portNameFormat` attribute listed [here][ext-vsphere-portname-format] for details on the format syntax.

func (*DistributedPortGroup) PortPrivateSecondaryVlanId

func (r *DistributedPortGroup) PortPrivateSecondaryVlanId() *pulumi.IntOutput

The secondary VLAN ID for this port.

func (*DistributedPortGroup) SecurityPolicyOverrideAllowed

func (r *DistributedPortGroup) SecurityPolicyOverrideAllowed() *pulumi.BoolOutput

Allow the [security policy settings][sec-policy-settings] defined in this port group policy to be overridden on an individual port.

func (*DistributedPortGroup) ShapingOverrideAllowed

func (r *DistributedPortGroup) ShapingOverrideAllowed() *pulumi.BoolOutput

Allow the [traffic shaping options][traffic-shaping-settings] on this port group policy to be overridden on an individual port.

func (r *DistributedPortGroup) StandbyUplinks() *pulumi.ArrayOutput

List of active uplinks used for load balancing, matching the names of the uplinks assigned in the DVS.

func (*DistributedPortGroup) Tags

A list of tag IDs to apply to this object.

func (*DistributedPortGroup) TeamingPolicy

func (r *DistributedPortGroup) TeamingPolicy() *pulumi.StringOutput

The network adapter teaming policy. Can be one of loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, failover_explicit, or loadbalance_loadbased.

func (*DistributedPortGroup) TrafficFilterOverrideAllowed

func (r *DistributedPortGroup) TrafficFilterOverrideAllowed() *pulumi.BoolOutput

Allow any traffic filters on this port group to be overridden on an individual port.

func (r *DistributedPortGroup) TxUplink() *pulumi.BoolOutput

If true, a copy of packets sent to the switch will always be forwarded to an uplink in addition to the regular packet forwarded done by the switch.

func (*DistributedPortGroup) Type

The port group type. Can be one of `earlyBinding` (static binding) or `ephemeral`. Default: `earlyBinding`.

func (*DistributedPortGroup) URN

URN is this resource's unique name assigned by Pulumi.

func (*DistributedPortGroup) UplinkTeamingOverrideAllowed

func (r *DistributedPortGroup) UplinkTeamingOverrideAllowed() *pulumi.BoolOutput

Allow the [uplink teaming options][uplink-teaming-settings] on this port group to be overridden on an individual port.

func (*DistributedPortGroup) VlanId

func (r *DistributedPortGroup) VlanId() *pulumi.IntOutput

The VLAN ID for single VLAN mode. 0 denotes no VLAN.

func (*DistributedPortGroup) VlanOverrideAllowed

func (r *DistributedPortGroup) VlanOverrideAllowed() *pulumi.BoolOutput

Allow the [VLAN settings][vlan-settings] on this port group to be overridden on an individual port.

func (*DistributedPortGroup) VlanRanges

func (r *DistributedPortGroup) VlanRanges() *pulumi.ArrayOutput

The VLAN ID for single VLAN mode. 0 denotes no VLAN.

type DistributedPortGroupArgs

type DistributedPortGroupArgs struct {
	// List of active uplinks used for load balancing, matching the names of the uplinks assigned in the DVS.
	ActiveUplinks interface{}
	// Controls whether or not the virtual network adapter is allowed to send network traffic with a different MAC address
	// than that of its own.
	AllowForgedTransmits interface{}
	// Controls whether or not the Media Access Control (MAC) address can be changed.
	AllowMacChanges interface{}
	// Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port.
	AllowPromiscuous interface{}
	// Allows the port group to create additional ports
	// past the limit specified in `number_of_ports` if necessary. Default: `true`.
	AutoExpand interface{}
	// Indicates whether to block all ports by default.
	BlockAllPorts interface{}
	// Allow the [port shutdown
	// policy][port-shutdown-policy] to be overridden on an individual port.
	BlockOverrideAllowed interface{}
	// Enable beacon probing on the ports this policy applies to.
	CheckBeacon interface{}
	// Map of custom attribute ids to attribute
	// value string to set for port group. See [here][docs-setting-custom-attributes]
	// for a reference on how to set values for custom attributes.
	CustomAttributes interface{}
	// An optional description for the port group.
	Description interface{}
	// Allow VMDirectPath Gen2 on the ports this policy applies to.
	DirectpathGen2Allowed interface{}
	// The ID of the DVS to add the
	// port group to. Forces a new resource if changed.
	DistributedVirtualSwitchUuid interface{}
	// The average egress bandwidth in bits per second if egress shaping is enabled on the port.
	EgressShapingAverageBandwidth interface{}
	// The maximum egress burst size allowed in bytes if egress shaping is enabled on the port.
	EgressShapingBurstSize interface{}
	// True if the traffic shaper is enabled for egress traffic on the port.
	EgressShapingEnabled interface{}
	// The peak egress bandwidth during bursts in bits per second if egress traffic shaping is enabled on the port.
	EgressShapingPeakBandwidth interface{}
	// If true, the teaming policy will re-activate failed interfaces higher in precedence when they come back up.
	Failback interface{}
	// The average ingress bandwidth in bits per second if ingress shaping is enabled on the port.
	IngressShapingAverageBandwidth interface{}
	// The maximum ingress burst size allowed in bytes if ingress shaping is enabled on the port.
	IngressShapingBurstSize interface{}
	// True if the traffic shaper is enabled for ingress traffic on the port.
	IngressShapingEnabled interface{}
	// The peak ingress bandwidth during bursts in bits per second if ingress traffic shaping is enabled on the port.
	IngressShapingPeakBandwidth interface{}
	// Whether or not to enable LACP on all uplink ports.
	LacpEnabled interface{}
	// The uplink LACP mode to use. Can be one of active or passive.
	LacpMode interface{}
	// Allow a port in this port group to be
	// moved to another port group while it is connected.
	LivePortMovingAllowed interface{}
	// The name of the port group.
	Name interface{}
	// Indicates whether to enable netflow on all ports.
	NetflowEnabled interface{}
	// Allow the [Netflow
	// policy][netflow-policy] on this port group to be overridden on an individual
	// port.
	NetflowOverrideAllowed interface{}
	// The key of a network resource pool
	// to associate with this port group. The default is `-1`, which implies no
	// association.
	NetworkResourcePoolKey interface{}
	// Allow the network
	// resource pool set on this port group to be overridden on an individual port.
	NetworkResourcePoolOverrideAllowed interface{}
	// If true, the teaming policy will notify the broadcast network of a NIC failover, triggering cache updates.
	NotifySwitches interface{}
	// The number of ports available on this port
	// group. Cannot be decreased below the amount of used ports on the port group.
	NumberOfPorts interface{}
	// Reset a port's settings to the
	// settings defined on this port group policy when the port disconnects.
	PortConfigResetAtDisconnect interface{}
	// An optional formatting policy for naming of
	// the ports in this port group. See the `portNameFormat` attribute listed
	// [here][ext-vsphere-portname-format] for details on the format syntax.
	PortNameFormat interface{}
	// The secondary VLAN ID for this port.
	PortPrivateSecondaryVlanId interface{}
	// Allow the [security policy
	// settings][sec-policy-settings] defined in this port group policy to be
	// overridden on an individual port.
	SecurityPolicyOverrideAllowed interface{}
	// Allow the [traffic shaping
	// options][traffic-shaping-settings] on this port group policy to be overridden
	// on an individual port.
	ShapingOverrideAllowed interface{}
	// List of active uplinks used for load balancing, matching the names of the uplinks assigned in the DVS.
	StandbyUplinks interface{}
	// A list of tag IDs to apply to this object.
	Tags interface{}
	// The network adapter teaming policy. Can be one of loadbalance_ip, loadbalance_srcmac, loadbalance_srcid,
	// failover_explicit, or loadbalance_loadbased.
	TeamingPolicy interface{}
	// Allow any traffic filters on
	// this port group to be overridden on an individual port.
	TrafficFilterOverrideAllowed interface{}
	// If true, a copy of packets sent to the switch will always be forwarded to an uplink in addition to the regular packet
	// forwarded done by the switch.
	TxUplink interface{}
	// The port group type. Can be one of `earlyBinding` (static
	// binding) or `ephemeral`. Default: `earlyBinding`.
	Type interface{}
	// Allow the [uplink teaming
	// options][uplink-teaming-settings] on this port group to be overridden on an
	// individual port.
	UplinkTeamingOverrideAllowed interface{}
	// The VLAN ID for single VLAN mode. 0 denotes no VLAN.
	VlanId interface{}
	// Allow the [VLAN settings][vlan-settings]
	// on this port group to be overridden on an individual port.
	VlanOverrideAllowed interface{}
	// The VLAN ID for single VLAN mode. 0 denotes no VLAN.
	VlanRanges interface{}
}

The set of arguments for constructing a DistributedPortGroup resource.

type DistributedPortGroupState

type DistributedPortGroupState struct {
	// List of active uplinks used for load balancing, matching the names of the uplinks assigned in the DVS.
	ActiveUplinks interface{}
	// Controls whether or not the virtual network adapter is allowed to send network traffic with a different MAC address
	// than that of its own.
	AllowForgedTransmits interface{}
	// Controls whether or not the Media Access Control (MAC) address can be changed.
	AllowMacChanges interface{}
	// Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port.
	AllowPromiscuous interface{}
	// Allows the port group to create additional ports
	// past the limit specified in `number_of_ports` if necessary. Default: `true`.
	AutoExpand interface{}
	// Indicates whether to block all ports by default.
	BlockAllPorts interface{}
	// Allow the [port shutdown
	// policy][port-shutdown-policy] to be overridden on an individual port.
	BlockOverrideAllowed interface{}
	// Enable beacon probing on the ports this policy applies to.
	CheckBeacon interface{}
	// Version string of the configuration that this spec is trying to change.
	ConfigVersion interface{}
	// Map of custom attribute ids to attribute
	// value string to set for port group. See [here][docs-setting-custom-attributes]
	// for a reference on how to set values for custom attributes.
	CustomAttributes interface{}
	// An optional description for the port group.
	Description interface{}
	// Allow VMDirectPath Gen2 on the ports this policy applies to.
	DirectpathGen2Allowed interface{}
	// The ID of the DVS to add the
	// port group to. Forces a new resource if changed.
	DistributedVirtualSwitchUuid interface{}
	// The average egress bandwidth in bits per second if egress shaping is enabled on the port.
	EgressShapingAverageBandwidth interface{}
	// The maximum egress burst size allowed in bytes if egress shaping is enabled on the port.
	EgressShapingBurstSize interface{}
	// True if the traffic shaper is enabled for egress traffic on the port.
	EgressShapingEnabled interface{}
	// The peak egress bandwidth during bursts in bits per second if egress traffic shaping is enabled on the port.
	EgressShapingPeakBandwidth interface{}
	// If true, the teaming policy will re-activate failed interfaces higher in precedence when they come back up.
	Failback interface{}
	// The average ingress bandwidth in bits per second if ingress shaping is enabled on the port.
	IngressShapingAverageBandwidth interface{}
	// The maximum ingress burst size allowed in bytes if ingress shaping is enabled on the port.
	IngressShapingBurstSize interface{}
	// True if the traffic shaper is enabled for ingress traffic on the port.
	IngressShapingEnabled interface{}
	// The peak ingress bandwidth during bursts in bits per second if ingress traffic shaping is enabled on the port.
	IngressShapingPeakBandwidth interface{}
	// The generated UUID of the portgroup.
	Key interface{}
	// Whether or not to enable LACP on all uplink ports.
	LacpEnabled interface{}
	// The uplink LACP mode to use. Can be one of active or passive.
	LacpMode interface{}
	// Allow a port in this port group to be
	// moved to another port group while it is connected.
	LivePortMovingAllowed interface{}
	// The name of the port group.
	Name interface{}
	// Indicates whether to enable netflow on all ports.
	NetflowEnabled interface{}
	// Allow the [Netflow
	// policy][netflow-policy] on this port group to be overridden on an individual
	// port.
	NetflowOverrideAllowed interface{}
	// The key of a network resource pool
	// to associate with this port group. The default is `-1`, which implies no
	// association.
	NetworkResourcePoolKey interface{}
	// Allow the network
	// resource pool set on this port group to be overridden on an individual port.
	NetworkResourcePoolOverrideAllowed interface{}
	// If true, the teaming policy will notify the broadcast network of a NIC failover, triggering cache updates.
	NotifySwitches interface{}
	// The number of ports available on this port
	// group. Cannot be decreased below the amount of used ports on the port group.
	NumberOfPorts interface{}
	// Reset a port's settings to the
	// settings defined on this port group policy when the port disconnects.
	PortConfigResetAtDisconnect interface{}
	// An optional formatting policy for naming of
	// the ports in this port group. See the `portNameFormat` attribute listed
	// [here][ext-vsphere-portname-format] for details on the format syntax.
	PortNameFormat interface{}
	// The secondary VLAN ID for this port.
	PortPrivateSecondaryVlanId interface{}
	// Allow the [security policy
	// settings][sec-policy-settings] defined in this port group policy to be
	// overridden on an individual port.
	SecurityPolicyOverrideAllowed interface{}
	// Allow the [traffic shaping
	// options][traffic-shaping-settings] on this port group policy to be overridden
	// on an individual port.
	ShapingOverrideAllowed interface{}
	// List of active uplinks used for load balancing, matching the names of the uplinks assigned in the DVS.
	StandbyUplinks interface{}
	// A list of tag IDs to apply to this object.
	Tags interface{}
	// The network adapter teaming policy. Can be one of loadbalance_ip, loadbalance_srcmac, loadbalance_srcid,
	// failover_explicit, or loadbalance_loadbased.
	TeamingPolicy interface{}
	// Allow any traffic filters on
	// this port group to be overridden on an individual port.
	TrafficFilterOverrideAllowed interface{}
	// If true, a copy of packets sent to the switch will always be forwarded to an uplink in addition to the regular packet
	// forwarded done by the switch.
	TxUplink interface{}
	// The port group type. Can be one of `earlyBinding` (static
	// binding) or `ephemeral`. Default: `earlyBinding`.
	Type interface{}
	// Allow the [uplink teaming
	// options][uplink-teaming-settings] on this port group to be overridden on an
	// individual port.
	UplinkTeamingOverrideAllowed interface{}
	// The VLAN ID for single VLAN mode. 0 denotes no VLAN.
	VlanId interface{}
	// Allow the [VLAN settings][vlan-settings]
	// on this port group to be overridden on an individual port.
	VlanOverrideAllowed interface{}
	// The VLAN ID for single VLAN mode. 0 denotes no VLAN.
	VlanRanges interface{}
}

Input properties used for looking up and filtering DistributedPortGroup resources.

type DistributedVirtualSwitch

type DistributedVirtualSwitch struct {
	// contains filtered or unexported fields
}

The `vsphere_distributed_virtual_switch` resource can be used to manage VMware Distributed Virtual Switches.

An essential component of a distributed, scalable VMware datacenter, the vSphere Distributed Virtual Switch (DVS) provides centralized management and monitoring of the networking configuration of all the hosts that are associated with the switch. In addition to adding port groups (see the [`vsphere_distributed_port_group`][distributed-port-group] resource) that can be used as networks for virtual machines, a DVS can be configured to perform advanced high availability, traffic shaping, network monitoring, and more.

For an overview on vSphere networking concepts, see [this page][ref-vsphere-net-concepts]. For more information on vSphere DVS, see [this page][ref-vsphere-dvs].

[distributed-port-group]: /docs/providers/vsphere/r/distributed_port_group.html [ref-vsphere-net-concepts]: https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.networking.doc/GUID-2B11DBB8-CB3C-4AFF-8885-EFEA0FC562F4.html [ref-vsphere-dvs]: https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.networking.doc/GUID-375B45C7-684C-4C51-BA3C-70E48DFABF04.html

~> **NOTE:** This resource requires vCenter and is not available on direct ESXi connections.

func GetDistributedVirtualSwitch

func GetDistributedVirtualSwitch(ctx *pulumi.Context,
	name string, id pulumi.ID, state *DistributedVirtualSwitchState, opts ...pulumi.ResourceOpt) (*DistributedVirtualSwitch, error)

GetDistributedVirtualSwitch gets an existing DistributedVirtualSwitch resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDistributedVirtualSwitch

func NewDistributedVirtualSwitch(ctx *pulumi.Context,
	name string, args *DistributedVirtualSwitchArgs, opts ...pulumi.ResourceOpt) (*DistributedVirtualSwitch, error)

NewDistributedVirtualSwitch registers a new resource with the given unique name, arguments, and options.

func (r *DistributedVirtualSwitch) ActiveUplinks() *pulumi.ArrayOutput

A list of active uplinks to be used in load balancing. These uplinks need to match the definitions in the `uplinks` DVS argument. See here for more details.

func (*DistributedVirtualSwitch) AllowForgedTransmits

func (r *DistributedVirtualSwitch) AllowForgedTransmits() *pulumi.BoolOutput

Controls whether or not a virtual network adapter is allowed to send network traffic with a different MAC address than that of its own.

func (*DistributedVirtualSwitch) AllowMacChanges

func (r *DistributedVirtualSwitch) AllowMacChanges() *pulumi.BoolOutput

Controls whether or not the Media Access Control (MAC) address can be changed.

func (*DistributedVirtualSwitch) AllowPromiscuous

func (r *DistributedVirtualSwitch) AllowPromiscuous() *pulumi.BoolOutput

Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port.

func (*DistributedVirtualSwitch) BlockAllPorts

func (r *DistributedVirtualSwitch) BlockAllPorts() *pulumi.BoolOutput

Shuts down all ports in the port groups that this policy applies to, effectively blocking all network access to connected virtual devices.

func (*DistributedVirtualSwitch) CheckBeacon

func (r *DistributedVirtualSwitch) CheckBeacon() *pulumi.BoolOutput

Enables beacon probing as an additional measure to detect NIC failure.

func (*DistributedVirtualSwitch) ConfigVersion

func (r *DistributedVirtualSwitch) ConfigVersion() *pulumi.StringOutput

The version string of the configuration that this spec is trying to change.

func (*DistributedVirtualSwitch) ContactDetail

func (r *DistributedVirtualSwitch) ContactDetail() *pulumi.StringOutput

The detailed contact information for the person who is responsible for the DVS.

func (*DistributedVirtualSwitch) ContactName

func (r *DistributedVirtualSwitch) ContactName() *pulumi.StringOutput

The name of the person who is responsible for the DVS.

func (*DistributedVirtualSwitch) CustomAttributes

func (r *DistributedVirtualSwitch) CustomAttributes() *pulumi.MapOutput

Map of custom attribute ids to attribute value strings to set for virtual switch. See [here][docs-setting-custom-attributes] for a reference on how to set values for custom attributes.

func (*DistributedVirtualSwitch) DatacenterId

func (r *DistributedVirtualSwitch) DatacenterId() *pulumi.StringOutput

The ID of the datacenter where the distributed virtual switch will be created. Forces a new resource if changed.

func (*DistributedVirtualSwitch) Description

func (r *DistributedVirtualSwitch) Description() *pulumi.StringOutput

A detailed description for the DVS.

func (*DistributedVirtualSwitch) DirectpathGen2Allowed

func (r *DistributedVirtualSwitch) DirectpathGen2Allowed() *pulumi.BoolOutput

Allow VMDirectPath Gen2 for the ports for which this policy applies to.

func (*DistributedVirtualSwitch) EgressShapingAverageBandwidth

func (r *DistributedVirtualSwitch) EgressShapingAverageBandwidth() *pulumi.IntOutput

The average bandwidth in bits per second if egress traffic shaping is enabled on the port.

func (*DistributedVirtualSwitch) EgressShapingBurstSize

func (r *DistributedVirtualSwitch) EgressShapingBurstSize() *pulumi.IntOutput

The maximum burst size allowed in bytes if egress traffic shaping is enabled on the port.

func (*DistributedVirtualSwitch) EgressShapingEnabled

func (r *DistributedVirtualSwitch) EgressShapingEnabled() *pulumi.BoolOutput

`true` if the traffic shaper is enabled on the port for egress traffic.

func (*DistributedVirtualSwitch) EgressShapingPeakBandwidth

func (r *DistributedVirtualSwitch) EgressShapingPeakBandwidth() *pulumi.IntOutput

The peak bandwidth during bursts in bits per second if egress traffic shaping is enabled on the port.

func (*DistributedVirtualSwitch) Failback

If `true`, the teaming policy will re-activate failed uplinks higher in precedence when they come back up.

func (*DistributedVirtualSwitch) FaulttoleranceMaximumMbit

func (r *DistributedVirtualSwitch) FaulttoleranceMaximumMbit() *pulumi.IntOutput

The maximum allowed usage for the faultTolerance traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) FaulttoleranceReservationMbit

func (r *DistributedVirtualSwitch) FaulttoleranceReservationMbit() *pulumi.IntOutput

The amount of guaranteed bandwidth for the faultTolerance traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) FaulttoleranceShareCount

func (r *DistributedVirtualSwitch) FaulttoleranceShareCount() *pulumi.IntOutput

The amount of shares to allocate to the faultTolerance traffic class for a custom share level.

func (*DistributedVirtualSwitch) FaulttoleranceShareLevel

func (r *DistributedVirtualSwitch) FaulttoleranceShareLevel() *pulumi.StringOutput

The allocation level for the faultTolerance traffic class. Can be one of high, low, normal, or custom.

func (*DistributedVirtualSwitch) Folder

The folder to create the DVS in. Forces a new resource if changed.

func (*DistributedVirtualSwitch) HbrMaximumMbit

func (r *DistributedVirtualSwitch) HbrMaximumMbit() *pulumi.IntOutput

The maximum allowed usage for the hbr traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) HbrReservationMbit

func (r *DistributedVirtualSwitch) HbrReservationMbit() *pulumi.IntOutput

The amount of guaranteed bandwidth for the hbr traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) HbrShareCount

func (r *DistributedVirtualSwitch) HbrShareCount() *pulumi.IntOutput

The amount of shares to allocate to the hbr traffic class for a custom share level.

func (*DistributedVirtualSwitch) HbrShareLevel

func (r *DistributedVirtualSwitch) HbrShareLevel() *pulumi.StringOutput

The allocation level for the hbr traffic class. Can be one of high, low, normal, or custom.

func (*DistributedVirtualSwitch) Hosts

Use the `host` block to declare a host specification. The options are:

func (*DistributedVirtualSwitch) ID

ID is this resource's unique identifier assigned by its provider.

func (*DistributedVirtualSwitch) IngressShapingAverageBandwidth

func (r *DistributedVirtualSwitch) IngressShapingAverageBandwidth() *pulumi.IntOutput

The average bandwidth in bits per second if ingress traffic shaping is enabled on the port.

func (*DistributedVirtualSwitch) IngressShapingBurstSize

func (r *DistributedVirtualSwitch) IngressShapingBurstSize() *pulumi.IntOutput

The maximum burst size allowed in bytes if ingress traffic shaping is enabled on the port.

func (*DistributedVirtualSwitch) IngressShapingEnabled

func (r *DistributedVirtualSwitch) IngressShapingEnabled() *pulumi.BoolOutput

`true` if the traffic shaper is enabled on the port for ingress traffic.

func (*DistributedVirtualSwitch) IngressShapingPeakBandwidth

func (r *DistributedVirtualSwitch) IngressShapingPeakBandwidth() *pulumi.IntOutput

The peak bandwidth during bursts in bits per second if ingress traffic shaping is enabled on the port.

func (*DistributedVirtualSwitch) Ipv4Address

func (r *DistributedVirtualSwitch) Ipv4Address() *pulumi.StringOutput

An IPv4 address to identify the switch. This is mostly useful when used with the Netflow arguments found below.

func (*DistributedVirtualSwitch) IscsiMaximumMbit

func (r *DistributedVirtualSwitch) IscsiMaximumMbit() *pulumi.IntOutput

The maximum allowed usage for the iSCSI traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) IscsiReservationMbit

func (r *DistributedVirtualSwitch) IscsiReservationMbit() *pulumi.IntOutput

The amount of guaranteed bandwidth for the iSCSI traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) IscsiShareCount

func (r *DistributedVirtualSwitch) IscsiShareCount() *pulumi.IntOutput

The amount of shares to allocate to the iSCSI traffic class for a custom share level.

func (*DistributedVirtualSwitch) IscsiShareLevel

func (r *DistributedVirtualSwitch) IscsiShareLevel() *pulumi.StringOutput

The allocation level for the iSCSI traffic class. Can be one of high, low, normal, or custom.

func (*DistributedVirtualSwitch) LacpApiVersion

func (r *DistributedVirtualSwitch) LacpApiVersion() *pulumi.StringOutput

The Link Aggregation Control Protocol group version to use with the switch. Possible values are `singleLag` and `multipleLag`.

func (*DistributedVirtualSwitch) LacpEnabled

func (r *DistributedVirtualSwitch) LacpEnabled() *pulumi.BoolOutput

Enables LACP for the ports that this policy applies to.

func (*DistributedVirtualSwitch) LacpMode

The LACP mode. Can be one of `active` or `passive`.

func (*DistributedVirtualSwitch) LinkDiscoveryOperation

func (r *DistributedVirtualSwitch) LinkDiscoveryOperation() *pulumi.StringOutput

Whether to `advertise` or `listen` for link discovery traffic.

func (*DistributedVirtualSwitch) LinkDiscoveryProtocol

func (r *DistributedVirtualSwitch) LinkDiscoveryProtocol() *pulumi.StringOutput

The discovery protocol type. Valid types are `cdp` and `lldp`.

func (*DistributedVirtualSwitch) ManagementMaximumMbit

func (r *DistributedVirtualSwitch) ManagementMaximumMbit() *pulumi.IntOutput

The maximum allowed usage for the management traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) ManagementReservationMbit

func (r *DistributedVirtualSwitch) ManagementReservationMbit() *pulumi.IntOutput

The amount of guaranteed bandwidth for the management traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) ManagementShareCount

func (r *DistributedVirtualSwitch) ManagementShareCount() *pulumi.IntOutput

The amount of shares to allocate to the management traffic class for a custom share level.

func (*DistributedVirtualSwitch) ManagementShareLevel

func (r *DistributedVirtualSwitch) ManagementShareLevel() *pulumi.StringOutput

The allocation level for the management traffic class. Can be one of high, low, normal, or custom.

func (*DistributedVirtualSwitch) MaxMtu

The maximum transmission unit (MTU) for the virtual switch.

func (*DistributedVirtualSwitch) MulticastFilteringMode

func (r *DistributedVirtualSwitch) MulticastFilteringMode() *pulumi.StringOutput

The multicast filtering mode to use with the switch. Can be one of `legacyFiltering` or `snooping`.

func (*DistributedVirtualSwitch) Name

The name of the distributed virtual switch.

func (*DistributedVirtualSwitch) NetflowActiveFlowTimeout

func (r *DistributedVirtualSwitch) NetflowActiveFlowTimeout() *pulumi.IntOutput

The number of seconds after which active flows are forced to be exported to the collector. Allowed range is `60` to `3600`. Default: `60`.

func (*DistributedVirtualSwitch) NetflowCollectorIpAddress

func (r *DistributedVirtualSwitch) NetflowCollectorIpAddress() *pulumi.StringOutput

IP address for the Netflow collector, using IPv4 or IPv6. IPv6 is supported in vSphere Distributed Switch Version 6.0 or later. Must be set before Netflow can be enabled.

func (*DistributedVirtualSwitch) NetflowCollectorPort

func (r *DistributedVirtualSwitch) NetflowCollectorPort() *pulumi.IntOutput

Port for the Netflow collector. This must be set before Netflow can be enabled.

func (*DistributedVirtualSwitch) NetflowEnabled

func (r *DistributedVirtualSwitch) NetflowEnabled() *pulumi.BoolOutput

Enables Netflow on all ports that this policy applies to.

func (*DistributedVirtualSwitch) NetflowIdleFlowTimeout

func (r *DistributedVirtualSwitch) NetflowIdleFlowTimeout() *pulumi.IntOutput

The number of seconds after which idle flows are forced to be exported to the collector. Allowed range is `10` to `600`. Default: `15`.

func (*DistributedVirtualSwitch) NetflowInternalFlowsOnly

func (r *DistributedVirtualSwitch) NetflowInternalFlowsOnly() *pulumi.BoolOutput

Whether to limit analysis to traffic that has both source and destination served by the same host. Default: `false`.

func (*DistributedVirtualSwitch) NetflowObservationDomainId

func (r *DistributedVirtualSwitch) NetflowObservationDomainId() *pulumi.IntOutput

The observation domain ID for the Netflow collector.

func (*DistributedVirtualSwitch) NetflowSamplingRate

func (r *DistributedVirtualSwitch) NetflowSamplingRate() *pulumi.IntOutput

The ratio of total number of packets to the number of packets analyzed. The default is `0`, which indicates that the switch should analyze all packets. The maximum value is `1000`, which indicates an analysis rate of 0.001%.

func (*DistributedVirtualSwitch) NetworkResourceControlEnabled

func (r *DistributedVirtualSwitch) NetworkResourceControlEnabled() *pulumi.BoolOutput

Set to `true` to enable network I/O control. Default: `false`.

func (*DistributedVirtualSwitch) NetworkResourceControlVersion

func (r *DistributedVirtualSwitch) NetworkResourceControlVersion() *pulumi.StringOutput

The version of network I/O control to use. Can be one of `version2` or `version3`. Default: `version2`.

func (*DistributedVirtualSwitch) NfsMaximumMbit

func (r *DistributedVirtualSwitch) NfsMaximumMbit() *pulumi.IntOutput

The maximum allowed usage for the nfs traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) NfsReservationMbit

func (r *DistributedVirtualSwitch) NfsReservationMbit() *pulumi.IntOutput

The amount of guaranteed bandwidth for the nfs traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) NfsShareCount

func (r *DistributedVirtualSwitch) NfsShareCount() *pulumi.IntOutput

The amount of shares to allocate to the nfs traffic class for a custom share level.

func (*DistributedVirtualSwitch) NfsShareLevel

func (r *DistributedVirtualSwitch) NfsShareLevel() *pulumi.StringOutput

The allocation level for the nfs traffic class. Can be one of high, low, normal, or custom.

func (*DistributedVirtualSwitch) NotifySwitches

func (r *DistributedVirtualSwitch) NotifySwitches() *pulumi.BoolOutput

If `true`, the teaming policy will notify the broadcast network of an uplink failover, triggering cache updates.

func (*DistributedVirtualSwitch) PortPrivateSecondaryVlanId

func (r *DistributedVirtualSwitch) PortPrivateSecondaryVlanId() *pulumi.IntOutput

Used to define a secondary VLAN ID when using private VLANs.

func (r *DistributedVirtualSwitch) StandbyUplinks() *pulumi.ArrayOutput

A list of standby uplinks to be used in failover. These uplinks need to match the definitions in the `uplinks` DVS argument. See here for more details.

func (*DistributedVirtualSwitch) Tags

The IDs of any tags to attach to this resource. See [here][docs-applying-tags] for a reference on how to apply tags.

func (*DistributedVirtualSwitch) TeamingPolicy

func (r *DistributedVirtualSwitch) TeamingPolicy() *pulumi.StringOutput

The uplink teaming policy. Can be one of `loadbalance_ip`, `loadbalance_srcmac`, `loadbalance_srcid`, or `failover_explicit`.

Forward all traffic transmitted by ports for which this policy applies to its DVS uplinks.

func (*DistributedVirtualSwitch) URN

URN is this resource's unique name assigned by Pulumi.

A list of strings that uniquely identifies the names of the uplinks on the DVS across hosts. The number of items in this list controls the number of uplinks that exist on the DVS, in addition to the names. See here for an example on how to use this option.

func (*DistributedVirtualSwitch) VdpMaximumMbit

func (r *DistributedVirtualSwitch) VdpMaximumMbit() *pulumi.IntOutput

The maximum allowed usage for the vdp traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) VdpReservationMbit

func (r *DistributedVirtualSwitch) VdpReservationMbit() *pulumi.IntOutput

The amount of guaranteed bandwidth for the vdp traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) VdpShareCount

func (r *DistributedVirtualSwitch) VdpShareCount() *pulumi.IntOutput

The amount of shares to allocate to the vdp traffic class for a custom share level.

func (*DistributedVirtualSwitch) VdpShareLevel

func (r *DistributedVirtualSwitch) VdpShareLevel() *pulumi.StringOutput

The allocation level for the vdp traffic class. Can be one of high, low, normal, or custom.

func (*DistributedVirtualSwitch) Version

- The version of the DVS to create. The default is to create the DVS at the latest version supported by the version of vSphere being used. A DVS can be upgraded to another version, but cannot be downgraded.

func (*DistributedVirtualSwitch) VirtualmachineMaximumMbit

func (r *DistributedVirtualSwitch) VirtualmachineMaximumMbit() *pulumi.IntOutput

The maximum allowed usage for the virtualMachine traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) VirtualmachineReservationMbit

func (r *DistributedVirtualSwitch) VirtualmachineReservationMbit() *pulumi.IntOutput

The amount of guaranteed bandwidth for the virtualMachine traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) VirtualmachineShareCount

func (r *DistributedVirtualSwitch) VirtualmachineShareCount() *pulumi.IntOutput

The amount of shares to allocate to the virtualMachine traffic class for a custom share level.

func (*DistributedVirtualSwitch) VirtualmachineShareLevel

func (r *DistributedVirtualSwitch) VirtualmachineShareLevel() *pulumi.StringOutput

The allocation level for the virtualMachine traffic class. Can be one of high, low, normal, or custom.

func (*DistributedVirtualSwitch) VlanId

The VLAN ID for single VLAN mode. 0 denotes no VLAN.

func (*DistributedVirtualSwitch) VlanRanges

func (r *DistributedVirtualSwitch) VlanRanges() *pulumi.ArrayOutput

Used to denote VLAN trunking. Use the `min_vlan` and `max_vlan` sub-arguments to define the tagged VLAN range. Multiple `vlan_range` definitions are allowed, but they must not overlap. Example below:

func (*DistributedVirtualSwitch) VmotionMaximumMbit

func (r *DistributedVirtualSwitch) VmotionMaximumMbit() *pulumi.IntOutput

The maximum allowed usage for the vmotion traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) VmotionReservationMbit

func (r *DistributedVirtualSwitch) VmotionReservationMbit() *pulumi.IntOutput

The amount of guaranteed bandwidth for the vmotion traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) VmotionShareCount

func (r *DistributedVirtualSwitch) VmotionShareCount() *pulumi.IntOutput

The amount of shares to allocate to the vmotion traffic class for a custom share level.

func (*DistributedVirtualSwitch) VmotionShareLevel

func (r *DistributedVirtualSwitch) VmotionShareLevel() *pulumi.StringOutput

The allocation level for the vmotion traffic class. Can be one of high, low, normal, or custom.

func (*DistributedVirtualSwitch) VsanMaximumMbit

func (r *DistributedVirtualSwitch) VsanMaximumMbit() *pulumi.IntOutput

The maximum allowed usage for the vsan traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) VsanReservationMbit

func (r *DistributedVirtualSwitch) VsanReservationMbit() *pulumi.IntOutput

The amount of guaranteed bandwidth for the vsan traffic class, in Mbits/sec.

func (*DistributedVirtualSwitch) VsanShareCount

func (r *DistributedVirtualSwitch) VsanShareCount() *pulumi.IntOutput

The amount of shares to allocate to the vsan traffic class for a custom share level.

func (*DistributedVirtualSwitch) VsanShareLevel

func (r *DistributedVirtualSwitch) VsanShareLevel() *pulumi.StringOutput

The allocation level for the vsan traffic class. Can be one of high, low, normal, or custom.

type DistributedVirtualSwitchArgs

type DistributedVirtualSwitchArgs struct {
	// A list of active uplinks to be used in load
	// balancing. These uplinks need to match the definitions in the
	// `uplinks` DVS argument. See
	// here for more details.
	ActiveUplinks interface{}
	// Controls whether or not a virtual
	// network adapter is allowed to send network traffic with a different MAC
	// address than that of its own.
	AllowForgedTransmits interface{}
	// Controls whether or not the Media Access
	// Control (MAC) address can be changed.
	AllowMacChanges interface{}
	// Enable promiscuous mode on the network. This
	// flag indicates whether or not all traffic is seen on a given port.
	AllowPromiscuous interface{}
	// Shuts down all ports in the port groups that
	// this policy applies to, effectively blocking all network access to connected
	// virtual devices.
	BlockAllPorts interface{}
	// Enables beacon probing as an additional measure
	// to detect NIC failure.
	CheckBeacon interface{}
	// The detailed contact information for the person
	// who is responsible for the DVS.
	ContactDetail interface{}
	// The name of the person who is responsible for the
	// DVS.
	ContactName interface{}
	// Map of custom attribute ids to attribute
	// value strings to set for virtual switch. See
	// [here][docs-setting-custom-attributes] for a reference on how to set values
	// for custom attributes.
	CustomAttributes interface{}
	// The ID of the datacenter where the distributed
	// virtual switch will be created. Forces a new resource if changed.
	DatacenterId interface{}
	// A detailed description for the DVS.
	Description interface{}
	// Allow VMDirectPath Gen2 for the ports
	// for which this policy applies to.
	DirectpathGen2Allowed interface{}
	// The average bandwidth in bits
	// per second if egress traffic shaping is enabled on the port.
	EgressShapingAverageBandwidth interface{}
	// The maximum burst size allowed in
	// bytes if egress traffic shaping is enabled on the port.
	EgressShapingBurstSize interface{}
	// `true` if the traffic shaper is enabled
	// on the port for egress traffic.
	EgressShapingEnabled interface{}
	// The peak bandwidth during bursts
	// in bits per second if egress traffic shaping is enabled on the port.
	EgressShapingPeakBandwidth interface{}
	// If `true`, the teaming policy will re-activate failed
	// uplinks higher in precedence when they come back up.
	Failback interface{}
	// The maximum allowed usage for the faultTolerance traffic class, in Mbits/sec.
	FaulttoleranceMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the faultTolerance traffic class, in Mbits/sec.
	FaulttoleranceReservationMbit interface{}
	// The amount of shares to allocate to the faultTolerance traffic class for a custom share level.
	FaulttoleranceShareCount interface{}
	// The allocation level for the faultTolerance traffic class. Can be one of high, low, normal, or custom.
	FaulttoleranceShareLevel interface{}
	// The folder to create the DVS in. Forces a new resource
	// if changed.
	Folder interface{}
	// The maximum allowed usage for the hbr traffic class, in Mbits/sec.
	HbrMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the hbr traffic class, in Mbits/sec.
	HbrReservationMbit interface{}
	// The amount of shares to allocate to the hbr traffic class for a custom share level.
	HbrShareCount interface{}
	// The allocation level for the hbr traffic class. Can be one of high, low, normal, or custom.
	HbrShareLevel interface{}
	// Use the `host` block to declare a host specification. The
	// options are:
	Hosts interface{}
	// The average bandwidth in
	// bits per second if ingress traffic shaping is enabled on the port.
	IngressShapingAverageBandwidth interface{}
	// The maximum burst size allowed in
	// bytes if ingress traffic shaping is enabled on the port.
	IngressShapingBurstSize interface{}
	// `true` if the traffic shaper is
	// enabled on the port for ingress traffic.
	IngressShapingEnabled interface{}
	// The peak bandwidth during
	// bursts in bits per second if ingress traffic shaping is enabled on the port.
	IngressShapingPeakBandwidth interface{}
	// An IPv4 address to identify the switch. This is
	// mostly useful when used with the Netflow arguments found
	// below.
	Ipv4Address interface{}
	// The maximum allowed usage for the iSCSI traffic class, in Mbits/sec.
	IscsiMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the iSCSI traffic class, in Mbits/sec.
	IscsiReservationMbit interface{}
	// The amount of shares to allocate to the iSCSI traffic class for a custom share level.
	IscsiShareCount interface{}
	// The allocation level for the iSCSI traffic class. Can be one of high, low, normal, or custom.
	IscsiShareLevel interface{}
	// The Link Aggregation Control Protocol group
	// version to use with the switch. Possible values are `singleLag` and
	// `multipleLag`.
	LacpApiVersion interface{}
	// Enables LACP for the ports that this policy
	// applies to.
	LacpEnabled interface{}
	// The LACP mode. Can be one of `active` or `passive`.
	LacpMode interface{}
	// Whether to `advertise` or `listen`
	// for link discovery traffic.
	LinkDiscoveryOperation interface{}
	// The discovery protocol type. Valid
	// types are `cdp` and `lldp`.
	LinkDiscoveryProtocol interface{}
	// The maximum allowed usage for the management traffic class, in Mbits/sec.
	ManagementMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the management traffic class, in Mbits/sec.
	ManagementReservationMbit interface{}
	// The amount of shares to allocate to the management traffic class for a custom share level.
	ManagementShareCount interface{}
	// The allocation level for the management traffic class. Can be one of high, low, normal, or custom.
	ManagementShareLevel interface{}
	// The maximum transmission unit (MTU) for the virtual
	// switch.
	MaxMtu interface{}
	// The multicast filtering mode to use
	// with the switch. Can be one of `legacyFiltering` or `snooping`.
	MulticastFilteringMode interface{}
	// The name of the distributed virtual switch.
	Name interface{}
	// The number of seconds after which
	// active flows are forced to be exported to the collector. Allowed range is
	// `60` to `3600`. Default: `60`.
	NetflowActiveFlowTimeout interface{}
	// IP address for the Netflow
	// collector, using IPv4 or IPv6. IPv6 is supported in vSphere Distributed
	// Switch Version 6.0 or later. Must be set before Netflow can be enabled.
	NetflowCollectorIpAddress interface{}
	// Port for the Netflow collector. This
	// must be set before Netflow can be enabled.
	NetflowCollectorPort interface{}
	// Enables Netflow on all ports that this policy
	// applies to.
	NetflowEnabled interface{}
	// The number of seconds after which
	// idle flows are forced to be exported to the collector. Allowed range is `10`
	// to `600`. Default: `15`.
	NetflowIdleFlowTimeout interface{}
	// Whether to limit analysis to
	// traffic that has both source and destination served by the same host.
	// Default: `false`.
	NetflowInternalFlowsOnly interface{}
	// The observation domain ID for
	// the Netflow collector.
	NetflowObservationDomainId interface{}
	// The ratio of total number of packets to
	// the number of packets analyzed. The default is `0`, which indicates that the
	// switch should analyze all packets. The maximum value is `1000`, which
	// indicates an analysis rate of 0.001%.
	NetflowSamplingRate interface{}
	// Set to `true` to enable
	// network I/O control. Default: `false`.
	NetworkResourceControlEnabled interface{}
	// The version of network I/O
	// control to use. Can be one of `version2` or `version3`. Default: `version2`.
	NetworkResourceControlVersion interface{}
	// The maximum allowed usage for the nfs traffic class, in Mbits/sec.
	NfsMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the nfs traffic class, in Mbits/sec.
	NfsReservationMbit interface{}
	// The amount of shares to allocate to the nfs traffic class for a custom share level.
	NfsShareCount interface{}
	// The allocation level for the nfs traffic class. Can be one of high, low, normal, or custom.
	NfsShareLevel interface{}
	// If `true`, the teaming policy will notify the
	// broadcast network of an uplink failover, triggering cache updates.
	NotifySwitches interface{}
	// Used to define a secondary VLAN
	// ID when using private VLANs.
	PortPrivateSecondaryVlanId interface{}
	// A list of standby uplinks to be used in
	// failover. These uplinks need to match the definitions in the
	// `uplinks` DVS argument. See
	// here for more details.
	StandbyUplinks interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
	// The uplink teaming policy. Can be one of
	// `loadbalance_ip`, `loadbalance_srcmac`, `loadbalance_srcid`, or
	// `failover_explicit`.
	TeamingPolicy interface{}
	// Forward all traffic transmitted by ports for which
	// this policy applies to its DVS uplinks.
	TxUplink interface{}
	// A list of strings that uniquely identifies the names
	// of the uplinks on the DVS across hosts. The number of items in this list
	// controls the number of uplinks that exist on the DVS, in addition to the
	// names.  See here for an example on how to
	// use this option.
	Uplinks interface{}
	// The maximum allowed usage for the vdp traffic class, in Mbits/sec.
	VdpMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the vdp traffic class, in Mbits/sec.
	VdpReservationMbit interface{}
	// The amount of shares to allocate to the vdp traffic class for a custom share level.
	VdpShareCount interface{}
	// The allocation level for the vdp traffic class. Can be one of high, low, normal, or custom.
	VdpShareLevel interface{}
	// - The version of the DVS to create. The default is to
	// create the DVS at the latest version supported by the version of vSphere
	// being used. A DVS can be upgraded to another version, but cannot be
	// downgraded.
	Version interface{}
	// The maximum allowed usage for the virtualMachine traffic class, in Mbits/sec.
	VirtualmachineMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the virtualMachine traffic class, in Mbits/sec.
	VirtualmachineReservationMbit interface{}
	// The amount of shares to allocate to the virtualMachine traffic class for a custom share level.
	VirtualmachineShareCount interface{}
	// The allocation level for the virtualMachine traffic class. Can be one of high, low, normal, or custom.
	VirtualmachineShareLevel interface{}
	// The VLAN ID for single VLAN mode. 0 denotes no VLAN.
	VlanId interface{}
	// Used to denote VLAN trunking. Use the `min_vlan`
	// and `max_vlan` sub-arguments to define the tagged VLAN range. Multiple
	// `vlan_range` definitions are allowed, but they must not overlap. Example
	// below:
	VlanRanges interface{}
	// The maximum allowed usage for the vmotion traffic class, in Mbits/sec.
	VmotionMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the vmotion traffic class, in Mbits/sec.
	VmotionReservationMbit interface{}
	// The amount of shares to allocate to the vmotion traffic class for a custom share level.
	VmotionShareCount interface{}
	// The allocation level for the vmotion traffic class. Can be one of high, low, normal, or custom.
	VmotionShareLevel interface{}
	// The maximum allowed usage for the vsan traffic class, in Mbits/sec.
	VsanMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the vsan traffic class, in Mbits/sec.
	VsanReservationMbit interface{}
	// The amount of shares to allocate to the vsan traffic class for a custom share level.
	VsanShareCount interface{}
	// The allocation level for the vsan traffic class. Can be one of high, low, normal, or custom.
	VsanShareLevel interface{}
}

The set of arguments for constructing a DistributedVirtualSwitch resource.

type DistributedVirtualSwitchState

type DistributedVirtualSwitchState struct {
	// A list of active uplinks to be used in load
	// balancing. These uplinks need to match the definitions in the
	// `uplinks` DVS argument. See
	// here for more details.
	ActiveUplinks interface{}
	// Controls whether or not a virtual
	// network adapter is allowed to send network traffic with a different MAC
	// address than that of its own.
	AllowForgedTransmits interface{}
	// Controls whether or not the Media Access
	// Control (MAC) address can be changed.
	AllowMacChanges interface{}
	// Enable promiscuous mode on the network. This
	// flag indicates whether or not all traffic is seen on a given port.
	AllowPromiscuous interface{}
	// Shuts down all ports in the port groups that
	// this policy applies to, effectively blocking all network access to connected
	// virtual devices.
	BlockAllPorts interface{}
	// Enables beacon probing as an additional measure
	// to detect NIC failure.
	CheckBeacon interface{}
	// The version string of the configuration that this spec is trying to change.
	ConfigVersion interface{}
	// The detailed contact information for the person
	// who is responsible for the DVS.
	ContactDetail interface{}
	// The name of the person who is responsible for the
	// DVS.
	ContactName interface{}
	// Map of custom attribute ids to attribute
	// value strings to set for virtual switch. See
	// [here][docs-setting-custom-attributes] for a reference on how to set values
	// for custom attributes.
	CustomAttributes interface{}
	// The ID of the datacenter where the distributed
	// virtual switch will be created. Forces a new resource if changed.
	DatacenterId interface{}
	// A detailed description for the DVS.
	Description interface{}
	// Allow VMDirectPath Gen2 for the ports
	// for which this policy applies to.
	DirectpathGen2Allowed interface{}
	// The average bandwidth in bits
	// per second if egress traffic shaping is enabled on the port.
	EgressShapingAverageBandwidth interface{}
	// The maximum burst size allowed in
	// bytes if egress traffic shaping is enabled on the port.
	EgressShapingBurstSize interface{}
	// `true` if the traffic shaper is enabled
	// on the port for egress traffic.
	EgressShapingEnabled interface{}
	// The peak bandwidth during bursts
	// in bits per second if egress traffic shaping is enabled on the port.
	EgressShapingPeakBandwidth interface{}
	// If `true`, the teaming policy will re-activate failed
	// uplinks higher in precedence when they come back up.
	Failback interface{}
	// The maximum allowed usage for the faultTolerance traffic class, in Mbits/sec.
	FaulttoleranceMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the faultTolerance traffic class, in Mbits/sec.
	FaulttoleranceReservationMbit interface{}
	// The amount of shares to allocate to the faultTolerance traffic class for a custom share level.
	FaulttoleranceShareCount interface{}
	// The allocation level for the faultTolerance traffic class. Can be one of high, low, normal, or custom.
	FaulttoleranceShareLevel interface{}
	// The folder to create the DVS in. Forces a new resource
	// if changed.
	Folder interface{}
	// The maximum allowed usage for the hbr traffic class, in Mbits/sec.
	HbrMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the hbr traffic class, in Mbits/sec.
	HbrReservationMbit interface{}
	// The amount of shares to allocate to the hbr traffic class for a custom share level.
	HbrShareCount interface{}
	// The allocation level for the hbr traffic class. Can be one of high, low, normal, or custom.
	HbrShareLevel interface{}
	// Use the `host` block to declare a host specification. The
	// options are:
	Hosts interface{}
	// The average bandwidth in
	// bits per second if ingress traffic shaping is enabled on the port.
	IngressShapingAverageBandwidth interface{}
	// The maximum burst size allowed in
	// bytes if ingress traffic shaping is enabled on the port.
	IngressShapingBurstSize interface{}
	// `true` if the traffic shaper is
	// enabled on the port for ingress traffic.
	IngressShapingEnabled interface{}
	// The peak bandwidth during
	// bursts in bits per second if ingress traffic shaping is enabled on the port.
	IngressShapingPeakBandwidth interface{}
	// An IPv4 address to identify the switch. This is
	// mostly useful when used with the Netflow arguments found
	// below.
	Ipv4Address interface{}
	// The maximum allowed usage for the iSCSI traffic class, in Mbits/sec.
	IscsiMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the iSCSI traffic class, in Mbits/sec.
	IscsiReservationMbit interface{}
	// The amount of shares to allocate to the iSCSI traffic class for a custom share level.
	IscsiShareCount interface{}
	// The allocation level for the iSCSI traffic class. Can be one of high, low, normal, or custom.
	IscsiShareLevel interface{}
	// The Link Aggregation Control Protocol group
	// version to use with the switch. Possible values are `singleLag` and
	// `multipleLag`.
	LacpApiVersion interface{}
	// Enables LACP for the ports that this policy
	// applies to.
	LacpEnabled interface{}
	// The LACP mode. Can be one of `active` or `passive`.
	LacpMode interface{}
	// Whether to `advertise` or `listen`
	// for link discovery traffic.
	LinkDiscoveryOperation interface{}
	// The discovery protocol type. Valid
	// types are `cdp` and `lldp`.
	LinkDiscoveryProtocol interface{}
	// The maximum allowed usage for the management traffic class, in Mbits/sec.
	ManagementMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the management traffic class, in Mbits/sec.
	ManagementReservationMbit interface{}
	// The amount of shares to allocate to the management traffic class for a custom share level.
	ManagementShareCount interface{}
	// The allocation level for the management traffic class. Can be one of high, low, normal, or custom.
	ManagementShareLevel interface{}
	// The maximum transmission unit (MTU) for the virtual
	// switch.
	MaxMtu interface{}
	// The multicast filtering mode to use
	// with the switch. Can be one of `legacyFiltering` or `snooping`.
	MulticastFilteringMode interface{}
	// The name of the distributed virtual switch.
	Name interface{}
	// The number of seconds after which
	// active flows are forced to be exported to the collector. Allowed range is
	// `60` to `3600`. Default: `60`.
	NetflowActiveFlowTimeout interface{}
	// IP address for the Netflow
	// collector, using IPv4 or IPv6. IPv6 is supported in vSphere Distributed
	// Switch Version 6.0 or later. Must be set before Netflow can be enabled.
	NetflowCollectorIpAddress interface{}
	// Port for the Netflow collector. This
	// must be set before Netflow can be enabled.
	NetflowCollectorPort interface{}
	// Enables Netflow on all ports that this policy
	// applies to.
	NetflowEnabled interface{}
	// The number of seconds after which
	// idle flows are forced to be exported to the collector. Allowed range is `10`
	// to `600`. Default: `15`.
	NetflowIdleFlowTimeout interface{}
	// Whether to limit analysis to
	// traffic that has both source and destination served by the same host.
	// Default: `false`.
	NetflowInternalFlowsOnly interface{}
	// The observation domain ID for
	// the Netflow collector.
	NetflowObservationDomainId interface{}
	// The ratio of total number of packets to
	// the number of packets analyzed. The default is `0`, which indicates that the
	// switch should analyze all packets. The maximum value is `1000`, which
	// indicates an analysis rate of 0.001%.
	NetflowSamplingRate interface{}
	// Set to `true` to enable
	// network I/O control. Default: `false`.
	NetworkResourceControlEnabled interface{}
	// The version of network I/O
	// control to use. Can be one of `version2` or `version3`. Default: `version2`.
	NetworkResourceControlVersion interface{}
	// The maximum allowed usage for the nfs traffic class, in Mbits/sec.
	NfsMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the nfs traffic class, in Mbits/sec.
	NfsReservationMbit interface{}
	// The amount of shares to allocate to the nfs traffic class for a custom share level.
	NfsShareCount interface{}
	// The allocation level for the nfs traffic class. Can be one of high, low, normal, or custom.
	NfsShareLevel interface{}
	// If `true`, the teaming policy will notify the
	// broadcast network of an uplink failover, triggering cache updates.
	NotifySwitches interface{}
	// Used to define a secondary VLAN
	// ID when using private VLANs.
	PortPrivateSecondaryVlanId interface{}
	// A list of standby uplinks to be used in
	// failover. These uplinks need to match the definitions in the
	// `uplinks` DVS argument. See
	// here for more details.
	StandbyUplinks interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
	// The uplink teaming policy. Can be one of
	// `loadbalance_ip`, `loadbalance_srcmac`, `loadbalance_srcid`, or
	// `failover_explicit`.
	TeamingPolicy interface{}
	// Forward all traffic transmitted by ports for which
	// this policy applies to its DVS uplinks.
	TxUplink interface{}
	// A list of strings that uniquely identifies the names
	// of the uplinks on the DVS across hosts. The number of items in this list
	// controls the number of uplinks that exist on the DVS, in addition to the
	// names.  See here for an example on how to
	// use this option.
	Uplinks interface{}
	// The maximum allowed usage for the vdp traffic class, in Mbits/sec.
	VdpMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the vdp traffic class, in Mbits/sec.
	VdpReservationMbit interface{}
	// The amount of shares to allocate to the vdp traffic class for a custom share level.
	VdpShareCount interface{}
	// The allocation level for the vdp traffic class. Can be one of high, low, normal, or custom.
	VdpShareLevel interface{}
	// - The version of the DVS to create. The default is to
	// create the DVS at the latest version supported by the version of vSphere
	// being used. A DVS can be upgraded to another version, but cannot be
	// downgraded.
	Version interface{}
	// The maximum allowed usage for the virtualMachine traffic class, in Mbits/sec.
	VirtualmachineMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the virtualMachine traffic class, in Mbits/sec.
	VirtualmachineReservationMbit interface{}
	// The amount of shares to allocate to the virtualMachine traffic class for a custom share level.
	VirtualmachineShareCount interface{}
	// The allocation level for the virtualMachine traffic class. Can be one of high, low, normal, or custom.
	VirtualmachineShareLevel interface{}
	// The VLAN ID for single VLAN mode. 0 denotes no VLAN.
	VlanId interface{}
	// Used to denote VLAN trunking. Use the `min_vlan`
	// and `max_vlan` sub-arguments to define the tagged VLAN range. Multiple
	// `vlan_range` definitions are allowed, but they must not overlap. Example
	// below:
	VlanRanges interface{}
	// The maximum allowed usage for the vmotion traffic class, in Mbits/sec.
	VmotionMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the vmotion traffic class, in Mbits/sec.
	VmotionReservationMbit interface{}
	// The amount of shares to allocate to the vmotion traffic class for a custom share level.
	VmotionShareCount interface{}
	// The allocation level for the vmotion traffic class. Can be one of high, low, normal, or custom.
	VmotionShareLevel interface{}
	// The maximum allowed usage for the vsan traffic class, in Mbits/sec.
	VsanMaximumMbit interface{}
	// The amount of guaranteed bandwidth for the vsan traffic class, in Mbits/sec.
	VsanReservationMbit interface{}
	// The amount of shares to allocate to the vsan traffic class for a custom share level.
	VsanShareCount interface{}
	// The allocation level for the vsan traffic class. Can be one of high, low, normal, or custom.
	VsanShareLevel interface{}
}

Input properties used for looking up and filtering DistributedVirtualSwitch resources.

type DpmHostOverride

type DpmHostOverride struct {
	// contains filtered or unexported fields
}

The `vsphere_dpm_host_override` resource can be used to add a DPM override to a cluster for a particular host. This allows you to control the power management settings for individual hosts in the cluster while leaving any unspecified ones at the default power management settings.

For more information on DPM within vSphere clusters, see [this page]ref-vsphere-cluster-dpm.

~> **NOTE:** This resource requires vCenter and is not available on direct ESXi connections.

~> **NOTE:** vSphere DRS requires a vSphere Enterprise Plus license.

func GetDpmHostOverride

func GetDpmHostOverride(ctx *pulumi.Context,
	name string, id pulumi.ID, state *DpmHostOverrideState, opts ...pulumi.ResourceOpt) (*DpmHostOverride, error)

GetDpmHostOverride gets an existing DpmHostOverride resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDpmHostOverride

func NewDpmHostOverride(ctx *pulumi.Context,
	name string, args *DpmHostOverrideArgs, opts ...pulumi.ResourceOpt) (*DpmHostOverride, error)

NewDpmHostOverride registers a new resource with the given unique name, arguments, and options.

func (*DpmHostOverride) ComputeClusterId

func (r *DpmHostOverride) ComputeClusterId() *pulumi.StringOutput

The [managed object reference ID][docs-about-morefs] of the cluster to put the override in. Forces a new resource if changed.

func (*DpmHostOverride) DpmAutomationLevel

func (r *DpmHostOverride) DpmAutomationLevel() *pulumi.StringOutput

The automation level for host power operations on this host. Can be one of `manual` or `automated`. Default: `manual`.

func (*DpmHostOverride) DpmEnabled

func (r *DpmHostOverride) DpmEnabled() *pulumi.BoolOutput

Enable DPM support for this host. Default: `false`.

func (*DpmHostOverride) HostSystemId

func (r *DpmHostOverride) HostSystemId() *pulumi.StringOutput

The managed object ID of the host.

func (*DpmHostOverride) ID

func (r *DpmHostOverride) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*DpmHostOverride) URN

func (r *DpmHostOverride) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

type DpmHostOverrideArgs

type DpmHostOverrideArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the cluster to put the override in.  Forces a new
	// resource if changed.
	ComputeClusterId interface{}
	// The automation level for host power
	// operations on this host. Can be one of `manual` or `automated`. Default:
	// `manual`.
	DpmAutomationLevel interface{}
	// Enable DPM support for this host. Default:
	// `false`.
	DpmEnabled interface{}
	// The managed object ID of the host.
	HostSystemId interface{}
}

The set of arguments for constructing a DpmHostOverride resource.

type DpmHostOverrideState

type DpmHostOverrideState struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the cluster to put the override in.  Forces a new
	// resource if changed.
	ComputeClusterId interface{}
	// The automation level for host power
	// operations on this host. Can be one of `manual` or `automated`. Default:
	// `manual`.
	DpmAutomationLevel interface{}
	// Enable DPM support for this host. Default:
	// `false`.
	DpmEnabled interface{}
	// The managed object ID of the host.
	HostSystemId interface{}
}

Input properties used for looking up and filtering DpmHostOverride resources.

type DrsVmOverride

type DrsVmOverride struct {
	// contains filtered or unexported fields
}

The `vsphere_drs_vm_override` resource can be used to add a DRS override to a cluster for a specific virtual machine. With this resource, one can enable or disable DRS and control the automation level for a single virtual machine without affecting the rest of the cluster.

For more information on vSphere clusters and DRS, see [this page]ref-vsphere-drs-clusters.

~> **NOTE:** This resource requires vCenter and is not available on direct ESXi connections.

~> **NOTE:** vSphere DRS requires a vSphere Enterprise Plus license.

func GetDrsVmOverride

func GetDrsVmOverride(ctx *pulumi.Context,
	name string, id pulumi.ID, state *DrsVmOverrideState, opts ...pulumi.ResourceOpt) (*DrsVmOverride, error)

GetDrsVmOverride gets an existing DrsVmOverride resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDrsVmOverride

func NewDrsVmOverride(ctx *pulumi.Context,
	name string, args *DrsVmOverrideArgs, opts ...pulumi.ResourceOpt) (*DrsVmOverride, error)

NewDrsVmOverride registers a new resource with the given unique name, arguments, and options.

func (*DrsVmOverride) ComputeClusterId

func (r *DrsVmOverride) ComputeClusterId() *pulumi.StringOutput

The [managed object reference ID][docs-about-morefs] of the cluster to put the override in. Forces a new resource if changed.

func (*DrsVmOverride) DrsAutomationLevel

func (r *DrsVmOverride) DrsAutomationLevel() *pulumi.StringOutput

Overrides the automation level for this virtual machine in the cluster. Can be one of `manual`, `partiallyAutomated`, or `fullyAutomated`. Default: `manual`.

func (*DrsVmOverride) DrsEnabled

func (r *DrsVmOverride) DrsEnabled() *pulumi.BoolOutput

Overrides the default DRS setting for this virtual machine. Can be either `true` or `false`. Default: `false`.

func (*DrsVmOverride) ID

func (r *DrsVmOverride) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*DrsVmOverride) URN

func (r *DrsVmOverride) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

func (*DrsVmOverride) VirtualMachineId

func (r *DrsVmOverride) VirtualMachineId() *pulumi.StringOutput

The UUID of the virtual machine to create the override for. Forces a new resource if changed.

type DrsVmOverrideArgs

type DrsVmOverrideArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the cluster to put the override in.  Forces a new
	// resource if changed.
	ComputeClusterId interface{}
	// Overrides the automation level for this virtual
	// machine in the cluster. Can be one of `manual`, `partiallyAutomated`, or
	// `fullyAutomated`. Default: `manual`.
	DrsAutomationLevel interface{}
	// Overrides the default DRS setting for this virtual
	// machine. Can be either `true` or `false`. Default: `false`.
	DrsEnabled interface{}
	// The UUID of the virtual machine to create
	// the override for.  Forces a new resource if changed.
	VirtualMachineId interface{}
}

The set of arguments for constructing a DrsVmOverride resource.

type DrsVmOverrideState

type DrsVmOverrideState struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the cluster to put the override in.  Forces a new
	// resource if changed.
	ComputeClusterId interface{}
	// Overrides the automation level for this virtual
	// machine in the cluster. Can be one of `manual`, `partiallyAutomated`, or
	// `fullyAutomated`. Default: `manual`.
	DrsAutomationLevel interface{}
	// Overrides the default DRS setting for this virtual
	// machine. Can be either `true` or `false`. Default: `false`.
	DrsEnabled interface{}
	// The UUID of the virtual machine to create
	// the override for.  Forces a new resource if changed.
	VirtualMachineId interface{}
}

Input properties used for looking up and filtering DrsVmOverride resources.

type File

type File struct {
	// contains filtered or unexported fields
}

The `vsphere_file` resource can be used to upload files (such as virtual disk files) from the host machine that Terraform is running on to a target datastore. The resource can also be used to copy files between datastores, or from one location to another on the same datastore.

Updates to destination parameters such as `datacenter`, `datastore`, or `destination_file` will move the managed file a new destination based on the values of the new settings. If any source parameter is changed, such as `source_datastore`, `source_datacenter` or `source_file`), the resource will be re-created. Depending on if destination parameters are being changed as well, this may result in the destination file either being overwritten or deleted at the old location.

func GetFile

func GetFile(ctx *pulumi.Context,
	name string, id pulumi.ID, state *FileState, opts ...pulumi.ResourceOpt) (*File, error)

GetFile gets an existing File resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFile

func NewFile(ctx *pulumi.Context,
	name string, args *FileArgs, opts ...pulumi.ResourceOpt) (*File, error)

NewFile registers a new resource with the given unique name, arguments, and options.

func (*File) CreateDirectories

func (r *File) CreateDirectories() *pulumi.BoolOutput

Create directories in `destination_file` path parameter if any missing for copy operation.

func (*File) Datacenter

func (r *File) Datacenter() *pulumi.StringOutput

The name of a datacenter in which the file will be uploaded to.

func (*File) Datastore

func (r *File) Datastore() *pulumi.StringOutput

The name of the datastore in which to upload the file to.

func (*File) DestinationFile

func (r *File) DestinationFile() *pulumi.StringOutput

The path to where the file should be uploaded or copied to on vSphere.

func (*File) ID

func (r *File) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*File) SourceDatacenter

func (r *File) SourceDatacenter() *pulumi.StringOutput

The name of a datacenter in which the file will be copied from. Forces a new resource if changed.

func (*File) SourceDatastore

func (r *File) SourceDatastore() *pulumi.StringOutput

The name of the datastore in which file will be copied from. Forces a new resource if changed.

func (*File) SourceFile

func (r *File) SourceFile() *pulumi.StringOutput

The path to the file being uploaded from the Terraform host to vSphere or copied within vSphere. Forces a new resource if changed.

func (*File) URN

func (r *File) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

type FileArgs

type FileArgs struct {
	// Create directories in `destination_file`
	// path parameter if any missing for copy operation.
	CreateDirectories interface{}
	// The name of a datacenter in which the file will be
	// uploaded to.
	Datacenter interface{}
	// The name of the datastore in which to upload the
	// file to.
	Datastore interface{}
	// The path to where the file should be uploaded
	// or copied to on vSphere.
	DestinationFile interface{}
	// The name of a datacenter in which the file
	// will be copied from. Forces a new resource if changed.
	SourceDatacenter interface{}
	// The name of the datastore in which file will
	// be copied from. Forces a new resource if changed.
	SourceDatastore interface{}
	// The path to the file being uploaded from the
	// Terraform host to vSphere or copied within vSphere. Forces a new resource if
	// changed.
	SourceFile interface{}
}

The set of arguments for constructing a File resource.

type FileState

type FileState struct {
	// Create directories in `destination_file`
	// path parameter if any missing for copy operation.
	CreateDirectories interface{}
	// The name of a datacenter in which the file will be
	// uploaded to.
	Datacenter interface{}
	// The name of the datastore in which to upload the
	// file to.
	Datastore interface{}
	// The path to where the file should be uploaded
	// or copied to on vSphere.
	DestinationFile interface{}
	// The name of a datacenter in which the file
	// will be copied from. Forces a new resource if changed.
	SourceDatacenter interface{}
	// The name of the datastore in which file will
	// be copied from. Forces a new resource if changed.
	SourceDatastore interface{}
	// The path to the file being uploaded from the
	// Terraform host to vSphere or copied within vSphere. Forces a new resource if
	// changed.
	SourceFile interface{}
}

Input properties used for looking up and filtering File resources.

type Folder

type Folder struct {
	// contains filtered or unexported fields
}

The `vsphere_folder` resource can be used to manage vSphere inventory folders. The resource supports creating folders of the 5 major types - datacenter folders, host and cluster folders, virtual machine folders, datastore folders, and network folders.

Paths are always relative to the specific type of folder you are creating. Subfolders are discovered by parsing the relative path specified in `path`, so `foo/bar` will create a folder named `bar` in the parent folder `foo`, as long as that folder exists.

func GetFolder

func GetFolder(ctx *pulumi.Context,
	name string, id pulumi.ID, state *FolderState, opts ...pulumi.ResourceOpt) (*Folder, error)

GetFolder gets an existing Folder resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFolder

func NewFolder(ctx *pulumi.Context,
	name string, args *FolderArgs, opts ...pulumi.ResourceOpt) (*Folder, error)

NewFolder registers a new resource with the given unique name, arguments, and options.

func (*Folder) CustomAttributes

func (r *Folder) CustomAttributes() *pulumi.MapOutput

Map of custom attribute ids to attribute value strings to set for folder. See [here][docs-setting-custom-attributes] for a reference on how to set values for custom attributes.

func (*Folder) DatacenterId

func (r *Folder) DatacenterId() *pulumi.StringOutput

The ID of the datacenter the folder will be created in. Required for all folder types except for datacenter folders. Forces a new resource if changed.

func (*Folder) ID

func (r *Folder) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*Folder) Path

func (r *Folder) Path() *pulumi.StringOutput

The path of the folder to be created. This is relative to the root of the type of folder you are creating, and the supplied datacenter. For example, given a default datacenter of `default-dc`, a folder of type `vm` (denoting a virtual machine folder), and a supplied folder of `terraform-test-folder`, the resulting path would be `/default-dc/vm/terraform-test-folder`.

func (*Folder) Tags

func (r *Folder) Tags() *pulumi.ArrayOutput

The IDs of any tags to attach to this resource. See [here][docs-applying-tags] for a reference on how to apply tags.

func (*Folder) Type

func (r *Folder) Type() *pulumi.StringOutput

The type of folder to create. Allowed options are `datacenter` for datacenter folders, `host` for host and cluster folders, `vm` for virtual machine folders, `datastore` for datastore folders, and `network` for network folders. Forces a new resource if changed.

func (*Folder) URN

func (r *Folder) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

type FolderArgs

type FolderArgs struct {
	// Map of custom attribute ids to attribute
	// value strings to set for folder. See [here][docs-setting-custom-attributes]
	// for a reference on how to set values for custom attributes.
	CustomAttributes interface{}
	// The ID of the datacenter the folder will be created in.
	// Required for all folder types except for datacenter folders. Forces a new
	// resource if changed.
	DatacenterId interface{}
	// The path of the folder to be created. This is relative to
	// the root of the type of folder you are creating, and the supplied datacenter.
	// For example, given a default datacenter of `default-dc`, a folder of type
	// `vm` (denoting a virtual machine folder), and a supplied folder of
	// `terraform-test-folder`, the resulting path would be
	// `/default-dc/vm/terraform-test-folder`.
	Path interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
	// The type of folder to create. Allowed options are
	// `datacenter` for datacenter folders, `host` for host and cluster folders,
	// `vm` for virtual machine folders, `datastore` for datastore folders, and
	// `network` for network folders. Forces a new resource if changed.
	Type interface{}
}

The set of arguments for constructing a Folder resource.

type FolderState

type FolderState struct {
	// Map of custom attribute ids to attribute
	// value strings to set for folder. See [here][docs-setting-custom-attributes]
	// for a reference on how to set values for custom attributes.
	CustomAttributes interface{}
	// The ID of the datacenter the folder will be created in.
	// Required for all folder types except for datacenter folders. Forces a new
	// resource if changed.
	DatacenterId interface{}
	// The path of the folder to be created. This is relative to
	// the root of the type of folder you are creating, and the supplied datacenter.
	// For example, given a default datacenter of `default-dc`, a folder of type
	// `vm` (denoting a virtual machine folder), and a supplied folder of
	// `terraform-test-folder`, the resulting path would be
	// `/default-dc/vm/terraform-test-folder`.
	Path interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
	// The type of folder to create. Allowed options are
	// `datacenter` for datacenter folders, `host` for host and cluster folders,
	// `vm` for virtual machine folders, `datastore` for datastore folders, and
	// `network` for network folders. Forces a new resource if changed.
	Type interface{}
}

Input properties used for looking up and filtering Folder resources.

type GetComputeClusterArgs

type GetComputeClusterArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the datacenter the cluster is located in.  This can
	// be omitted if the search path used in `name` is an absolute path.  For
	// default datacenters, use the id attribute from an empty `vsphere_datacenter`
	// data source.
	DatacenterId interface{}
	// The name or absolute path to the cluster.
	Name interface{}
}

A collection of arguments for invoking getComputeCluster.

type GetComputeClusterResult

type GetComputeClusterResult struct {
	ResourcePoolId interface{}
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getComputeCluster.

func LookupComputeCluster

func LookupComputeCluster(ctx *pulumi.Context, args *GetComputeClusterArgs) (*GetComputeClusterResult, error)

The `vsphere_compute_cluster` data source can be used to discover the ID of a cluster in vSphere. This is useful to fetch the ID of a cluster that you want to use for virtual machine placement via the [`vsphere_virtual_machine`][docs-virtual-machine-resource] resource, allowing you to specify the cluster's root resource pool directly versus using the alias available through the [`vsphere_resource_pool`][docs-resource-pool-data-source] data source.

[docs-virtual-machine-resource]: /docs/providers/vsphere/r/virtual_machine.html [docs-resource-pool-data-source]: /docs/providers/vsphere/d/resource_pool.html

-> You may also wish to see the [`vsphere_compute_cluster`][docs-compute-cluster-resource] resource for further details about clusters or how to work with them in Terraform.

[docs-compute-cluster-resource]: /docs/providers/vsphere/r/compute_cluster.html

type GetCustomAttributeArgs

type GetCustomAttributeArgs struct {
	// The name of the custom attribute.
	Name interface{}
}

A collection of arguments for invoking getCustomAttribute.

type GetCustomAttributeResult

type GetCustomAttributeResult struct {
	ManagedObjectType interface{}
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getCustomAttribute.

func LookupCustomAttribute

func LookupCustomAttribute(ctx *pulumi.Context, args *GetCustomAttributeArgs) (*GetCustomAttributeResult, error)

The `vsphere_custom_attribute` data source can be used to reference custom attributes that are not managed by Terraform. Its attributes are exactly the same as the [`vsphere_custom_attribute` resource][resource-custom-attribute], and, like importing, the data source takes a name to search on. The `id` and other attributes are then populated with the data found by the search.

[resource-custom-attribute]: /docs/providers/vsphere/r/custom_attribute.html

~> **NOTE:** Custom attributes are unsupported on direct ESXi connections and require vCenter.

type GetDatacenterArgs

type GetDatacenterArgs struct {
	// The name of the datacenter. This can be a name or path.
	// Can be omitted if there is only one datacenter in your inventory.
	Name interface{}
}

A collection of arguments for invoking getDatacenter.

type GetDatacenterResult

type GetDatacenterResult struct {
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getDatacenter.

func LookupDatacenter

func LookupDatacenter(ctx *pulumi.Context, args *GetDatacenterArgs) (*GetDatacenterResult, error)

The `vsphere_datacenter` data source can be used to discover the ID of a vSphere datacenter. This can then be used with resources or data sources that require a datacenter, such as the [`vsphere_host`][data-source-vsphere-host] data source.

[data-source-vsphere-host]: /docs/providers/vsphere/d/host.html

type GetDatastoreArgs

type GetDatastoreArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the datacenter the datastore is located in. This
	// can be omitted if the search path used in `name` is an absolute path. For
	// default datacenters, use the id attribute from an empty `vsphere_datacenter`
	// data source.
	DatacenterId interface{}
	// The name of the datastore. This can be a name or path.
	Name interface{}
}

A collection of arguments for invoking getDatastore.

type GetDatastoreClusterArgs

type GetDatastoreClusterArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the datacenter the datastore cluster is located in.
	// This can be omitted if the search path used in `name` is an absolute path.
	// For default datacenters, use the id attribute from an empty
	// `vsphere_datacenter` data source.
	DatacenterId interface{}
	// The name or absolute path to the datastore cluster.
	Name interface{}
}

A collection of arguments for invoking getDatastoreCluster.

type GetDatastoreClusterResult

type GetDatastoreClusterResult struct {
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getDatastoreCluster.

func LookupDatastoreCluster

func LookupDatastoreCluster(ctx *pulumi.Context, args *GetDatastoreClusterArgs) (*GetDatastoreClusterResult, error)

The `vsphere_datastore_cluster` data source can be used to discover the ID of a datastore cluster in vSphere. This is useful to fetch the ID of a datastore cluster that you want to use to assign datastores to using the [`vsphere_nas_datastore`][docs-nas-datastore-resource] or [`vsphere_vmfs_datastore`][docs-vmfs-datastore-resource] resources, or create virtual machines in using the [`vsphere_virtual_machine`][docs-virtual-machine-resource] resource.

[docs-nas-datastore-resource]: /docs/providers/vsphere/r/nas_datastore.html [docs-vmfs-datastore-resource]: /docs/providers/vsphere/r/vmfs_datastore.html [docs-virtual-machine-resource]: /docs/providers/vsphere/r/virtual_machine.html

type GetDatastoreResult

type GetDatastoreResult struct {
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getDatastore.

func LookupDatastore

func LookupDatastore(ctx *pulumi.Context, args *GetDatastoreArgs) (*GetDatastoreResult, error)

The `vsphere_datastore` data source can be used to discover the ID of a datastore in vSphere. This is useful to fetch the ID of a datastore that you want to use to create virtual machines in using the [`vsphere_virtual_machine`][docs-virtual-machine-resource] resource.

[docs-virtual-machine-resource]: /docs/providers/vsphere/r/virtual_machine.html

type GetDistributedVirtualSwitchArgs

type GetDistributedVirtualSwitchArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the datacenter the DVS is located in. This can be
	// omitted if the search path used in `name` is an absolute path. For default
	// datacenters, use the id attribute from an empty `vsphere_datacenter` data
	// source.
	DatacenterId interface{}
	// The name of the distributed virtual switch. This can be a
	// name or path.
	Name interface{}
}

A collection of arguments for invoking getDistributedVirtualSwitch.

type GetDistributedVirtualSwitchResult

type GetDistributedVirtualSwitchResult struct {
	Uplinks interface{}
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getDistributedVirtualSwitch.

func LookupDistributedVirtualSwitch

func LookupDistributedVirtualSwitch(ctx *pulumi.Context, args *GetDistributedVirtualSwitchArgs) (*GetDistributedVirtualSwitchResult, error)

The `vsphere_distributed_virtual_switch` data source can be used to discover the ID and uplink data of a of a vSphere distributed virtual switch (DVS). This can then be used with resources or data sources that require a DVS, such as the [`vsphere_distributed_port_group`][distributed-port-group] resource, for which an example is shown below.

[distributed-port-group]: /docs/providers/vsphere/r/distributed_port_group.html

~> **NOTE:** This data source requires vCenter and is not available on direct ESXi connections.

type GetHostArgs

type GetHostArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of a datacenter.
	DatacenterId interface{}
	// The name of the host. This can be a name or path. Can be
	// omitted if there is only one host in your inventory.
	Name interface{}
}

A collection of arguments for invoking getHost.

type GetHostResult

type GetHostResult struct {
	// The [managed object ID][docs-about-morefs] of the host's
	// root resource pool.
	ResourcePoolId interface{}
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getHost.

func LookupHost

func LookupHost(ctx *pulumi.Context, args *GetHostArgs) (*GetHostResult, error)

The `vsphere_host` data source can be used to discover the ID of a vSphere host. This can then be used with resources or data sources that require a host managed object reference ID.

type GetNetworkArgs

type GetNetworkArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the datacenter the network is located in. This can
	// be omitted if the search path used in `name` is an absolute path. For default
	// datacenters, use the id attribute from an empty `vsphere_datacenter` data
	// source.
	DatacenterId interface{}
	// The name of the network. This can be a name or path.
	Name interface{}
}

A collection of arguments for invoking getNetwork.

type GetNetworkResult

type GetNetworkResult struct {
	Type interface{}
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getNetwork.

func LookupNetwork

func LookupNetwork(ctx *pulumi.Context, args *GetNetworkArgs) (*GetNetworkResult, error)

The `vsphere_network` data source can be used to discover the ID of a network in vSphere. This can be any network that can be used as the backing for a network interface for `vsphere_virtual_machine` or any other vSphere resource that requires a network. This includes standard (host-based) port groups, DVS port groups, or opaque networks such as those managed by NSX.

type GetResourcePoolArgs

type GetResourcePoolArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the datacenter the resource pool is located in.
	// This can be omitted if the search path used in `name` is an absolute path.
	// For default datacenters, use the id attribute from an empty
	// `vsphere_datacenter` data source.
	DatacenterId interface{}
	// The name of the resource pool. This can be a name or
	// path. This is required when using vCenter.
	Name interface{}
}

A collection of arguments for invoking getResourcePool.

type GetResourcePoolResult

type GetResourcePoolResult struct {
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getResourcePool.

func LookupResourcePool

func LookupResourcePool(ctx *pulumi.Context, args *GetResourcePoolArgs) (*GetResourcePoolResult, error)

The `vsphere_resource_pool` data source can be used to discover the ID of a resource pool in vSphere. This is useful to fetch the ID of a resource pool that you want to use to create virtual machines in using the [`vsphere_virtual_machine`][docs-virtual-machine-resource] resource.

[docs-virtual-machine-resource]: /docs/providers/vsphere/r/virtual_machine.html

type GetTagArgs

type GetTagArgs struct {
	// The ID of the tag category the tag is located in.
	CategoryId interface{}
	// The name of the tag.
	Name interface{}
}

A collection of arguments for invoking getTag.

type GetTagCategoryArgs

type GetTagCategoryArgs struct {
	// The name of the tag category.
	Name interface{}
}

A collection of arguments for invoking getTagCategory.

type GetTagCategoryResult

type GetTagCategoryResult struct {
	AssociableTypes interface{}
	Cardinality     interface{}
	Description     interface{}
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getTagCategory.

func LookupTagCategory

func LookupTagCategory(ctx *pulumi.Context, args *GetTagCategoryArgs) (*GetTagCategoryResult, error)

The `vsphere_tag_category` data source can be used to reference tag categories that are not managed by Terraform. Its attributes are exactly the same as the [`vsphere_tag_category` resource][resource-tag-category], and, like importing, the data source takes a name to search on. The `id` and other attributes are then populated with the data found by the search.

[resource-tag-category]: /docs/providers/vsphere/r/tag_category.html

~> **NOTE:** Tagging support is unsupported on direct ESXi connections and requires vCenter 6.0 or higher.

type GetTagResult

type GetTagResult struct {
	Description interface{}
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getTag.

func LookupTag

func LookupTag(ctx *pulumi.Context, args *GetTagArgs) (*GetTagResult, error)

The `vsphere_tag` data source can be used to reference tags that are not managed by Terraform. Its attributes are exactly the same as the [`vsphere_tag` resource][resource-tag], and, like importing, the data source takes a name and category to search on. The `id` and other attributes are then populated with the data found by the search.

[resource-tag]: /docs/providers/vsphere/r/tag.html

~> **NOTE:** Tagging support is unsupported on direct ESXi connections and requires vCenter 6.0 or higher.

type GetVirtualMachineArgs

type GetVirtualMachineArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the datacenter the virtual machine is located in.
	// This can be omitted if the search path used in `name` is an absolute path.
	// For default datacenters, use the `id` attribute from an empty
	// `vsphere_datacenter` data source.
	DatacenterId interface{}
	// The name of the virtual machine. This can be a name or
	// path.
	Name interface{}
	// The number of SCSI controllers to
	// scan for disk attributes and controller types on. Default: `1`.
	ScsiControllerScanCount interface{}
}

A collection of arguments for invoking getVirtualMachine.

type GetVirtualMachineResult

type GetVirtualMachineResult struct {
	// The alternate guest name of the virtual machine when
	// guest_id is a non-specific operating system, like `otherGuest`.
	AlternateGuestName interface{}
	// Information about each of the disks on this virtual machine or
	// template. These are sorted by bus and unit number so that they can be applied
	// to a `vsphere_virtual_machine` resource in the order the resource expects
	// while cloning. This is useful for discovering certain disk settings while
	// performing a linked clone, as all settings that are output by this data
	// source must be the same on the destination virtual machine as the source.
	// Only the first number of controllers defined by `scsi_controller_scan_count`
	// are scanned for disks. The sub-attributes are:
	Disks interface{}
	// The firmware type for this virtual machine. Can be `bios` or `efi`.
	Firmware interface{}
	// The guest ID of the virtual machine or template.
	GuestId interface{}
	// The network interface types for each network
	// interface found on the virtual machine, in device bus order. Will be one of
	// `e1000`, `e1000e`, `pcnet32`, `sriov`, `vmxnet2`, or `vmxnet3`.
	NetworkInterfaceTypes interface{}
	// Mode for sharing the SCSI bus. The modes are
	// physicalSharing, virtualSharing, and noSharing. Only the first number of
	// controllers defined by `scsi_controller_scan_count` are scanned.
	ScsiBusSharing interface{}
	// The common type of all SCSI controllers on this virtual machine.
	// Will be one of `lsilogic` (LSI Logic Parallel), `lsilogic-sas` (LSI Logic
	// SAS), `pvscsi` (VMware Paravirtual), `buslogic` (BusLogic), or `mixed` when
	// there are multiple controller types. Only the first number of controllers
	// defined by `scsi_controller_scan_count` are scanned.
	ScsiType interface{}
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getVirtualMachine.

func LookupVirtualMachine

func LookupVirtualMachine(ctx *pulumi.Context, args *GetVirtualMachineArgs) (*GetVirtualMachineResult, error)

The `vsphere_virtual_machine` data source can be used to find the UUID of an existing virtual machine or template. Its most relevant purpose is for finding the UUID of a template to be used as the source for cloning into a new [`vsphere_virtual_machine`][docs-virtual-machine-resource] resource. It also reads the guest ID so that can be supplied as well.

[docs-virtual-machine-resource]: /docs/providers/vsphere/r/virtual_machine.html

type GetVmfsDisksArgs

type GetVmfsDisksArgs struct {
	// A regular expression to filter the disks against. Only
	// disks with canonical names that match will be included.
	Filter interface{}
	// The [managed object ID][docs-about-morefs] of
	// the host to look for disks on.
	HostSystemId interface{}
	// Whether or not to rescan storage adapters before
	// searching for disks. This may lengthen the time it takes to perform the
	// search. Default: `false`.
	Rescan interface{}
}

A collection of arguments for invoking getVmfsDisks.

type GetVmfsDisksResult

type GetVmfsDisksResult struct {
	// A lexicographically sorted list of devices discovered by the
	// operation, matching the supplied `filter`, if provided.
	Disks interface{}
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getVmfsDisks.

func LookupVmfsDisks

func LookupVmfsDisks(ctx *pulumi.Context, args *GetVmfsDisksArgs) (*GetVmfsDisksResult, error)

The `vsphere_vmfs_disks` data source can be used to discover the storage devices available on an ESXi host. This data source can be combined with the [`vsphere_vmfs_datastore`][data-source-vmfs-datastore] resource to create VMFS datastores based off a set of discovered disks.

[data-source-vmfs-datastore]: /docs/providers/vsphere/r/vmfs_datastore.html

type HaVmOverride

type HaVmOverride struct {
	// contains filtered or unexported fields
}

The `vsphere_ha_vm_override` resource can be used to add an override for vSphere HA settings on a cluster for a specific virtual machine. With this resource, one can control specific HA settings so that they are different than the cluster default, accommodating the needs of that specific virtual machine, while not affecting the rest of the cluster.

For more information on vSphere HA, see [this page]ref-vsphere-ha-clusters.

~> **NOTE:** This resource requires vCenter and is not available on direct ESXi connections.

func GetHaVmOverride

func GetHaVmOverride(ctx *pulumi.Context,
	name string, id pulumi.ID, state *HaVmOverrideState, opts ...pulumi.ResourceOpt) (*HaVmOverride, error)

GetHaVmOverride gets an existing HaVmOverride resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewHaVmOverride

func NewHaVmOverride(ctx *pulumi.Context,
	name string, args *HaVmOverrideArgs, opts ...pulumi.ResourceOpt) (*HaVmOverride, error)

NewHaVmOverride registers a new resource with the given unique name, arguments, and options.

func (*HaVmOverride) ComputeClusterId

func (r *HaVmOverride) ComputeClusterId() *pulumi.StringOutput

The [managed object reference ID][docs-about-morefs] of the cluster to put the override in. Forces a new resource if changed.

func (*HaVmOverride) HaDatastoreApdRecoveryAction

func (r *HaVmOverride) HaDatastoreApdRecoveryAction() *pulumi.StringOutput

Controls the action to take on this virtual machine if an APD status on an affected datastore clears in the middle of an APD event. Can be one of `useClusterDefault`, `none` or `reset`. Default: `useClusterDefault`. <sup>[\*][tf-vsphere-cluster-resource-version-restrictions]</sup>

func (*HaVmOverride) HaDatastoreApdResponse

func (r *HaVmOverride) HaDatastoreApdResponse() *pulumi.StringOutput

Controls the action to take on this virtual machine when the cluster has detected loss to all paths to a relevant datastore. Can be one of `clusterDefault`, `disabled`, `warning`, `restartConservative`, or `restartAggressive`. Default: `clusterDefault`. <sup>[\*][tf-vsphere-cluster-resource-version-restrictions]</sup>

func (*HaVmOverride) HaDatastoreApdResponseDelay

func (r *HaVmOverride) HaDatastoreApdResponseDelay() *pulumi.IntOutput

Controls the delay in minutes to wait after an APD timeout event to execute the response action defined in `ha_datastore_apd_response`. Use `-1` to use the cluster default. Default: `-1`. <sup>[\*][tf-vsphere-cluster-resource-version-restrictions]</sup>

func (*HaVmOverride) HaDatastorePdlResponse

func (r *HaVmOverride) HaDatastorePdlResponse() *pulumi.StringOutput

Controls the action to take on this virtual machine when the cluster has detected a permanent device loss to a relevant datastore. Can be one of `clusterDefault`, `disabled`, `warning`, or `restartAggressive`. Default: `clusterDefault`. <sup>[\*][tf-vsphere-cluster-resource-version-restrictions]</sup>

func (*HaVmOverride) HaHostIsolationResponse

func (r *HaVmOverride) HaHostIsolationResponse() *pulumi.StringOutput

The action to take on this virtual machine when a host has detected that it has been isolated from the rest of the cluster. Can be one of `clusterIsolationResponse`, `none`, `powerOff`, or `shutdown`. Default: `clusterIsolationResponse`.

func (*HaVmOverride) HaVmFailureInterval

func (r *HaVmOverride) HaVmFailureInterval() *pulumi.IntOutput

If a heartbeat from this virtual machine is not received within this configured interval, the virtual machine is marked as failed. The value is in seconds. Default: `30`.

func (*HaVmOverride) HaVmMaximumFailureWindow

func (r *HaVmOverride) HaVmMaximumFailureWindow() *pulumi.IntOutput

The length of the reset window in which `ha_vm_maximum_resets` can operate. When this window expires, no more resets are attempted regardless of the setting configured in `ha_vm_maximum_resets`. `-1` means no window, meaning an unlimited reset time is allotted. The value is specified in seconds. Default: `-1` (no window).

func (*HaVmOverride) HaVmMaximumResets

func (r *HaVmOverride) HaVmMaximumResets() *pulumi.IntOutput

The maximum number of resets that HA will perform to this virtual machine when responding to a failure event. Default: `3`

func (*HaVmOverride) HaVmMinimumUptime

func (r *HaVmOverride) HaVmMinimumUptime() *pulumi.IntOutput

The time, in seconds, that HA waits after powering on this virtual machine before monitoring for heartbeats. Default: `120` (2 minutes).

func (*HaVmOverride) HaVmMonitoring

func (r *HaVmOverride) HaVmMonitoring() *pulumi.StringOutput

The type of virtual machine monitoring to use when HA is enabled in the cluster. Can be one of `vmMonitoringDisabled`, `vmMonitoringOnly`, or `vmAndAppMonitoring`. Default: `vmMonitoringDisabled`.

func (*HaVmOverride) HaVmMonitoringUseClusterDefaults

func (r *HaVmOverride) HaVmMonitoringUseClusterDefaults() *pulumi.BoolOutput

Determines whether or not the cluster's default settings or the VM override settings specified in this resource are used for virtual machine monitoring. The default is `true` (use cluster defaults) - set to `false` to have overrides take effect.

func (*HaVmOverride) HaVmRestartPriority

func (r *HaVmOverride) HaVmRestartPriority() *pulumi.StringOutput

The restart priority for the virtual machine when vSphere detects a host failure. Can be one of `clusterRestartPriority`, `lowest`, `low`, `medium`, `high`, or `highest`. Default: `clusterRestartPriority`.

func (*HaVmOverride) HaVmRestartTimeout

func (r *HaVmOverride) HaVmRestartTimeout() *pulumi.IntOutput

The maximum time, in seconds, that vSphere HA will wait for this virtual machine to be ready. Use `-1` to specify the cluster default. Default: `-1`. <sup>[\*][tf-vsphere-cluster-resource-version-restrictions]</sup>

func (*HaVmOverride) ID

func (r *HaVmOverride) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*HaVmOverride) URN

func (r *HaVmOverride) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

func (*HaVmOverride) VirtualMachineId

func (r *HaVmOverride) VirtualMachineId() *pulumi.StringOutput

The UUID of the virtual machine to create the override for. Forces a new resource if changed.

type HaVmOverrideArgs

type HaVmOverrideArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the cluster to put the override in.  Forces a new
	// resource if changed.
	ComputeClusterId interface{}
	// Controls the action to take
	// on this virtual machine if an APD status on an affected datastore clears in
	// the middle of an APD event. Can be one of `useClusterDefault`, `none` or
	// `reset`.  Default: `useClusterDefault`.
	// <sup>[\*][tf-vsphere-cluster-resource-version-restrictions]</sup>
	HaDatastoreApdRecoveryAction interface{}
	// Controls the action to take on this
	// virtual machine when the cluster has detected loss to all paths to a relevant
	// datastore. Can be one of `clusterDefault`, `disabled`, `warning`,
	// `restartConservative`, or `restartAggressive`.  Default: `clusterDefault`.
	// <sup>[\*][tf-vsphere-cluster-resource-version-restrictions]</sup>
	HaDatastoreApdResponse interface{}
	// Controls the delay in minutes
	// to wait after an APD timeout event to execute the response action defined in
	// `ha_datastore_apd_response`. Use `-1` to use
	// the cluster default. Default: `-1`.
	// <sup>[\*][tf-vsphere-cluster-resource-version-restrictions]</sup>
	HaDatastoreApdResponseDelay interface{}
	// Controls the action to take on this
	// virtual machine when the cluster has detected a permanent device loss to a
	// relevant datastore. Can be one of `clusterDefault`, `disabled`, `warning`, or
	// `restartAggressive`. Default: `clusterDefault`.
	// <sup>[\*][tf-vsphere-cluster-resource-version-restrictions]</sup>
	HaDatastorePdlResponse interface{}
	// The action to take on this virtual
	// machine when a host has detected that it has been isolated from the rest of
	// the cluster. Can be one of `clusterIsolationResponse`, `none`, `powerOff`, or
	// `shutdown`. Default: `clusterIsolationResponse`.
	HaHostIsolationResponse interface{}
	// If a heartbeat from this virtual
	// machine is not received within this configured interval, the virtual machine
	// is marked as failed. The value is in seconds. Default: `30`.
	HaVmFailureInterval interface{}
	// The length of the reset window in
	// which `ha_vm_maximum_resets` can operate. When this
	// window expires, no more resets are attempted regardless of the setting
	// configured in `ha_vm_maximum_resets`. `-1` means no window, meaning an
	// unlimited reset time is allotted. The value is specified in seconds. Default:
	// `-1` (no window).
	HaVmMaximumFailureWindow interface{}
	// The maximum number of resets that HA will
	// perform to this virtual machine when responding to a failure event. Default:
	// `3`
	HaVmMaximumResets interface{}
	// The time, in seconds, that HA waits after
	// powering on this virtual machine before monitoring for heartbeats. Default:
	// `120` (2 minutes).
	HaVmMinimumUptime interface{}
	// The type of virtual machine monitoring to use
	// when HA is enabled in the cluster. Can be one of `vmMonitoringDisabled`,
	// `vmMonitoringOnly`, or `vmAndAppMonitoring`. Default: `vmMonitoringDisabled`.
	HaVmMonitoring interface{}
	// Determines whether or
	// not the cluster's default settings or the VM override settings specified in
	// this resource are used for virtual machine monitoring. The default is `true`
	// (use cluster defaults) - set to `false` to have overrides take effect.
	HaVmMonitoringUseClusterDefaults interface{}
	// The restart priority for the virtual
	// machine when vSphere detects a host failure. Can be one of
	// `clusterRestartPriority`, `lowest`, `low`, `medium`, `high`, or `highest`.
	// Default: `clusterRestartPriority`.
	HaVmRestartPriority interface{}
	// The maximum time, in seconds, that
	// vSphere HA will wait for this virtual machine to be ready. Use `-1` to
	// specify the cluster default.  Default: `-1`.
	// <sup>[\*][tf-vsphere-cluster-resource-version-restrictions]</sup>
	HaVmRestartTimeout interface{}
	// The UUID of the virtual machine to create
	// the override for.  Forces a new resource if changed.
	VirtualMachineId interface{}
}

The set of arguments for constructing a HaVmOverride resource.

type HaVmOverrideState

type HaVmOverrideState struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the cluster to put the override in.  Forces a new
	// resource if changed.
	ComputeClusterId interface{}
	// Controls the action to take
	// on this virtual machine if an APD status on an affected datastore clears in
	// the middle of an APD event. Can be one of `useClusterDefault`, `none` or
	// `reset`.  Default: `useClusterDefault`.
	// <sup>[\*][tf-vsphere-cluster-resource-version-restrictions]</sup>
	HaDatastoreApdRecoveryAction interface{}
	// Controls the action to take on this
	// virtual machine when the cluster has detected loss to all paths to a relevant
	// datastore. Can be one of `clusterDefault`, `disabled`, `warning`,
	// `restartConservative`, or `restartAggressive`.  Default: `clusterDefault`.
	// <sup>[\*][tf-vsphere-cluster-resource-version-restrictions]</sup>
	HaDatastoreApdResponse interface{}
	// Controls the delay in minutes
	// to wait after an APD timeout event to execute the response action defined in
	// `ha_datastore_apd_response`. Use `-1` to use
	// the cluster default. Default: `-1`.
	// <sup>[\*][tf-vsphere-cluster-resource-version-restrictions]</sup>
	HaDatastoreApdResponseDelay interface{}
	// Controls the action to take on this
	// virtual machine when the cluster has detected a permanent device loss to a
	// relevant datastore. Can be one of `clusterDefault`, `disabled`, `warning`, or
	// `restartAggressive`. Default: `clusterDefault`.
	// <sup>[\*][tf-vsphere-cluster-resource-version-restrictions]</sup>
	HaDatastorePdlResponse interface{}
	// The action to take on this virtual
	// machine when a host has detected that it has been isolated from the rest of
	// the cluster. Can be one of `clusterIsolationResponse`, `none`, `powerOff`, or
	// `shutdown`. Default: `clusterIsolationResponse`.
	HaHostIsolationResponse interface{}
	// If a heartbeat from this virtual
	// machine is not received within this configured interval, the virtual machine
	// is marked as failed. The value is in seconds. Default: `30`.
	HaVmFailureInterval interface{}
	// The length of the reset window in
	// which `ha_vm_maximum_resets` can operate. When this
	// window expires, no more resets are attempted regardless of the setting
	// configured in `ha_vm_maximum_resets`. `-1` means no window, meaning an
	// unlimited reset time is allotted. The value is specified in seconds. Default:
	// `-1` (no window).
	HaVmMaximumFailureWindow interface{}
	// The maximum number of resets that HA will
	// perform to this virtual machine when responding to a failure event. Default:
	// `3`
	HaVmMaximumResets interface{}
	// The time, in seconds, that HA waits after
	// powering on this virtual machine before monitoring for heartbeats. Default:
	// `120` (2 minutes).
	HaVmMinimumUptime interface{}
	// The type of virtual machine monitoring to use
	// when HA is enabled in the cluster. Can be one of `vmMonitoringDisabled`,
	// `vmMonitoringOnly`, or `vmAndAppMonitoring`. Default: `vmMonitoringDisabled`.
	HaVmMonitoring interface{}
	// Determines whether or
	// not the cluster's default settings or the VM override settings specified in
	// this resource are used for virtual machine monitoring. The default is `true`
	// (use cluster defaults) - set to `false` to have overrides take effect.
	HaVmMonitoringUseClusterDefaults interface{}
	// The restart priority for the virtual
	// machine when vSphere detects a host failure. Can be one of
	// `clusterRestartPriority`, `lowest`, `low`, `medium`, `high`, or `highest`.
	// Default: `clusterRestartPriority`.
	HaVmRestartPriority interface{}
	// The maximum time, in seconds, that
	// vSphere HA will wait for this virtual machine to be ready. Use `-1` to
	// specify the cluster default.  Default: `-1`.
	// <sup>[\*][tf-vsphere-cluster-resource-version-restrictions]</sup>
	HaVmRestartTimeout interface{}
	// The UUID of the virtual machine to create
	// the override for.  Forces a new resource if changed.
	VirtualMachineId interface{}
}

Input properties used for looking up and filtering HaVmOverride resources.

type HostPortGroup

type HostPortGroup struct {
	// contains filtered or unexported fields
}

The `vsphere_host_port_group` resource can be used to manage vSphere standard port groups on an ESXi host. These port groups are connected to standard virtual switches, which can be managed by the [`vsphere_host_virtual_switch`][host-virtual-switch] resource.

For an overview on vSphere networking concepts, see [this page][ref-vsphere-net-concepts].

[host-virtual-switch]: /docs/providers/vsphere/r/host_virtual_switch.html [ref-vsphere-net-concepts]: https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.networking.doc/GUID-2B11DBB8-CB3C-4AFF-8885-EFEA0FC562F4.html

func GetHostPortGroup

func GetHostPortGroup(ctx *pulumi.Context,
	name string, id pulumi.ID, state *HostPortGroupState, opts ...pulumi.ResourceOpt) (*HostPortGroup, error)

GetHostPortGroup gets an existing HostPortGroup resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewHostPortGroup

func NewHostPortGroup(ctx *pulumi.Context,
	name string, args *HostPortGroupArgs, opts ...pulumi.ResourceOpt) (*HostPortGroup, error)

NewHostPortGroup registers a new resource with the given unique name, arguments, and options.

func (*HostPortGroup) ActiveNics

func (r *HostPortGroup) ActiveNics() *pulumi.ArrayOutput

List of active network adapters used for load balancing.

func (*HostPortGroup) AllowForgedTransmits

func (r *HostPortGroup) AllowForgedTransmits() *pulumi.BoolOutput

Controls whether or not the virtual network adapter is allowed to send network traffic with a different MAC address than that of its own.

func (*HostPortGroup) AllowMacChanges

func (r *HostPortGroup) AllowMacChanges() *pulumi.BoolOutput

Controls whether or not the Media Access Control (MAC) address can be changed.

func (*HostPortGroup) AllowPromiscuous

func (r *HostPortGroup) AllowPromiscuous() *pulumi.BoolOutput

Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port.

func (*HostPortGroup) CheckBeacon

func (r *HostPortGroup) CheckBeacon() *pulumi.BoolOutput

Enable beacon probing. Requires that the vSwitch has been configured to use a beacon. If disabled, link status is used only.

func (*HostPortGroup) ComputedPolicy

func (r *HostPortGroup) ComputedPolicy() *pulumi.MapOutput

A map with a full set of the [policy options][host-vswitch-policy-options] computed from defaults and overrides, explaining the effective policy for this port group.

func (*HostPortGroup) Failback

func (r *HostPortGroup) Failback() *pulumi.BoolOutput

If true, the teaming policy will re-activate failed interfaces higher in precedence when they come back up.

func (*HostPortGroup) HostSystemId

func (r *HostPortGroup) HostSystemId() *pulumi.StringOutput

The [managed object ID][docs-about-morefs] of the host to set the port group up on. Forces a new resource if changed.

func (*HostPortGroup) ID

func (r *HostPortGroup) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*HostPortGroup) Key

func (r *HostPortGroup) Key() *pulumi.StringOutput

The key for this port group as returned from the vSphere API.

func (*HostPortGroup) Name

func (r *HostPortGroup) Name() *pulumi.StringOutput

The name of the port group. Forces a new resource if changed.

func (*HostPortGroup) NotifySwitches

func (r *HostPortGroup) NotifySwitches() *pulumi.BoolOutput

If true, the teaming policy will notify the broadcast network of a NIC failover, triggering cache updates.

func (*HostPortGroup) Ports

func (r *HostPortGroup) Ports() *pulumi.Output

A list of ports that currently exist and are used on this port group.

func (*HostPortGroup) ShapingAverageBandwidth

func (r *HostPortGroup) ShapingAverageBandwidth() *pulumi.IntOutput

The average bandwidth in bits per second if traffic shaping is enabled.

func (*HostPortGroup) ShapingBurstSize

func (r *HostPortGroup) ShapingBurstSize() *pulumi.IntOutput

The maximum burst size allowed in bytes if traffic shaping is enabled.

func (*HostPortGroup) ShapingEnabled

func (r *HostPortGroup) ShapingEnabled() *pulumi.BoolOutput

Enable traffic shaping on this virtual switch or port group.

func (*HostPortGroup) ShapingPeakBandwidth

func (r *HostPortGroup) ShapingPeakBandwidth() *pulumi.IntOutput

The peak bandwidth during bursts in bits per second if traffic shaping is enabled.

func (*HostPortGroup) StandbyNics

func (r *HostPortGroup) StandbyNics() *pulumi.ArrayOutput

List of standby network adapters used for failover.

func (*HostPortGroup) TeamingPolicy

func (r *HostPortGroup) TeamingPolicy() *pulumi.StringOutput

The network adapter teaming policy. Can be one of loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, or failover_explicit.

func (*HostPortGroup) URN

func (r *HostPortGroup) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

func (*HostPortGroup) VirtualSwitchName

func (r *HostPortGroup) VirtualSwitchName() *pulumi.StringOutput

The name of the virtual switch to bind this port group to. Forces a new resource if changed.

func (*HostPortGroup) VlanId

func (r *HostPortGroup) VlanId() *pulumi.IntOutput

The VLAN ID/trunk mode for this port group. An ID of `0` denotes no tagging, an ID of `1`-`4094` tags with the specific ID, and an ID of `4095` enables trunk mode, allowing the guest to manage its own tagging. Default: `0`.

type HostPortGroupArgs

type HostPortGroupArgs struct {
	// List of active network adapters used for load balancing.
	ActiveNics interface{}
	// Controls whether or not the virtual network adapter is allowed to send network traffic with a different MAC address
	// than that of its own.
	AllowForgedTransmits interface{}
	// Controls whether or not the Media Access Control (MAC) address can be changed.
	AllowMacChanges interface{}
	// Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port.
	AllowPromiscuous interface{}
	// Enable beacon probing. Requires that the vSwitch has been configured to use a beacon. If disabled, link status is used
	// only.
	CheckBeacon interface{}
	// If true, the teaming policy will re-activate failed interfaces higher in precedence when they come back up.
	Failback interface{}
	// The [managed object ID][docs-about-morefs] of
	// the host to set the port group up on. Forces a new resource if changed.
	HostSystemId interface{}
	// The name of the port group.  Forces a new resource if
	// changed.
	Name interface{}
	// If true, the teaming policy will notify the broadcast network of a NIC failover, triggering cache updates.
	NotifySwitches interface{}
	// The average bandwidth in bits per second if traffic shaping is enabled.
	ShapingAverageBandwidth interface{}
	// The maximum burst size allowed in bytes if traffic shaping is enabled.
	ShapingBurstSize interface{}
	// Enable traffic shaping on this virtual switch or port group.
	ShapingEnabled interface{}
	// The peak bandwidth during bursts in bits per second if traffic shaping is enabled.
	ShapingPeakBandwidth interface{}
	// List of standby network adapters used for failover.
	StandbyNics interface{}
	// The network adapter teaming policy. Can be one of loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, or
	// failover_explicit.
	TeamingPolicy interface{}
	// The name of the virtual switch to bind
	// this port group to. Forces a new resource if changed.
	VirtualSwitchName interface{}
	// The VLAN ID/trunk mode for this port group.  An ID of
	// `0` denotes no tagging, an ID of `1`-`4094` tags with the specific ID, and an
	// ID of `4095` enables trunk mode, allowing the guest to manage its own
	// tagging. Default: `0`.
	VlanId interface{}
}

The set of arguments for constructing a HostPortGroup resource.

type HostPortGroupState

type HostPortGroupState struct {
	// List of active network adapters used for load balancing.
	ActiveNics interface{}
	// Controls whether or not the virtual network adapter is allowed to send network traffic with a different MAC address
	// than that of its own.
	AllowForgedTransmits interface{}
	// Controls whether or not the Media Access Control (MAC) address can be changed.
	AllowMacChanges interface{}
	// Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port.
	AllowPromiscuous interface{}
	// Enable beacon probing. Requires that the vSwitch has been configured to use a beacon. If disabled, link status is used
	// only.
	CheckBeacon interface{}
	// A map with a full set of the [policy
	// options][host-vswitch-policy-options] computed from defaults and overrides,
	// explaining the effective policy for this port group.
	ComputedPolicy interface{}
	// If true, the teaming policy will re-activate failed interfaces higher in precedence when they come back up.
	Failback interface{}
	// The [managed object ID][docs-about-morefs] of
	// the host to set the port group up on. Forces a new resource if changed.
	HostSystemId interface{}
	// The key for this port group as returned from the vSphere API.
	Key interface{}
	// The name of the port group.  Forces a new resource if
	// changed.
	Name interface{}
	// If true, the teaming policy will notify the broadcast network of a NIC failover, triggering cache updates.
	NotifySwitches interface{}
	// A list of ports that currently exist and are used on this port group.
	Ports interface{}
	// The average bandwidth in bits per second if traffic shaping is enabled.
	ShapingAverageBandwidth interface{}
	// The maximum burst size allowed in bytes if traffic shaping is enabled.
	ShapingBurstSize interface{}
	// Enable traffic shaping on this virtual switch or port group.
	ShapingEnabled interface{}
	// The peak bandwidth during bursts in bits per second if traffic shaping is enabled.
	ShapingPeakBandwidth interface{}
	// List of standby network adapters used for failover.
	StandbyNics interface{}
	// The network adapter teaming policy. Can be one of loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, or
	// failover_explicit.
	TeamingPolicy interface{}
	// The name of the virtual switch to bind
	// this port group to. Forces a new resource if changed.
	VirtualSwitchName interface{}
	// The VLAN ID/trunk mode for this port group.  An ID of
	// `0` denotes no tagging, an ID of `1`-`4094` tags with the specific ID, and an
	// ID of `4095` enables trunk mode, allowing the guest to manage its own
	// tagging. Default: `0`.
	VlanId interface{}
}

Input properties used for looking up and filtering HostPortGroup resources.

type HostVirtualSwitch

type HostVirtualSwitch struct {
	// contains filtered or unexported fields
}

The `vsphere_host_virtual_switch` resource can be used to manage vSphere standard switches on an ESXi host. These switches can be used as a backing for standard port groups, which can be managed by the [`vsphere_host_port_group`][host-port-group] resource.

For an overview on vSphere networking concepts, see [this page][ref-vsphere-net-concepts].

[host-port-group]: /docs/providers/vsphere/r/host_port_group.html [ref-vsphere-net-concepts]: https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.networking.doc/GUID-2B11DBB8-CB3C-4AFF-8885-EFEA0FC562F4.html

func GetHostVirtualSwitch

func GetHostVirtualSwitch(ctx *pulumi.Context,
	name string, id pulumi.ID, state *HostVirtualSwitchState, opts ...pulumi.ResourceOpt) (*HostVirtualSwitch, error)

GetHostVirtualSwitch gets an existing HostVirtualSwitch resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewHostVirtualSwitch

func NewHostVirtualSwitch(ctx *pulumi.Context,
	name string, args *HostVirtualSwitchArgs, opts ...pulumi.ResourceOpt) (*HostVirtualSwitch, error)

NewHostVirtualSwitch registers a new resource with the given unique name, arguments, and options.

func (*HostVirtualSwitch) ActiveNics

func (r *HostVirtualSwitch) ActiveNics() *pulumi.ArrayOutput

The list of active network adapters used for load balancing.

func (*HostVirtualSwitch) AllowForgedTransmits

func (r *HostVirtualSwitch) AllowForgedTransmits() *pulumi.BoolOutput

Controls whether or not the virtual network adapter is allowed to send network traffic with a different MAC address than that of its own. Default: `true`.

func (*HostVirtualSwitch) AllowMacChanges

func (r *HostVirtualSwitch) AllowMacChanges() *pulumi.BoolOutput

Controls whether or not the Media Access Control (MAC) address can be changed. Default: `true`.

func (*HostVirtualSwitch) AllowPromiscuous

func (r *HostVirtualSwitch) AllowPromiscuous() *pulumi.BoolOutput

Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port. Default: `false`.

func (*HostVirtualSwitch) BeaconInterval

func (r *HostVirtualSwitch) BeaconInterval() *pulumi.IntOutput

The interval, in seconds, that a NIC beacon packet is sent out. This can be used with `check_beacon` to offer link failure capability beyond link status only. Default: `1`.

func (*HostVirtualSwitch) CheckBeacon

func (r *HostVirtualSwitch) CheckBeacon() *pulumi.BoolOutput

Enable beacon probing - this requires that the `beacon_interval` option has been set in the bridge options. If this is set to `false`, only link status is used to check for failed NICs. Default: `false`.

func (*HostVirtualSwitch) Failback

func (r *HostVirtualSwitch) Failback() *pulumi.BoolOutput

If set to `true`, the teaming policy will re-activate failed interfaces higher in precedence when they come back up. Default: `true`.

func (*HostVirtualSwitch) HostSystemId

func (r *HostVirtualSwitch) HostSystemId() *pulumi.StringOutput

The [managed object ID][docs-about-morefs] of the host to set the virtual switch up on. Forces a new resource if changed.

func (*HostVirtualSwitch) ID

ID is this resource's unique identifier assigned by its provider.

func (*HostVirtualSwitch) LinkDiscoveryOperation

func (r *HostVirtualSwitch) LinkDiscoveryOperation() *pulumi.StringOutput

Whether to `advertise` or `listen` for link discovery traffic. Default: `listen`.

func (*HostVirtualSwitch) LinkDiscoveryProtocol

func (r *HostVirtualSwitch) LinkDiscoveryProtocol() *pulumi.StringOutput

The discovery protocol type. Valid types are `cpd` and `lldp`. Default: `cdp`.

func (*HostVirtualSwitch) Mtu

The maximum transmission unit (MTU) for the virtual switch. Default: `1500`.

func (*HostVirtualSwitch) Name

The name of the virtual switch. Forces a new resource if changed.

func (*HostVirtualSwitch) NetworkAdapters

func (r *HostVirtualSwitch) NetworkAdapters() *pulumi.ArrayOutput

The network interfaces to bind to the bridge.

func (*HostVirtualSwitch) NotifySwitches

func (r *HostVirtualSwitch) NotifySwitches() *pulumi.BoolOutput

If set to `true`, the teaming policy will notify the broadcast network of a NIC failover, triggering cache updates. Default: `true`.

func (*HostVirtualSwitch) NumberOfPorts

func (r *HostVirtualSwitch) NumberOfPorts() *pulumi.IntOutput

The number of ports to create with this virtual switch. Default: `128`.

func (*HostVirtualSwitch) ShapingAverageBandwidth

func (r *HostVirtualSwitch) ShapingAverageBandwidth() *pulumi.IntOutput

The average bandwidth in bits per second if traffic shaping is enabled. Default: `0`

func (*HostVirtualSwitch) ShapingBurstSize

func (r *HostVirtualSwitch) ShapingBurstSize() *pulumi.IntOutput

The maximum burst size allowed in bytes if shaping is enabled. Default: `0`

func (*HostVirtualSwitch) ShapingEnabled

func (r *HostVirtualSwitch) ShapingEnabled() *pulumi.BoolOutput

Set to `true` to enable the traffic shaper for ports managed by this virtual switch. Default: `false`.

func (*HostVirtualSwitch) ShapingPeakBandwidth

func (r *HostVirtualSwitch) ShapingPeakBandwidth() *pulumi.IntOutput

The peak bandwidth during bursts in bits per second if traffic shaping is enabled. Default: `0`

func (*HostVirtualSwitch) StandbyNics

func (r *HostVirtualSwitch) StandbyNics() *pulumi.ArrayOutput

The list of standby network adapters used for failover.

func (*HostVirtualSwitch) TeamingPolicy

func (r *HostVirtualSwitch) TeamingPolicy() *pulumi.StringOutput

The network adapter teaming policy. Can be one of `loadbalance_ip`, `loadbalance_srcmac`, `loadbalance_srcid`, or `failover_explicit`. Default: `loadbalance_srcid`.

func (*HostVirtualSwitch) URN

URN is this resource's unique name assigned by Pulumi.

type HostVirtualSwitchArgs

type HostVirtualSwitchArgs struct {
	// The list of active network adapters used for load
	// balancing.
	ActiveNics interface{}
	// Controls whether or not the virtual
	// network adapter is allowed to send network traffic with a different MAC
	// address than that of its own. Default: `true`.
	AllowForgedTransmits interface{}
	// Controls whether or not the Media Access
	// Control (MAC) address can be changed. Default: `true`.
	AllowMacChanges interface{}
	// Enable promiscuous mode on the network. This
	// flag indicates whether or not all traffic is seen on a given port. Default:
	// `false`.
	AllowPromiscuous interface{}
	// The interval, in seconds, that a NIC beacon
	// packet is sent out. This can be used with `check_beacon` to
	// offer link failure capability beyond link status only. Default: `1`.
	BeaconInterval interface{}
	// Enable beacon probing - this requires that the
	// `beacon_interval` option has been set in the bridge
	// options. If this is set to `false`, only link status is used to check for
	// failed NICs.  Default: `false`.
	CheckBeacon interface{}
	// If set to `true`, the teaming policy will re-activate
	// failed interfaces higher in precedence when they come back up.  Default:
	// `true`.
	Failback interface{}
	// The [managed object ID][docs-about-morefs] of
	// the host to set the virtual switch up on. Forces a new resource if changed.
	HostSystemId interface{}
	// Whether to `advertise` or `listen`
	// for link discovery traffic. Default: `listen`.
	LinkDiscoveryOperation interface{}
	// The discovery protocol type.  Valid
	// types are `cpd` and `lldp`. Default: `cdp`.
	LinkDiscoveryProtocol interface{}
	// The maximum transmission unit (MTU) for the virtual
	// switch. Default: `1500`.
	Mtu interface{}
	// The name of the virtual switch. Forces a new resource if
	// changed.
	Name interface{}
	// The network interfaces to bind to the bridge.
	NetworkAdapters interface{}
	// If set to `true`, the teaming policy will
	// notify the broadcast network of a NIC failover, triggering cache updates.
	// Default: `true`.
	NotifySwitches interface{}
	// The number of ports to create with this
	// virtual switch. Default: `128`.
	NumberOfPorts interface{}
	// The average bandwidth in bits per
	// second if traffic shaping is enabled. Default: `0`
	ShapingAverageBandwidth interface{}
	// The maximum burst size allowed in bytes if
	// shaping is enabled. Default: `0`
	ShapingBurstSize interface{}
	// Set to `true` to enable the traffic shaper for
	// ports managed by this virtual switch. Default: `false`.
	ShapingEnabled interface{}
	// The peak bandwidth during bursts in
	// bits per second if traffic shaping is enabled. Default: `0`
	ShapingPeakBandwidth interface{}
	// The list of standby network adapters used for
	// failover.
	StandbyNics interface{}
	// The network adapter teaming policy. Can be one
	// of `loadbalance_ip`, `loadbalance_srcmac`, `loadbalance_srcid`, or
	// `failover_explicit`. Default: `loadbalance_srcid`.
	TeamingPolicy interface{}
}

The set of arguments for constructing a HostVirtualSwitch resource.

type HostVirtualSwitchState

type HostVirtualSwitchState struct {
	// The list of active network adapters used for load
	// balancing.
	ActiveNics interface{}
	// Controls whether or not the virtual
	// network adapter is allowed to send network traffic with a different MAC
	// address than that of its own. Default: `true`.
	AllowForgedTransmits interface{}
	// Controls whether or not the Media Access
	// Control (MAC) address can be changed. Default: `true`.
	AllowMacChanges interface{}
	// Enable promiscuous mode on the network. This
	// flag indicates whether or not all traffic is seen on a given port. Default:
	// `false`.
	AllowPromiscuous interface{}
	// The interval, in seconds, that a NIC beacon
	// packet is sent out. This can be used with `check_beacon` to
	// offer link failure capability beyond link status only. Default: `1`.
	BeaconInterval interface{}
	// Enable beacon probing - this requires that the
	// `beacon_interval` option has been set in the bridge
	// options. If this is set to `false`, only link status is used to check for
	// failed NICs.  Default: `false`.
	CheckBeacon interface{}
	// If set to `true`, the teaming policy will re-activate
	// failed interfaces higher in precedence when they come back up.  Default:
	// `true`.
	Failback interface{}
	// The [managed object ID][docs-about-morefs] of
	// the host to set the virtual switch up on. Forces a new resource if changed.
	HostSystemId interface{}
	// Whether to `advertise` or `listen`
	// for link discovery traffic. Default: `listen`.
	LinkDiscoveryOperation interface{}
	// The discovery protocol type.  Valid
	// types are `cpd` and `lldp`. Default: `cdp`.
	LinkDiscoveryProtocol interface{}
	// The maximum transmission unit (MTU) for the virtual
	// switch. Default: `1500`.
	Mtu interface{}
	// The name of the virtual switch. Forces a new resource if
	// changed.
	Name interface{}
	// The network interfaces to bind to the bridge.
	NetworkAdapters interface{}
	// If set to `true`, the teaming policy will
	// notify the broadcast network of a NIC failover, triggering cache updates.
	// Default: `true`.
	NotifySwitches interface{}
	// The number of ports to create with this
	// virtual switch. Default: `128`.
	NumberOfPorts interface{}
	// The average bandwidth in bits per
	// second if traffic shaping is enabled. Default: `0`
	ShapingAverageBandwidth interface{}
	// The maximum burst size allowed in bytes if
	// shaping is enabled. Default: `0`
	ShapingBurstSize interface{}
	// Set to `true` to enable the traffic shaper for
	// ports managed by this virtual switch. Default: `false`.
	ShapingEnabled interface{}
	// The peak bandwidth during bursts in
	// bits per second if traffic shaping is enabled. Default: `0`
	ShapingPeakBandwidth interface{}
	// The list of standby network adapters used for
	// failover.
	StandbyNics interface{}
	// The network adapter teaming policy. Can be one
	// of `loadbalance_ip`, `loadbalance_srcmac`, `loadbalance_srcid`, or
	// `failover_explicit`. Default: `loadbalance_srcid`.
	TeamingPolicy interface{}
}

Input properties used for looking up and filtering HostVirtualSwitch resources.

type License

type License struct {
	// contains filtered or unexported fields
}

Provides a VMware vSphere license resource. This can be used to add and remove license keys.

func GetLicense

func GetLicense(ctx *pulumi.Context,
	name string, id pulumi.ID, state *LicenseState, opts ...pulumi.ResourceOpt) (*License, error)

GetLicense gets an existing License resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewLicense

func NewLicense(ctx *pulumi.Context,
	name string, args *LicenseArgs, opts ...pulumi.ResourceOpt) (*License, error)

NewLicense registers a new resource with the given unique name, arguments, and options.

func (*License) EditionKey

func (r *License) EditionKey() *pulumi.StringOutput

The product edition of the license key.

func (*License) ID

func (r *License) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*License) Labels

func (r *License) Labels() *pulumi.MapOutput

A map of key/value pairs to be attached as labels (tags) to the license key.

func (*License) LicenseKey

func (r *License) LicenseKey() *pulumi.StringOutput

The license key to add.

func (*License) Name

func (r *License) Name() *pulumi.StringOutput

The display name for the license.

func (*License) Total

func (r *License) Total() *pulumi.IntOutput

Total number of units (example: CPUs) contained in the license.

func (*License) URN

func (r *License) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

func (*License) Used

func (r *License) Used() *pulumi.IntOutput

The number of units (example: CPUs) assigned to this license.

type LicenseArgs

type LicenseArgs struct {
	// A map of key/value pairs to be attached as labels (tags) to the license key.
	Labels interface{}
	// The license key to add.
	LicenseKey interface{}
}

The set of arguments for constructing a License resource.

type LicenseState

type LicenseState struct {
	// The product edition of the license key.
	EditionKey interface{}
	// A map of key/value pairs to be attached as labels (tags) to the license key.
	Labels interface{}
	// The license key to add.
	LicenseKey interface{}
	// The display name for the license.
	Name interface{}
	// Total number of units (example: CPUs) contained in the license.
	Total interface{}
	// The number of units (example: CPUs) assigned to this license.
	Used interface{}
}

Input properties used for looking up and filtering License resources.

type NasDatastore

type NasDatastore struct {
	// contains filtered or unexported fields
}

The `vsphere_nas_datastore` resource can be used to create and manage NAS datastores on an ESXi host or a set of hosts. The resource supports mounting NFS v3 and v4.1 shares to be used as datastores.

~> **NOTE:** Unlike [`vsphere_vmfs_datastore`][resource-vmfs-datastore], a NAS datastore is only mounted on the hosts you choose to mount it on. To mount on multiple hosts, you must specify each host that you want to add in the `host_system_ids` argument.

[resource-vmfs-datastore]: /docs/providers/vsphere/r/vmfs_datastore.html

func GetNasDatastore

func GetNasDatastore(ctx *pulumi.Context,
	name string, id pulumi.ID, state *NasDatastoreState, opts ...pulumi.ResourceOpt) (*NasDatastore, error)

GetNasDatastore gets an existing NasDatastore resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewNasDatastore

func NewNasDatastore(ctx *pulumi.Context,
	name string, args *NasDatastoreArgs, opts ...pulumi.ResourceOpt) (*NasDatastore, error)

NewNasDatastore registers a new resource with the given unique name, arguments, and options.

func (*NasDatastore) AccessMode

func (r *NasDatastore) AccessMode() *pulumi.StringOutput

Access mode for the mount point. Can be one of `readOnly` or `readWrite`. Note that `readWrite` does not necessarily mean that the datastore will be read-write depending on the permissions of the actual share. Default: `readWrite`. Forces a new resource if changed.

func (*NasDatastore) Accessible

func (r *NasDatastore) Accessible() *pulumi.BoolOutput

The connectivity status of the datastore. If this is `false`, some other computed attributes may be out of date.

func (*NasDatastore) Capacity

func (r *NasDatastore) Capacity() *pulumi.IntOutput

Maximum capacity of the datastore, in megabytes.

func (*NasDatastore) CustomAttributes

func (r *NasDatastore) CustomAttributes() *pulumi.MapOutput

Map of custom attribute ids to attribute value strings to set on datasource resource. See [here][docs-setting-custom-attributes] for a reference on how to set values for custom attributes.

func (*NasDatastore) DatastoreClusterId

func (r *NasDatastore) DatastoreClusterId() *pulumi.StringOutput

The [managed object ID][docs-about-morefs] of a datastore cluster to put this datastore in. Conflicts with `folder`.

func (*NasDatastore) Folder

func (r *NasDatastore) Folder() *pulumi.StringOutput

The relative path to a folder to put this datastore in. This is a path relative to the datacenter you are deploying the datastore to. Example: for the `dc1` datacenter, and a provided `folder` of `foo/bar`, Terraform will place a datastore named `terraform-test` in a datastore folder located at `/dc1/datastore/foo/bar`, with the final inventory path being `/dc1/datastore/foo/bar/terraform-test`. Conflicts with `datastore_cluster_id`.

func (*NasDatastore) FreeSpace

func (r *NasDatastore) FreeSpace() *pulumi.IntOutput

Available space of this datastore, in megabytes.

func (*NasDatastore) HostSystemIds

func (r *NasDatastore) HostSystemIds() *pulumi.ArrayOutput

The [managed object IDs][docs-about-morefs] of the hosts to mount the datastore on.

func (*NasDatastore) ID

func (r *NasDatastore) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*NasDatastore) MaintenanceMode

func (r *NasDatastore) MaintenanceMode() *pulumi.StringOutput

The current maintenance mode state of the datastore.

func (*NasDatastore) MultipleHostAccess

func (r *NasDatastore) MultipleHostAccess() *pulumi.BoolOutput

If `true`, more than one host in the datacenter has been configured with access to the datastore.

func (*NasDatastore) Name

func (r *NasDatastore) Name() *pulumi.StringOutput

The name of the datastore. Forces a new resource if changed.

func (*NasDatastore) ProtocolEndpoint

func (r *NasDatastore) ProtocolEndpoint() *pulumi.StringOutput

Indicates that this NAS volume is a protocol endpoint. This field is only populated if the host supports virtual datastores.

func (*NasDatastore) RemoteHosts

func (r *NasDatastore) RemoteHosts() *pulumi.ArrayOutput

The hostnames or IP addresses of the remote server or servers. Only one element should be present for NFS v3 but multiple can be present for NFS v4.1. Forces a new resource if changed.

func (*NasDatastore) RemotePath

func (r *NasDatastore) RemotePath() *pulumi.StringOutput

The remote path of the mount point. Forces a new resource if changed.

func (*NasDatastore) SecurityType

func (r *NasDatastore) SecurityType() *pulumi.StringOutput

The security type to use when using NFS v4.1. Can be one of `AUTH_SYS`, `SEC_KRB5`, or `SEC_KRB5I`. Forces a new resource if changed.

func (*NasDatastore) Tags

func (r *NasDatastore) Tags() *pulumi.ArrayOutput

The IDs of any tags to attach to this resource. See [here][docs-applying-tags] for a reference on how to apply tags.

func (*NasDatastore) Type

func (r *NasDatastore) Type() *pulumi.StringOutput

The type of NAS volume. Can be one of `NFS` (to denote v3) or `NFS41` (to denote NFS v4.1). Default: `NFS`. Forces a new resource if changed.

func (*NasDatastore) URN

func (r *NasDatastore) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

func (*NasDatastore) UncommittedSpace

func (r *NasDatastore) UncommittedSpace() *pulumi.IntOutput

Total additional storage space, in megabytes, potentially used by all virtual machines on this datastore.

func (*NasDatastore) Url

func (r *NasDatastore) Url() *pulumi.StringOutput

The unique locator for the datastore.

type NasDatastoreArgs

type NasDatastoreArgs struct {
	// Access mode for the mount point. Can be one of
	// `readOnly` or `readWrite`. Note that `readWrite` does not necessarily mean
	// that the datastore will be read-write depending on the permissions of the
	// actual share. Default: `readWrite`. Forces a new resource if changed.
	AccessMode interface{}
	// Map of custom attribute ids to attribute
	// value strings to set on datasource resource. See
	// [here][docs-setting-custom-attributes] for a reference on how to set values
	// for custom attributes.
	CustomAttributes interface{}
	// The [managed object
	// ID][docs-about-morefs] of a datastore cluster to put this datastore in.
	// Conflicts with `folder`.
	DatastoreClusterId interface{}
	// The relative path to a folder to put this datastore in.
	// This is a path relative to the datacenter you are deploying the datastore to.
	// Example: for the `dc1` datacenter, and a provided `folder` of `foo/bar`,
	// Terraform will place a datastore named `terraform-test` in a datastore folder
	// located at `/dc1/datastore/foo/bar`, with the final inventory path being
	// `/dc1/datastore/foo/bar/terraform-test`. Conflicts with
	// `datastore_cluster_id`.
	Folder interface{}
	// The [managed object IDs][docs-about-morefs] of
	// the hosts to mount the datastore on.
	HostSystemIds interface{}
	// The name of the datastore. Forces a new resource if
	// changed.
	Name interface{}
	// The hostnames or IP addresses of the remote
	// server or servers. Only one element should be present for NFS v3 but multiple
	// can be present for NFS v4.1. Forces a new resource if changed.
	RemoteHosts interface{}
	// The remote path of the mount point. Forces a new
	// resource if changed.
	RemotePath interface{}
	// The security type to use when using NFS v4.1.
	// Can be one of `AUTH_SYS`, `SEC_KRB5`, or `SEC_KRB5I`. Forces a new resource
	// if changed.
	SecurityType interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
	// The type of NAS volume. Can be one of `NFS` (to denote
	// v3) or `NFS41` (to denote NFS v4.1). Default: `NFS`. Forces a new resource if
	// changed.
	Type interface{}
}

The set of arguments for constructing a NasDatastore resource.

type NasDatastoreState

type NasDatastoreState struct {
	// Access mode for the mount point. Can be one of
	// `readOnly` or `readWrite`. Note that `readWrite` does not necessarily mean
	// that the datastore will be read-write depending on the permissions of the
	// actual share. Default: `readWrite`. Forces a new resource if changed.
	AccessMode interface{}
	// The connectivity status of the datastore. If this is `false`,
	// some other computed attributes may be out of date.
	Accessible interface{}
	// Maximum capacity of the datastore, in megabytes.
	Capacity interface{}
	// Map of custom attribute ids to attribute
	// value strings to set on datasource resource. See
	// [here][docs-setting-custom-attributes] for a reference on how to set values
	// for custom attributes.
	CustomAttributes interface{}
	// The [managed object
	// ID][docs-about-morefs] of a datastore cluster to put this datastore in.
	// Conflicts with `folder`.
	DatastoreClusterId interface{}
	// The relative path to a folder to put this datastore in.
	// This is a path relative to the datacenter you are deploying the datastore to.
	// Example: for the `dc1` datacenter, and a provided `folder` of `foo/bar`,
	// Terraform will place a datastore named `terraform-test` in a datastore folder
	// located at `/dc1/datastore/foo/bar`, with the final inventory path being
	// `/dc1/datastore/foo/bar/terraform-test`. Conflicts with
	// `datastore_cluster_id`.
	Folder interface{}
	// Available space of this datastore, in megabytes.
	FreeSpace interface{}
	// The [managed object IDs][docs-about-morefs] of
	// the hosts to mount the datastore on.
	HostSystemIds interface{}
	// The current maintenance mode state of the datastore.
	MaintenanceMode interface{}
	// If `true`, more than one host in the datacenter has
	// been configured with access to the datastore.
	MultipleHostAccess interface{}
	// The name of the datastore. Forces a new resource if
	// changed.
	Name interface{}
	// Indicates that this NAS volume is a protocol endpoint.
	// This field is only populated if the host supports virtual datastores.
	ProtocolEndpoint interface{}
	// The hostnames or IP addresses of the remote
	// server or servers. Only one element should be present for NFS v3 but multiple
	// can be present for NFS v4.1. Forces a new resource if changed.
	RemoteHosts interface{}
	// The remote path of the mount point. Forces a new
	// resource if changed.
	RemotePath interface{}
	// The security type to use when using NFS v4.1.
	// Can be one of `AUTH_SYS`, `SEC_KRB5`, or `SEC_KRB5I`. Forces a new resource
	// if changed.
	SecurityType interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
	// The type of NAS volume. Can be one of `NFS` (to denote
	// v3) or `NFS41` (to denote NFS v4.1). Default: `NFS`. Forces a new resource if
	// changed.
	Type interface{}
	// Total additional storage space, in megabytes,
	// potentially used by all virtual machines on this datastore.
	UncommittedSpace interface{}
	// The unique locator for the datastore.
	Url interface{}
}

Input properties used for looking up and filtering NasDatastore resources.

type ResourcePool

type ResourcePool struct {
	// contains filtered or unexported fields
}

The `vsphere_resource_pool` resource can be used to create and manage resource pools in standalone hosts or on compute clusters.

For more information on vSphere resource pools, see [this page]ref-vsphere-resource_pools.

func GetResourcePool

func GetResourcePool(ctx *pulumi.Context,
	name string, id pulumi.ID, state *ResourcePoolState, opts ...pulumi.ResourceOpt) (*ResourcePool, error)

GetResourcePool gets an existing ResourcePool resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewResourcePool

func NewResourcePool(ctx *pulumi.Context,
	name string, args *ResourcePoolArgs, opts ...pulumi.ResourceOpt) (*ResourcePool, error)

NewResourcePool registers a new resource with the given unique name, arguments, and options.

func (*ResourcePool) CpuExpandable

func (r *ResourcePool) CpuExpandable() *pulumi.BoolOutput

Determines if the reservation on a resource pool can grow beyond the specified value if the parent resource pool has unreserved resources. Default: `true`

func (*ResourcePool) CpuLimit

func (r *ResourcePool) CpuLimit() *pulumi.IntOutput

The CPU utilization of a resource pool will not exceed this limit, even if there are available resources. Set to `-1` for unlimited. Default: `-1`

func (*ResourcePool) CpuReservation

func (r *ResourcePool) CpuReservation() *pulumi.IntOutput

Amount of CPU (MHz) that is guaranteed available to the resource pool. Default: `0`

func (*ResourcePool) CpuShareLevel

func (r *ResourcePool) CpuShareLevel() *pulumi.StringOutput

The CPU allocation level. The level is a simplified view of shares. Levels map to a pre-determined set of numeric values for shares. Can be one of `low`, `normal`, `high`, or `custom`. When `low`, `normal`, or `high` are specified values in `cpu_shares` will be ignored. Default: `normal`

func (*ResourcePool) CpuShares

func (r *ResourcePool) CpuShares() *pulumi.IntOutput

The number of shares allocated for CPU. Used to determine resource allocation in case of resource contention. If this is set, `cpu_share_level` must be `custom`.

func (*ResourcePool) CustomAttributes

func (r *ResourcePool) CustomAttributes() *pulumi.MapOutput

A list of custom attributes to set on this resource.

func (*ResourcePool) ID

func (r *ResourcePool) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*ResourcePool) MemoryExpandable

func (r *ResourcePool) MemoryExpandable() *pulumi.BoolOutput

Determines if the reservation on a resource pool can grow beyond the specified value if the parent resource pool has unreserved resources. Default: `true`

func (*ResourcePool) MemoryLimit

func (r *ResourcePool) MemoryLimit() *pulumi.IntOutput

The CPU utilization of a resource pool will not exceed this limit, even if there are available resources. Set to `-1` for unlimited. Default: `-1`

func (*ResourcePool) MemoryReservation

func (r *ResourcePool) MemoryReservation() *pulumi.IntOutput

Amount of CPU (MHz) that is guaranteed available to the resource pool. Default: `0`

func (*ResourcePool) MemoryShareLevel

func (r *ResourcePool) MemoryShareLevel() *pulumi.StringOutput

The CPU allocation level. The level is a simplified view of shares. Levels map to a pre-determined set of numeric values for shares. Can be one of `low`, `normal`, `high`, or `custom`. When `low`, `normal`, or `high` are specified values in `memory_shares` will be ignored. Default: `normal`

func (*ResourcePool) MemoryShares

func (r *ResourcePool) MemoryShares() *pulumi.IntOutput

The number of shares allocated for CPU. Used to determine resource allocation in case of resource contention. If this is set, `memory_share_level` must be `custom`.

func (*ResourcePool) Name

func (r *ResourcePool) Name() *pulumi.StringOutput

The name of the resource pool.

func (*ResourcePool) ParentResourcePoolId

func (r *ResourcePool) ParentResourcePoolId() *pulumi.StringOutput

The [managed object ID][docs-about-morefs] of the parent resource pool. This can be the root resource pool for a cluster or standalone host, or a resource pool itself. When moving a resource pool from one parent resource pool to another, both must share a common root resource pool or the move will fail.

func (*ResourcePool) Tags

func (r *ResourcePool) Tags() *pulumi.ArrayOutput

The IDs of any tags to attach to this resource. See [here][docs-applying-tags] for a reference on how to apply tags.

func (*ResourcePool) URN

func (r *ResourcePool) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

type ResourcePoolArgs

type ResourcePoolArgs struct {
	// Determines if the reservation on a resource
	// pool can grow beyond the specified value if the parent resource pool has
	// unreserved resources. Default: `true`
	CpuExpandable interface{}
	// The CPU utilization of a resource pool will not exceed
	// this limit, even if there are available resources. Set to `-1` for unlimited.
	// Default: `-1`
	CpuLimit interface{}
	// Amount of CPU (MHz) that is guaranteed
	// available to the resource pool. Default: `0`
	CpuReservation interface{}
	// The CPU allocation level. The level is a
	// simplified view of shares. Levels map to a pre-determined set of numeric
	// values for shares. Can be one of `low`, `normal`, `high`, or `custom`. When
	// `low`, `normal`, or `high` are specified values in `cpu_shares` will be
	// ignored.  Default: `normal`
	CpuShareLevel interface{}
	// The number of shares allocated for CPU. Used to
	// determine resource allocation in case of resource contention. If this is set,
	// `cpu_share_level` must be `custom`.
	CpuShares interface{}
	// A list of custom attributes to set on this resource.
	CustomAttributes interface{}
	// Determines if the reservation on a resource
	// pool can grow beyond the specified value if the parent resource pool has
	// unreserved resources. Default: `true`
	MemoryExpandable interface{}
	// The CPU utilization of a resource pool will not exceed
	// this limit, even if there are available resources. Set to `-1` for unlimited.
	// Default: `-1`
	MemoryLimit interface{}
	// Amount of CPU (MHz) that is guaranteed
	// available to the resource pool. Default: `0`
	MemoryReservation interface{}
	// The CPU allocation level. The level is a
	// simplified view of shares. Levels map to a pre-determined set of numeric
	// values for shares. Can be one of `low`, `normal`, `high`, or `custom`. When
	// `low`, `normal`, or `high` are specified values in `memory_shares` will be
	// ignored.  Default: `normal`
	MemoryShareLevel interface{}
	// The number of shares allocated for CPU. Used to
	// determine resource allocation in case of resource contention. If this is set,
	// `memory_share_level` must be `custom`.
	MemoryShares interface{}
	// The name of the resource pool.
	Name interface{}
	// The [managed object ID][docs-about-morefs]
	// of the parent resource pool. This can be the root resource pool for a cluster
	// or standalone host, or a resource pool itself. When moving a resource pool
	// from one parent resource pool to another, both must share a common root
	// resource pool or the move will fail.
	ParentResourcePoolId interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
}

The set of arguments for constructing a ResourcePool resource.

type ResourcePoolState

type ResourcePoolState struct {
	// Determines if the reservation on a resource
	// pool can grow beyond the specified value if the parent resource pool has
	// unreserved resources. Default: `true`
	CpuExpandable interface{}
	// The CPU utilization of a resource pool will not exceed
	// this limit, even if there are available resources. Set to `-1` for unlimited.
	// Default: `-1`
	CpuLimit interface{}
	// Amount of CPU (MHz) that is guaranteed
	// available to the resource pool. Default: `0`
	CpuReservation interface{}
	// The CPU allocation level. The level is a
	// simplified view of shares. Levels map to a pre-determined set of numeric
	// values for shares. Can be one of `low`, `normal`, `high`, or `custom`. When
	// `low`, `normal`, or `high` are specified values in `cpu_shares` will be
	// ignored.  Default: `normal`
	CpuShareLevel interface{}
	// The number of shares allocated for CPU. Used to
	// determine resource allocation in case of resource contention. If this is set,
	// `cpu_share_level` must be `custom`.
	CpuShares interface{}
	// A list of custom attributes to set on this resource.
	CustomAttributes interface{}
	// Determines if the reservation on a resource
	// pool can grow beyond the specified value if the parent resource pool has
	// unreserved resources. Default: `true`
	MemoryExpandable interface{}
	// The CPU utilization of a resource pool will not exceed
	// this limit, even if there are available resources. Set to `-1` for unlimited.
	// Default: `-1`
	MemoryLimit interface{}
	// Amount of CPU (MHz) that is guaranteed
	// available to the resource pool. Default: `0`
	MemoryReservation interface{}
	// The CPU allocation level. The level is a
	// simplified view of shares. Levels map to a pre-determined set of numeric
	// values for shares. Can be one of `low`, `normal`, `high`, or `custom`. When
	// `low`, `normal`, or `high` are specified values in `memory_shares` will be
	// ignored.  Default: `normal`
	MemoryShareLevel interface{}
	// The number of shares allocated for CPU. Used to
	// determine resource allocation in case of resource contention. If this is set,
	// `memory_share_level` must be `custom`.
	MemoryShares interface{}
	// The name of the resource pool.
	Name interface{}
	// The [managed object ID][docs-about-morefs]
	// of the parent resource pool. This can be the root resource pool for a cluster
	// or standalone host, or a resource pool itself. When moving a resource pool
	// from one parent resource pool to another, both must share a common root
	// resource pool or the move will fail.
	ParentResourcePoolId interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
}

Input properties used for looking up and filtering ResourcePool resources.

type StorageDrsVmOverride

type StorageDrsVmOverride struct {
	// contains filtered or unexported fields
}

The `vsphere_storage_drs_vm_override` resource can be used to add a Storage DRS override to a datastore cluster for a specific virtual machine. With this resource, one can enable or disable Storage DRS, and control the automation level and disk affinity for a single virtual machine without affecting the rest of the datastore cluster.

For more information on vSphere datastore clusters and Storage DRS, see [this page]ref-vsphere-datastore-clusters.

func GetStorageDrsVmOverride

func GetStorageDrsVmOverride(ctx *pulumi.Context,
	name string, id pulumi.ID, state *StorageDrsVmOverrideState, opts ...pulumi.ResourceOpt) (*StorageDrsVmOverride, error)

GetStorageDrsVmOverride gets an existing StorageDrsVmOverride resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewStorageDrsVmOverride

func NewStorageDrsVmOverride(ctx *pulumi.Context,
	name string, args *StorageDrsVmOverrideArgs, opts ...pulumi.ResourceOpt) (*StorageDrsVmOverride, error)

NewStorageDrsVmOverride registers a new resource with the given unique name, arguments, and options.

func (*StorageDrsVmOverride) DatastoreClusterId

func (r *StorageDrsVmOverride) DatastoreClusterId() *pulumi.StringOutput

The [managed object reference ID][docs-about-morefs] of the datastore cluster to put the override in. Forces a new resource if changed.

func (*StorageDrsVmOverride) ID

ID is this resource's unique identifier assigned by its provider.

func (*StorageDrsVmOverride) SdrsAutomationLevel

func (r *StorageDrsVmOverride) SdrsAutomationLevel() *pulumi.StringOutput

Overrides any Storage DRS automation levels for this virtual machine. Can be one of `automated` or `manual`. When not specified, the datastore cluster's settings are used according to the [specific SDRS subsystem][tf-vsphere-datastore-cluster-sdrs-levels].

func (*StorageDrsVmOverride) SdrsEnabled

func (r *StorageDrsVmOverride) SdrsEnabled() *pulumi.StringOutput

Overrides the default Storage DRS setting for this virtual machine. When not specified, the datastore cluster setting is used.

func (*StorageDrsVmOverride) SdrsIntraVmAffinity

func (r *StorageDrsVmOverride) SdrsIntraVmAffinity() *pulumi.StringOutput

Overrides the intra-VM affinity setting for this virtual machine. When `true`, all disks for this virtual machine will be kept on the same datastore. When `false`, Storage DRS may locate individual disks on different datastores if it helps satisfy cluster requirements. When not specified, the datastore cluster's settings are used.

func (*StorageDrsVmOverride) URN

URN is this resource's unique name assigned by Pulumi.

func (*StorageDrsVmOverride) VirtualMachineId

func (r *StorageDrsVmOverride) VirtualMachineId() *pulumi.StringOutput

The UUID of the virtual machine to create the override for. Forces a new resource if changed.

type StorageDrsVmOverrideArgs

type StorageDrsVmOverrideArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the datastore cluster to put the override in.
	// Forces a new resource if changed.
	DatastoreClusterId interface{}
	// Overrides any Storage DRS automation
	// levels for this virtual machine. Can be one of `automated` or `manual`. When
	// not specified, the datastore cluster's settings are used according to the
	// [specific SDRS subsystem][tf-vsphere-datastore-cluster-sdrs-levels].
	SdrsAutomationLevel interface{}
	// Overrides the default Storage DRS setting for
	// this virtual machine. When not specified, the datastore cluster setting is
	// used.
	SdrsEnabled interface{}
	// Overrides the intra-VM affinity setting
	// for this virtual machine. When `true`, all disks for this virtual machine
	// will be kept on the same datastore. When `false`, Storage DRS may locate
	// individual disks on different datastores if it helps satisfy cluster
	// requirements. When not specified, the datastore cluster's settings are used.
	SdrsIntraVmAffinity interface{}
	// The UUID of the virtual machine to create
	// the override for.  Forces a new resource if changed.
	VirtualMachineId interface{}
}

The set of arguments for constructing a StorageDrsVmOverride resource.

type StorageDrsVmOverrideState

type StorageDrsVmOverrideState struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the datastore cluster to put the override in.
	// Forces a new resource if changed.
	DatastoreClusterId interface{}
	// Overrides any Storage DRS automation
	// levels for this virtual machine. Can be one of `automated` or `manual`. When
	// not specified, the datastore cluster's settings are used according to the
	// [specific SDRS subsystem][tf-vsphere-datastore-cluster-sdrs-levels].
	SdrsAutomationLevel interface{}
	// Overrides the default Storage DRS setting for
	// this virtual machine. When not specified, the datastore cluster setting is
	// used.
	SdrsEnabled interface{}
	// Overrides the intra-VM affinity setting
	// for this virtual machine. When `true`, all disks for this virtual machine
	// will be kept on the same datastore. When `false`, Storage DRS may locate
	// individual disks on different datastores if it helps satisfy cluster
	// requirements. When not specified, the datastore cluster's settings are used.
	SdrsIntraVmAffinity interface{}
	// The UUID of the virtual machine to create
	// the override for.  Forces a new resource if changed.
	VirtualMachineId interface{}
}

Input properties used for looking up and filtering StorageDrsVmOverride resources.

type Tag

type Tag struct {
	// contains filtered or unexported fields
}

The `vsphere_tag` resource can be used to create and manage tags, which allow you to attach metadata to objects in the vSphere inventory to make these objects more sortable and searchable.

For more information about tags, click [here]ext-tags-general.

~> **NOTE:** Tagging support is unsupported on direct ESXi connections and requires vCenter 6.0 or higher.

func GetTag

func GetTag(ctx *pulumi.Context,
	name string, id pulumi.ID, state *TagState, opts ...pulumi.ResourceOpt) (*Tag, error)

GetTag gets an existing Tag resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTag

func NewTag(ctx *pulumi.Context,
	name string, args *TagArgs, opts ...pulumi.ResourceOpt) (*Tag, error)

NewTag registers a new resource with the given unique name, arguments, and options.

func (*Tag) CategoryId

func (r *Tag) CategoryId() *pulumi.StringOutput

The unique identifier of the parent category in which this tag will be created. Forces a new resource if changed.

func (*Tag) Description

func (r *Tag) Description() *pulumi.StringOutput

A description for the tag.

func (*Tag) ID

func (r *Tag) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*Tag) Name

func (r *Tag) Name() *pulumi.StringOutput

The display name of the tag. The name must be unique within its category.

func (*Tag) URN

func (r *Tag) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

type TagArgs

type TagArgs struct {
	// The unique identifier of the parent category in
	// which this tag will be created. Forces a new resource if changed.
	CategoryId interface{}
	// A description for the tag.
	Description interface{}
	// The display name of the tag. The name must be unique
	// within its category.
	Name interface{}
}

The set of arguments for constructing a Tag resource.

type TagCategory

type TagCategory struct {
	// contains filtered or unexported fields
}

The `vsphere_tag_category` resource can be used to create and manage tag categories, which determine how tags are grouped together and applied to specific objects.

For more information about tags, click [here]ext-tags-general. For more information about tag categories specifically, click [here]ext-tag-categories.

~> **NOTE:** Tagging support is unsupported on direct ESXi connections and requires vCenter 6.0 or higher.

func GetTagCategory

func GetTagCategory(ctx *pulumi.Context,
	name string, id pulumi.ID, state *TagCategoryState, opts ...pulumi.ResourceOpt) (*TagCategory, error)

GetTagCategory gets an existing TagCategory resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTagCategory

func NewTagCategory(ctx *pulumi.Context,
	name string, args *TagCategoryArgs, opts ...pulumi.ResourceOpt) (*TagCategory, error)

NewTagCategory registers a new resource with the given unique name, arguments, and options.

func (*TagCategory) AssociableTypes

func (r *TagCategory) AssociableTypes() *pulumi.ArrayOutput

A list object types that this category is valid to be assigned to. For a full list, click here.

func (*TagCategory) Cardinality

func (r *TagCategory) Cardinality() *pulumi.StringOutput

The number of tags that can be assigned from this category to a single object at once. Can be one of `SINGLE` (object can only be assigned one tag in this category), to `MULTIPLE` (object can be assigned multiple tags in this category). Forces a new resource if changed.

func (*TagCategory) Description

func (r *TagCategory) Description() *pulumi.StringOutput

A description for the category.

func (*TagCategory) ID

func (r *TagCategory) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*TagCategory) Name

func (r *TagCategory) Name() *pulumi.StringOutput

The name of the category.

func (*TagCategory) URN

func (r *TagCategory) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

type TagCategoryArgs

type TagCategoryArgs struct {
	// A list object types that this category is
	// valid to be assigned to. For a full list, click
	// here.
	AssociableTypes interface{}
	// The number of tags that can be assigned from this
	// category to a single object at once. Can be one of `SINGLE` (object can only
	// be assigned one tag in this category), to `MULTIPLE` (object can be assigned
	// multiple tags in this category). Forces a new resource if changed.
	Cardinality interface{}
	// A description for the category.
	Description interface{}
	// The name of the category.
	Name interface{}
}

The set of arguments for constructing a TagCategory resource.

type TagCategoryState

type TagCategoryState struct {
	// A list object types that this category is
	// valid to be assigned to. For a full list, click
	// here.
	AssociableTypes interface{}
	// The number of tags that can be assigned from this
	// category to a single object at once. Can be one of `SINGLE` (object can only
	// be assigned one tag in this category), to `MULTIPLE` (object can be assigned
	// multiple tags in this category). Forces a new resource if changed.
	Cardinality interface{}
	// A description for the category.
	Description interface{}
	// The name of the category.
	Name interface{}
}

Input properties used for looking up and filtering TagCategory resources.

type TagState

type TagState struct {
	// The unique identifier of the parent category in
	// which this tag will be created. Forces a new resource if changed.
	CategoryId interface{}
	// A description for the tag.
	Description interface{}
	// The display name of the tag. The name must be unique
	// within its category.
	Name interface{}
}

Input properties used for looking up and filtering Tag resources.

type VappContainer

type VappContainer struct {
	// contains filtered or unexported fields
}

The `vsphere_vapp_container` resource can be used to create and manage vApps.

For more information on vSphere vApps, see [this page]ref-vsphere-vapp.

func GetVappContainer

func GetVappContainer(ctx *pulumi.Context,
	name string, id pulumi.ID, state *VappContainerState, opts ...pulumi.ResourceOpt) (*VappContainer, error)

GetVappContainer gets an existing VappContainer resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewVappContainer

func NewVappContainer(ctx *pulumi.Context,
	name string, args *VappContainerArgs, opts ...pulumi.ResourceOpt) (*VappContainer, error)

NewVappContainer registers a new resource with the given unique name, arguments, and options.

func (*VappContainer) CpuExpandable

func (r *VappContainer) CpuExpandable() *pulumi.BoolOutput

Determines if the reservation on a vApp container can grow beyond the specified value if the parent resource pool has unreserved resources. Default: `true`

func (*VappContainer) CpuLimit

func (r *VappContainer) CpuLimit() *pulumi.IntOutput

The CPU utilization of a vApp container will not exceed this limit, even if there are available resources. Set to `-1` for unlimited. Default: `-1`

func (*VappContainer) CpuReservation

func (r *VappContainer) CpuReservation() *pulumi.IntOutput

Amount of CPU (MHz) that is guaranteed available to the vApp container. Default: `0`

func (*VappContainer) CpuShareLevel

func (r *VappContainer) CpuShareLevel() *pulumi.StringOutput

The CPU allocation level. The level is a simplified view of shares. Levels map to a pre-determined set of numeric values for shares. Can be one of `low`, `normal`, `high`, or `custom`. When `low`, `normal`, or `high` are specified values in `cpu_shares` will be ignored. Default: `normal`

func (*VappContainer) CpuShares

func (r *VappContainer) CpuShares() *pulumi.IntOutput

The number of shares allocated for CPU. Used to determine resource allocation in case of resource contention. If this is set, `cpu_share_level` must be `custom`.

func (*VappContainer) CustomAttributes

func (r *VappContainer) CustomAttributes() *pulumi.MapOutput

A list of custom attributes to set on this resource.

func (*VappContainer) ID

func (r *VappContainer) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*VappContainer) MemoryExpandable

func (r *VappContainer) MemoryExpandable() *pulumi.BoolOutput

Determines if the reservation on a vApp container can grow beyond the specified value if the parent resource pool has unreserved resources. Default: `true`

func (*VappContainer) MemoryLimit

func (r *VappContainer) MemoryLimit() *pulumi.IntOutput

The CPU utilization of a vApp container will not exceed this limit, even if there are available resources. Set to `-1` for unlimited. Default: `-1`

func (*VappContainer) MemoryReservation

func (r *VappContainer) MemoryReservation() *pulumi.IntOutput

Amount of CPU (MHz) that is guaranteed available to the vApp container. Default: `0`

func (*VappContainer) MemoryShareLevel

func (r *VappContainer) MemoryShareLevel() *pulumi.StringOutput

The CPU allocation level. The level is a simplified view of shares. Levels map to a pre-determined set of numeric values for shares. Can be one of `low`, `normal`, `high`, or `custom`. When `low`, `normal`, or `high` are specified values in `memory_shares` will be ignored. Default: `normal`

func (*VappContainer) MemoryShares

func (r *VappContainer) MemoryShares() *pulumi.IntOutput

The number of shares allocated for CPU. Used to determine resource allocation in case of resource contention. If this is set, `memory_share_level` must be `custom`.

func (*VappContainer) Name

func (r *VappContainer) Name() *pulumi.StringOutput

The name of the vApp container.

func (*VappContainer) ParentFolderId

func (r *VappContainer) ParentFolderId() *pulumi.StringOutput

The [managed object ID][docs-about-morefs] of the vApp container's parent folder.

func (*VappContainer) ParentResourcePoolId

func (r *VappContainer) ParentResourcePoolId() *pulumi.StringOutput

The [managed object ID][docs-about-morefs] of the parent resource pool. This can be the root resource pool for a cluster or standalone host, or a resource pool itself. When moving a vApp container from one parent resource pool to another, both must share a common root resource pool or the move will fail.

func (*VappContainer) Tags

func (r *VappContainer) Tags() *pulumi.ArrayOutput

The IDs of any tags to attach to this resource. See [here][docs-applying-tags] for a reference on how to apply tags.

func (*VappContainer) URN

func (r *VappContainer) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

type VappContainerArgs

type VappContainerArgs struct {
	// Determines if the reservation on a vApp
	// container can grow beyond the specified value if the parent resource pool has
	// unreserved resources. Default: `true`
	CpuExpandable interface{}
	// The CPU utilization of a vApp container will not
	// exceed this limit, even if there are available resources. Set to `-1` for
	// unlimited.
	// Default: `-1`
	CpuLimit interface{}
	// Amount of CPU (MHz) that is guaranteed
	// available to the vApp container. Default: `0`
	CpuReservation interface{}
	// The CPU allocation level. The level is a
	// simplified view of shares. Levels map to a pre-determined set of numeric
	// values for shares. Can be one of `low`, `normal`, `high`, or `custom`. When
	// `low`, `normal`, or `high` are specified values in `cpu_shares` will be
	// ignored.  Default: `normal`
	CpuShareLevel interface{}
	// The number of shares allocated for CPU. Used to
	// determine resource allocation in case of resource contention. If this is set,
	// `cpu_share_level` must be `custom`.
	CpuShares interface{}
	// A list of custom attributes to set on this resource.
	CustomAttributes interface{}
	// Determines if the reservation on a vApp
	// container can grow beyond the specified value if the parent resource pool has
	// unreserved resources. Default: `true`
	MemoryExpandable interface{}
	// The CPU utilization of a vApp container will not
	// exceed this limit, even if there are available resources. Set to `-1` for
	// unlimited.
	// Default: `-1`
	MemoryLimit interface{}
	// Amount of CPU (MHz) that is guaranteed
	// available to the vApp container. Default: `0`
	MemoryReservation interface{}
	// The CPU allocation level. The level is a
	// simplified view of shares. Levels map to a pre-determined set of numeric
	// values for shares. Can be one of `low`, `normal`, `high`, or `custom`. When
	// `low`, `normal`, or `high` are specified values in `memory_shares` will be
	// ignored.  Default: `normal`
	MemoryShareLevel interface{}
	// The number of shares allocated for CPU. Used to
	// determine resource allocation in case of resource contention. If this is set,
	// `memory_share_level` must be `custom`.
	MemoryShares interface{}
	// The name of the vApp container.
	Name interface{}
	// The [managed object ID][docs-about-morefs] of
	// the vApp container's parent folder.
	ParentFolderId interface{}
	// The [managed object ID][docs-about-morefs]
	// of the parent resource pool. This can be the root resource pool for a cluster
	// or standalone host, or a resource pool itself. When moving a vApp container
	// from one parent resource pool to another, both must share a common root
	// resource pool or the move will fail.
	ParentResourcePoolId interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
}

The set of arguments for constructing a VappContainer resource.

type VappContainerState

type VappContainerState struct {
	// Determines if the reservation on a vApp
	// container can grow beyond the specified value if the parent resource pool has
	// unreserved resources. Default: `true`
	CpuExpandable interface{}
	// The CPU utilization of a vApp container will not
	// exceed this limit, even if there are available resources. Set to `-1` for
	// unlimited.
	// Default: `-1`
	CpuLimit interface{}
	// Amount of CPU (MHz) that is guaranteed
	// available to the vApp container. Default: `0`
	CpuReservation interface{}
	// The CPU allocation level. The level is a
	// simplified view of shares. Levels map to a pre-determined set of numeric
	// values for shares. Can be one of `low`, `normal`, `high`, or `custom`. When
	// `low`, `normal`, or `high` are specified values in `cpu_shares` will be
	// ignored.  Default: `normal`
	CpuShareLevel interface{}
	// The number of shares allocated for CPU. Used to
	// determine resource allocation in case of resource contention. If this is set,
	// `cpu_share_level` must be `custom`.
	CpuShares interface{}
	// A list of custom attributes to set on this resource.
	CustomAttributes interface{}
	// Determines if the reservation on a vApp
	// container can grow beyond the specified value if the parent resource pool has
	// unreserved resources. Default: `true`
	MemoryExpandable interface{}
	// The CPU utilization of a vApp container will not
	// exceed this limit, even if there are available resources. Set to `-1` for
	// unlimited.
	// Default: `-1`
	MemoryLimit interface{}
	// Amount of CPU (MHz) that is guaranteed
	// available to the vApp container. Default: `0`
	MemoryReservation interface{}
	// The CPU allocation level. The level is a
	// simplified view of shares. Levels map to a pre-determined set of numeric
	// values for shares. Can be one of `low`, `normal`, `high`, or `custom`. When
	// `low`, `normal`, or `high` are specified values in `memory_shares` will be
	// ignored.  Default: `normal`
	MemoryShareLevel interface{}
	// The number of shares allocated for CPU. Used to
	// determine resource allocation in case of resource contention. If this is set,
	// `memory_share_level` must be `custom`.
	MemoryShares interface{}
	// The name of the vApp container.
	Name interface{}
	// The [managed object ID][docs-about-morefs] of
	// the vApp container's parent folder.
	ParentFolderId interface{}
	// The [managed object ID][docs-about-morefs]
	// of the parent resource pool. This can be the root resource pool for a cluster
	// or standalone host, or a resource pool itself. When moving a vApp container
	// from one parent resource pool to another, both must share a common root
	// resource pool or the move will fail.
	ParentResourcePoolId interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
}

Input properties used for looking up and filtering VappContainer resources.

type VirtualDisk

type VirtualDisk struct {
	// contains filtered or unexported fields
}

The `vsphere_virtual_disk` resource can be used to create virtual disks outside of any given [`vsphere_virtual_machine`][docs-vsphere-virtual-machine] resource. These disks can be attached to a virtual machine by creating a disk block with the [`attach`][docs-vsphere-virtual-machine-disk-attach] parameter.

[docs-vsphere-virtual-machine]: /docs/providers/vsphere/r/virtual_machine.html [docs-vsphere-virtual-machine-disk-attach]: /docs/providers/vsphere/r/virtual_machine.html#attach

func GetVirtualDisk

func GetVirtualDisk(ctx *pulumi.Context,
	name string, id pulumi.ID, state *VirtualDiskState, opts ...pulumi.ResourceOpt) (*VirtualDisk, error)

GetVirtualDisk gets an existing VirtualDisk resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewVirtualDisk

func NewVirtualDisk(ctx *pulumi.Context,
	name string, args *VirtualDiskArgs, opts ...pulumi.ResourceOpt) (*VirtualDisk, error)

NewVirtualDisk registers a new resource with the given unique name, arguments, and options.

func (*VirtualDisk) AdapterType

func (r *VirtualDisk) AdapterType() *pulumi.StringOutput

The adapter type for this virtual disk. Can be one of `ide`, `lsiLogic`, or `busLogic`. Default: `lsiLogic`.

func (*VirtualDisk) CreateDirectories

func (r *VirtualDisk) CreateDirectories() *pulumi.BoolOutput

Tells the resource to create any directories that are a part of the `vmdk_path` parameter if they are missing. Default: `false`.

func (*VirtualDisk) Datacenter

func (r *VirtualDisk) Datacenter() *pulumi.StringOutput

The name of the datacenter in which to create the disk. Can be omitted when when ESXi or if there is only one datacenter in your infrastructure.

func (*VirtualDisk) Datastore

func (r *VirtualDisk) Datastore() *pulumi.StringOutput

The name of the datastore in which to create the disk.

func (*VirtualDisk) ID

func (r *VirtualDisk) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*VirtualDisk) Size

func (r *VirtualDisk) Size() *pulumi.IntOutput

Size of the disk (in GB).

func (*VirtualDisk) Type

func (r *VirtualDisk) Type() *pulumi.StringOutput

The type of disk to create. Can be one of `eagerZeroedThick`, `lazy`, or `thin`. Default: `eagerZeroedThick`. For information on what each kind of disk provisioning policy means, click [here][docs-vmware-vm-disk-provisioning].

func (*VirtualDisk) URN

func (r *VirtualDisk) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

func (*VirtualDisk) VmdkPath

func (r *VirtualDisk) VmdkPath() *pulumi.StringOutput

The path, including filename, of the virtual disk to be created. This needs to end in `.vmdk`.

type VirtualDiskArgs

type VirtualDiskArgs struct {
	// The adapter type for this virtual disk. Can be
	// one of `ide`, `lsiLogic`, or `busLogic`.  Default: `lsiLogic`.
	AdapterType interface{}
	// Tells the resource to create any
	// directories that are a part of the `vmdk_path` parameter if they are missing.
	// Default: `false`.
	CreateDirectories interface{}
	// The name of the datacenter in which to create the
	// disk. Can be omitted when when ESXi or if there is only one datacenter in
	// your infrastructure.
	Datacenter interface{}
	// The name of the datastore in which to create the
	// disk.
	Datastore interface{}
	// Size of the disk (in GB).
	Size interface{}
	// The type of disk to create. Can be one of
	// `eagerZeroedThick`, `lazy`, or `thin`. Default: `eagerZeroedThick`. For
	// information on what each kind of disk provisioning policy means, click
	// [here][docs-vmware-vm-disk-provisioning].
	Type interface{}
	// The path, including filename, of the virtual disk to
	// be created.  This needs to end in `.vmdk`.
	VmdkPath interface{}
}

The set of arguments for constructing a VirtualDisk resource.

type VirtualDiskState

type VirtualDiskState struct {
	// The adapter type for this virtual disk. Can be
	// one of `ide`, `lsiLogic`, or `busLogic`.  Default: `lsiLogic`.
	AdapterType interface{}
	// Tells the resource to create any
	// directories that are a part of the `vmdk_path` parameter if they are missing.
	// Default: `false`.
	CreateDirectories interface{}
	// The name of the datacenter in which to create the
	// disk. Can be omitted when when ESXi or if there is only one datacenter in
	// your infrastructure.
	Datacenter interface{}
	// The name of the datastore in which to create the
	// disk.
	Datastore interface{}
	// Size of the disk (in GB).
	Size interface{}
	// The type of disk to create. Can be one of
	// `eagerZeroedThick`, `lazy`, or `thin`. Default: `eagerZeroedThick`. For
	// information on what each kind of disk provisioning policy means, click
	// [here][docs-vmware-vm-disk-provisioning].
	Type interface{}
	// The path, including filename, of the virtual disk to
	// be created.  This needs to end in `.vmdk`.
	VmdkPath interface{}
}

Input properties used for looking up and filtering VirtualDisk resources.

type VirtualMachine

type VirtualMachine struct {
	// contains filtered or unexported fields
}

The `vsphere_virtual_machine` resource can be used to manage the complex lifecycle of a virtual machine. It supports management of disk, network interface, and CDROM devices, creation from scratch or cloning from template, and migration through both host and storage vMotion.

For more details on working with virtual machines in vSphere, see [this page]vmware-docs-vm-management.

func GetVirtualMachine

func GetVirtualMachine(ctx *pulumi.Context,
	name string, id pulumi.ID, state *VirtualMachineState, opts ...pulumi.ResourceOpt) (*VirtualMachine, error)

GetVirtualMachine gets an existing VirtualMachine resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewVirtualMachine

func NewVirtualMachine(ctx *pulumi.Context,
	name string, args *VirtualMachineArgs, opts ...pulumi.ResourceOpt) (*VirtualMachine, error)

NewVirtualMachine registers a new resource with the given unique name, arguments, and options.

func (*VirtualMachine) AlternateGuestName

func (r *VirtualMachine) AlternateGuestName() *pulumi.StringOutput

The guest name for the operating system when `guest_id` is `other` or `other-64`.

func (*VirtualMachine) Annotation

func (r *VirtualMachine) Annotation() *pulumi.StringOutput

A user-provided description of the virtual machine. The default is no annotation.

func (*VirtualMachine) BootDelay

func (r *VirtualMachine) BootDelay() *pulumi.IntOutput

The number of milliseconds to wait before starting the boot sequence. The default is no delay.

func (*VirtualMachine) BootRetryDelay

func (r *VirtualMachine) BootRetryDelay() *pulumi.IntOutput

The number of milliseconds to wait before retrying the boot sequence. This only valid if `boot_retry_enabled` is true. Default: `10000` (10 seconds).

func (*VirtualMachine) BootRetryEnabled

func (r *VirtualMachine) BootRetryEnabled() *pulumi.BoolOutput

If set to true, a virtual machine that fails to boot will try again after the delay defined in `boot_retry_delay`. Default: `false`.

func (*VirtualMachine) Cdrom

func (r *VirtualMachine) Cdrom() *pulumi.Output

A specification for a CDROM device on this virtual machine. See CDROM options below.

func (*VirtualMachine) ChangeVersion

func (r *VirtualMachine) ChangeVersion() *pulumi.StringOutput

A unique identifier for a given version of the last configuration applied, such the timestamp of the last update to the configuration.

func (*VirtualMachine) Clone

func (r *VirtualMachine) Clone() *pulumi.Output

When specified, the VM will be created as a clone of a specified template. Optional customization options can be submitted as well. See creating a virtual machine from a template for more details.

func (*VirtualMachine) CpuHotAddEnabled

func (r *VirtualMachine) CpuHotAddEnabled() *pulumi.BoolOutput

Allow CPUs to be added to this virtual machine while it is running.

func (*VirtualMachine) CpuHotRemoveEnabled

func (r *VirtualMachine) CpuHotRemoveEnabled() *pulumi.BoolOutput

Allow CPUs to be removed to this virtual machine while it is running.

func (*VirtualMachine) CpuLimit

func (r *VirtualMachine) CpuLimit() *pulumi.IntOutput

The maximum amount of CPU (in MHz) that this virtual machine can consume, regardless of available resources. The default is no limit.

func (*VirtualMachine) CpuPerformanceCountersEnabled

func (r *VirtualMachine) CpuPerformanceCountersEnabled() *pulumi.BoolOutput

Enable CPU performance counters on this virtual machine. Default: `false`.

func (*VirtualMachine) CpuReservation

func (r *VirtualMachine) CpuReservation() *pulumi.IntOutput

The amount of CPU (in MHz) that this virtual machine is guaranteed. The default is no reservation.

func (*VirtualMachine) CpuShareCount

func (r *VirtualMachine) CpuShareCount() *pulumi.IntOutput

The number of CPU shares allocated to the virtual machine when the `cpu_share_level` is `custom`.

func (*VirtualMachine) CpuShareLevel

func (r *VirtualMachine) CpuShareLevel() *pulumi.StringOutput

The allocation level for CPU resources. Can be one of `high`, `low`, `normal`, or `custom`. Default: `custom`.

func (*VirtualMachine) CustomAttributes

func (r *VirtualMachine) CustomAttributes() *pulumi.MapOutput

Map of custom attribute ids to attribute value strings to set for virtual machine. See [here][docs-setting-custom-attributes] for a reference on how to set values for custom attributes.

func (*VirtualMachine) DatastoreClusterId

func (r *VirtualMachine) DatastoreClusterId() *pulumi.StringOutput

The [managed object reference ID][docs-about-morefs] of the datastore cluster ID to use. This setting applies to entire virtual machine and implies that you wish to use Storage DRS with this virtual machine. See the section on virtual machine migration for details on changing this value.

func (*VirtualMachine) DatastoreId

func (r *VirtualMachine) DatastoreId() *pulumi.StringOutput

The datastore ID that the ISO is located in. Requried for using a datastore ISO. Conflicts with `client_device`.

func (*VirtualMachine) DefaultIpAddress

func (r *VirtualMachine) DefaultIpAddress() *pulumi.StringOutput

The IP address selected by Terraform to be used with any [provisioners][tf-docs-provisioners] configured on this resource. Whenever possible, this is the first IPv4 address that is reachable through the default gateway configured on the machine, then the first reachable IPv6 address, and then the first general discovered address if neither exist. If VMware tools is not running on the virtual machine, or if the VM is powered off, this value will be blank.

func (*VirtualMachine) Disks

func (r *VirtualMachine) Disks() *pulumi.ArrayOutput

A specification for a virtual disk device on this virtual machine. See disk options below.

func (*VirtualMachine) EfiSecureBootEnabled

func (r *VirtualMachine) EfiSecureBootEnabled() *pulumi.BoolOutput

When the `firmware` type is set to is `efi`, this enables EFI secure boot. Default: `false`.

func (*VirtualMachine) EnableDiskUuid

func (r *VirtualMachine) EnableDiskUuid() *pulumi.BoolOutput

Expose the UUIDs of attached virtual disks to the virtual machine, allowing access to them in the guest. Default: `false`.

func (*VirtualMachine) EnableLogging

func (r *VirtualMachine) EnableLogging() *pulumi.BoolOutput

Enable logging of virtual machine events to a log file stored in the virtual machine directory. Default: `false`.

func (*VirtualMachine) EptRviMode

func (r *VirtualMachine) EptRviMode() *pulumi.StringOutput

The EPT/RVI (hardware memory virtualization) setting for this virtual machine. Can be one of `automatic`, `on`, or `off`. Default: `automatic`.

func (*VirtualMachine) ExtraConfig

func (r *VirtualMachine) ExtraConfig() *pulumi.MapOutput

Extra configuration data for this virtual machine. Can be used to supply advanced parameters not normally in configuration, such as data for cloud-config (under the guestinfo namespace).

func (*VirtualMachine) Firmware

func (r *VirtualMachine) Firmware() *pulumi.StringOutput

The firmware interface to use on the virtual machine. Can be one of `bios` or `EFI`. Default: `bios`.

func (*VirtualMachine) Folder

func (r *VirtualMachine) Folder() *pulumi.StringOutput

The path to the folder to put this virtual machine in, relative to the datacenter that the resource pool is in.

func (*VirtualMachine) ForcePowerOff

func (r *VirtualMachine) ForcePowerOff() *pulumi.BoolOutput

If a guest shutdown failed or timed out while updating or destroying (see `shutdown_wait_timeout`), force the power-off of the virtual machine. Default: `true`.

func (*VirtualMachine) GuestId

func (r *VirtualMachine) GuestId() *pulumi.StringOutput

The guest ID for the operating system type. For a full list of possible values, see [here][vmware-docs-guest-ids]. Default: `other-64`.

func (*VirtualMachine) GuestIpAddresses

func (r *VirtualMachine) GuestIpAddresses() *pulumi.ArrayOutput

The current list of IP addresses on this machine, including the value of `default_ip_address`. If VMware tools is not running on the virtual machine, or if the VM is powered off, this list will be empty. * `moid`: The [managed object reference ID][docs-about-morefs] of the created virtual machine.

func (*VirtualMachine) HostSystemId

func (r *VirtualMachine) HostSystemId() *pulumi.StringOutput

An optional [managed object reference ID][docs-about-morefs] of a host to put this virtual machine on. See the section on virtual machine migration for details on changing this value. If a `host_system_id` is not supplied, vSphere will select a host in the resource pool to place the virtual machine, according to any defaults or DRS policies in place.

func (*VirtualMachine) HvMode

func (r *VirtualMachine) HvMode() *pulumi.StringOutput

The (non-nested) hardware virtualization setting for this virtual machine. Can be one of `hvAuto`, `hvOn`, or `hvOff`. Default: `hvAuto`.

func (*VirtualMachine) ID

func (r *VirtualMachine) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*VirtualMachine) Imported

func (r *VirtualMachine) Imported() *pulumi.BoolOutput

This is flagged if the virtual machine has been imported, or the state has been migrated from a previous version of the resource. It influences the behavior of the first post-import apply operation. See the section on importing below.

func (*VirtualMachine) LatencySensitivity

func (r *VirtualMachine) LatencySensitivity() *pulumi.StringOutput

Controls the scheduling delay of the virtual machine. Use a higher sensitivity for applications that require lower latency, such as VOIP, media player applications, or applications that require frequent access to mouse or keyboard devices. Can be one of `low`, `normal`, `medium`, or `high`.

func (*VirtualMachine) Memory

func (r *VirtualMachine) Memory() *pulumi.IntOutput

The size of the virtual machine's memory, in MB. Default: `1024` (1 GB).

func (*VirtualMachine) MemoryHotAddEnabled

func (r *VirtualMachine) MemoryHotAddEnabled() *pulumi.BoolOutput

Allow memory to be added to this virtual machine while it is running.

func (*VirtualMachine) MemoryLimit

func (r *VirtualMachine) MemoryLimit() *pulumi.IntOutput

The maximum amount of memory (in MB) that this virtual machine can consume, regardless of available resources. The default is no limit.

func (*VirtualMachine) MemoryReservation

func (r *VirtualMachine) MemoryReservation() *pulumi.IntOutput

The amount of memory (in MB) that this virtual machine is guaranteed. The default is no reservation.

func (*VirtualMachine) MemoryShareCount

func (r *VirtualMachine) MemoryShareCount() *pulumi.IntOutput

The number of memory shares allocated to the virtual machine when the `memory_share_level` is `custom`.

func (*VirtualMachine) MemoryShareLevel

func (r *VirtualMachine) MemoryShareLevel() *pulumi.StringOutput

The allocation level for memory resources. Can be one of `high`, `low`, `normal`, or `custom`. Default: `custom`.

func (*VirtualMachine) MigrateWaitTimeout

func (r *VirtualMachine) MigrateWaitTimeout() *pulumi.IntOutput

The amount of time, in minutes, to wait for a virtual machine migration to complete before failing. Default: 10 minutes. Also see the section on virtual machine migration.

func (*VirtualMachine) Moid

func (r *VirtualMachine) Moid() *pulumi.StringOutput

The machine object ID from VMWare

func (*VirtualMachine) Name

func (r *VirtualMachine) Name() *pulumi.StringOutput

An alias for both `label` and `path`, the latter when using `attach`. Required if not using `label`.

func (*VirtualMachine) NestedHvEnabled

func (r *VirtualMachine) NestedHvEnabled() *pulumi.BoolOutput

Enable nested hardware virtualization on this virtual machine, facilitating nested virtualization in the guest. Default: `false`.

func (*VirtualMachine) NetworkInterfaces

func (r *VirtualMachine) NetworkInterfaces() *pulumi.ArrayOutput

A specification for a virtual NIC on this virtual machine. See network interface options below.

func (*VirtualMachine) NumCoresPerSocket

func (r *VirtualMachine) NumCoresPerSocket() *pulumi.IntOutput

The number of cores to distribute among the CPUs in this virtual machine. If specified, the value supplied to `num_cpus` must be evenly divisible by this value. Default: `1`.

func (*VirtualMachine) NumCpus

func (r *VirtualMachine) NumCpus() *pulumi.IntOutput

The number of virtual processors to assign to this virtual machine. Default: `1`.

func (*VirtualMachine) RebootRequired

func (r *VirtualMachine) RebootRequired() *pulumi.BoolOutput

Value internal to Terraform used to determine if a configuration set change requires a reboot. This value is only useful during an update process and gets reset on refresh.

func (*VirtualMachine) ResourcePoolId

func (r *VirtualMachine) ResourcePoolId() *pulumi.StringOutput

The [managed object reference ID][docs-about-morefs] of the resource pool to put this virtual machine in. See the section on virtual machine migration for details on changing this value.

func (*VirtualMachine) RunToolsScriptsAfterPowerOn

func (r *VirtualMachine) RunToolsScriptsAfterPowerOn() *pulumi.BoolOutput

Enable the execution of post-power-on scripts when VMware tools is installed. Default: `true`.

func (*VirtualMachine) RunToolsScriptsAfterResume

func (r *VirtualMachine) RunToolsScriptsAfterResume() *pulumi.BoolOutput

Enable the execution of post-resume scripts when VMware tools is installed. Default: `true`.

func (*VirtualMachine) RunToolsScriptsBeforeGuestReboot

func (r *VirtualMachine) RunToolsScriptsBeforeGuestReboot() *pulumi.BoolOutput

Enable the execution of pre-reboot scripts when VMware tools is installed. Default: `false`.

func (*VirtualMachine) RunToolsScriptsBeforeGuestShutdown

func (r *VirtualMachine) RunToolsScriptsBeforeGuestShutdown() *pulumi.BoolOutput

Enable the execution of pre-shutdown scripts when VMware tools is installed. Default: `true`.

func (*VirtualMachine) RunToolsScriptsBeforeGuestStandby

func (r *VirtualMachine) RunToolsScriptsBeforeGuestStandby() *pulumi.BoolOutput

Enable the execution of pre-standby scripts when VMware tools is installed. Default: `true`.

func (*VirtualMachine) ScsiBusSharing

func (r *VirtualMachine) ScsiBusSharing() *pulumi.StringOutput

Mode for sharing the SCSI bus. The modes are physicalSharing, virtualSharing, and noSharing. Default: `noSharing`.

func (*VirtualMachine) ScsiControllerCount

func (r *VirtualMachine) ScsiControllerCount() *pulumi.IntOutput

The number of SCSI controllers that Terraform manages on this virtual machine. This directly affects the amount of disks you can add to the virtual machine and the maximum disk unit number. Note that lowering this value does not remove controllers. Default: `1`.

func (*VirtualMachine) ScsiType

func (r *VirtualMachine) ScsiType() *pulumi.StringOutput

The type of SCSI bus this virtual machine will have. Can be one of lsilogic (LSI Logic Parallel), lsilogic-sas (LSI Logic SAS) or pvscsi (VMware Paravirtual). Defualt: `pvscsi`.

func (*VirtualMachine) ShutdownWaitTimeout

func (r *VirtualMachine) ShutdownWaitTimeout() *pulumi.IntOutput

The amount of time, in minutes, to wait for a graceful guest shutdown when making necessary updates to the virtual machine. If `force_power_off` is set to true, the VM will be force powered-off after this timeout, otherwise an error is returned. Default: 3 minutes.

func (*VirtualMachine) SwapPlacementPolicy

func (r *VirtualMachine) SwapPlacementPolicy() *pulumi.StringOutput

The swap file placement policy for this virtual machine. Can be one of `inherit`, `hostLocal`, or `vmDirectory`. Default: `inherit`.

func (*VirtualMachine) SyncTimeWithHost

func (r *VirtualMachine) SyncTimeWithHost() *pulumi.BoolOutput

Enable guest clock synchronization with the host. Requires VMware tools to be installed. Default: `false`.

func (*VirtualMachine) Tags

func (r *VirtualMachine) Tags() *pulumi.ArrayOutput

The IDs of any tags to attach to this resource. See [here][docs-applying-tags] for a reference on how to apply tags.

func (*VirtualMachine) URN

func (r *VirtualMachine) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

func (*VirtualMachine) Uuid

func (r *VirtualMachine) Uuid() *pulumi.StringOutput

The UUID of the virtual disk's VMDK file. This is used to track the virtual disk on the virtual machine.

func (*VirtualMachine) Vapp

func (r *VirtualMachine) Vapp() *pulumi.Output

Optional vApp configuration. The only sub-key available is `properties`, which is a key/value map of properties for virtual machines imported from OVF or OVA files. See Using vApp properties to supply OVF/OVA configuration for more details.

func (*VirtualMachine) VappTransports

func (r *VirtualMachine) VappTransports() *pulumi.ArrayOutput

Computed value which is only valid for cloned virtual machines. A list of vApp transport methods supported by the source virtual machine or template.

func (*VirtualMachine) VmwareToolsStatus

func (r *VirtualMachine) VmwareToolsStatus() *pulumi.StringOutput

The state of VMware tools in the guest. This will determine the proper course of action for some device operations.

func (*VirtualMachine) VmxPath

func (r *VirtualMachine) VmxPath() *pulumi.StringOutput

The path of the virtual machine's configuration file in the VM's datastore.

func (*VirtualMachine) WaitForGuestNetRoutable

func (r *VirtualMachine) WaitForGuestNetRoutable() *pulumi.BoolOutput

Controls whether or not the guest network waiter waits for a routable address. When `false`, the waiter does not wait for a default gateway, nor are IP addresses checked against any discovered default gateways as part of its success criteria. Default: `true`.

func (*VirtualMachine) WaitForGuestNetTimeout

func (r *VirtualMachine) WaitForGuestNetTimeout() *pulumi.IntOutput

The amount of time, in minutes, to wait for an available IP address on this virtual machine. A value less than 1 disables the waiter. Default: 5 minutes.

type VirtualMachineArgs

type VirtualMachineArgs struct {
	// The guest name for the operating system
	// when `guest_id` is `other` or `other-64`.
	AlternateGuestName interface{}
	// A user-provided description of the virtual machine.
	// The default is no annotation.
	Annotation interface{}
	// The number of milliseconds to wait before starting
	// the boot sequence. The default is no delay.
	BootDelay interface{}
	// The number of milliseconds to wait before
	// retrying the boot sequence. This only valid if `boot_retry_enabled` is true.
	// Default: `10000` (10 seconds).
	BootRetryDelay interface{}
	// If set to true, a virtual machine that
	// fails to boot will try again after the delay defined in `boot_retry_delay`.
	// Default: `false`.
	BootRetryEnabled interface{}
	// A specification for a CDROM device on this virtual
	// machine. See CDROM options below.
	Cdrom interface{}
	// When specified, the VM will be created as a clone of a
	// specified template. Optional customization options can be submitted as well.
	// See creating a virtual machine from a
	// template for more details.
	Clone interface{}
	// Allow CPUs to be added to this virtual
	// machine while it is running.
	CpuHotAddEnabled interface{}
	// Allow CPUs to be removed to this
	// virtual machine while it is running.
	CpuHotRemoveEnabled interface{}
	// The maximum amount of CPU (in MHz) that this virtual
	// machine can consume, regardless of available resources. The default is no
	// limit.
	CpuLimit interface{}
	// Enable CPU performance
	// counters on this virtual machine. Default: `false`.
	CpuPerformanceCountersEnabled interface{}
	// The amount of CPU (in MHz) that this virtual
	// machine is guaranteed. The default is no reservation.
	CpuReservation interface{}
	// The number of CPU shares allocated to the
	// virtual machine when the `cpu_share_level` is `custom`.
	CpuShareCount interface{}
	// The allocation level for CPU resources. Can be
	// one of `high`, `low`, `normal`, or `custom`. Default: `custom`.
	CpuShareLevel interface{}
	// Map of custom attribute ids to attribute
	// value strings to set for virtual machine. See
	// [here][docs-setting-custom-attributes] for a reference on how to set values
	// for custom attributes.
	CustomAttributes interface{}
	// The [managed object reference
	// ID][docs-about-morefs] of the datastore cluster ID to use. This setting
	// applies to entire virtual machine and implies that you wish to use Storage
	// DRS with this virtual machine. See the section on virtual machine
	// migration for details on changing this value.
	DatastoreClusterId interface{}
	// The datastore ID that the ISO is located in.
	// Requried for using a datastore ISO. Conflicts with `client_device`.
	DatastoreId interface{}
	// A specification for a virtual disk device on this virtual
	// machine. See disk options below.
	Disks interface{}
	// When the `firmware` type is set to is
	// `efi`, this enables EFI secure boot. Default: `false`.
	EfiSecureBootEnabled interface{}
	// Expose the UUIDs of attached virtual disks to
	// the virtual machine, allowing access to them in the guest. Default: `false`.
	EnableDiskUuid interface{}
	// Enable logging of virtual machine events to a
	// log file stored in the virtual machine directory. Default: `false`.
	EnableLogging interface{}
	// The EPT/RVI (hardware memory virtualization)
	// setting for this virtual machine. Can be one of `automatic`, `on`, or `off`.
	// Default: `automatic`.
	EptRviMode interface{}
	// Extra configuration data for this virtual
	// machine. Can be used to supply advanced parameters not normally in
	// configuration, such as data for cloud-config (under the guestinfo namespace).
	ExtraConfig interface{}
	// The firmware interface to use on the virtual machine.
	// Can be one of `bios` or `EFI`. Default: `bios`.
	Firmware interface{}
	// The path to the folder to put this virtual machine in,
	// relative to the datacenter that the resource pool is in.
	Folder interface{}
	// If a guest shutdown failed or timed out while
	// updating or destroying (see
	// `shutdown_wait_timeout`), force the power-off of
	// the virtual machine. Default: `true`.
	ForcePowerOff interface{}
	// The guest ID for the operating system type. For a
	// full list of possible values, see [here][vmware-docs-guest-ids]. Default: `other-64`.
	GuestId interface{}
	// An optional [managed object reference
	// ID][docs-about-morefs] of a host to put this virtual machine on. See the
	// section on virtual machine migration for
	// details on changing this value. If a `host_system_id` is not supplied,
	// vSphere will select a host in the resource pool to place the virtual machine,
	// according to any defaults or DRS policies in place.
	HostSystemId interface{}
	// The (non-nested) hardware virtualization setting for
	// this virtual machine. Can be one of `hvAuto`, `hvOn`, or `hvOff`. Default:
	// `hvAuto`.
	HvMode interface{}
	// Controls the scheduling delay of the
	// virtual machine. Use a higher sensitivity for applications that require lower
	// latency, such as VOIP, media player applications, or applications that
	// require frequent access to mouse or keyboard devices. Can be one of `low`,
	// `normal`, `medium`, or `high`.
	LatencySensitivity interface{}
	// The size of the virtual machine's memory, in MB.
	// Default: `1024` (1 GB).
	Memory interface{}
	// Allow memory to be added to this
	// virtual machine while it is running.
	MemoryHotAddEnabled interface{}
	// The maximum amount of memory (in MB) that this
	// virtual machine can consume, regardless of available resources. The default
	// is no limit.
	MemoryLimit interface{}
	// The amount of memory (in MB) that this
	// virtual machine is guaranteed. The default is no reservation.
	MemoryReservation interface{}
	// The number of memory shares allocated to
	// the virtual machine when the `memory_share_level` is `custom`.
	MemoryShareCount interface{}
	// The allocation level for memory resources.
	// Can be one of `high`, `low`, `normal`, or `custom`. Default: `custom`.
	MemoryShareLevel interface{}
	// The amount of time, in minutes, to wait
	// for a virtual machine migration to complete before failing. Default: 10
	// minutes. Also see the section on virtual machine
	// migration.
	MigrateWaitTimeout interface{}
	// An alias for both `label` and `path`, the latter when
	// using `attach`. Required if not using `label`.
	Name interface{}
	// Enable nested hardware virtualization on
	// this virtual machine, facilitating nested virtualization in the guest.
	// Default: `false`.
	NestedHvEnabled interface{}
	// A specification for a virtual NIC on this
	// virtual machine. See network interface options
	// below.
	NetworkInterfaces interface{}
	// The number of cores to distribute among
	// the CPUs in this virtual machine. If specified, the value supplied to
	// `num_cpus` must be evenly divisible by this value. Default: `1`.
	NumCoresPerSocket interface{}
	// The number of virtual processors to assign to this
	// virtual machine. Default: `1`.
	NumCpus interface{}
	// The [managed object reference
	// ID][docs-about-morefs] of the resource pool to put this virtual machine in.
	// See the section on virtual machine migration
	// for details on changing this value.
	ResourcePoolId interface{}
	// Enable the execution of
	// post-power-on scripts when VMware tools is installed. Default: `true`.
	RunToolsScriptsAfterPowerOn interface{}
	// Enable the execution of
	// post-resume scripts when VMware tools is installed. Default: `true`.
	RunToolsScriptsAfterResume interface{}
	// Enable the execution of
	// pre-reboot scripts when VMware tools is installed. Default: `false`.
	RunToolsScriptsBeforeGuestReboot interface{}
	// Enable the execution
	// of pre-shutdown scripts when VMware tools is installed. Default: `true`.
	RunToolsScriptsBeforeGuestShutdown interface{}
	// Enable the execution of
	// pre-standby scripts when VMware tools is installed. Default: `true`.
	RunToolsScriptsBeforeGuestStandby interface{}
	// Mode for sharing the SCSI bus. The modes are
	// physicalSharing, virtualSharing, and noSharing. Default: `noSharing`.
	ScsiBusSharing interface{}
	// The number of SCSI controllers that
	// Terraform manages on this virtual machine. This directly affects the amount
	// of disks you can add to the virtual machine and the maximum disk unit number.
	// Note that lowering this value does not remove controllers. Default: `1`.
	ScsiControllerCount interface{}
	// The type of SCSI bus this virtual machine will have.
	// Can be one of lsilogic (LSI Logic Parallel), lsilogic-sas (LSI Logic SAS) or
	// pvscsi (VMware Paravirtual). Defualt: `pvscsi`.
	ScsiType interface{}
	// The amount of time, in minutes, to wait
	// for a graceful guest shutdown when making necessary updates to the virtual
	// machine. If `force_power_off` is set to true, the VM will be force powered-off
	// after this timeout, otherwise an error is returned. Default: 3 minutes.
	ShutdownWaitTimeout interface{}
	// The swap file placement policy for this
	// virtual machine. Can be one of `inherit`, `hostLocal`, or `vmDirectory`.
	// Default: `inherit`.
	SwapPlacementPolicy interface{}
	// Enable guest clock synchronization with
	// the host. Requires VMware tools to be installed. Default: `false`.
	SyncTimeWithHost interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
	// Optional vApp configuration. The only sub-key available
	// is `properties`, which is a key/value map of properties for virtual machines
	// imported from OVF or OVA files. See Using vApp properties to supply OVF/OVA
	// configuration for
	// more details.
	Vapp interface{}
	// Controls whether or not the guest
	// network waiter waits for a routable address. When `false`, the waiter does
	// not wait for a default gateway, nor are IP addresses checked against any
	// discovered default gateways as part of its success criteria. Default: `true`.
	WaitForGuestNetRoutable interface{}
	// The amount of time, in minutes, to
	// wait for an available IP address on this virtual machine. A value less than 1
	// disables the waiter. Default: 5 minutes.
	WaitForGuestNetTimeout interface{}
}

The set of arguments for constructing a VirtualMachine resource.

type VirtualMachineSnapshot

type VirtualMachineSnapshot struct {
	// contains filtered or unexported fields
}

The `vsphere_virtual_machine_snapshot` resource can be used to manage snapshots for a virtual machine.

For more information on managing snapshots and how they work in VMware, see [here]ext-vm-snapshot-management.

~> **NOTE:** A snapshot in VMware differs from traditional disk snapshots, and can contain the actual running state of the virtual machine, data for all disks that have not been set to be independent from the snapshot (including ones that have been attached via the [attach][docs-vsphere-virtual-machine-disk-attach] parameter to the `vsphere_virtual_machine` `disk` block), and even the configuration of the virtual machine at the time of the snapshot. Virtual machine, disk activity, and configuration changes post-snapshot are not included in the original state. Use this resource with care! Neither VMware nor HashiCorp recommends retaining snapshots for a extended period of time and does NOT recommend using them as as backup feature. For more information on the limitation of virtual machine snapshots, see [here][ext-vm-snap-limitations].

[docs-vsphere-virtual-machine-disk-attach]: /docs/providers/vsphere/r/virtual_machine.html#attach [ext-vm-snap-limitations]: https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.vm_admin.doc/GUID-53F65726-A23B-4CF0-A7D5-48E584B88613.html

func GetVirtualMachineSnapshot

func GetVirtualMachineSnapshot(ctx *pulumi.Context,
	name string, id pulumi.ID, state *VirtualMachineSnapshotState, opts ...pulumi.ResourceOpt) (*VirtualMachineSnapshot, error)

GetVirtualMachineSnapshot gets an existing VirtualMachineSnapshot resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewVirtualMachineSnapshot

func NewVirtualMachineSnapshot(ctx *pulumi.Context,
	name string, args *VirtualMachineSnapshotArgs, opts ...pulumi.ResourceOpt) (*VirtualMachineSnapshot, error)

NewVirtualMachineSnapshot registers a new resource with the given unique name, arguments, and options.

func (*VirtualMachineSnapshot) Consolidate

func (r *VirtualMachineSnapshot) Consolidate() *pulumi.BoolOutput

If set to `true`, the delta disks involved in this snapshot will be consolidated into the parent when this resource is destroyed.

func (*VirtualMachineSnapshot) Description

func (r *VirtualMachineSnapshot) Description() *pulumi.StringOutput

A description for the snapshot.

func (*VirtualMachineSnapshot) ID

ID is this resource's unique identifier assigned by its provider.

func (*VirtualMachineSnapshot) Memory

If set to `true`, a dump of the internal state of the virtual machine is included in the snapshot.

func (*VirtualMachineSnapshot) Quiesce

If set to `true`, and the virtual machine is powered on when the snapshot is taken, VMware Tools is used to quiesce the file system in the virtual machine.

func (*VirtualMachineSnapshot) RemoveChildren

func (r *VirtualMachineSnapshot) RemoveChildren() *pulumi.BoolOutput

If set to `true`, the entire snapshot subtree is removed when this resource is destroyed.

func (*VirtualMachineSnapshot) SnapshotName

func (r *VirtualMachineSnapshot) SnapshotName() *pulumi.StringOutput

The name of the snapshot.

func (*VirtualMachineSnapshot) URN

URN is this resource's unique name assigned by Pulumi.

func (*VirtualMachineSnapshot) VirtualMachineUuid

func (r *VirtualMachineSnapshot) VirtualMachineUuid() *pulumi.StringOutput

The virtual machine UUID.

type VirtualMachineSnapshotArgs

type VirtualMachineSnapshotArgs struct {
	// If set to `true`, the delta disks involved in this
	// snapshot will be consolidated into the parent when this resource is
	// destroyed.
	Consolidate interface{}
	// A description for the snapshot.
	Description interface{}
	// If set to `true`, a dump of the internal state of the
	// virtual machine is included in the snapshot.
	Memory interface{}
	// If set to `true`, and the virtual machine is powered
	// on when the snapshot is taken, VMware Tools is used to quiesce the file
	// system in the virtual machine.
	Quiesce interface{}
	// If set to `true`, the entire snapshot subtree
	// is removed when this resource is destroyed.
	RemoveChildren interface{}
	// The name of the snapshot.
	SnapshotName interface{}
	// The virtual machine UUID.
	VirtualMachineUuid interface{}
}

The set of arguments for constructing a VirtualMachineSnapshot resource.

type VirtualMachineSnapshotState

type VirtualMachineSnapshotState struct {
	// If set to `true`, the delta disks involved in this
	// snapshot will be consolidated into the parent when this resource is
	// destroyed.
	Consolidate interface{}
	// A description for the snapshot.
	Description interface{}
	// If set to `true`, a dump of the internal state of the
	// virtual machine is included in the snapshot.
	Memory interface{}
	// If set to `true`, and the virtual machine is powered
	// on when the snapshot is taken, VMware Tools is used to quiesce the file
	// system in the virtual machine.
	Quiesce interface{}
	// If set to `true`, the entire snapshot subtree
	// is removed when this resource is destroyed.
	RemoveChildren interface{}
	// The name of the snapshot.
	SnapshotName interface{}
	// The virtual machine UUID.
	VirtualMachineUuid interface{}
}

Input properties used for looking up and filtering VirtualMachineSnapshot resources.

type VirtualMachineState

type VirtualMachineState struct {
	// The guest name for the operating system
	// when `guest_id` is `other` or `other-64`.
	AlternateGuestName interface{}
	// A user-provided description of the virtual machine.
	// The default is no annotation.
	Annotation interface{}
	// The number of milliseconds to wait before starting
	// the boot sequence. The default is no delay.
	BootDelay interface{}
	// The number of milliseconds to wait before
	// retrying the boot sequence. This only valid if `boot_retry_enabled` is true.
	// Default: `10000` (10 seconds).
	BootRetryDelay interface{}
	// If set to true, a virtual machine that
	// fails to boot will try again after the delay defined in `boot_retry_delay`.
	// Default: `false`.
	BootRetryEnabled interface{}
	// A specification for a CDROM device on this virtual
	// machine. See CDROM options below.
	Cdrom interface{}
	// A unique identifier for a given version of the last
	// configuration applied, such the timestamp of the last update to the
	// configuration.
	ChangeVersion interface{}
	// When specified, the VM will be created as a clone of a
	// specified template. Optional customization options can be submitted as well.
	// See creating a virtual machine from a
	// template for more details.
	Clone interface{}
	// Allow CPUs to be added to this virtual
	// machine while it is running.
	CpuHotAddEnabled interface{}
	// Allow CPUs to be removed to this
	// virtual machine while it is running.
	CpuHotRemoveEnabled interface{}
	// The maximum amount of CPU (in MHz) that this virtual
	// machine can consume, regardless of available resources. The default is no
	// limit.
	CpuLimit interface{}
	// Enable CPU performance
	// counters on this virtual machine. Default: `false`.
	CpuPerformanceCountersEnabled interface{}
	// The amount of CPU (in MHz) that this virtual
	// machine is guaranteed. The default is no reservation.
	CpuReservation interface{}
	// The number of CPU shares allocated to the
	// virtual machine when the `cpu_share_level` is `custom`.
	CpuShareCount interface{}
	// The allocation level for CPU resources. Can be
	// one of `high`, `low`, `normal`, or `custom`. Default: `custom`.
	CpuShareLevel interface{}
	// Map of custom attribute ids to attribute
	// value strings to set for virtual machine. See
	// [here][docs-setting-custom-attributes] for a reference on how to set values
	// for custom attributes.
	CustomAttributes interface{}
	// The [managed object reference
	// ID][docs-about-morefs] of the datastore cluster ID to use. This setting
	// applies to entire virtual machine and implies that you wish to use Storage
	// DRS with this virtual machine. See the section on virtual machine
	// migration for details on changing this value.
	DatastoreClusterId interface{}
	// The datastore ID that the ISO is located in.
	// Requried for using a datastore ISO. Conflicts with `client_device`.
	DatastoreId interface{}
	// The IP address selected by Terraform to be used with
	// any [provisioners][tf-docs-provisioners] configured on this resource.
	// Whenever possible, this is the first IPv4 address that is reachable through
	// the default gateway configured on the machine, then the first reachable IPv6
	// address, and then the first general discovered address if neither exist. If
	// VMware tools is not running on the virtual machine, or if the VM is powered
	// off, this value will be blank.
	DefaultIpAddress interface{}
	// A specification for a virtual disk device on this virtual
	// machine. See disk options below.
	Disks interface{}
	// When the `firmware` type is set to is
	// `efi`, this enables EFI secure boot. Default: `false`.
	EfiSecureBootEnabled interface{}
	// Expose the UUIDs of attached virtual disks to
	// the virtual machine, allowing access to them in the guest. Default: `false`.
	EnableDiskUuid interface{}
	// Enable logging of virtual machine events to a
	// log file stored in the virtual machine directory. Default: `false`.
	EnableLogging interface{}
	// The EPT/RVI (hardware memory virtualization)
	// setting for this virtual machine. Can be one of `automatic`, `on`, or `off`.
	// Default: `automatic`.
	EptRviMode interface{}
	// Extra configuration data for this virtual
	// machine. Can be used to supply advanced parameters not normally in
	// configuration, such as data for cloud-config (under the guestinfo namespace).
	ExtraConfig interface{}
	// The firmware interface to use on the virtual machine.
	// Can be one of `bios` or `EFI`. Default: `bios`.
	Firmware interface{}
	// The path to the folder to put this virtual machine in,
	// relative to the datacenter that the resource pool is in.
	Folder interface{}
	// If a guest shutdown failed or timed out while
	// updating or destroying (see
	// `shutdown_wait_timeout`), force the power-off of
	// the virtual machine. Default: `true`.
	ForcePowerOff interface{}
	// The guest ID for the operating system type. For a
	// full list of possible values, see [here][vmware-docs-guest-ids]. Default: `other-64`.
	GuestId interface{}
	// The current list of IP addresses on this machine,
	// including the value of `default_ip_address`. If VMware tools is not running
	// on the virtual machine, or if the VM is powered off, this list will be empty.
	// * `moid`: The [managed object reference ID][docs-about-morefs] of the created
	// virtual machine.
	GuestIpAddresses interface{}
	// An optional [managed object reference
	// ID][docs-about-morefs] of a host to put this virtual machine on. See the
	// section on virtual machine migration for
	// details on changing this value. If a `host_system_id` is not supplied,
	// vSphere will select a host in the resource pool to place the virtual machine,
	// according to any defaults or DRS policies in place.
	HostSystemId interface{}
	// The (non-nested) hardware virtualization setting for
	// this virtual machine. Can be one of `hvAuto`, `hvOn`, or `hvOff`. Default:
	// `hvAuto`.
	HvMode interface{}
	// This is flagged if the virtual machine has been imported, or the
	// state has been migrated from a previous version of the resource. It
	// influences the behavior of the first post-import apply operation. See the
	// section on importing below.
	Imported interface{}
	// Controls the scheduling delay of the
	// virtual machine. Use a higher sensitivity for applications that require lower
	// latency, such as VOIP, media player applications, or applications that
	// require frequent access to mouse or keyboard devices. Can be one of `low`,
	// `normal`, `medium`, or `high`.
	LatencySensitivity interface{}
	// The size of the virtual machine's memory, in MB.
	// Default: `1024` (1 GB).
	Memory interface{}
	// Allow memory to be added to this
	// virtual machine while it is running.
	MemoryHotAddEnabled interface{}
	// The maximum amount of memory (in MB) that this
	// virtual machine can consume, regardless of available resources. The default
	// is no limit.
	MemoryLimit interface{}
	// The amount of memory (in MB) that this
	// virtual machine is guaranteed. The default is no reservation.
	MemoryReservation interface{}
	// The number of memory shares allocated to
	// the virtual machine when the `memory_share_level` is `custom`.
	MemoryShareCount interface{}
	// The allocation level for memory resources.
	// Can be one of `high`, `low`, `normal`, or `custom`. Default: `custom`.
	MemoryShareLevel interface{}
	// The amount of time, in minutes, to wait
	// for a virtual machine migration to complete before failing. Default: 10
	// minutes. Also see the section on virtual machine
	// migration.
	MigrateWaitTimeout interface{}
	// The machine object ID from VMWare
	Moid interface{}
	// An alias for both `label` and `path`, the latter when
	// using `attach`. Required if not using `label`.
	Name interface{}
	// Enable nested hardware virtualization on
	// this virtual machine, facilitating nested virtualization in the guest.
	// Default: `false`.
	NestedHvEnabled interface{}
	// A specification for a virtual NIC on this
	// virtual machine. See network interface options
	// below.
	NetworkInterfaces interface{}
	// The number of cores to distribute among
	// the CPUs in this virtual machine. If specified, the value supplied to
	// `num_cpus` must be evenly divisible by this value. Default: `1`.
	NumCoresPerSocket interface{}
	// The number of virtual processors to assign to this
	// virtual machine. Default: `1`.
	NumCpus interface{}
	// Value internal to Terraform used to determine if a
	// configuration set change requires a reboot. This value is only useful during
	// an update process and gets reset on refresh.
	RebootRequired interface{}
	// The [managed object reference
	// ID][docs-about-morefs] of the resource pool to put this virtual machine in.
	// See the section on virtual machine migration
	// for details on changing this value.
	ResourcePoolId interface{}
	// Enable the execution of
	// post-power-on scripts when VMware tools is installed. Default: `true`.
	RunToolsScriptsAfterPowerOn interface{}
	// Enable the execution of
	// post-resume scripts when VMware tools is installed. Default: `true`.
	RunToolsScriptsAfterResume interface{}
	// Enable the execution of
	// pre-reboot scripts when VMware tools is installed. Default: `false`.
	RunToolsScriptsBeforeGuestReboot interface{}
	// Enable the execution
	// of pre-shutdown scripts when VMware tools is installed. Default: `true`.
	RunToolsScriptsBeforeGuestShutdown interface{}
	// Enable the execution of
	// pre-standby scripts when VMware tools is installed. Default: `true`.
	RunToolsScriptsBeforeGuestStandby interface{}
	// Mode for sharing the SCSI bus. The modes are
	// physicalSharing, virtualSharing, and noSharing. Default: `noSharing`.
	ScsiBusSharing interface{}
	// The number of SCSI controllers that
	// Terraform manages on this virtual machine. This directly affects the amount
	// of disks you can add to the virtual machine and the maximum disk unit number.
	// Note that lowering this value does not remove controllers. Default: `1`.
	ScsiControllerCount interface{}
	// The type of SCSI bus this virtual machine will have.
	// Can be one of lsilogic (LSI Logic Parallel), lsilogic-sas (LSI Logic SAS) or
	// pvscsi (VMware Paravirtual). Defualt: `pvscsi`.
	ScsiType interface{}
	// The amount of time, in minutes, to wait
	// for a graceful guest shutdown when making necessary updates to the virtual
	// machine. If `force_power_off` is set to true, the VM will be force powered-off
	// after this timeout, otherwise an error is returned. Default: 3 minutes.
	ShutdownWaitTimeout interface{}
	// The swap file placement policy for this
	// virtual machine. Can be one of `inherit`, `hostLocal`, or `vmDirectory`.
	// Default: `inherit`.
	SwapPlacementPolicy interface{}
	// Enable guest clock synchronization with
	// the host. Requires VMware tools to be installed. Default: `false`.
	SyncTimeWithHost interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
	// The UUID of the virtual disk's VMDK file. This is used to track the
	// virtual disk on the virtual machine.
	Uuid interface{}
	// Optional vApp configuration. The only sub-key available
	// is `properties`, which is a key/value map of properties for virtual machines
	// imported from OVF or OVA files. See Using vApp properties to supply OVF/OVA
	// configuration for
	// more details.
	Vapp interface{}
	// Computed value which is only valid for cloned virtual
	// machines. A list of vApp transport methods supported by the source virtual
	// machine or template.
	VappTransports interface{}
	// The state of VMware tools in the guest. This will
	// determine the proper course of action for some device operations.
	VmwareToolsStatus interface{}
	// The path of the virtual machine's configuration file in the VM's
	// datastore.
	VmxPath interface{}
	// Controls whether or not the guest
	// network waiter waits for a routable address. When `false`, the waiter does
	// not wait for a default gateway, nor are IP addresses checked against any
	// discovered default gateways as part of its success criteria. Default: `true`.
	WaitForGuestNetRoutable interface{}
	// The amount of time, in minutes, to
	// wait for an available IP address on this virtual machine. A value less than 1
	// disables the waiter. Default: 5 minutes.
	WaitForGuestNetTimeout interface{}
}

Input properties used for looking up and filtering VirtualMachine resources.

type Virtual_machineArgs

type Virtual_machineArgs struct {
	// The [managed object reference
	// ID][docs-about-morefs] of the datacenter the virtual machine is located in.
	// This can be omitted if the search path used in `name` is an absolute path.
	// For default datacenters, use the `id` attribute from an empty
	// `vsphere_datacenter` data source.
	DatacenterId interface{}
	// The name of the virtual machine. This can be a name or
	// path.
	Name interface{}
	// The number of SCSI controllers to
	// scan for disk attributes and controller types on. Default: `1`.
	ScsiControllerScanCount interface{}
}

A collection of arguments for invoking Virtual_machine.

type Virtual_machineResult

type Virtual_machineResult struct {
	// The alternate guest name of the virtual machine when
	// guest_id is a non-specific operating system, like `otherGuest`.
	AlternateGuestName interface{}
	// Information about each of the disks on this virtual machine or
	// template. These are sorted by bus and unit number so that they can be applied
	// to a `vsphere_virtual_machine` resource in the order the resource expects
	// while cloning. This is useful for discovering certain disk settings while
	// performing a linked clone, as all settings that are output by this data
	// source must be the same on the destination virtual machine as the source.
	// Only the first number of controllers defined by `scsi_controller_scan_count`
	// are scanned for disks. The sub-attributes are:
	Disks interface{}
	// The firmware type for this virtual machine. Can be `bios` or `efi`.
	Firmware interface{}
	// The guest ID of the virtual machine or template.
	GuestId interface{}
	// The network interface types for each network
	// interface found on the virtual machine, in device bus order. Will be one of
	// `e1000`, `e1000e`, `pcnet32`, `sriov`, `vmxnet2`, or `vmxnet3`.
	NetworkInterfaceTypes interface{}
	// Mode for sharing the SCSI bus. The modes are
	// physicalSharing, virtualSharing, and noSharing. Only the first number of
	// controllers defined by `scsi_controller_scan_count` are scanned.
	ScsiBusSharing interface{}
	// The common type of all SCSI controllers on this virtual machine.
	// Will be one of `lsilogic` (LSI Logic Parallel), `lsilogic-sas` (LSI Logic
	// SAS), `pvscsi` (VMware Paravirtual), `buslogic` (BusLogic), or `mixed` when
	// there are multiple controller types. Only the first number of controllers
	// defined by `scsi_controller_scan_count` are scanned.
	ScsiType interface{}
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by Virtual_machine.

func Virtual_machine

func Virtual_machine(ctx *pulumi.Context, args *Virtual_machineArgs) (*Virtual_machineResult, error)

The `vsphere_virtual_machine` data source can be used to find the UUID of an existing virtual machine or template. Its most relevant purpose is for finding the UUID of a template to be used as the source for cloning into a new [`vsphere_virtual_machine`][docs-virtual-machine-resource] resource. It also reads the guest ID so that can be supplied as well.

[docs-virtual-machine-resource]: /docs/providers/vsphere/r/virtual_machine.html

type VmfsDatastore

type VmfsDatastore struct {
	// contains filtered or unexported fields
}

The `vsphere_vmfs_datastore` resource can be used to create and manage VMFS datastores on an ESXi host or a set of hosts. The resource supports using any SCSI device that can generally be used in a datastore, such as local disks, or disks presented to a host or multiple hosts over Fibre Channel or iSCSI. Devices can be specified manually, or discovered using the [`vsphere_vmfs_disks`][data-source-vmfs-disks] data source.

[data-source-vmfs-disks]: /docs/providers/vsphere/d/vmfs_disks.html

func GetVmfsDatastore

func GetVmfsDatastore(ctx *pulumi.Context,
	name string, id pulumi.ID, state *VmfsDatastoreState, opts ...pulumi.ResourceOpt) (*VmfsDatastore, error)

GetVmfsDatastore gets an existing VmfsDatastore resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewVmfsDatastore

func NewVmfsDatastore(ctx *pulumi.Context,
	name string, args *VmfsDatastoreArgs, opts ...pulumi.ResourceOpt) (*VmfsDatastore, error)

NewVmfsDatastore registers a new resource with the given unique name, arguments, and options.

func (*VmfsDatastore) Accessible

func (r *VmfsDatastore) Accessible() *pulumi.BoolOutput

The connectivity status of the datastore. If this is `false`, some other computed attributes may be out of date.

func (*VmfsDatastore) Capacity

func (r *VmfsDatastore) Capacity() *pulumi.IntOutput

Maximum capacity of the datastore, in megabytes.

func (*VmfsDatastore) CustomAttributes

func (r *VmfsDatastore) CustomAttributes() *pulumi.MapOutput

Map of custom attribute ids to attribute value string to set on datastore resource. See [here][docs-setting-custom-attributes] for a reference on how to set values for custom attributes.

func (*VmfsDatastore) DatastoreClusterId

func (r *VmfsDatastore) DatastoreClusterId() *pulumi.StringOutput

The [managed object ID][docs-about-morefs] of a datastore cluster to put this datastore in. Conflicts with `folder`.

func (*VmfsDatastore) Disks

func (r *VmfsDatastore) Disks() *pulumi.ArrayOutput

The disks to use with the datastore.

func (*VmfsDatastore) Folder

func (r *VmfsDatastore) Folder() *pulumi.StringOutput

The relative path to a folder to put this datastore in. This is a path relative to the datacenter you are deploying the datastore to. Example: for the `dc1` datacenter, and a provided `folder` of `foo/bar`, Terraform will place a datastore named `terraform-test` in a datastore folder located at `/dc1/datastore/foo/bar`, with the final inventory path being `/dc1/datastore/foo/bar/terraform-test`. Conflicts with `datastore_cluster_id`.

func (*VmfsDatastore) FreeSpace

func (r *VmfsDatastore) FreeSpace() *pulumi.IntOutput

Available space of this datastore, in megabytes.

func (*VmfsDatastore) HostSystemId

func (r *VmfsDatastore) HostSystemId() *pulumi.StringOutput

The [managed object ID][docs-about-morefs] of the host to set the datastore up on. Note that this is not necessarily the only host that the datastore will be set up on - see here for more info. Forces a new resource if changed.

func (*VmfsDatastore) ID

func (r *VmfsDatastore) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*VmfsDatastore) MaintenanceMode

func (r *VmfsDatastore) MaintenanceMode() *pulumi.StringOutput

The current maintenance mode state of the datastore.

func (*VmfsDatastore) MultipleHostAccess

func (r *VmfsDatastore) MultipleHostAccess() *pulumi.BoolOutput

If `true`, more than one host in the datacenter has been configured with access to the datastore.

func (*VmfsDatastore) Name

func (r *VmfsDatastore) Name() *pulumi.StringOutput

The name of the datastore. Forces a new resource if changed.

func (*VmfsDatastore) Tags

func (r *VmfsDatastore) Tags() *pulumi.ArrayOutput

The IDs of any tags to attach to this resource. See [here][docs-applying-tags] for a reference on how to apply tags.

func (*VmfsDatastore) URN

func (r *VmfsDatastore) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

func (*VmfsDatastore) UncommittedSpace

func (r *VmfsDatastore) UncommittedSpace() *pulumi.IntOutput

Total additional storage space, in megabytes, potentially used by all virtual machines on this datastore.

func (*VmfsDatastore) Url

func (r *VmfsDatastore) Url() *pulumi.StringOutput

The unique locator for the datastore.

type VmfsDatastoreArgs

type VmfsDatastoreArgs struct {
	// Map of custom attribute ids to attribute
	// value string to set on datastore resource. See
	// [here][docs-setting-custom-attributes] for a reference on how to set values
	// for custom attributes.
	CustomAttributes interface{}
	// The [managed object
	// ID][docs-about-morefs] of a datastore cluster to put this datastore in.
	// Conflicts with `folder`.
	DatastoreClusterId interface{}
	// The disks to use with the datastore.
	Disks interface{}
	// The relative path to a folder to put this datastore in.
	// This is a path relative to the datacenter you are deploying the datastore to.
	// Example: for the `dc1` datacenter, and a provided `folder` of `foo/bar`,
	// Terraform will place a datastore named `terraform-test` in a datastore folder
	// located at `/dc1/datastore/foo/bar`, with the final inventory path being
	// `/dc1/datastore/foo/bar/terraform-test`. Conflicts with
	// `datastore_cluster_id`.
	Folder interface{}
	// The [managed object ID][docs-about-morefs] of
	// the host to set the datastore up on. Note that this is not necessarily the
	// only host that the datastore will be set up on - see
	// here for more info. Forces a
	// new resource if changed.
	HostSystemId interface{}
	// The name of the datastore. Forces a new resource if
	// changed.
	Name interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
}

The set of arguments for constructing a VmfsDatastore resource.

type VmfsDatastoreState

type VmfsDatastoreState struct {
	// The connectivity status of the datastore. If this is `false`,
	// some other computed attributes may be out of date.
	Accessible interface{}
	// Maximum capacity of the datastore, in megabytes.
	Capacity interface{}
	// Map of custom attribute ids to attribute
	// value string to set on datastore resource. See
	// [here][docs-setting-custom-attributes] for a reference on how to set values
	// for custom attributes.
	CustomAttributes interface{}
	// The [managed object
	// ID][docs-about-morefs] of a datastore cluster to put this datastore in.
	// Conflicts with `folder`.
	DatastoreClusterId interface{}
	// The disks to use with the datastore.
	Disks interface{}
	// The relative path to a folder to put this datastore in.
	// This is a path relative to the datacenter you are deploying the datastore to.
	// Example: for the `dc1` datacenter, and a provided `folder` of `foo/bar`,
	// Terraform will place a datastore named `terraform-test` in a datastore folder
	// located at `/dc1/datastore/foo/bar`, with the final inventory path being
	// `/dc1/datastore/foo/bar/terraform-test`. Conflicts with
	// `datastore_cluster_id`.
	Folder interface{}
	// Available space of this datastore, in megabytes.
	FreeSpace interface{}
	// The [managed object ID][docs-about-morefs] of
	// the host to set the datastore up on. Note that this is not necessarily the
	// only host that the datastore will be set up on - see
	// here for more info. Forces a
	// new resource if changed.
	HostSystemId interface{}
	// The current maintenance mode state of the datastore.
	MaintenanceMode interface{}
	// If `true`, more than one host in the datacenter has
	// been configured with access to the datastore.
	MultipleHostAccess interface{}
	// The name of the datastore. Forces a new resource if
	// changed.
	Name interface{}
	// The IDs of any tags to attach to this resource. See
	// [here][docs-applying-tags] for a reference on how to apply tags.
	Tags interface{}
	// Total additional storage space, in megabytes,
	// potentially used by all virtual machines on this datastore.
	UncommittedSpace interface{}
	// The unique locator for the datastore.
	Url interface{}
}

Input properties used for looking up and filtering VmfsDatastore resources.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL