import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Provides a resource to manage veenedge cloud server
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@volcengine/pulumi";
 *
 * const foo = new volcengine.veenedge.CloudServer("foo", {
 *     billingConfig: {
 *         bandwidthBillingMethod: "MonthlyP95",
 *         computingBillingMethod: "MonthlyPeak",
 *     },
 *     cloudserverName: "tf-test",
 *     defaultAreaName: "C******na",
 *     defaultIsp: "CMCC",
 *     imageId: "image*****viqm",
 *     networkConfig: {
 *         bandwidthPeak: "5",
 *     },
 *     scheduleStrategy: {
 *         networkStrategy: "region",
 *         priceStrategy: "high_priority",
 *         scheduleStrategy: "dispersion",
 *     },
 *     secretData: "sshkey-47*****wgc",
 *     secretType: "KeyPair",
 *     serverAreaLevel: "region",
 *     specName: "veEN****rge",
 *     storageConfig: {
 *         dataDiskLists: [{
 *             capacity: "20",
 *             storageType: "CloudBlockSSD",
 *         }],
 *         systemDisk: {
 *             capacity: "40",
 *             storageType: "CloudBlockSSD",
 *         },
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * CloudServer can be imported using the id, e.g.
 *
 * ```sh
 * $ pulumi import volcengine:veenedge/cloudServer:CloudServer default cloudserver-n769ewmjjqyqh5dv
 * ```
 *
 * After the veenedge cloud server is created, a default edge instance will be created, we recommend managing this default instance as follows
 *
 * resource "volcengine_veenedge_instance" "foo1" {
 *
 *   instance_id = volcengine_veenedge_cloud_server.foo.default_instance_id
 *
 * }
 */
export declare class CloudServer extends pulumi.CustomResource {
    /**
     * Get an existing CloudServer 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?: CloudServerState, opts?: pulumi.CustomResourceOptions): CloudServer;
    /**
     * Returns true if the given object is an instance of CloudServer.  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 CloudServer;
    /**
     * The config of the billing.
     */
    readonly billingConfig: pulumi.Output<outputs.veenedge.CloudServerBillingConfig | undefined>;
    /**
     * The name of cloud server.
     */
    readonly cloudserverName: pulumi.Output<string>;
    /**
     * The custom data.
     */
    readonly customData: pulumi.Output<outputs.veenedge.CloudServerCustomData>;
    /**
     * The name of default area.
     */
    readonly defaultAreaName: pulumi.Output<string>;
    /**
     * The name of default cluster.
     */
    readonly defaultClusterName: pulumi.Output<string | undefined>;
    /**
     * The default instance id generate by cloud server.
     */
    readonly defaultInstanceId: pulumi.Output<string>;
    /**
     * The default isp info.
     */
    readonly defaultIsp: pulumi.Output<string>;
    /**
     * The image id of cloud server.
     */
    readonly imageId: pulumi.Output<string>;
    /**
     * The config of the network.
     */
    readonly networkConfig: pulumi.Output<outputs.veenedge.CloudServerNetworkConfig>;
    /**
     * The schedule strategy.
     */
    readonly scheduleStrategy: pulumi.Output<outputs.veenedge.CloudServerScheduleStrategy>;
    /**
     * The data of secret. The value can be Password or KeyPair ID.
     */
    readonly secretData: pulumi.Output<string | undefined>;
    /**
     * The type of secret. The value can be `KeyPair` or `Password`.
     */
    readonly secretType: pulumi.Output<string>;
    /**
     * The server area level. The value can be `region` or `city`.
     */
    readonly serverAreaLevel: pulumi.Output<string>;
    /**
     * The spec name of cloud server.
     */
    readonly specName: pulumi.Output<string>;
    /**
     * The config of the storage.
     */
    readonly storageConfig: pulumi.Output<outputs.veenedge.CloudServerStorageConfig>;
    /**
     * Create a CloudServer 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: CloudServerArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering CloudServer resources.
 */
export interface CloudServerState {
    /**
     * The config of the billing.
     */
    billingConfig?: pulumi.Input<inputs.veenedge.CloudServerBillingConfig>;
    /**
     * The name of cloud server.
     */
    cloudserverName?: pulumi.Input<string>;
    /**
     * The custom data.
     */
    customData?: pulumi.Input<inputs.veenedge.CloudServerCustomData>;
    /**
     * The name of default area.
     */
    defaultAreaName?: pulumi.Input<string>;
    /**
     * The name of default cluster.
     */
    defaultClusterName?: pulumi.Input<string>;
    /**
     * The default instance id generate by cloud server.
     */
    defaultInstanceId?: pulumi.Input<string>;
    /**
     * The default isp info.
     */
    defaultIsp?: pulumi.Input<string>;
    /**
     * The image id of cloud server.
     */
    imageId?: pulumi.Input<string>;
    /**
     * The config of the network.
     */
    networkConfig?: pulumi.Input<inputs.veenedge.CloudServerNetworkConfig>;
    /**
     * The schedule strategy.
     */
    scheduleStrategy?: pulumi.Input<inputs.veenedge.CloudServerScheduleStrategy>;
    /**
     * The data of secret. The value can be Password or KeyPair ID.
     */
    secretData?: pulumi.Input<string>;
    /**
     * The type of secret. The value can be `KeyPair` or `Password`.
     */
    secretType?: pulumi.Input<string>;
    /**
     * The server area level. The value can be `region` or `city`.
     */
    serverAreaLevel?: pulumi.Input<string>;
    /**
     * The spec name of cloud server.
     */
    specName?: pulumi.Input<string>;
    /**
     * The config of the storage.
     */
    storageConfig?: pulumi.Input<inputs.veenedge.CloudServerStorageConfig>;
}
/**
 * The set of arguments for constructing a CloudServer resource.
 */
export interface CloudServerArgs {
    /**
     * The config of the billing.
     */
    billingConfig?: pulumi.Input<inputs.veenedge.CloudServerBillingConfig>;
    /**
     * The name of cloud server.
     */
    cloudserverName: pulumi.Input<string>;
    /**
     * The custom data.
     */
    customData?: pulumi.Input<inputs.veenedge.CloudServerCustomData>;
    /**
     * The name of default area.
     */
    defaultAreaName: pulumi.Input<string>;
    /**
     * The name of default cluster.
     */
    defaultClusterName?: pulumi.Input<string>;
    /**
     * The default isp info.
     */
    defaultIsp: pulumi.Input<string>;
    /**
     * The image id of cloud server.
     */
    imageId: pulumi.Input<string>;
    /**
     * The config of the network.
     */
    networkConfig: pulumi.Input<inputs.veenedge.CloudServerNetworkConfig>;
    /**
     * The schedule strategy.
     */
    scheduleStrategy: pulumi.Input<inputs.veenedge.CloudServerScheduleStrategy>;
    /**
     * The data of secret. The value can be Password or KeyPair ID.
     */
    secretData?: pulumi.Input<string>;
    /**
     * The type of secret. The value can be `KeyPair` or `Password`.
     */
    secretType: pulumi.Input<string>;
    /**
     * The server area level. The value can be `region` or `city`.
     */
    serverAreaLevel: pulumi.Input<string>;
    /**
     * The spec name of cloud server.
     */
    specName: pulumi.Input<string>;
    /**
     * The config of the storage.
     */
    storageConfig: pulumi.Input<inputs.veenedge.CloudServerStorageConfig>;
}
