import * as pulumi from "@pulumi/pulumi";
/**
 * Provides a Vultr bare metal server resource. This can be used to create, read, modify, and delete bare metal servers on your Vultr account.
 *
 * ## Example Usage
 *
 * Create a new bare metal server:
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as vultr from "@ediri/vultr";
 *
 * const myServer = new vultr.BareMetalServer("myServer", {
 *     osId: 1743,
 *     plan: "vbm-4c-32gb",
 *     region: "ewr",
 * });
 * ```
 *
 * Create a new bare metal server with options:
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as vultr from "@ediri/vultr";
 *
 * const myServer = new vultr.BareMetalServer("myServer", {
 *     activationEmail: false,
 *     enableIpv6: true,
 *     hostname: "my-server-hostname",
 *     label: "my-server-label",
 *     osId: 1743,
 *     plan: "vbm-4c-32gb",
 *     region: "ewr",
 *     tags: ["my-server-tag"],
 *     userData: "this is my user data",
 * });
 * ```
 *
 * ## Import
 *
 * Bare Metal Servers can be imported using the server `ID`, e.g.
 *
 * ```sh
 * $ pulumi import vultr:index/bareMetalServer:BareMetalServer my_server b6a859c5-b299-49dd-8888-b1abbc517d08
 * ```
 */
