import * as pulumi from "@pulumi/pulumi";
/**
 * Use this data source to retrieve a [hardware reservation resource from Equinix Metal](https://metal.equinix.com/developers/docs/deploy/reserved/).
 *
 * You can look up hardware reservation by its ID or by ID of device which occupies it.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const example = equinix.metal.getHardwareReservation({
 *     id: "4347e805-eb46-4699-9eb9-5c116e6a0172",
 * });
 * const exampleByDeviceId = equinix.metal.getHardwareReservation({
 *     deviceId: "ff85aa58-c106-4624-8f1c-7c64554047ea",
 * });
 * ```
 */
export declare function getHardwareReservation(args?: GetHardwareReservationArgs, opts?: pulumi.InvokeOptions): Promise<GetHardwareReservationResult>;
/**
 * A collection of arguments for invoking getHardwareReservation.
 */
export interface GetHardwareReservationArgs {
    /**
     * UUID of device occupying the reservation.
     */
    deviceId?: string;
    /**
     * ID of the hardware reservation.
     */
    id?: string;
}
/**
 * A collection of values returned by getHardwareReservation.
 */
export interface GetHardwareReservationResult {
    /**
     * UUID of device occupying the reservation.
     */
    readonly deviceId: string;
    /**
     * (**Deprecated**) Facility for the reservation. Use metro instead; read the facility to metro migration guide
     *
     * @deprecated Use metro instead of facility.  For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices
     */
    readonly facility: string;
    /**
     * ID of the hardware reservation to look up.
     */
    readonly id: string;
    /**
     * Plan type for the reservation.
     */
    readonly plan: string;
    /**
     * UUID of project this reservation is scoped to.
     */
    readonly projectId: string;
    /**
     * Flag indicating whether the reserved server is provisionable or not. Spare devices can't be provisioned unless they are activated first.
     */
    readonly provisionable: boolean;
    /**
     * Reservation short ID.
     */
    readonly shortId: string;
    /**
     * Flag indicating whether the Hardware Reservation is a spare. Spare Hardware Reservations are used when a Hardware Reservations requires service from Metal Equinix.
     */
    readonly spare: boolean;
    /**
     * Switch short ID, can be used to determine if two devices are connected to the same switch.
     */
    readonly switchUuid: string;
}
/**
 * Use this data source to retrieve a [hardware reservation resource from Equinix Metal](https://metal.equinix.com/developers/docs/deploy/reserved/).
 *
 * You can look up hardware reservation by its ID or by ID of device which occupies it.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as equinix from "@equinix-labs/pulumi-equinix";
 *
 * const example = equinix.metal.getHardwareReservation({
 *     id: "4347e805-eb46-4699-9eb9-5c116e6a0172",
 * });
 * const exampleByDeviceId = equinix.metal.getHardwareReservation({
 *     deviceId: "ff85aa58-c106-4624-8f1c-7c64554047ea",
 * });
 * ```
 */
export declare function getHardwareReservationOutput(args?: GetHardwareReservationOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetHardwareReservationResult>;
/**
 * A collection of arguments for invoking getHardwareReservation.
 */
export interface GetHardwareReservationOutputArgs {
    /**
     * UUID of device occupying the reservation.
     */
    deviceId?: pulumi.Input<string>;
    /**
     * ID of the hardware reservation.
     */
    id?: pulumi.Input<string>;
}
