import * as pulumi from "@pulumi/pulumi";
/**
 * Get information about a Google Compute Image. Check that your service account has the `compute.imageUser` role if you want to share [custom images](https://cloud.google.com/compute/docs/images/sharing-images-across-projects) from another project. If you want to use [public images][pubimg], do not forget to specify the dedicated project. For more information see
 * [the official documentation](https://cloud.google.com/compute/docs/images) and its [API](https://cloud.google.com/compute/docs/reference/latest/images).
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const myImage = gcp.compute.getImage({
 *     family: "debian-11",
 *     project: "debian-cloud",
 * });
 * const _default = new gcp.compute.Instance("default", {bootDisk: {
 *     initializeParams: {
 *         image: myImage.then(myImage => myImage.selfLink),
 *     },
 * }});
 * ```
 */
export declare function getImage(args?: GetImageArgs, opts?: pulumi.InvokeOptions): Promise<GetImageResult>;
/**
 * A collection of arguments for invoking getImage.
 */
export interface GetImageArgs {
    /**
     * The family name of the image.
     */
    family?: string;
    filter?: string;
    /**
     * A boolean to indicate either to take to most recent image if your filter
     * returns more than one image.
     */
    mostRecent?: boolean;
    /**
     * , `family` or `filter` - (Required) The name of a specific image or a family.
     * Exactly one of `name`, `family` or `filter` must be specified. If `name` is specified, it will fetch
     * the corresponding image. If `family` is specified, it will return the latest image
     * that is part of an image family and is not deprecated. If you specify `filter`, your
     * filter must return exactly one image unless you use `mostRecent`.
     * Filter syntax can be found [here](https://cloud.google.com/compute/docs/reference/rest/v1/images/list) in the filter section.
     *
     * - - -
     */
    name?: string;
    /**
     * The project in which the resource belongs. If it is not
     * provided, the provider project is used. If you are using a
     * [public base image][pubimg], be sure to specify the correct Image Project.
     */
    project?: string;
}
/**
 * A collection of values returned by getImage.
 */
export interface GetImageResult {
    /**
     * The size of the image tar.gz archive stored in Google Cloud Storage in bytes.
     */
    readonly archiveSizeBytes: number;
    /**
     * The creation timestamp in RFC3339 text format.
     */
    readonly creationTimestamp: string;
    /**
     * An optional description of this image.
     */
    readonly description: string;
    /**
     * The size of the image when restored onto a persistent disk in gigabytes.
     */
    readonly diskSizeGb: number;
    /**
     * The family name of the image.
     */
    readonly family: string;
    readonly filter?: string;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * The [RFC 4648 base64](https://tools.ietf.org/html/rfc4648#section-4)
     * encoded SHA-256 hash of the [customer-supplied encryption key](https://cloud.google.com/compute/docs/disks/customer-supplied-encryption)
     * that protects this image.
     */
    readonly imageEncryptionKeySha256: string;
    /**
     * The unique identifier for the image.
     */
    readonly imageId: string;
    /**
     * A fingerprint for the labels being applied to this image.
     */
    readonly labelFingerprint: string;
    /**
     * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
     */
    readonly labels: {
        [key: string]: string;
    };
    /**
     * A list of applicable license URI.
     */
    readonly licenses: string[];
    readonly mostRecent?: boolean;
    /**
     * The name of the image.
     */
    readonly name: string;
    readonly project: string;
    /**
     * The URI of the image.
     */
    readonly selfLink: string;
    /**
     * The URL of the source disk used to create this image.
     */
    readonly sourceDisk: string;
    /**
     * The [RFC 4648 base64](https://tools.ietf.org/html/rfc4648#section-4)
     * encoded SHA-256 hash of the [customer-supplied encryption key](https://cloud.google.com/compute/docs/disks/customer-supplied-encryption)
     * that protects this image.
     */
    readonly sourceDiskEncryptionKeySha256: string;
    /**
     * The ID value of the disk used to create this image.
     */
    readonly sourceDiskId: string;
    /**
     * The ID value of the image used to create this image.
     */
    readonly sourceImageId: string;
    /**
     * The status of the image. Possible values are **FAILED**, **PENDING**, or **READY**.
     */
    readonly status: string;
}
/**
 * Get information about a Google Compute Image. Check that your service account has the `compute.imageUser` role if you want to share [custom images](https://cloud.google.com/compute/docs/images/sharing-images-across-projects) from another project. If you want to use [public images][pubimg], do not forget to specify the dedicated project. For more information see
 * [the official documentation](https://cloud.google.com/compute/docs/images) and its [API](https://cloud.google.com/compute/docs/reference/latest/images).
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const myImage = gcp.compute.getImage({
 *     family: "debian-11",
 *     project: "debian-cloud",
 * });
 * const _default = new gcp.compute.Instance("default", {bootDisk: {
 *     initializeParams: {
 *         image: myImage.then(myImage => myImage.selfLink),
 *     },
 * }});
 * ```
 */
export declare function getImageOutput(args?: GetImageOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetImageResult>;
/**
 * A collection of arguments for invoking getImage.
 */
export interface GetImageOutputArgs {
    /**
     * The family name of the image.
     */
    family?: pulumi.Input<string>;
    filter?: pulumi.Input<string>;
    /**
     * A boolean to indicate either to take to most recent image if your filter
     * returns more than one image.
     */
    mostRecent?: pulumi.Input<boolean>;
    /**
     * , `family` or `filter` - (Required) The name of a specific image or a family.
     * Exactly one of `name`, `family` or `filter` must be specified. If `name` is specified, it will fetch
     * the corresponding image. If `family` is specified, it will return the latest image
     * that is part of an image family and is not deprecated. If you specify `filter`, your
     * filter must return exactly one image unless you use `mostRecent`.
     * Filter syntax can be found [here](https://cloud.google.com/compute/docs/reference/rest/v1/images/list) in the filter section.
     *
     * - - -
     */
    name?: pulumi.Input<string>;
    /**
     * The project in which the resource belongs. If it is not
     * provided, the provider project is used. If you are using a
     * [public base image][pubimg], be sure to specify the correct Image Project.
     */
    project?: pulumi.Input<string>;
}