export declare class BareMetalServer extends pulumi.CustomResource {
    /**
     * Get an existing BareMetalServer 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?: BareMetalServerState, opts?: pulumi.CustomResourceOptions): BareMetalServer;
    /**
     * Returns true if the given object is an instance of BareMetalServer.  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 BareMetalServer;
    /**
     * Whether an activation email will be sent when the server is ready.
     */
    readonly activationEmail: pulumi.Output<boolean | undefined>;
    /**
     * The ID of the Vultr application to be installed on the server. [See List Applications](https://www.vultr.com/api/#operation/list-applications)
     */
    readonly appId: pulumi.Output<number>;
    /**
     * A map of user-supplied variable keys and values for Vultr Marketplace apps. [See List Marketplace App Variables](https://www.vultr.com/api/#tag/marketplace/operation/list-marketplace-app-variables)
     */
    readonly appVariables: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The number of CPUs available on the server.
     */
    readonly cpuCount: pulumi.Output<number>;
    /**
     * The date the server was added to your Vultr account.
     */
    readonly dateCreated: pulumi.Output<string>;
    /**
     * The server's default password.
     */
    readonly defaultPassword: pulumi.Output<string>;
    /**
     * The description of the disk(s) on the server.
     */
    readonly disk: pulumi.Output<string>;
    /**
     * Whether the server has IPv6 networking activated.
     */
    readonly enableIpv6: pulumi.Output<boolean | undefined>;
    /**
     * The server's IPv4 gateway.
     */
    readonly gatewayV4: pulumi.Output<string>;
    /**
     * The hostname to assign to the server.
     */
    readonly hostname: pulumi.Output<string | undefined>;
    /**
     * The ID of the Vultr marketplace application to be installed on the server. [See List Applications](https://www.vultr.com/api/#operation/list-applications) Note marketplace applications are denoted by type: `marketplace` and you must use the `imageId` not the id.
     */
    readonly imageId: pulumi.Output<string>;
    /**
     * A label for the server.
     */
    readonly label: pulumi.Output<string | undefined>;
    /**
     * The MAC address associated with the server.
     */
    readonly macAddress: pulumi.Output<number>;
    /**
     * The server's main IP address.
     */
    readonly mainIp: pulumi.Output<string>;
    readonly mdiskMode: pulumi.Output<string | undefined>;
    /**
     * The server's IPv4 netmask.
     */
    readonly netmaskV4: pulumi.Output<string>;
    /**
     * The string description of the operating system installed on the server.
     */
    readonly os: pulumi.Output<string>;
    /**
     * The ID of the operating system to be installed on the server. [See List OS](https://www.vultr.com/api/#operation/list-os)
     */
    readonly osId: pulumi.Output<number>;
    readonly persistentPxe: pulumi.Output<boolean | undefined>;
    /**
     * The ID of the plan that you want the server to subscribe to. [See List Plans](https://www.vultr.com/api/#tag/plans)
     */
    readonly plan: pulumi.Output<string>;
    /**
     * The amount of memory available on the server in MB.
     */
    readonly ram: pulumi.Output<string>;
    /**
     * The ID of the region that the server is to be created in. [See List Regions](https://www.vultr.com/api/#operation/list-regions)
     */
    readonly region: pulumi.Output<string>;
    /**
     * The ID of the floating IP to use as the main IP of this server. [See Reserved IPs](https://www.vultr.com/api/#operation/list-reserved-ips)
     */
    readonly reservedIpv4: pulumi.Output<string>;
    /**
     * The ID of the startup script you want added to the server.
     */
    readonly scriptId: pulumi.Output<string | undefined>;
    /**
     * The ID of the Vultr snapshot that the server will restore for the initial installation. [See List Snapshots](https://www.vultr.com/api/#operation/list-snapshots)
     */
    readonly snapshotId: pulumi.Output<string | undefined>;
    /**
     * A list of SSH key IDs to apply to the server on install (only valid for Linux/FreeBSD).
     */
    readonly sshKeyIds: pulumi.Output<string[] | undefined>;
    /**
     * The status of the server's subscription.
     */
    readonly status: pulumi.Output<string>;
    /**
     * A list of tags to apply to the servier.
     */
    readonly tags: pulumi.Output<string[] | undefined>;
    /**
     * Generic data store, which some provisioning tools and cloud operating systems use as a configuration file. It is generally consumed only once after an instance has been launched, but individual needs may vary.
     */
    readonly userData: pulumi.Output<string>;
    /**
     * The scheme used for the default user. Possible values are `root` or `limited` (linux servers only).
     */
    readonly userScheme: pulumi.Output<string | undefined>;
    /**
     * The main IPv6 network address.
     */
    readonly v6MainIp: pulumi.Output<string>;
    /**
     * The IPv6 subnet.
     */
    readonly v6Network: pulumi.Output<string>;
    /**
     * The IPv6 network size in bits.
     */
    readonly v6NetworkSize: pulumi.Output<number>;
    /**
     * A list of VPC 2.0 IDs to be attached to the server.
     */
    readonly vpc2Ids: pulumi.Output<string[] | undefined>;
    /**
     * Create a BareMetalServer 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: BareMetalServerArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering BareMetalServer resources.
 */
export interface BareMetalServerState {
    /**
     * Whether an activation email will be sent when the server is ready.
     */
    activationEmail?: pulumi.Input<boolean>;
    /**
     * The ID of the Vultr application to be installed on the server. [See List Applications](https://www.vultr.com/api/#operation/list-applications)
     */
    appId?: pulumi.Input<number>;
    /**
     * A map of user-supplied variable keys and values for Vultr Marketplace apps. [See List Marketplace App Variables](https://www.vultr.com/api/#tag/marketplace/operation/list-marketplace-app-variables)
     */
    appVariables?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The number of CPUs available on the server.
     */
    cpuCount?: pulumi.Input<number>;
    /**
     * The date the server was added to your Vultr account.
     */
    dateCreated?: pulumi.Input<string>;
    /**
     * The server's default password.
     */
    defaultPassword?: pulumi.Input<string>;
    /**
     * The description of the disk(s) on the server.
     */
    disk?: pulumi.Input<string>;
    /**
     * Whether the server has IPv6 networking activated.
     */
    enableIpv6?: pulumi.Input<boolean>;
    /**
     * The server's IPv4 gateway.
     */
    gatewayV4?: pulumi.Input<string>;
    /**
     * The hostname to assign to the server.
     */
    hostname?: pulumi.Input<string>;
    /**
     * The ID of the Vultr marketplace application to be installed on the server. [See List Applications](https://www.vultr.com/api/#operation/list-applications) Note marketplace applications are denoted by type: `marketplace` and you must use the `imageId` not the id.
     */
    imageId?: pulumi.Input<string>;
    /**
     * A label for the server.
     */
    label?: pulumi.Input<string>;
    /**
     * The MAC address associated with the server.
     */
    macAddress?: pulumi.Input<number>;
    /**
     * The server's main IP address.
     */
    mainIp?: pulumi.Input<string>;
    mdiskMode?: pulumi.Input<string>;
    /**
     * The server's IPv4 netmask.
     */
    netmaskV4?: pulumi.Input<string>;
    /**
     * The string description of the operating system installed on the server.
     */
    os?: pulumi.Input<string>;
    /**
     * The ID of the operating system to be installed on the server. [See List OS](https://www.vultr.com/api/#operation/list-os)
     */
    osId?: pulumi.Input<number>;
    persistentPxe?: pulumi.Input<boolean>;
    /**
     * The ID of the plan that you want the server to subscribe to. [See List Plans](https://www.vultr.com/api/#tag/plans)
     */
    plan?: pulumi.Input<string>;
    /**
     * The amount of memory available on the server in MB.
     */
    ram?: pulumi.Input<string>;
    /**
     * The ID of the region that the server is to be created in. [See List Regions](https://www.vultr.com/api/#operation/list-regions)
     */
    region?: pulumi.Input<string>;
    /**
     * The ID of the floating IP to use as the main IP of this server. [See Reserved IPs](https://www.vultr.com/api/#operation/list-reserved-ips)
     */
    reservedIpv4?: pulumi.Input<string>;
    /**
     * The ID of the startup script you want added to the server.
     */
    scriptId?: pulumi.Input<string>;
    /**
     * The ID of the Vultr snapshot that the server will restore for the initial installation. [See List Snapshots](https://www.vultr.com/api/#operation/list-snapshots)
     */
    snapshotId?: pulumi.Input<string>;
    /**
     * A list of SSH key IDs to apply to the server on install (only valid for Linux/FreeBSD).
     */
    sshKeyIds?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The status of the server's subscription.
     */
    status?: pulumi.Input<string>;
    /**
     * A list of tags to apply to the servier.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Generic data store, which some provisioning tools and cloud operating systems use as a configuration file. It is generally consumed only once after an instance has been launched, but individual needs may vary.
     */
    userData?: pulumi.Input<string>;
    /**
     * The scheme used for the default user. Possible values are `root` or `limited` (linux servers only).
     */
    userScheme?: pulumi.Input<string>;
    /**
     * The main IPv6 network address.
     */
    v6MainIp?: pulumi.Input<string>;
    /**
     * The IPv6 subnet.
     */
    v6Network?: pulumi.Input<string>;
    /**
     * The IPv6 network size in bits.
     */
    v6NetworkSize?: pulumi.Input<number>;
    /**
     * A list of VPC 2.0 IDs to be attached to the server.
     */
    vpc2Ids?: pulumi.Input<pulumi.Input<string>[]>;
}
/**
 * The set of arguments for constructing a BareMetalServer resource.
 */
export interface BareMetalServerArgs {
    /**
     * Whether an activation email will be sent when the server is ready.
     */
    activationEmail?: pulumi.Input<boolean>;
    /**
     * The ID of the Vultr application to be installed on the server. [See List Applications](https://www.vultr.com/api/#operation/list-applications)
     */
    appId?: pulumi.Input<number>;
    /**
     * A map of user-supplied variable keys and values for Vultr Marketplace apps. [See List Marketplace App Variables](https://www.vultr.com/api/#tag/marketplace/operation/list-marketplace-app-variables)
     */
    appVariables?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * Whether the server has IPv6 networking activated.
     */
    enableIpv6?: pulumi.Input<boolean>;
    /**
     * The hostname to assign to the server.
     */
    hostname?: pulumi.Input<string>;
    /**
     * The ID of the Vultr marketplace application to be installed on the server. [See List Applications](https://www.vultr.com/api/#operation/list-applications) Note marketplace applications are denoted by type: `marketplace` and you must use the `imageId` not the id.
     */
    imageId?: pulumi.Input<string>;
    /**
     * A label for the server.
     */
    label?: pulumi.Input<string>;
    mdiskMode?: pulumi.Input<string>;
    /**
     * The ID of the operating system to be installed on the server. [See List OS](https://www.vultr.com/api/#operation/list-os)
     */
    osId?: pulumi.Input<number>;
    persistentPxe?: pulumi.Input<boolean>;
    /**
     * The ID of the plan that you want the server to subscribe to. [See List Plans](https://www.vultr.com/api/#tag/plans)
     */
    plan: pulumi.Input<string>;
    /**
     * The ID of the region that the server is to be created in. [See List Regions](https://www.vultr.com/api/#operation/list-regions)
     */
    region: pulumi.Input<string>;
    /**
     * The ID of the floating IP to use as the main IP of this server. [See Reserved IPs](https://www.vultr.com/api/#operation/list-reserved-ips)
     */
    reservedIpv4?: pulumi.Input<string>;
    /**
     * The ID of the startup script you want added to the server.
     */
    scriptId?: pulumi.Input<string>;
    /**
     * The ID of the Vultr snapshot that the server will restore for the initial installation. [See List Snapshots](https://www.vultr.com/api/#operation/list-snapshots)
     */
    snapshotId?: pulumi.Input<string>;
    /**
     * A list of SSH key IDs to apply to the server on install (only valid for Linux/FreeBSD).
     */
    sshKeyIds?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A list of tags to apply to the servier.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Generic data store, which some provisioning tools and cloud operating systems use as a configuration file. It is generally consumed only once after an instance has been launched, but individual needs may vary.
     */
    userData?: pulumi.Input<string>;
    /**
     * The scheme used for the default user. Possible values are `root` or `limited` (linux servers only).
     */
    userScheme?: pulumi.Input<string>;
    /**
     * A list of VPC 2.0 IDs to be attached to the server.
     */
    vpc2Ids?: pulumi.Input<pulumi.Input<string>[]>;
}
