import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Provides a resource to manage image
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@volcengine/pulumi";
 *
 * const foo = new volcengine.ecs.Image("foo", {
 *     createWholeImage: false,
 *     description: "acc-test",
 *     imageName: "acc-test-image",
 *     instanceId: "i-ydi2q1s7wgqc6ild****",
 *     projectName: "default",
 *     tags: [{
 *         key: "k1",
 *         value: "v1",
 *     }],
 * });
 * ```
 *
 * ## Import
 *
 * Image can be imported using the id, e.g.
 *
 * ```sh
 * $ pulumi import volcengine:ecs/image:Image default resource_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 architecture of Image.
     */
    readonly architecture: pulumi.Output<string>;
    /**
     * The boot mode of the custom image. Valid values: `BIOS`, `UEFI`. This field is only effective when modifying the image.
     */
    readonly bootMode: pulumi.Output<string>;
    /**
     * Whether to create whole image. Default is false. This field is only effective when creating a new custom image.
     */
    readonly createWholeImage: pulumi.Output<boolean | undefined>;
    /**
     * The create time of Image.
     */
    readonly createdAt: pulumi.Output<string>;
    /**
     * The description of the custom image.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * The name of the custom image.
     */
    readonly imageName: pulumi.Output<string>;
    /**
     * The instance id of the custom image. Only one of `instance_id, snapshot_id, snapshotGroupId` can be specified.When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    readonly instanceId: pulumi.Output<string | undefined>;
    /**
     * Whether the Image support cloud-init.
     */
    readonly isSupportCloudInit: pulumi.Output<boolean>;
    /**
     * The name of Image operating system.
     */
    readonly osName: pulumi.Output<string>;
    /**
     * The operating system type of Image.
     */
    readonly osType: pulumi.Output<string>;
    /**
     * The platform of Image.
     */
    readonly platform: pulumi.Output<string>;
    /**
     * The platform version of Image.
     */
    readonly platformVersion: pulumi.Output<string>;
    /**
     * The project name of the custom image.
     */
    readonly projectName: pulumi.Output<string>;
    /**
     * The share mode of Image.
     */
    readonly shareStatus: pulumi.Output<string>;
    /**
     * The size(GiB) of Image.
     */
    readonly size: pulumi.Output<number>;
    /**
     * The snapshot group id of the custom image. Only one of `instance_id, snapshot_id, snapshotGroupId` can be specified.When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    readonly snapshotGroupId: pulumi.Output<string | undefined>;
    /**
     * The snapshot id of the custom image. Only one of `instance_id, snapshot_id, snapshotGroupId` can be specified.When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    readonly snapshotId: pulumi.Output<string | undefined>;
    /**
     * The status of Image.
     */
    readonly status: pulumi.Output<string>;
    /**
     * Tags.
     */
    readonly tags: pulumi.Output<outputs.ecs.ImageTag[] | undefined>;
    /**
     * The update time of Image.
     */
    readonly updatedAt: pulumi.Output<string>;
    /**
     * The visibility of Image.
     */
    readonly visibility: 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 architecture of Image.
     */
    architecture?: pulumi.Input<string>;
    /**
     * The boot mode of the custom image. Valid values: `BIOS`, `UEFI`. This field is only effective when modifying the image.
     */
    bootMode?: pulumi.Input<string>;
    /**
     * Whether to create whole image. Default is false. This field is only effective when creating a new custom image.
     */
    createWholeImage?: pulumi.Input<boolean>;
    /**
     * The create time of Image.
     */
    createdAt?: pulumi.Input<string>;
    /**
     * The description of the custom image.
     */
    description?: pulumi.Input<string>;
    /**
     * The name of the custom image.
     */
    imageName?: pulumi.Input<string>;
    /**
     * The instance id of the custom image. Only one of `instance_id, snapshot_id, snapshotGroupId` can be specified.When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    instanceId?: pulumi.Input<string>;
    /**
     * Whether the Image support cloud-init.
     */
    isSupportCloudInit?: pulumi.Input<boolean>;
    /**
     * The name of Image operating system.
     */
    osName?: pulumi.Input<string>;
    /**
     * The operating system type of Image.
     */
    osType?: pulumi.Input<string>;
    /**
     * The platform of Image.
     */
    platform?: pulumi.Input<string>;
    /**
     * The platform version of Image.
     */
    platformVersion?: pulumi.Input<string>;
    /**
     * The project name of the custom image.
     */
    projectName?: pulumi.Input<string>;
    /**
     * The share mode of Image.
     */
    shareStatus?: pulumi.Input<string>;
    /**
     * The size(GiB) of Image.
     */
    size?: pulumi.Input<number>;
    /**
     * The snapshot group id of the custom image. Only one of `instance_id, snapshot_id, snapshotGroupId` can be specified.When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    snapshotGroupId?: pulumi.Input<string>;
    /**
     * The snapshot id of the custom image. Only one of `instance_id, snapshot_id, snapshotGroupId` can be specified.When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    snapshotId?: pulumi.Input<string>;
    /**
     * The status of Image.
     */
    status?: pulumi.Input<string>;
    /**
     * Tags.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.ecs.ImageTag>[]>;
    /**
     * The update time of Image.
     */
    updatedAt?: pulumi.Input<string>;
    /**
     * The visibility of Image.
     */
    visibility?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a Image resource.
 */
export interface ImageArgs {
    /**
     * The boot mode of the custom image. Valid values: `BIOS`, `UEFI`. This field is only effective when modifying the image.
     */
    bootMode?: pulumi.Input<string>;
    /**
     * Whether to create whole image. Default is false. This field is only effective when creating a new custom image.
     */
    createWholeImage?: pulumi.Input<boolean>;
    /**
     * The description of the custom image.
     */
    description?: pulumi.Input<string>;
    /**
     * The name of the custom image.
     */
    imageName: pulumi.Input<string>;
    /**
     * The instance id of the custom image. Only one of `instance_id, snapshot_id, snapshotGroupId` can be specified.When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    instanceId?: pulumi.Input<string>;
    /**
     * The project name of the custom image.
     */
    projectName?: pulumi.Input<string>;
    /**
     * The snapshot group id of the custom image. Only one of `instance_id, snapshot_id, snapshotGroupId` can be specified.When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    snapshotGroupId?: pulumi.Input<string>;
    /**
     * The snapshot id of the custom image. Only one of `instance_id, snapshot_id, snapshotGroupId` can be specified.When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    snapshotId?: pulumi.Input<string>;
    /**
     * Tags.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.ecs.ImageTag>[]>;
}
