import * as pulumi from "@pulumi/pulumi";
/**
 * Use this data source to read ports of existing devices. You can read port by either its UUID, or by a device UUID and port name.
 *
 * ## Example Usage
 *
 * Create a device and read it's eth0 port to the datasource.
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const projectId = "<UUID_of_your_project>";
 * const testDevice = new equinix.metal.Device("testDevice", {
 *     hostname: "tfacc-test-device-port",
 *     plan: equinix.metal.Plan.C3MediumX86,
 *     metro: "sv",
 *     operatingSystem: equinix.metal.OperatingSystem.Ubuntu20_04,
 *     billingCycle: equinix.metal.BillingCycle.Hourly,
 *     projectId: projectId,
 * });
 * const testPort = equinix.metal.getPortOutput({
 *     deviceId: testDevice.id,
 *     name: "eth0",
 * });
 * ```
 */
export declare function getPort(args?: GetPortArgs, opts?: pulumi.InvokeOptions): Promise<GetPortResult>;
/**
 * A collection of arguments for invoking getPort.
 */
export interface GetPortArgs {
    /**
     * Device UUID where to lookup the port.
     */
    deviceId?: string;
    /**
     * Name of the port to look up, i.e. `bond0`, `eth1`.
     */
    name?: string;
    /**
     * ID of the port to read, conflicts with `deviceId`.
     */
    portId?: string;
}
/**
 * A collection of values returned by getPort.
 */
export interface GetPortResult {
    /**
     * UUID of the bond port.
     */
    readonly bondId: string;
    /**
     * Name of the bond port.
     */
    readonly bondName: string;
    /**
     * Flag indicating whether the port is bonded.
     */
    readonly bonded: boolean;
    readonly deviceId?: string;
    /**
     * Flag indicating whether the port can be removed from a bond.
     */
    readonly disbondSupported: boolean;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly layer2: boolean;
    /**
     * MAC address of the port.
     */
    readonly mac: string;
    readonly name: string;
    /**
     * UUID of native VLAN of the port.
     */
    readonly nativeVlanId: string;
    /**
     * One of `layer2-bonded`, `layer2-individual`, `layer3`, `hybrid`, `hybrid-bonded`.
     */
    readonly networkType: string;
    readonly portId?: string;
    /**
     * Type is either `NetworkBondPort` for bond ports or `NetworkPort` for bondable ethernet ports.
     */
    readonly type: string;
    /**
     * UUIDs of attached VLANs.
     */
    readonly vlanIds: string[];
    /**
     * VXLAN ids of attached VLANs.
     */
    readonly vxlanIds: number[];
}
/**
 * Use this data source to read ports of existing devices. You can read port by either its UUID, or by a device UUID and port name.
 *
 * ## Example Usage
 *
 * Create a device and read it's eth0 port to the datasource.
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const projectId = "<UUID_of_your_project>";
 * const testDevice = new equinix.metal.Device("testDevice", {
 *     hostname: "tfacc-test-device-port",
 *     plan: equinix.metal.Plan.C3MediumX86,
 *     metro: "sv",
 *     operatingSystem: equinix.metal.OperatingSystem.Ubuntu20_04,
 *     billingCycle: equinix.metal.BillingCycle.Hourly,
 *     projectId: projectId,
 * });
 * const testPort = equinix.metal.getPortOutput({
 *     deviceId: testDevice.id,
 *     name: "eth0",
 * });
 * ```
 */
export declare function getPortOutput(args?: GetPortOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetPortResult>;
/**
 * A collection of arguments for invoking getPort.
 */
export interface GetPortOutputArgs {
    /**
     * Device UUID where to lookup the port.
     */
    deviceId?: pulumi.Input<string>;
    /**
     * Name of the port to look up, i.e. `bond0`, `eth1`.
     */
    name?: pulumi.Input<string>;
    /**
     * ID of the port to read, conflicts with `deviceId`.
     */
    portId?: pulumi.Input<string>;
}
