@pulumi/vsphere
Version:
A Pulumi package for creating vsphere resources
1,304 lines • 52.2 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
* The `vsphere.DistributedVirtualSwitch` resource can be used to manage vSphere
* Distributed Switches (VDS).
*
* An essential component of a distributed, scalable vSphere infrastructure, the
* VDS provides centralized management and monitoring of the networking
* configuration for all the hosts that are associated with the switch.
* In addition to adding distributed port groups
* (see the `vsphere.DistributedPortGroup` resource)
* that can be used as networks for virtual machines, a VDS can be configured to
* perform advanced high availability, traffic shaping, network monitoring, etc.
*
* For an overview on vSphere networking concepts, see
* [this page][ref-vsphere-net-concepts].
*
* For more information on the VDS, see [this page][ref-vsphere-vds].
*
* [ref-vsphere-net-concepts]: https://techdocs.broadcom.com/us/en/vmware-cis/vsphere/vsphere/8-0/vsphere-networking-8-0/basic-networking-with-vnetwork-distributed-switches/dvport-groups.html
* [ref-vsphere-vds]: https://techdocs.broadcom.com/us/en/vmware-cis/vsphere/vsphere/8-0/vsphere-networking-8-0/basic-networking-with-vnetwork-distributed-switches.html
*
* > **NOTE:** This resource requires vCenter and is not available on
* direct ESXi host connections.
*
* ## Example Usage
*
* The following example below demonstrates a "standard" example of configuring a
* VDS in a 3-node vSphere datacenter named `dc1`, across 4 NICs with two being
* used as active, and two being used as passive. Note that the NIC failover order
* propagates to any port groups configured on this VDS and can be overridden.
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as vsphere from "@pulumi/vsphere";
*
* const config = new pulumi.Config();
* const hosts = config.getObject<any>("hosts") || [
* "esxi-01.example.com",
* "esxi-02.example.com",
* "esxi-03.example.com",
* ];
* const networkInterfaces = config.getObject<any>("networkInterfaces") || [
* "vmnic0",
* "vmnic1",
* "vmnic2",
* "vmnic3",
* ];
* const datacenter = vsphere.getDatacenter({
* name: "dc-01",
* });
* const host = (new Array(hosts.length)).map((_, i) => i).map(__index => (vsphere.getHost({
* name: hosts[__index],
* datacenterId: _arg0_.id,
* })));
* const vds = new vsphere.DistributedVirtualSwitch("vds", {
* name: "vds-01",
* datacenterId: datacenter.then(datacenter => datacenter.id),
* uplinks: [
* "uplink1",
* "uplink2",
* "uplink3",
* "uplink4",
* ],
* activeUplinks: [
* "uplink1",
* "uplink2",
* ],
* standbyUplinks: [
* "uplink3",
* "uplink4",
* ],
* hosts: [
* {
* hostSystemId: host[0].then(host => host.id),
* devices: [networkInterfaces],
* },
* {
* hostSystemId: host[1].then(host => host.id),
* devices: [networkInterfaces],
* },
* {
* hostSystemId: host[2].then(host => host.id),
* devices: [networkInterfaces],
* },
* ],
* });
* ```
*
* ### Uplink name and count control
*
* The following abridged example below demonstrates how you can manage the number
* of uplinks, and the name of the uplinks via the `uplinks` parameter.
*
* Note that if you change the uplink naming and count after creating the VDS, you
* may need to explicitly specify `activeUplinks` and `standbyUplinks` as these
* values are saved to state after creation, regardless of being
* specified in config, and will drift if not modified, causing errors.
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as vsphere from "@pulumi/vsphere";
*
* const vds = new vsphere.DistributedVirtualSwitch("vds", {
* name: "vds-01",
* datacenterId: datacenter.id,
* uplinks: [
* "uplink1",
* "uplink2",
* ],
* activeUplinks: ["uplink1"],
* standbyUplinks: ["uplink2"],
* });
* ```
*
* > **NOTE:** The default uplink names when a VDS is created are `uplink1`
* through to `uplink4`, however this default is not guaranteed to be stable and
* you are encouraged to set your own.
*
* ## Import
*
* An existing VDS can be imported into this resource via the path
*
* to the VDS, via the following command:
*
* [docs-import]: https://developer.hashicorp.com/terraform/cli/import
*
* ```sh
* $ pulumi import vsphere:index/distributedVirtualSwitch:DistributedVirtualSwitch vds /dc-01/network/vds-01
* ```
*
* The above would import the VDS named `vds-01` that is located in the `dc-01`
*
* datacenter.
*/
export declare class DistributedVirtualSwitch extends pulumi.CustomResource {
/**
* Get an existing DistributedVirtualSwitch resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: DistributedVirtualSwitchState, opts?: pulumi.CustomResourceOptions): DistributedVirtualSwitch;
/**
* Returns true if the given object is an instance of DistributedVirtualSwitch. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj: any): obj is DistributedVirtualSwitch;
/**
* List of active uplinks used for load balancing, matching the names of the uplinks assigned in the DVS.
*/
readonly activeUplinks: pulumi.Output<string[]>;
/**
* Controls whether or not the virtual network adapter is allowed to send network traffic with a different MAC address than that of its own.
*/
readonly allowForgedTransmits: pulumi.Output<boolean>;
/**
* Controls whether or not the Media Access Control (MAC) address can be changed.
*/
readonly allowMacChanges: pulumi.Output<boolean>;
/**
* Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port.
*/
readonly allowPromiscuous: pulumi.Output<boolean>;
/**
* The maximum allowed usage for the backupNfc traffic class, in Mbits/sec.
*/
readonly backupnfcMaximumMbit: pulumi.Output<number>;
/**
* The amount of guaranteed bandwidth for the backupNfc traffic class, in Mbits/sec.
*/
readonly backupnfcReservationMbit: pulumi.Output<number>;
/**
* The amount of shares to allocate to the backupNfc traffic class for a custom share level.
*/
readonly backupnfcShareCount: pulumi.Output<number>;
/**
* The allocation level for the backupNfc traffic class. Can be one of high, low, normal, or custom.
*/
readonly backupnfcShareLevel: pulumi.Output<string>;
/**
* Indicates whether to block all ports by default.
*/
readonly blockAllPorts: pulumi.Output<boolean>;
/**
* Enable beacon probing on the ports this policy applies to.
*/
readonly checkBeacon: pulumi.Output<boolean>;
/**
* The current version of the VDS configuration, incremented
* by subsequent updates to the VDS.
*/
readonly configVersion: pulumi.Output<string>;
/**
* The detailed contact information for the person
* who is responsible for the VDS.
*/
readonly contactDetail: pulumi.Output<string | undefined>;
/**
* The name of the person who is responsible for the
* VDS.
*/
readonly contactName: pulumi.Output<string | undefined>;
/**
* Map of custom attribute ids to attribute
* value strings to set for VDS.
*
* > **NOTE:** Custom attributes are unsupported on direct ESXi host connections
* and requires vCenter Server.
*/
readonly customAttributes: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* The ID of the datacenter where the VDS will be
* created. Forces a new resource if changed.
*/
readonly datacenterId: pulumi.Output<string>;
/**
* A detailed description for the VDS.
*/
readonly description: pulumi.Output<string | undefined>;
/**
* Allow VMDirectPath Gen2 on the ports this policy applies to.
*/
readonly directpathGen2Allowed: pulumi.Output<boolean>;
/**
* The average egress bandwidth in bits per second if egress shaping is enabled on the port.
*/
readonly egressShapingAverageBandwidth: pulumi.Output<number>;
/**
* The maximum egress burst size allowed in bytes if egress shaping is enabled on the port.
*/
readonly egressShapingBurstSize: pulumi.Output<number>;
/**
* True if the traffic shaper is enabled for egress traffic on the port.
*/
readonly egressShapingEnabled: pulumi.Output<boolean>;
/**
* The peak egress bandwidth during bursts in bits per second if egress traffic shaping is enabled on the port.
*/
readonly egressShapingPeakBandwidth: pulumi.Output<number>;
/**
* If true, the teaming policy will re-activate failed interfaces higher in precedence when they come back up.
*/
readonly failback: pulumi.Output<boolean>;
/**
* The maximum allowed usage for the faultTolerance traffic class, in Mbits/sec.
*/
readonly faulttoleranceMaximumMbit: pulumi.Output<number>;
/**
* The amount of guaranteed bandwidth for the faultTolerance traffic class, in Mbits/sec.
*/
readonly faulttoleranceReservationMbit: pulumi.Output<number>;
/**
* The amount of shares to allocate to the faultTolerance traffic class for a custom share level.
*/
readonly faulttoleranceShareCount: pulumi.Output<number>;
/**
* The allocation level for the faultTolerance traffic class. Can be one of high, low, normal, or custom.
*/
readonly faulttoleranceShareLevel: pulumi.Output<string>;
/**
* The folder in which to create the VDS.
* Forces a new resource if changed.
*/
readonly folder: pulumi.Output<string | undefined>;
/**
* The maximum allowed usage for the hbr traffic class, in Mbits/sec.
*/
readonly hbrMaximumMbit: pulumi.Output<number>;
/**
* The amount of guaranteed bandwidth for the hbr traffic class, in Mbits/sec.
*/
readonly hbrReservationMbit: pulumi.Output<number>;
/**
* The amount of shares to allocate to the hbr traffic class for a custom share level.
*/
readonly hbrShareCount: pulumi.Output<number>;
/**
* The allocation level for the hbr traffic class. Can be one of high, low, normal, or custom.
*/
readonly hbrShareLevel: pulumi.Output<string>;
/**
* A host member specification.
*/
readonly hosts: pulumi.Output<outputs.DistributedVirtualSwitchHost[] | undefined>;
/**
* Whether to ignore existing PVLAN mappings not managed by this resource.
*/
readonly ignoreOtherPvlanMappings: pulumi.Output<boolean | undefined>;
/**
* The average ingress bandwidth in bits per second if ingress shaping is enabled on the port.
*/
readonly ingressShapingAverageBandwidth: pulumi.Output<number>;
/**
* The maximum ingress burst size allowed in bytes if ingress shaping is enabled on the port.
*/
readonly ingressShapingBurstSize: pulumi.Output<number>;
/**
* True if the traffic shaper is enabled for ingress traffic on the port.
*/
readonly ingressShapingEnabled: pulumi.Output<boolean>;
/**
* The peak ingress bandwidth during bursts in bits per second if ingress traffic shaping is enabled on the port.
*/
readonly ingressShapingPeakBandwidth: pulumi.Output<number>;
/**
* An IPv4 address to identify the switch. This is
* mostly useful when used with the Netflow arguments.
*/
readonly ipv4Address: pulumi.Output<string | undefined>;
/**
* The maximum allowed usage for the iSCSI traffic class, in Mbits/sec.
*/
readonly iscsiMaximumMbit: pulumi.Output<number>;
/**
* The amount of guaranteed bandwidth for the iSCSI traffic class, in Mbits/sec.
*/
readonly iscsiReservationMbit: pulumi.Output<number>;
/**
* The amount of shares to allocate to the iSCSI traffic class for a custom share level.
*/
readonly iscsiShareCount: pulumi.Output<number>;
/**
* The allocation level for the iSCSI traffic class. Can be one of high, low, normal, or custom.
*/
readonly iscsiShareLevel: pulumi.Output<string>;
/**
* The Link Aggregation Control Protocol group
* version to use with the VDS. Possible values are `singleLag` and
* `multipleLag`.
*/
readonly lacpApiVersion: pulumi.Output<string>;
/**
* Whether or not to enable LACP on all uplink ports.
*/
readonly lacpEnabled: pulumi.Output<boolean>;
/**
* The uplink LACP mode to use. Can be one of active or passive.
*/
readonly lacpMode: pulumi.Output<string>;
/**
* Whether to `advertise` or `listen`
* for link discovery traffic.
*/
readonly linkDiscoveryOperation: pulumi.Output<string | undefined>;
/**
* The discovery protocol type. Valid
* types are `cdp` and `lldp`.
*/
readonly linkDiscoveryProtocol: pulumi.Output<string | undefined>;
/**
* The maximum allowed usage for the management traffic class, in Mbits/sec.
*/
readonly managementMaximumMbit: pulumi.Output<number>;
/**
* The amount of guaranteed bandwidth for the management traffic class, in Mbits/sec.
*/
readonly managementReservationMbit: pulumi.Output<number>;
/**
* The amount of shares to allocate to the management traffic class for a custom share level.
*/
readonly managementShareCount: pulumi.Output<number>;
/**
* The allocation level for the management traffic class. Can be one of high, low, normal, or custom.
*/
readonly managementShareLevel: pulumi.Output<string>;
/**
* The maximum transmission unit (MTU) for the VDS.
*/
readonly maxMtu: pulumi.Output<number>;
/**
* The multicast filtering mode to use
* with the VDS. Can be one of `legacyFiltering` or `snooping`.
*/
readonly multicastFilteringMode: pulumi.Output<string>;
/**
* The name of the VDS.
*/
readonly name: pulumi.Output<string>;
/**
* The number of seconds after which active flows are forced to be exported to the collector.
*/
readonly netflowActiveFlowTimeout: pulumi.Output<number | undefined>;
/**
* IP address for the netflow collector, using IPv4 or IPv6.
*/
readonly netflowCollectorIpAddress: pulumi.Output<string | undefined>;
/**
* The port for the netflow collector.
*/
readonly netflowCollectorPort: pulumi.Output<number | undefined>;
/**
* Indicates whether to enable netflow on all ports.
*/
readonly netflowEnabled: pulumi.Output<boolean>;
/**
* The number of seconds after which idle flows are forced to be exported to the collector.
*/
readonly netflowIdleFlowTimeout: pulumi.Output<number | undefined>;
/**
* Whether to limit analysis to traffic that has both source and destination served by the same host.
*/
readonly netflowInternalFlowsOnly: pulumi.Output<boolean | undefined>;
/**
* The observation Domain ID for the netflow collector.
*/
readonly netflowObservationDomainId: pulumi.Output<number | undefined>;
/**
* The ratio of total number of packets to the number of packets analyzed. Set to 0 to disable sampling, meaning that all packets are analyzed.
*/
readonly netflowSamplingRate: pulumi.Output<number | undefined>;
/**
* Whether or not to enable network resource control, enabling advanced traffic shaping and resource control features.
*/
readonly networkResourceControlEnabled: pulumi.Output<boolean | undefined>;
/**
* The network I/O control version to use. Can be one of version2 or version3.
*/
readonly networkResourceControlVersion: pulumi.Output<string>;
/**
* The maximum allowed usage for the nfs traffic class, in Mbits/sec.
*/
readonly nfsMaximumMbit: pulumi.Output<number>;
/**
* The amount of guaranteed bandwidth for the nfs traffic class, in Mbits/sec.
*/
readonly nfsReservationMbit: pulumi.Output<number>;
/**
* The amount of shares to allocate to the nfs traffic class for a custom share level.
*/
readonly nfsShareCount: pulumi.Output<number>;
/**
* The allocation level for the nfs traffic class. Can be one of high, low, normal, or custom.
*/
readonly nfsShareLevel: pulumi.Output<string>;
/**
* If true, the teaming policy will notify the broadcast network of a NIC failover, triggering cache updates.
*/
readonly notifySwitches: pulumi.Output<boolean>;
/**
* The secondary VLAN ID for this port.
*/
readonly portPrivateSecondaryVlanId: pulumi.Output<number>;
/**
* A private VLAN (PVLAN) mapping.
*/
readonly pvlanMappings: pulumi.Output<outputs.DistributedVirtualSwitchPvlanMapping[] | undefined>;
/**
* List of standby uplinks used for load balancing, matching the names of the uplinks assigned in the DVS.
*/
readonly standbyUplinks: pulumi.Output<string[]>;
/**
* The IDs of any tags to attach to this resource.
*/
readonly tags: pulumi.Output<string[] | undefined>;
/**
* The network adapter teaming policy. Can be one of loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, failover_explicit, or loadbalance_loadbased.
*/
readonly teamingPolicy: pulumi.Output<string>;
/**
* 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.
*/
readonly txUplink: pulumi.Output<boolean>;
/**
* A list of uplink ports. The contents of this list control both the uplink count and names of the uplinks on the DVS across hosts.
*/
readonly uplinks: pulumi.Output<string[]>;
/**
* The maximum allowed usage for the vdp traffic class, in Mbits/sec.
*/
readonly vdpMaximumMbit: pulumi.Output<number>;
/**
* The amount of guaranteed bandwidth for the vdp traffic class, in Mbits/sec.
*/
readonly vdpReservationMbit: pulumi.Output<number>;
/**
* The amount of shares to allocate to the vdp traffic class for a custom share level.
*/
readonly vdpShareCount: pulumi.Output<number>;
/**
* The allocation level for the vdp traffic class. Can be one of high, low, normal, or custom.
*/
readonly vdpShareLevel: pulumi.Output<string>;
/**
* The version of the VDS. By default, a VDS is created
* at the latest version supported by the vSphere version if not specified.
* A VDS can be upgraded to a newer version, but can not be downgraded.
*/
readonly version: pulumi.Output<string>;
/**
* The maximum allowed usage for the virtualMachine traffic class, in Mbits/sec.
*/
readonly virtualmachineMaximumMbit: pulumi.Output<number>;
/**
* The amount of guaranteed bandwidth for the virtualMachine traffic class, in Mbits/sec.
*/
readonly virtualmachineReservationMbit: pulumi.Output<number>;
/**
* The amount of shares to allocate to the virtualMachine traffic class for a custom share level.
*/
readonly virtualmachineShareCount: pulumi.Output<number>;
/**
* The allocation level for the virtualMachine traffic class. Can be one of high, low, normal, or custom.
*/
readonly virtualmachineShareLevel: pulumi.Output<string>;
/**
* The VLAN ID for single VLAN mode. 0 denotes no VLAN.
*/
readonly vlanId: pulumi.Output<number>;
/**
* The VLAN ID for single VLAN mode. 0 denotes no VLAN.
*/
readonly vlanRanges: pulumi.Output<outputs.DistributedVirtualSwitchVlanRange[]>;
/**
* The maximum allowed usage for the vmotion traffic class, in Mbits/sec.
*/
readonly vmotionMaximumMbit: pulumi.Output<number>;
/**
* The amount of guaranteed bandwidth for the vmotion traffic class, in Mbits/sec.
*/
readonly vmotionReservationMbit: pulumi.Output<number>;
/**
* The amount of shares to allocate to the vmotion traffic class for a custom share level.
*/
readonly vmotionShareCount: pulumi.Output<number>;
/**
* The allocation level for the vmotion traffic class. Can be one of high, low, normal, or custom.
*/
readonly vmotionShareLevel: pulumi.Output<string>;
/**
* The maximum allowed usage for the vsan traffic class, in Mbits/sec.
*/
readonly vsanMaximumMbit: pulumi.Output<number>;
/**
* The amount of guaranteed bandwidth for the vsan traffic class, in Mbits/sec.
*/
readonly vsanReservationMbit: pulumi.Output<number>;
/**
* The amount of shares to allocate to the vsan traffic class for a custom share level.
*/
readonly vsanShareCount: pulumi.Output<number>;
/**
* The allocation level for the vsan traffic class. Can be one of high, low, normal, or custom.
*/
readonly vsanShareLevel: pulumi.Output<string>;
/**
* Create a DistributedVirtualSwitch resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args: DistributedVirtualSwitchArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering DistributedVirtualSwitch resources.
*/
export interface DistributedVirtualSwitchState {
/**
* List of active uplinks used for load balancing, matching the names of the uplinks assigned in the DVS.
*/
activeUplinks?: pulumi.Input<pulumi.Input<string>[]>;
/**
* 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?: pulumi.Input<boolean>;
/**
* Controls whether or not the Media Access Control (MAC) address can be changed.
*/
allowMacChanges?: pulumi.Input<boolean>;
/**
* Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port.
*/
allowPromiscuous?: pulumi.Input<boolean>;
/**
* The maximum allowed usage for the backupNfc traffic class, in Mbits/sec.
*/
backupnfcMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the backupNfc traffic class, in Mbits/sec.
*/
backupnfcReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the backupNfc traffic class for a custom share level.
*/
backupnfcShareCount?: pulumi.Input<number>;
/**
* The allocation level for the backupNfc traffic class. Can be one of high, low, normal, or custom.
*/
backupnfcShareLevel?: pulumi.Input<string>;
/**
* Indicates whether to block all ports by default.
*/
blockAllPorts?: pulumi.Input<boolean>;
/**
* Enable beacon probing on the ports this policy applies to.
*/
checkBeacon?: pulumi.Input<boolean>;
/**
* The current version of the VDS configuration, incremented
* by subsequent updates to the VDS.
*/
configVersion?: pulumi.Input<string>;
/**
* The detailed contact information for the person
* who is responsible for the VDS.
*/
contactDetail?: pulumi.Input<string>;
/**
* The name of the person who is responsible for the
* VDS.
*/
contactName?: pulumi.Input<string>;
/**
* Map of custom attribute ids to attribute
* value strings to set for VDS.
*
* > **NOTE:** Custom attributes are unsupported on direct ESXi host connections
* and requires vCenter Server.
*/
customAttributes?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The ID of the datacenter where the VDS will be
* created. Forces a new resource if changed.
*/
datacenterId?: pulumi.Input<string>;
/**
* A detailed description for the VDS.
*/
description?: pulumi.Input<string>;
/**
* Allow VMDirectPath Gen2 on the ports this policy applies to.
*/
directpathGen2Allowed?: pulumi.Input<boolean>;
/**
* The average egress bandwidth in bits per second if egress shaping is enabled on the port.
*/
egressShapingAverageBandwidth?: pulumi.Input<number>;
/**
* The maximum egress burst size allowed in bytes if egress shaping is enabled on the port.
*/
egressShapingBurstSize?: pulumi.Input<number>;
/**
* True if the traffic shaper is enabled for egress traffic on the port.
*/
egressShapingEnabled?: pulumi.Input<boolean>;
/**
* The peak egress bandwidth during bursts in bits per second if egress traffic shaping is enabled on the port.
*/
egressShapingPeakBandwidth?: pulumi.Input<number>;
/**
* If true, the teaming policy will re-activate failed interfaces higher in precedence when they come back up.
*/
failback?: pulumi.Input<boolean>;
/**
* The maximum allowed usage for the faultTolerance traffic class, in Mbits/sec.
*/
faulttoleranceMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the faultTolerance traffic class, in Mbits/sec.
*/
faulttoleranceReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the faultTolerance traffic class for a custom share level.
*/
faulttoleranceShareCount?: pulumi.Input<number>;
/**
* The allocation level for the faultTolerance traffic class. Can be one of high, low, normal, or custom.
*/
faulttoleranceShareLevel?: pulumi.Input<string>;
/**
* The folder in which to create the VDS.
* Forces a new resource if changed.
*/
folder?: pulumi.Input<string>;
/**
* The maximum allowed usage for the hbr traffic class, in Mbits/sec.
*/
hbrMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the hbr traffic class, in Mbits/sec.
*/
hbrReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the hbr traffic class for a custom share level.
*/
hbrShareCount?: pulumi.Input<number>;
/**
* The allocation level for the hbr traffic class. Can be one of high, low, normal, or custom.
*/
hbrShareLevel?: pulumi.Input<string>;
/**
* A host member specification.
*/
hosts?: pulumi.Input<pulumi.Input<inputs.DistributedVirtualSwitchHost>[]>;
/**
* Whether to ignore existing PVLAN mappings not managed by this resource.
*/
ignoreOtherPvlanMappings?: pulumi.Input<boolean>;
/**
* The average ingress bandwidth in bits per second if ingress shaping is enabled on the port.
*/
ingressShapingAverageBandwidth?: pulumi.Input<number>;
/**
* The maximum ingress burst size allowed in bytes if ingress shaping is enabled on the port.
*/
ingressShapingBurstSize?: pulumi.Input<number>;
/**
* True if the traffic shaper is enabled for ingress traffic on the port.
*/
ingressShapingEnabled?: pulumi.Input<boolean>;
/**
* The peak ingress bandwidth during bursts in bits per second if ingress traffic shaping is enabled on the port.
*/
ingressShapingPeakBandwidth?: pulumi.Input<number>;
/**
* An IPv4 address to identify the switch. This is
* mostly useful when used with the Netflow arguments.
*/
ipv4Address?: pulumi.Input<string>;
/**
* The maximum allowed usage for the iSCSI traffic class, in Mbits/sec.
*/
iscsiMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the iSCSI traffic class, in Mbits/sec.
*/
iscsiReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the iSCSI traffic class for a custom share level.
*/
iscsiShareCount?: pulumi.Input<number>;
/**
* The allocation level for the iSCSI traffic class. Can be one of high, low, normal, or custom.
*/
iscsiShareLevel?: pulumi.Input<string>;
/**
* The Link Aggregation Control Protocol group
* version to use with the VDS. Possible values are `singleLag` and
* `multipleLag`.
*/
lacpApiVersion?: pulumi.Input<string>;
/**
* Whether or not to enable LACP on all uplink ports.
*/
lacpEnabled?: pulumi.Input<boolean>;
/**
* The uplink LACP mode to use. Can be one of active or passive.
*/
lacpMode?: pulumi.Input<string>;
/**
* Whether to `advertise` or `listen`
* for link discovery traffic.
*/
linkDiscoveryOperation?: pulumi.Input<string>;
/**
* The discovery protocol type. Valid
* types are `cdp` and `lldp`.
*/
linkDiscoveryProtocol?: pulumi.Input<string>;
/**
* The maximum allowed usage for the management traffic class, in Mbits/sec.
*/
managementMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the management traffic class, in Mbits/sec.
*/
managementReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the management traffic class for a custom share level.
*/
managementShareCount?: pulumi.Input<number>;
/**
* The allocation level for the management traffic class. Can be one of high, low, normal, or custom.
*/
managementShareLevel?: pulumi.Input<string>;
/**
* The maximum transmission unit (MTU) for the VDS.
*/
maxMtu?: pulumi.Input<number>;
/**
* The multicast filtering mode to use
* with the VDS. Can be one of `legacyFiltering` or `snooping`.
*/
multicastFilteringMode?: pulumi.Input<string>;
/**
* The name of the VDS.
*/
name?: pulumi.Input<string>;
/**
* The number of seconds after which active flows are forced to be exported to the collector.
*/
netflowActiveFlowTimeout?: pulumi.Input<number>;
/**
* IP address for the netflow collector, using IPv4 or IPv6.
*/
netflowCollectorIpAddress?: pulumi.Input<string>;
/**
* The port for the netflow collector.
*/
netflowCollectorPort?: pulumi.Input<number>;
/**
* Indicates whether to enable netflow on all ports.
*/
netflowEnabled?: pulumi.Input<boolean>;
/**
* The number of seconds after which idle flows are forced to be exported to the collector.
*/
netflowIdleFlowTimeout?: pulumi.Input<number>;
/**
* Whether to limit analysis to traffic that has both source and destination served by the same host.
*/
netflowInternalFlowsOnly?: pulumi.Input<boolean>;
/**
* The observation Domain ID for the netflow collector.
*/
netflowObservationDomainId?: pulumi.Input<number>;
/**
* The ratio of total number of packets to the number of packets analyzed. Set to 0 to disable sampling, meaning that all packets are analyzed.
*/
netflowSamplingRate?: pulumi.Input<number>;
/**
* Whether or not to enable network resource control, enabling advanced traffic shaping and resource control features.
*/
networkResourceControlEnabled?: pulumi.Input<boolean>;
/**
* The network I/O control version to use. Can be one of version2 or version3.
*/
networkResourceControlVersion?: pulumi.Input<string>;
/**
* The maximum allowed usage for the nfs traffic class, in Mbits/sec.
*/
nfsMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the nfs traffic class, in Mbits/sec.
*/
nfsReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the nfs traffic class for a custom share level.
*/
nfsShareCount?: pulumi.Input<number>;
/**
* The allocation level for the nfs traffic class. Can be one of high, low, normal, or custom.
*/
nfsShareLevel?: pulumi.Input<string>;
/**
* If true, the teaming policy will notify the broadcast network of a NIC failover, triggering cache updates.
*/
notifySwitches?: pulumi.Input<boolean>;
/**
* The secondary VLAN ID for this port.
*/
portPrivateSecondaryVlanId?: pulumi.Input<number>;
/**
* A private VLAN (PVLAN) mapping.
*/
pvlanMappings?: pulumi.Input<pulumi.Input<inputs.DistributedVirtualSwitchPvlanMapping>[]>;
/**
* List of standby uplinks used for load balancing, matching the names of the uplinks assigned in the DVS.
*/
standbyUplinks?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The IDs of any tags to attach to this resource.
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The network adapter teaming policy. Can be one of loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, failover_explicit, or loadbalance_loadbased.
*/
teamingPolicy?: pulumi.Input<string>;
/**
* 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?: pulumi.Input<boolean>;
/**
* A list of uplink ports. The contents of this list control both the uplink count and names of the uplinks on the DVS across hosts.
*/
uplinks?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The maximum allowed usage for the vdp traffic class, in Mbits/sec.
*/
vdpMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the vdp traffic class, in Mbits/sec.
*/
vdpReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the vdp traffic class for a custom share level.
*/
vdpShareCount?: pulumi.Input<number>;
/**
* The allocation level for the vdp traffic class. Can be one of high, low, normal, or custom.
*/
vdpShareLevel?: pulumi.Input<string>;
/**
* The version of the VDS. By default, a VDS is created
* at the latest version supported by the vSphere version if not specified.
* A VDS can be upgraded to a newer version, but can not be downgraded.
*/
version?: pulumi.Input<string>;
/**
* The maximum allowed usage for the virtualMachine traffic class, in Mbits/sec.
*/
virtualmachineMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the virtualMachine traffic class, in Mbits/sec.
*/
virtualmachineReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the virtualMachine traffic class for a custom share level.
*/
virtualmachineShareCount?: pulumi.Input<number>;
/**
* The allocation level for the virtualMachine traffic class. Can be one of high, low, normal, or custom.
*/
virtualmachineShareLevel?: pulumi.Input<string>;
/**
* The VLAN ID for single VLAN mode. 0 denotes no VLAN.
*/
vlanId?: pulumi.Input<number>;
/**
* The VLAN ID for single VLAN mode. 0 denotes no VLAN.
*/
vlanRanges?: pulumi.Input<pulumi.Input<inputs.DistributedVirtualSwitchVlanRange>[]>;
/**
* The maximum allowed usage for the vmotion traffic class, in Mbits/sec.
*/
vmotionMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the vmotion traffic class, in Mbits/sec.
*/
vmotionReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the vmotion traffic class for a custom share level.
*/
vmotionShareCount?: pulumi.Input<number>;
/**
* The allocation level for the vmotion traffic class. Can be one of high, low, normal, or custom.
*/
vmotionShareLevel?: pulumi.Input<string>;
/**
* The maximum allowed usage for the vsan traffic class, in Mbits/sec.
*/
vsanMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the vsan traffic class, in Mbits/sec.
*/
vsanReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the vsan traffic class for a custom share level.
*/
vsanShareCount?: pulumi.Input<number>;
/**
* The allocation level for the vsan traffic class. Can be one of high, low, normal, or custom.
*/
vsanShareLevel?: pulumi.Input<string>;
}
/**
* The set of arguments for constructing a DistributedVirtualSwitch resource.
*/
export interface DistributedVirtualSwitchArgs {
/**
* List of active uplinks used for load balancing, matching the names of the uplinks assigned in the DVS.
*/
activeUplinks?: pulumi.Input<pulumi.Input<string>[]>;
/**
* 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?: pulumi.Input<boolean>;
/**
* Controls whether or not the Media Access Control (MAC) address can be changed.
*/
allowMacChanges?: pulumi.Input<boolean>;
/**
* Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port.
*/
allowPromiscuous?: pulumi.Input<boolean>;
/**
* The maximum allowed usage for the backupNfc traffic class, in Mbits/sec.
*/
backupnfcMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the backupNfc traffic class, in Mbits/sec.
*/
backupnfcReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the backupNfc traffic class for a custom share level.
*/
backupnfcShareCount?: pulumi.Input<number>;
/**
* The allocation level for the backupNfc traffic class. Can be one of high, low, normal, or custom.
*/
backupnfcShareLevel?: pulumi.Input<string>;
/**
* Indicates whether to block all ports by default.
*/
blockAllPorts?: pulumi.Input<boolean>;
/**
* Enable beacon probing on the ports this policy applies to.
*/
checkBeacon?: pulumi.Input<boolean>;
/**
* The detailed contact information for the person
* who is responsible for the VDS.
*/
contactDetail?: pulumi.Input<string>;
/**
* The name of the person who is responsible for the
* VDS.
*/
contactName?: pulumi.Input<string>;
/**
* Map of custom attribute ids to attribute
* value strings to set for VDS.
*
* > **NOTE:** Custom attributes are unsupported on direct ESXi host connections
* and requires vCenter Server.
*/
customAttributes?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The ID of the datacenter where the VDS will be
* created. Forces a new resource if changed.
*/
datacenterId: pulumi.Input<string>;
/**
* A detailed description for the VDS.
*/
description?: pulumi.Input<string>;
/**
* Allow VMDirectPath Gen2 on the ports this policy applies to.
*/
directpathGen2Allowed?: pulumi.Input<boolean>;
/**
* The average egress bandwidth in bits per second if egress shaping is enabled on the port.
*/
egressShapingAverageBandwidth?: pulumi.Input<number>;
/**
* The maximum egress burst size allowed in bytes if egress shaping is enabled on the port.
*/
egressShapingBurstSize?: pulumi.Input<number>;
/**
* True if the traffic shaper is enabled for egress traffic on the port.
*/
egressShapingEnabled?: pulumi.Input<boolean>;
/**
* The peak egress bandwidth during bursts in bits per second if egress traffic shaping is enabled on the port.
*/
egressShapingPeakBandwidth?: pulumi.Input<number>;
/**
* If true, the teaming policy will re-activate failed interfaces higher in precedence when they come back up.
*/
failback?: pulumi.Input<boolean>;
/**
* The maximum allowed usage for the faultTolerance traffic class, in Mbits/sec.
*/
faulttoleranceMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the faultTolerance traffic class, in Mbits/sec.
*/
faulttoleranceReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the faultTolerance traffic class for a custom share level.
*/
faulttoleranceShareCount?: pulumi.Input<number>;
/**
* The allocation level for the faultTolerance traffic class. Can be one of high, low, normal, or custom.
*/
faulttoleranceShareLevel?: pulumi.Input<string>;
/**
* The folder in which to create the VDS.
* Forces a new resource if changed.
*/
folder?: pulumi.Input<string>;
/**
* The maximum allowed usage for the hbr traffic class, in Mbits/sec.
*/
hbrMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the hbr traffic class, in Mbits/sec.
*/
hbrReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the hbr traffic class for a custom share level.
*/
hbrShareCount?: pulumi.Input<number>;
/**
* The allocation level for the hbr traffic class. Can be one of high, low, normal, or custom.
*/
hbrShareLevel?: pulumi.Input<string>;
/**
* A host member specification.
*/
hosts?: pulumi.Input<pulumi.Input<inputs.DistributedVirtualSwitchHost>[]>;
/**
* Whether to ignore existing PVLAN mappings not managed by this resource.
*/
ignoreOtherPvlanMappings?: pulumi.Input<boolean>;
/**
* The average ingress bandwidth in bits per second if ingress shaping is enabled on the port.
*/
ingressShapingAverageBandwidth?: pulumi.Input<number>;
/**
* The maximum ingress burst size allowed in bytes if ingress shaping is enabled on the port.
*/
ingressShapingBurstSize?: pulumi.Input<number>;
/**
* True if the traffic shaper is enabled for ingress traffic on the port.
*/
ingressShapingEnabled?: pulumi.Input<boolean>;
/**
* The peak ingress bandwidth during bursts in bits per second if ingress traffic shaping is enabled on the port.
*/
ingressShapingPeakBandwidth?: pulumi.Input<number>;
/**
* An IPv4 address to identify the switch. This is
* mostly useful when used with the Netflow arguments.
*/
ipv4Address?: pulumi.Input<string>;
/**
* The maximum allowed usage for the iSCSI traffic class, in Mbits/sec.
*/
iscsiMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the iSCSI traffic class, in Mbits/sec.
*/
iscsiReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the iSCSI traffic class for a custom share level.
*/
iscsiShareCount?: pulumi.Input<number>;
/**
* The allocation level for the iSCSI traffic class. Can be one of high, low, normal, or custom.
*/
iscsiShareLevel?: pulumi.Input<string>;
/**
* The Link Aggregation Control Protocol group
* version to use with the VDS. Possible values are `singleLag` and
* `multipleLag`.
*/
lacpApiVersion?: pulumi.Input<string>;
/**
* Whether or not to enable LACP on all uplink ports.
*/
lacpEnabled?: pulumi.Input<boolean>;
/**
* The uplink LACP mode to use. Can be one of active or passive.
*/
lacpMode?: pulumi.Input<string>;
/**
* Whether to `advertise` or `listen`
* for link discovery traffic.
*/
linkDiscoveryOperation?: pulumi.Input<string>;
/**
* The discovery protocol type. Valid
* types are `cdp` and `lldp`.
*/
linkDiscoveryProtocol?: pulumi.Input<string>;
/**
* The maximum allowed usage for the management traffic class, in Mbits/sec.
*/
managementMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the management traffic class, in Mbits/sec.
*/
managementReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the management traffic class for a custom share level.
*/
managementShareCount?: pulumi.Input<number>;
/**
* The allocation level for the management traffic class. Can be one of high, low, normal, or custom.
*/
managementShareLevel?: pulumi.Input<string>;
/**
* The maximum transmission unit (MTU) for the VDS.
*/
maxMtu?: pulumi.Input<number>;
/**
* The multicast filtering mode to use
* with the VDS. Can be one of `legacyFiltering` or `snooping`.
*/
multicastFilteringMode?: pulumi.Input<string>;
/**
* The name of the VDS.
*/
name?: pulumi.Input<string>;
/**
* The number of seconds after which active flows are forced to be exported to the collector.
*/
netflowActiveFlowTimeout?: pulumi.Input<number>;
/**
* IP address for the netflow collector, using IPv4 or IPv6.
*/
netflowCollectorIpAddress?: pulumi.Input<string>;
/**
* The port for the netflow collector.
*/
netflowCollectorPort?: pulumi.Input<number>;
/**
* Indicates whether to enable netflow on all ports.
*/
netflowEnabled?: pulumi.Input<boolean>;
/**
* The number of seconds after which idle flows are forced to be exported to the collector.
*/
netflowIdleFlowTimeout?: pulumi.Input<number>;
/**
* Whether to limit analysis to traffic that has both source and destination served by the same host.
*/
netflowInternalFlowsOnly?: pulumi.Input<boolean>;
/**
* The observation Domain ID for the netflow collector.
*/
netflowObservationDomainId?: pulumi.Input<number>;
/**
* The ratio of total number of packets to the number of packets analyzed. Set to 0 to disable sampling, meaning that all packets are analyzed.
*/
netflowSamplingRate?: pulumi.Input<number>;
/**
* Whether or not to enable network resource control, enabling advanced traffic shaping and resource control features.
*/
networkResourceControlEnabled?: pulumi.Input<boolean>;
/**
* The network I/O control version to use. Can be one of version2 or version3.
*/
networkResourceControlVersion?: pulumi.Input<string>;
/**
* The maximum allowed usage for the nfs traffic class, in Mbits/sec.
*/
nfsMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the nfs traffic class, in Mbits/sec.
*/
nfsReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the nfs traffic class for a custom share level.
*/
nfsShareCount?: pulumi.Input<number>;
/**
* The allocation level for the nfs traffic class. Can be one of high, low, normal, or custom.
*/
nfsShareLevel?: pulumi.Input<string>;
/**
* If true, the teaming policy will notify the broadcast network of a NIC failover, triggering cache updates.
*/
notifySwitches?: pulumi.Input<boolean>;
/**
* The secondary VLAN ID for this port.
*/
portPrivateSecondaryVlanId?: pulumi.Input<number>;
/**
* A private VLAN (PVLAN) mapping.
*/
pvlanMappings?: pulumi.Input<pulumi.Input<inputs.DistributedVirtualSwitchPvlanMapping>[]>;
/**
* List of standby uplinks used for load balancing, matching the names of the uplinks assigned in the DVS.
*/
standbyUplinks?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The IDs of any tags to attach to this resource.
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The network adapter teaming policy. Can be one of loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, failover_explicit, or loadbalance_loadbased.
*/
teamingPolicy?: pulumi.Input<string>;
/**
* 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?: pulumi.Input<boolean>;
/**
* A list of uplink ports. The contents of this list control both the uplink count and names of the uplinks on the DVS across hosts.
*/
uplinks?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The maximum allowed usage for the vdp traffic class, in Mbits/sec.
*/
vdpMaximumMbit?: pulumi.Input<number>;
/**
* The amount of guaranteed bandwidth for the vdp traffic class, in Mbits/sec.
*/
vdpReservationMbit?: pulumi.Input<number>;
/**
* The amount of shares to allocate to the vdp traffic class for a custom share level.
*/
vdpShareCount?: pulumi.Input<number>;
/**
* The allocation level for the vdp traffic class. Can be one of high, low, normal, or custom.
*/
vdpShareLevel?: pulumi.Input<string>;
/**
* The version of the VDS. By default, a VDS is created
* at the latest version supported by the vSphere version if not specified.
* A VDS can be upgraded to