import * as pulumi from "@pulumi/pulumi";
/**
 * Provides a ENS Image resource.
 *
 * For information about ENS Image and how to use it, see [What is Image](https://www.alibabacloud.com/help/en/ens/developer-reference/api-ens-2017-11-10-createimage).
 *
 * > **NOTE:** Available since v1.216.0.
 *
 * ## Example Usage
 *
 * Basic Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as alicloud from "@pulumi/alicloud";
 *
 * const config = new pulumi.Config();
 * const name = config.get("name") || "terraform-example";
 * const _default = new alicloud.ens.Instance("default", {
 *     systemDisk: {
 *         size: 20,
 *     },
 *     scheduleAreaLevel: "Region",
 *     imageId: "centos_6_08_64_20G_alibase_20171208",
 *     paymentType: "PayAsYouGo",
 *     password: "12345678ABCabc",
 *     amount: 1,
 *     internetMaxBandwidthOut: 10,
 *     publicIpIdentification: true,
 *     ensRegionId: "cn-chenzhou-telecom_unicom_cmcc",
 *     periodUnit: "Month",
 *     instanceType: "ens.sn1.stiny",
 *     status: "Stopped",
 * });
 * const defaultImage = new alicloud.ens.Image("default", {
 *     imageName: name,
 *     instanceId: _default.id,
 *     deleteAfterImageUpload: "false",
 * });
 * ```
 *
 * 📚 Need more examples? VIEW MORE EXAMPLES
 *
 * ## Import
 *
 * ENS Image can be imported using the id, e.g.
 *
 * ```sh
 * $ pulumi import alicloud:ens/image:Image example <id>
 * ```
 */
export declare class Image extends pulumi.CustomResource {
    /**
     * Get an existing Image 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?: ImageState, opts?: pulumi.CustomResourceOptions): Image;
    /**
     * Returns true if the given object is an instance of Image.  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 Image;
    /**
     * The image creation time.
     */
    readonly createTime: pulumi.Output<string>;
    /**
     * Specifies whether to automatically release the instance after the image is packaged and uploaded. Only image builders are supported. Default value: `false`. Valid values:
     */
    readonly deleteAfterImageUpload: pulumi.Output<string | undefined>;
    /**
     * The name of the image. The name must be 2 to 128 characters in length. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-). It must start with a letter but cannot start with http:// or https://. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-).
     */
    readonly imageName: pulumi.Output<string>;
    /**
     * The ID of the instance.
     */
    readonly instanceId: pulumi.Output<string | undefined>;
    /**
     * The state of the image.
     */
    readonly status: pulumi.Output<string>;
    /**
     * The region of the target OSS where the image is to be stored.
     */
    readonly targetOssRegionId: pulumi.Output<string>;
    /**
     * Create a Image 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: ImageArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Image resources.
 */
export interface ImageState {
    /**
     * The image creation time.
     */
    createTime?: pulumi.Input<string | undefined>;
    /**
     * Specifies whether to automatically release the instance after the image is packaged and uploaded. Only image builders are supported. Default value: `false`. Valid values:
     */
    deleteAfterImageUpload?: pulumi.Input<string | undefined>;
    /**
     * The name of the image. The name must be 2 to 128 characters in length. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-). It must start with a letter but cannot start with http:// or https://. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-).
     */
    imageName?: pulumi.Input<string | undefined>;
    /**
     * The ID of the instance.
     */
    instanceId?: pulumi.Input<string | undefined>;
    /**
     * The state of the image.
     */
    status?: pulumi.Input<string | undefined>;
    /**
     * The region of the target OSS where the image is to be stored.
     */
    targetOssRegionId?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Image resource.
 */
export interface ImageArgs {
    /**
     * Specifies whether to automatically release the instance after the image is packaged and uploaded. Only image builders are supported. Default value: `false`. Valid values:
     */
    deleteAfterImageUpload?: pulumi.Input<string | undefined>;
    /**
     * The name of the image. The name must be 2 to 128 characters in length. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-). It must start with a letter but cannot start with http:// or https://. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-).
     */
    imageName: pulumi.Input<string>;
    /**
     * The ID of the instance.
     */
    instanceId?: pulumi.Input<string | undefined>;
    /**
     * The region of the target OSS where the image is to be stored.
     */
    targetOssRegionId?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=image.d.ts.map