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("hosts") || [ * "esxi-01.example.com", * "esxi-02.example.com", * "esxi-03.example.com", * ]; * const networkInterfaces = config.getObject("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, 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; /** * 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; /** * Controls whether or not the Media Access Control (MAC) address can be changed. */ readonly allowMacChanges: pulumi.Output; /** * Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port. */ readonly allowPromiscuous: pulumi.Output; /** * The maximum allowed usage for the backupNfc traffic class, in Mbits/sec. */ readonly backupnfcMaximumMbit: pulumi.Output; /** * The amount of guaranteed bandwidth for the backupNfc traffic class, in Mbits/sec. */ readonly backupnfcReservationMbit: pulumi.Output; /** * The amount of shares to allocate to the backupNfc traffic class for a custom share level. */ readonly backupnfcShareCount: pulumi.Output; /** * The allocation level for the backupNfc traffic class. Can be one of high, low, normal, or custom. */ readonly backupnfcShareLevel: pulumi.Output; /** * Indicates whether to block all ports by default. */ readonly blockAllPorts: pulumi.Output; /** * Enable beacon probing on the ports this policy applies to. */ readonly checkBeacon: pulumi.Output; /** * The current version of the VDS configuration, incremented * by subsequent updates to the VDS. */ readonly configVersion: pulumi.Output; /** * The detailed contact information for the person * who is responsible for the VDS. */ readonly contactDetail: pulumi.Output; /** * The name of the person who is responsible for the * VDS. */ readonly contactName: pulumi.Output; /** * 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; /** * A detailed description for the VDS. */ readonly description: pulumi.Output; /** * Allow VMDirectPath Gen2 on the ports this policy applies to. */ readonly directpathGen2Allowed: pulumi.Output; /** * The average egress bandwidth in bits per second if egress shaping is enabled on the port. */ readonly egressShapingAverageBandwidth: pulumi.Output; /** * The maximum egress burst size allowed in bytes if egress shaping is enabled on the port. */ readonly egressShapingBurstSize: pulumi.Output; /** * True if the traffic shaper is enabled for egress traffic on the port. */ readonly egressShapingEnabled: pulumi.Output; /** * The peak egress bandwidth during bursts in bits per second if egress traffic shaping is enabled on the port. */ readonly egressShapingPeakBandwidth: pulumi.Output; /** * If true, the teaming policy will re-activate failed interfaces higher in precedence when they come back up. */ readonly failback: pulumi.Output; /** * The maximum allowed usage for the faultTolerance traffic class, in Mbits/sec. */ readonly faulttoleranceMaximumMbit: pulumi.Output; /** * The amount of guaranteed bandwidth for the faultTolerance traffic class, in Mbits/sec. */ readonly faulttoleranceReservationMbit: pulumi.Output; /** * The amount of shares to allocate to the faultTolerance traffic class for a custom share level. */ readonly faulttoleranceShareCount: pulumi.Output; /** * The allocation level for the faultTolerance traffic class. Can be one of high, low, normal, or custom. */ readonly faulttoleranceShareLevel: pulumi.Output; /** * The folder in which to create the VDS. * Forces a new resource if changed. */ readonly folder: pulumi.Output; /** * The maximum allowed usage for the hbr traffic class, in Mbits/sec. */ readonly hbrMaximumMbit: pulumi.Output; /** * The amount of guaranteed bandwidth for the hbr traffic class, in Mbits/sec. */ readonly hbrReservationMbit: pulumi.Output; /** * The amount of shares to allocate to the hbr traffic class for a custom share level. */ readonly hbrShareCount: pulumi.Output; /** * The allocation level for the hbr traffic class. Can be one of high, low, normal, or custom. */ readonly hbrShareLevel: pulumi.Output; /** * A host member specification. */ readonly hosts: pulumi.Output; /** * Whether to ignore existing PVLAN mappings not managed by this resource. */ readonly ignoreOtherPvlanMappings: pulumi.Output; /** * The average ingress bandwidth in bits per second if ingress shaping is enabled on the port. */ readonly ingressShapingAverageBandwidth: pulumi.Output; /** * The maximum ingress burst size allowed in bytes if ingress shaping is enabled on the port. */ readonly ingressShapingBurstSize: pulumi.Output; /** * True if the traffic shaper is enabled for ingress traffic on the port. */ readonly ingressShapingEnabled: pulumi.Output; /** * The peak ingress bandwidth during bursts in bits per second if ingress traffic shaping is enabled on the port. */ readonly ingressShapingPeakBandwidth: pulumi.Output; /** * An IPv4 address to identify the switch. This is * mostly useful when used with the Netflow arguments. */ readonly ipv4Address: pulumi.Output; /** * The maximum allowed usage for the iSCSI traffic class, in Mbits/sec. */ readonly iscsiMaximumMbit: pulumi.Output; /** * The amount of guaranteed bandwidth for the iSCSI traffic class, in Mbits/sec. */ readonly iscsiReservationMbit: pulumi.Output; /** * The amount of shares to allocate to the iSCSI traffic class for a custom share level. */ readonly iscsiShareCount: pulumi.Output; /** * The allocation level for the iSCSI traffic class. Can be one of high, low, normal, or custom. */ readonly iscsiShareLevel: pulumi.Output; /** * The Link Aggregation Control Protocol group * version to use with the VDS. Possible values are `singleLag` and * `multipleLag`. */ readonly lacpApiVersion: pulumi.Output; /** * Whether or not to enable LACP on all uplink ports. */ readonly lacpEnabled: pulumi.Output; /** * The uplink LACP mode to use. Can be one of active or passive. */ readonly lacpMode: pulumi.Output; /** * Whether to `advertise` or `listen` * for link discovery traffic. */ readonly linkDiscoveryOperation: pulumi.Output; /** * The discovery protocol type. Valid * types are `cdp` and `lldp`. */ readonly linkDiscoveryProtocol: pulumi.Output; /** * The maximum allowed usage for the management traffic class, in Mbits/sec. */ readonly managementMaximumMbit: pulumi.Output; /** * The amount of guaranteed bandwidth for the management traffic class, in Mbits/sec. */ readonly managementReservationMbit: pulumi.Output; /** * The amount of shares to allocate to the management traffic class for a custom share level. */ readonly managementShareCount: pulumi.Output; /** * The allocation level for the management traffic class. Can be one of high, low, normal, or custom. */ readonly managementShareLevel: pulumi.Output; /** * The maximum transmission unit (MTU) for the VDS. */ readonly maxMtu: pulumi.Output; /** * The multicast filtering mode to use * with the VDS. Can be one of `legacyFiltering` or `snooping`. */ readonly multicastFilteringMode: pulumi.Output; /** * The name of the VDS. */ readonly name: pulumi.Output; /** * The number of seconds after which active flows are forced to be exported to the collector. */ readonly netflowActiveFlowTimeout: pulumi.Output; /** * IP address for the netflow collector, using IPv4 or IPv6. */ readonly netflowCollectorIpAddress: pulumi.Output; /** * The port for the netflow collector. */ readonly netflowCollectorPort: pulumi.Output; /** * Indicates whether to enable netflow on all ports. */ readonly netflowEnabled: pulumi.Output; /** * The number of seconds after which idle flows are forced to be exported to the collector. */ readonly netflowIdleFlowTimeout: pulumi.Output; /** * Whether to limit analysis to traffic that has both source and destination served by the same host. */ readonly netflowInternalFlowsOnly: pulumi.Output; /** * The observation Domain ID for the netflow collector. */ readonly netflowObservationDomainId: pulumi.Output; /** * 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; /** * Whether or not to enable network resource control, enabling advanced traffic shaping and resource control features. */ readonly networkResourceControlEnabled: pulumi.Output; /** * The network I/O control version to use. Can be one of version2 or version3. */ readonly networkResourceControlVersion: pulumi.Output; /** * The maximum allowed usage for the nfs traffic class, in Mbits/sec. */ readonly nfsMaximumMbit: pulumi.Output; /** * The amount of guaranteed bandwidth for the nfs traffic class, in Mbits/sec. */ readonly nfsReservationMbit: pulumi.Output; /** * The amount of shares to allocate to the nfs traffic class for a custom share level. */ readonly nfsShareCount: pulumi.Output; /** * The allocation level for the nfs traffic class. Can be one of high, low, normal, or custom. */ readonly nfsShareLevel: pulumi.Output; /** * If true, the teaming policy will notify the broadcast network of a NIC failover, triggering cache updates. */ readonly notifySwitches: pulumi.Output; /** * The secondary VLAN ID for this port. */ readonly portPrivateSecondaryVlanId: pulumi.Output; /** * A private VLAN (PVLAN) mapping. */ readonly pvlanMappings: pulumi.Output; /** * List of standby uplinks used for load balancing, matching the names of the uplinks assigned in the DVS. */ readonly standbyUplinks: pulumi.Output; /** * The IDs of any tags to attach to this resource. */ readonly tags: pulumi.Output; /** * The network adapter teaming policy. Can be one of loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, * failover_explicit, or loadbalance_loadbased. */ readonly teamingPolicy: pulumi.Output; /** * 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; /** * 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; /** * The maximum allowed usage for the vdp traffic class, in Mbits/sec. */ readonly vdpMaximumMbit: pulumi.Output; /** * The amount of guaranteed bandwidth for the vdp traffic class, in Mbits/sec. */ readonly vdpReservationMbit: pulumi.Output; /** * The amount of shares to allocate to the vdp traffic class for a custom share level. */ readonly vdpShareCount: pulumi.Output; /** * The allocation level for the vdp traffic class. Can be one of high, low, normal, or custom. */ readonly vdpShareLevel: pulumi.Output; /** * 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; /** * The maximum allowed usage for the virtualMachine traffic class, in Mbits/sec. */ readonly virtualmachineMaximumMbit: pulumi.Output; /** * The amount of guaranteed bandwidth for the virtualMachine traffic class, in Mbits/sec. */ readonly virtualmachineReservationMbit: pulumi.Output; /** * The amount of shares to allocate to the virtualMachine traffic class for a custom share level. */ readonly virtualmachineShareCount: pulumi.Output; /** * The allocation level for the virtualMachine traffic class. Can be one of high, low, normal, or custom. */ readonly virtualmachineShareLevel: pulumi.Output; /** * The VLAN ID for single VLAN mode. 0 denotes no VLAN. */ readonly vlanId: pulumi.Output; /** * The VLAN ID for single VLAN mode. 0 denotes no VLAN. */ readonly vlanRanges: pulumi.Output; /** * The maximum allowed usage for the vmotion traffic class, in Mbits/sec. */ readonly vmotionMaximumMbit: pulumi.Output; /** * The amount of guaranteed bandwidth for the vmotion traffic class, in Mbits/sec. */ readonly vmotionReservationMbit: pulumi.Output; /** * The amount of shares to allocate to the vmotion traffic class for a custom share level. */ readonly vmotionShareCount: pulumi.Output; /** * The allocation level for the vmotion traffic class. Can be one of high, low, normal, or custom. */ readonly vmotionShareLevel: pulumi.Output; /** * The maximum allowed usage for the vsan traffic class, in Mbits/sec. */ readonly vsanMaximumMbit: pulumi.Output; /** * The amount of guaranteed bandwidth for the vsan traffic class, in Mbits/sec. */ readonly vsanReservationMbit: pulumi.Output; /** * The amount of shares to allocate to the vsan traffic class for a custom share level. */ readonly vsanShareCount: pulumi.Output; /** * The allocation level for the vsan traffic class. Can be one of high, low, normal, or custom. */ readonly vsanShareLevel: pulumi.Output; /** * 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[]>; /** * 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; /** * Controls whether or not the Media Access Control (MAC) address can be changed. */ allowMacChanges?: pulumi.Input; /** * Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port. */ allowPromiscuous?: pulumi.Input; /** * The maximum allowed usage for the backupNfc traffic class, in Mbits/sec. */ backupnfcMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the backupNfc traffic class, in Mbits/sec. */ backupnfcReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the backupNfc traffic class for a custom share level. */ backupnfcShareCount?: pulumi.Input; /** * The allocation level for the backupNfc traffic class. Can be one of high, low, normal, or custom. */ backupnfcShareLevel?: pulumi.Input; /** * Indicates whether to block all ports by default. */ blockAllPorts?: pulumi.Input; /** * Enable beacon probing on the ports this policy applies to. */ checkBeacon?: pulumi.Input; /** * The current version of the VDS configuration, incremented * by subsequent updates to the VDS. */ configVersion?: pulumi.Input; /** * The detailed contact information for the person * who is responsible for the VDS. */ contactDetail?: pulumi.Input; /** * The name of the person who is responsible for the * VDS. */ contactName?: pulumi.Input; /** * 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; }>; /** * The ID of the datacenter where the VDS will be * created. Forces a new resource if changed. */ datacenterId?: pulumi.Input; /** * A detailed description for the VDS. */ description?: pulumi.Input; /** * Allow VMDirectPath Gen2 on the ports this policy applies to. */ directpathGen2Allowed?: pulumi.Input; /** * The average egress bandwidth in bits per second if egress shaping is enabled on the port. */ egressShapingAverageBandwidth?: pulumi.Input; /** * The maximum egress burst size allowed in bytes if egress shaping is enabled on the port. */ egressShapingBurstSize?: pulumi.Input; /** * True if the traffic shaper is enabled for egress traffic on the port. */ egressShapingEnabled?: pulumi.Input; /** * The peak egress bandwidth during bursts in bits per second if egress traffic shaping is enabled on the port. */ egressShapingPeakBandwidth?: pulumi.Input; /** * If true, the teaming policy will re-activate failed interfaces higher in precedence when they come back up. */ failback?: pulumi.Input; /** * The maximum allowed usage for the faultTolerance traffic class, in Mbits/sec. */ faulttoleranceMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the faultTolerance traffic class, in Mbits/sec. */ faulttoleranceReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the faultTolerance traffic class for a custom share level. */ faulttoleranceShareCount?: pulumi.Input; /** * The allocation level for the faultTolerance traffic class. Can be one of high, low, normal, or custom. */ faulttoleranceShareLevel?: pulumi.Input; /** * The folder in which to create the VDS. * Forces a new resource if changed. */ folder?: pulumi.Input; /** * The maximum allowed usage for the hbr traffic class, in Mbits/sec. */ hbrMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the hbr traffic class, in Mbits/sec. */ hbrReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the hbr traffic class for a custom share level. */ hbrShareCount?: pulumi.Input; /** * The allocation level for the hbr traffic class. Can be one of high, low, normal, or custom. */ hbrShareLevel?: pulumi.Input; /** * A host member specification. */ hosts?: pulumi.Input[]>; /** * Whether to ignore existing PVLAN mappings not managed by this resource. */ ignoreOtherPvlanMappings?: pulumi.Input; /** * The average ingress bandwidth in bits per second if ingress shaping is enabled on the port. */ ingressShapingAverageBandwidth?: pulumi.Input; /** * The maximum ingress burst size allowed in bytes if ingress shaping is enabled on the port. */ ingressShapingBurstSize?: pulumi.Input; /** * True if the traffic shaper is enabled for ingress traffic on the port. */ ingressShapingEnabled?: pulumi.Input; /** * The peak ingress bandwidth during bursts in bits per second if ingress traffic shaping is enabled on the port. */ ingressShapingPeakBandwidth?: pulumi.Input; /** * An IPv4 address to identify the switch. This is * mostly useful when used with the Netflow arguments. */ ipv4Address?: pulumi.Input; /** * The maximum allowed usage for the iSCSI traffic class, in Mbits/sec. */ iscsiMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the iSCSI traffic class, in Mbits/sec. */ iscsiReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the iSCSI traffic class for a custom share level. */ iscsiShareCount?: pulumi.Input; /** * The allocation level for the iSCSI traffic class. Can be one of high, low, normal, or custom. */ iscsiShareLevel?: pulumi.Input; /** * The Link Aggregation Control Protocol group * version to use with the VDS. Possible values are `singleLag` and * `multipleLag`. */ lacpApiVersion?: pulumi.Input; /** * Whether or not to enable LACP on all uplink ports. */ lacpEnabled?: pulumi.Input; /** * The uplink LACP mode to use. Can be one of active or passive. */ lacpMode?: pulumi.Input; /** * Whether to `advertise` or `listen` * for link discovery traffic. */ linkDiscoveryOperation?: pulumi.Input; /** * The discovery protocol type. Valid * types are `cdp` and `lldp`. */ linkDiscoveryProtocol?: pulumi.Input; /** * The maximum allowed usage for the management traffic class, in Mbits/sec. */ managementMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the management traffic class, in Mbits/sec. */ managementReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the management traffic class for a custom share level. */ managementShareCount?: pulumi.Input; /** * The allocation level for the management traffic class. Can be one of high, low, normal, or custom. */ managementShareLevel?: pulumi.Input; /** * The maximum transmission unit (MTU) for the VDS. */ maxMtu?: pulumi.Input; /** * The multicast filtering mode to use * with the VDS. Can be one of `legacyFiltering` or `snooping`. */ multicastFilteringMode?: pulumi.Input; /** * The name of the VDS. */ name?: pulumi.Input; /** * The number of seconds after which active flows are forced to be exported to the collector. */ netflowActiveFlowTimeout?: pulumi.Input; /** * IP address for the netflow collector, using IPv4 or IPv6. */ netflowCollectorIpAddress?: pulumi.Input; /** * The port for the netflow collector. */ netflowCollectorPort?: pulumi.Input; /** * Indicates whether to enable netflow on all ports. */ netflowEnabled?: pulumi.Input; /** * The number of seconds after which idle flows are forced to be exported to the collector. */ netflowIdleFlowTimeout?: pulumi.Input; /** * Whether to limit analysis to traffic that has both source and destination served by the same host. */ netflowInternalFlowsOnly?: pulumi.Input; /** * The observation Domain ID for the netflow collector. */ netflowObservationDomainId?: pulumi.Input; /** * 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; /** * Whether or not to enable network resource control, enabling advanced traffic shaping and resource control features. */ networkResourceControlEnabled?: pulumi.Input; /** * The network I/O control version to use. Can be one of version2 or version3. */ networkResourceControlVersion?: pulumi.Input; /** * The maximum allowed usage for the nfs traffic class, in Mbits/sec. */ nfsMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the nfs traffic class, in Mbits/sec. */ nfsReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the nfs traffic class for a custom share level. */ nfsShareCount?: pulumi.Input; /** * The allocation level for the nfs traffic class. Can be one of high, low, normal, or custom. */ nfsShareLevel?: pulumi.Input; /** * If true, the teaming policy will notify the broadcast network of a NIC failover, triggering cache updates. */ notifySwitches?: pulumi.Input; /** * The secondary VLAN ID for this port. */ portPrivateSecondaryVlanId?: pulumi.Input; /** * A private VLAN (PVLAN) mapping. */ pvlanMappings?: pulumi.Input[]>; /** * List of standby uplinks used for load balancing, matching the names of the uplinks assigned in the DVS. */ standbyUplinks?: pulumi.Input[]>; /** * The IDs of any tags to attach to this resource. */ tags?: pulumi.Input[]>; /** * The network adapter teaming policy. Can be one of loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, * failover_explicit, or loadbalance_loadbased. */ teamingPolicy?: pulumi.Input; /** * 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; /** * 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[]>; /** * The maximum allowed usage for the vdp traffic class, in Mbits/sec. */ vdpMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the vdp traffic class, in Mbits/sec. */ vdpReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the vdp traffic class for a custom share level. */ vdpShareCount?: pulumi.Input; /** * The allocation level for the vdp traffic class. Can be one of high, low, normal, or custom. */ vdpShareLevel?: pulumi.Input; /** * 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; /** * The maximum allowed usage for the virtualMachine traffic class, in Mbits/sec. */ virtualmachineMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the virtualMachine traffic class, in Mbits/sec. */ virtualmachineReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the virtualMachine traffic class for a custom share level. */ virtualmachineShareCount?: pulumi.Input; /** * The allocation level for the virtualMachine traffic class. Can be one of high, low, normal, or custom. */ virtualmachineShareLevel?: pulumi.Input; /** * The VLAN ID for single VLAN mode. 0 denotes no VLAN. */ vlanId?: pulumi.Input; /** * The VLAN ID for single VLAN mode. 0 denotes no VLAN. */ vlanRanges?: pulumi.Input[]>; /** * The maximum allowed usage for the vmotion traffic class, in Mbits/sec. */ vmotionMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the vmotion traffic class, in Mbits/sec. */ vmotionReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the vmotion traffic class for a custom share level. */ vmotionShareCount?: pulumi.Input; /** * The allocation level for the vmotion traffic class. Can be one of high, low, normal, or custom. */ vmotionShareLevel?: pulumi.Input; /** * The maximum allowed usage for the vsan traffic class, in Mbits/sec. */ vsanMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the vsan traffic class, in Mbits/sec. */ vsanReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the vsan traffic class for a custom share level. */ vsanShareCount?: pulumi.Input; /** * The allocation level for the vsan traffic class. Can be one of high, low, normal, or custom. */ vsanShareLevel?: pulumi.Input; } /** * 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[]>; /** * 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; /** * Controls whether or not the Media Access Control (MAC) address can be changed. */ allowMacChanges?: pulumi.Input; /** * Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port. */ allowPromiscuous?: pulumi.Input; /** * The maximum allowed usage for the backupNfc traffic class, in Mbits/sec. */ backupnfcMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the backupNfc traffic class, in Mbits/sec. */ backupnfcReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the backupNfc traffic class for a custom share level. */ backupnfcShareCount?: pulumi.Input; /** * The allocation level for the backupNfc traffic class. Can be one of high, low, normal, or custom. */ backupnfcShareLevel?: pulumi.Input; /** * Indicates whether to block all ports by default. */ blockAllPorts?: pulumi.Input; /** * Enable beacon probing on the ports this policy applies to. */ checkBeacon?: pulumi.Input; /** * The detailed contact information for the person * who is responsible for the VDS. */ contactDetail?: pulumi.Input; /** * The name of the person who is responsible for the * VDS. */ contactName?: pulumi.Input; /** * 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; }>; /** * The ID of the datacenter where the VDS will be * created. Forces a new resource if changed. */ datacenterId: pulumi.Input; /** * A detailed description for the VDS. */ description?: pulumi.Input; /** * Allow VMDirectPath Gen2 on the ports this policy applies to. */ directpathGen2Allowed?: pulumi.Input; /** * The average egress bandwidth in bits per second if egress shaping is enabled on the port. */ egressShapingAverageBandwidth?: pulumi.Input; /** * The maximum egress burst size allowed in bytes if egress shaping is enabled on the port. */ egressShapingBurstSize?: pulumi.Input; /** * True if the traffic shaper is enabled for egress traffic on the port. */ egressShapingEnabled?: pulumi.Input; /** * The peak egress bandwidth during bursts in bits per second if egress traffic shaping is enabled on the port. */ egressShapingPeakBandwidth?: pulumi.Input; /** * If true, the teaming policy will re-activate failed interfaces higher in precedence when they come back up. */ failback?: pulumi.Input; /** * The maximum allowed usage for the faultTolerance traffic class, in Mbits/sec. */ faulttoleranceMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the faultTolerance traffic class, in Mbits/sec. */ faulttoleranceReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the faultTolerance traffic class for a custom share level. */ faulttoleranceShareCount?: pulumi.Input; /** * The allocation level for the faultTolerance traffic class. Can be one of high, low, normal, or custom. */ faulttoleranceShareLevel?: pulumi.Input; /** * The folder in which to create the VDS. * Forces a new resource if changed. */ folder?: pulumi.Input; /** * The maximum allowed usage for the hbr traffic class, in Mbits/sec. */ hbrMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the hbr traffic class, in Mbits/sec. */ hbrReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the hbr traffic class for a custom share level. */ hbrShareCount?: pulumi.Input; /** * The allocation level for the hbr traffic class. Can be one of high, low, normal, or custom. */ hbrShareLevel?: pulumi.Input; /** * A host member specification. */ hosts?: pulumi.Input[]>; /** * Whether to ignore existing PVLAN mappings not managed by this resource. */ ignoreOtherPvlanMappings?: pulumi.Input; /** * The average ingress bandwidth in bits per second if ingress shaping is enabled on the port. */ ingressShapingAverageBandwidth?: pulumi.Input; /** * The maximum ingress burst size allowed in bytes if ingress shaping is enabled on the port. */ ingressShapingBurstSize?: pulumi.Input; /** * True if the traffic shaper is enabled for ingress traffic on the port. */ ingressShapingEnabled?: pulumi.Input; /** * The peak ingress bandwidth during bursts in bits per second if ingress traffic shaping is enabled on the port. */ ingressShapingPeakBandwidth?: pulumi.Input; /** * An IPv4 address to identify the switch. This is * mostly useful when used with the Netflow arguments. */ ipv4Address?: pulumi.Input; /** * The maximum allowed usage for the iSCSI traffic class, in Mbits/sec. */ iscsiMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the iSCSI traffic class, in Mbits/sec. */ iscsiReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the iSCSI traffic class for a custom share level. */ iscsiShareCount?: pulumi.Input; /** * The allocation level for the iSCSI traffic class. Can be one of high, low, normal, or custom. */ iscsiShareLevel?: pulumi.Input; /** * The Link Aggregation Control Protocol group * version to use with the VDS. Possible values are `singleLag` and * `multipleLag`. */ lacpApiVersion?: pulumi.Input; /** * Whether or not to enable LACP on all uplink ports. */ lacpEnabled?: pulumi.Input; /** * The uplink LACP mode to use. Can be one of active or passive. */ lacpMode?: pulumi.Input; /** * Whether to `advertise` or `listen` * for link discovery traffic. */ linkDiscoveryOperation?: pulumi.Input; /** * The discovery protocol type. Valid * types are `cdp` and `lldp`. */ linkDiscoveryProtocol?: pulumi.Input; /** * The maximum allowed usage for the management traffic class, in Mbits/sec. */ managementMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the management traffic class, in Mbits/sec. */ managementReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the management traffic class for a custom share level. */ managementShareCount?: pulumi.Input; /** * The allocation level for the management traffic class. Can be one of high, low, normal, or custom. */ managementShareLevel?: pulumi.Input; /** * The maximum transmission unit (MTU) for the VDS. */ maxMtu?: pulumi.Input; /** * The multicast filtering mode to use * with the VDS. Can be one of `legacyFiltering` or `snooping`. */ multicastFilteringMode?: pulumi.Input; /** * The name of the VDS. */ name?: pulumi.Input; /** * The number of seconds after which active flows are forced to be exported to the collector. */ netflowActiveFlowTimeout?: pulumi.Input; /** * IP address for the netflow collector, using IPv4 or IPv6. */ netflowCollectorIpAddress?: pulumi.Input; /** * The port for the netflow collector. */ netflowCollectorPort?: pulumi.Input; /** * Indicates whether to enable netflow on all ports. */ netflowEnabled?: pulumi.Input; /** * The number of seconds after which idle flows are forced to be exported to the collector. */ netflowIdleFlowTimeout?: pulumi.Input; /** * Whether to limit analysis to traffic that has both source and destination served by the same host. */ netflowInternalFlowsOnly?: pulumi.Input; /** * The observation Domain ID for the netflow collector. */ netflowObservationDomainId?: pulumi.Input; /** * 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; /** * Whether or not to enable network resource control, enabling advanced traffic shaping and resource control features. */ networkResourceControlEnabled?: pulumi.Input; /** * The network I/O control version to use. Can be one of version2 or version3. */ networkResourceControlVersion?: pulumi.Input; /** * The maximum allowed usage for the nfs traffic class, in Mbits/sec. */ nfsMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the nfs traffic class, in Mbits/sec. */ nfsReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the nfs traffic class for a custom share level. */ nfsShareCount?: pulumi.Input; /** * The allocation level for the nfs traffic class. Can be one of high, low, normal, or custom. */ nfsShareLevel?: pulumi.Input; /** * If true, the teaming policy will notify the broadcast network of a NIC failover, triggering cache updates. */ notifySwitches?: pulumi.Input; /** * The secondary VLAN ID for this port. */ portPrivateSecondaryVlanId?: pulumi.Input; /** * A private VLAN (PVLAN) mapping. */ pvlanMappings?: pulumi.Input[]>; /** * List of standby uplinks used for load balancing, matching the names of the uplinks assigned in the DVS. */ standbyUplinks?: pulumi.Input[]>; /** * The IDs of any tags to attach to this resource. */ tags?: pulumi.Input[]>; /** * The network adapter teaming policy. Can be one of loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, * failover_explicit, or loadbalance_loadbased. */ teamingPolicy?: pulumi.Input; /** * 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; /** * 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[]>; /** * The maximum allowed usage for the vdp traffic class, in Mbits/sec. */ vdpMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the vdp traffic class, in Mbits/sec. */ vdpReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the vdp traffic class for a custom share level. */ vdpShareCount?: pulumi.Input; /** * The allocation level for the vdp traffic class. Can be one of high, low, normal, or custom. */ vdpShareLevel?: pulumi.Input; /** * 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; /** * The maximum allowed usage for the virtualMachine traffic class, in Mbits/sec. */ virtualmachineMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the virtualMachine traffic class, in Mbits/sec. */ virtualmachineReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the virtualMachine traffic class for a custom share level. */ virtualmachineShareCount?: pulumi.Input; /** * The allocation level for the virtualMachine traffic class. Can be one of high, low, normal, or custom. */ virtualmachineShareLevel?: pulumi.Input; /** * The VLAN ID for single VLAN mode. 0 denotes no VLAN. */ vlanId?: pulumi.Input; /** * The VLAN ID for single VLAN mode. 0 denotes no VLAN. */ vlanRanges?: pulumi.Input[]>; /** * The maximum allowed usage for the vmotion traffic class, in Mbits/sec. */ vmotionMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the vmotion traffic class, in Mbits/sec. */ vmotionReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the vmotion traffic class for a custom share level. */ vmotionShareCount?: pulumi.Input; /** * The allocation level for the vmotion traffic class. Can be one of high, low, normal, or custom. */ vmotionShareLevel?: pulumi.Input; /** * The maximum allowed usage for the vsan traffic class, in Mbits/sec. */ vsanMaximumMbit?: pulumi.Input; /** * The amount of guaranteed bandwidth for the vsan traffic class, in Mbits/sec. */ vsanReservationMbit?: pulumi.Input; /** * The amount of shares to allocate to the vsan traffic class for a custom share level. */ vsanShareCount?: pulumi.Input; /** * The allocation level for the vsan traffic class. Can be one of high, low, normal, or custom. */ vsanShareLevel?: pulumi.Input; }