import * as pulumi from "@pulumi/pulumi";
/**
 * Manages OCI images pulled from OCI registries using PVE oci-registry-pull API. Pulls OCI container images and stores them as tar files in Proxmox VE datastores.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
 *
 * const ubuntuLatest = new proxmoxve.oci.Image("ubuntu_latest", {
 *     nodeName: "pve",
 *     datastoreId: "local",
 *     reference: "docker.io/library/ubuntu:latest",
 * });
 * const nginx = new proxmoxve.oci.Image("nginx", {
 *     nodeName: "pve",
 *     datastoreId: "local",
 *     reference: "docker.io/library/nginx:alpine",
 *     fileName: "custom_image_name.tar",
 * });
 * const debian = new proxmoxve.oci.Image("debian", {
 *     nodeName: "pve",
 *     datastoreId: "local",
 *     reference: "docker.io/library/debian:bookworm",
 *     uploadTimeout: 900,
 *     overwrite: false,
 *     overwriteUnmanaged: true,
 * });
 * ```
 */
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 identifier for the target datastore.
     */
    readonly datastoreId: pulumi.Output<string>;
    /**
     * The file name for the pulled OCI image. If not provided, it will be generated automatically. The file will be stored as a .tar file.
     */
    readonly fileName: pulumi.Output<string>;
    /**
     * The node name.
     */
    readonly nodeName: pulumi.Output<string>;
    /**
     * By default `true`. If `true` and the OCI image size has changed in the datastore, it will be replaced. If `false`, there will be no check.
     */
    readonly overwrite: pulumi.Output<boolean>;
    /**
     * If `true` and an OCI image with the same name already exists in the datastore, it will be deleted and the new image will be pulled. If `false` and the image already exists, an error will be returned.
     */
    readonly overwriteUnmanaged: pulumi.Output<boolean>;
    /**
     * The reference to the OCI image.
     */
    readonly reference: pulumi.Output<string>;
    /**
     * The image size in PVE.
     */
    readonly size: pulumi.Output<number>;
    /**
     * The OCI image pull timeout in seconds. Default is 600 (10min).
     */
    readonly uploadTimeout: pulumi.Output<number>;
    /**
     * 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 identifier for the target datastore.
     */
    datastoreId?: pulumi.Input<string | undefined>;
    /**
     * The file name for the pulled OCI image. If not provided, it will be generated automatically. The file will be stored as a .tar file.
     */
    fileName?: pulumi.Input<string | undefined>;
    /**
     * The node name.
     */
    nodeName?: pulumi.Input<string | undefined>;
    /**
     * By default `true`. If `true` and the OCI image size has changed in the datastore, it will be replaced. If `false`, there will be no check.
     */
    overwrite?: pulumi.Input<boolean | undefined>;
    /**
     * If `true` and an OCI image with the same name already exists in the datastore, it will be deleted and the new image will be pulled. If `false` and the image already exists, an error will be returned.
     */
    overwriteUnmanaged?: pulumi.Input<boolean | undefined>;
    /**
     * The reference to the OCI image.
     */
    reference?: pulumi.Input<string | undefined>;
    /**
     * The image size in PVE.
     */
    size?: pulumi.Input<number | undefined>;
    /**
     * The OCI image pull timeout in seconds. Default is 600 (10min).
     */
    uploadTimeout?: pulumi.Input<number | undefined>;
}
/**
 * The set of arguments for constructing a Image resource.
 */
export interface ImageArgs {
    /**
     * The identifier for the target datastore.
     */
    datastoreId: pulumi.Input<string>;
    /**
     * The file name for the pulled OCI image. If not provided, it will be generated automatically. The file will be stored as a .tar file.
     */
    fileName?: pulumi.Input<string | undefined>;
    /**
     * The node name.
     */
    nodeName: pulumi.Input<string>;
    /**
     * By default `true`. If `true` and the OCI image size has changed in the datastore, it will be replaced. If `false`, there will be no check.
     */
    overwrite?: pulumi.Input<boolean | undefined>;
    /**
     * If `true` and an OCI image with the same name already exists in the datastore, it will be deleted and the new image will be pulled. If `false` and the image already exists, an error will be returned.
     */
    overwriteUnmanaged?: pulumi.Input<boolean | undefined>;
    /**
     * The reference to the OCI image.
     */
    reference: pulumi.Input<string>;
    /**
     * The OCI image pull timeout in seconds. Default is 600 (10min).
     */
    uploadTimeout?: pulumi.Input<number | undefined>;
}
//# sourceMappingURL=image.d.ts.map