import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Manages a Shared Image within a Shared Image Gallery.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 *
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "example-resources",
 *     location: "West Europe",
 * });
 * const exampleSharedImageGallery = new azure.compute.SharedImageGallery("example", {
 *     name: "example_image_gallery",
 *     resourceGroupName: example.name,
 *     location: example.location,
 *     description: "Shared images and things.",
 *     tags: {
 *         Hello: "There",
 *         World: "Example",
 *     },
 * });
 * const exampleSharedImage = new azure.compute.SharedImage("example", {
 *     name: "my-image",
 *     galleryName: exampleSharedImageGallery.name,
 *     resourceGroupName: example.name,
 *     location: example.location,
 *     osType: "Linux",
 *     identifier: {
 *         publisher: "PublisherName",
 *         offer: "OfferName",
 *         sku: "ExampleSku",
 *     },
 * });
 * ```
 *
 * ## API Providers
 *
 * <!-- This section is generated, changes will be overwritten -->
 * This resource uses the following Azure API Providers:
 *
 * * `Microsoft.Compute` - 2022-03-03
 *
 * ## Import
 *
 * Shared Images can be imported using the `resource id`, e.g.
 *
 * ```sh
 * $ pulumi import azure:compute/sharedImage:SharedImage image1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/galleries/gallery1/images/image1
 * ```
 */
export declare class SharedImage extends pulumi.CustomResource {
    /**
     * Get an existing SharedImage 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?: SharedImageState, opts?: pulumi.CustomResourceOptions): SharedImage;
    /**
     * Returns true if the given object is an instance of SharedImage.  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 SharedImage;
    /**
     * Specifies if the Shared Image supports Accelerated Network. Changing this forces a new resource to be created.
     */
    readonly acceleratedNetworkSupportEnabled: pulumi.Output<boolean | undefined>;
    /**
     * CPU architecture supported by an OS. Possible values are `x64` and `Arm64`. Defaults to `x64`. Changing this forces a new resource to be created.
     */
    readonly architecture: pulumi.Output<string | undefined>;
    /**
     * Specifies if Confidential Virtual Machines enabled. It will enable all the features of trusted, with higher confidentiality features for isolate machines or encrypted data. Available for Gen2 machines. Changing this forces a new resource to be created.
     *
     * > **Note:** Only one of `trustedLaunchSupported`, `trustedLaunchEnabled`, `confidentialVmSupported` and `confidentialVmEnabled` can be specified.
     */
    readonly confidentialVmEnabled: pulumi.Output<boolean | undefined>;
    /**
     * Specifies if supports creation of both Confidential virtual machines and Gen2 virtual machines with standard security from a compatible Gen2 OS disk VHD or Gen2 Managed image. Changing this forces a new resource to be created.
     */
    readonly confidentialVmSupported: pulumi.Output<boolean | undefined>;
    /**
     * A description of this Shared Image.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * Specifies if the Shared Image supports NVMe disks. Changing this forces a new resource to be created.
     */
    readonly diskControllerTypeNvmeEnabled: pulumi.Output<boolean | undefined>;
    /**
     * One or more Disk Types not allowed for the Image. Possible values include `Standard_LRS` and `Premium_LRS`.
     */
    readonly diskTypesNotAlloweds: pulumi.Output<string[] | undefined>;
    /**
     * The end of life date in RFC3339 format of the Image.
     */
    readonly endOfLifeDate: pulumi.Output<string | undefined>;
    /**
     * The End User Licence Agreement for the Shared Image. Changing this forces a new resource to be created.
     */
    readonly eula: pulumi.Output<string | undefined>;
    /**
     * Specifies the name of the Shared Image Gallery in which this Shared Image should exist. Changing this forces a new resource to be created.
     */
    readonly galleryName: pulumi.Output<string>;
    /**
     * Specifies if the Shared Image supports hibernation. Changing this forces a new resource to be created.
     */
    readonly hibernationEnabled: pulumi.Output<boolean | undefined>;
    /**
     * The generation of HyperV that the Virtual Machine used to create the Shared Image is based on. Possible values are `V1` and `V2`. Defaults to `V1`. Changing this forces a new resource to be created.
     */
    readonly hyperVGeneration: pulumi.Output<string | undefined>;
    /**
     * An `identifier` block as defined below.
     */
    readonly identifier: pulumi.Output<outputs.compute.SharedImageIdentifier>;
    /**
     * Specifies the supported Azure location where the Shared Image Gallery exists. Changing this forces a new resource to be created.
     */
    readonly location: pulumi.Output<string>;
    /**
     * Maximum memory in GB recommended for the Image.
     */
    readonly maxRecommendedMemoryInGb: pulumi.Output<number | undefined>;
    /**
     * Maximum count of vCPUs recommended for the Image.
     */
    readonly maxRecommendedVcpuCount: pulumi.Output<number | undefined>;
    /**
     * Minimum memory in GB recommended for the Image.
     */
    readonly minRecommendedMemoryInGb: pulumi.Output<number | undefined>;
    /**
     * Minimum count of vCPUs recommended for the Image.
     */
    readonly minRecommendedVcpuCount: pulumi.Output<number | undefined>;
    /**
     * Specifies the name of the Shared Image. Changing this forces a new resource to be created.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The type of Operating System present in this Shared Image. Possible values are `Linux` and `Windows`. Changing this forces a new resource to be created.
     */
    readonly osType: pulumi.Output<string>;
    /**
     * The URI containing the Privacy Statement associated with this Shared Image. Changing this forces a new resource to be created.
     */
    readonly privacyStatementUri: pulumi.Output<string | undefined>;
    /**
     * A `purchasePlan` block as defined below.
     */
    readonly purchasePlan: pulumi.Output<outputs.compute.SharedImagePurchasePlan | undefined>;
    /**
     * The URI containing the Release Notes associated with this Shared Image.
     */
    readonly releaseNoteUri: pulumi.Output<string | undefined>;
    /**
     * The name of the resource group in which the Shared Image Gallery exists. Changing this forces a new resource to be created.
     */
    readonly resourceGroupName: pulumi.Output<string>;
    /**
     * Specifies that the Operating System used inside this Image has not been Generalized (for example, `sysprep` on Windows has not been run). Changing this forces a new resource to be created.
     *
     * !> **Note:** It's recommended to Generalize images where possible - Specialized Images reuse the same UUID internally within each Virtual Machine, which can have unintended side-effects.
     */
    readonly specialized: pulumi.Output<boolean | undefined>;
    /**
     * A mapping of tags to assign to the Shared Image.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * Specifies if Trusted Launch has to be enabled for the Virtual Machine created from the Shared Image. Changing this forces a new resource to be created.
     */
    readonly trustedLaunchEnabled: pulumi.Output<boolean | undefined>;
    /**
     * Specifies if supports creation of both Trusted Launch virtual machines and Gen2 virtual machines with standard security created from the Shared Image. Changing this forces a new resource to be created.
     */
    readonly trustedLaunchSupported: pulumi.Output<boolean | undefined>;
    /**
     * Create a SharedImage 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: SharedImageArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering SharedImage resources.
 */
export interface SharedImageState {
    /**
     * Specifies if the Shared Image supports Accelerated Network. Changing this forces a new resource to be created.
     */
    acceleratedNetworkSupportEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * CPU architecture supported by an OS. Possible values are `x64` and `Arm64`. Defaults to `x64`. Changing this forces a new resource to be created.
     */
    architecture?: pulumi.Input<string | undefined>;
    /**
     * Specifies if Confidential Virtual Machines enabled. It will enable all the features of trusted, with higher confidentiality features for isolate machines or encrypted data. Available for Gen2 machines. Changing this forces a new resource to be created.
     *
     * > **Note:** Only one of `trustedLaunchSupported`, `trustedLaunchEnabled`, `confidentialVmSupported` and `confidentialVmEnabled` can be specified.
     */
    confidentialVmEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Specifies if supports creation of both Confidential virtual machines and Gen2 virtual machines with standard security from a compatible Gen2 OS disk VHD or Gen2 Managed image. Changing this forces a new resource to be created.
     */
    confidentialVmSupported?: pulumi.Input<boolean | undefined>;
    /**
     * A description of this Shared Image.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Specifies if the Shared Image supports NVMe disks. Changing this forces a new resource to be created.
     */
    diskControllerTypeNvmeEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * One or more Disk Types not allowed for the Image. Possible values include `Standard_LRS` and `Premium_LRS`.
     */
    diskTypesNotAlloweds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The end of life date in RFC3339 format of the Image.
     */
    endOfLifeDate?: pulumi.Input<string | undefined>;
    /**
     * The End User Licence Agreement for the Shared Image. Changing this forces a new resource to be created.
     */
    eula?: pulumi.Input<string | undefined>;
    /**
     * Specifies the name of the Shared Image Gallery in which this Shared Image should exist. Changing this forces a new resource to be created.
     */
    galleryName?: pulumi.Input<string | undefined>;
    /**
     * Specifies if the Shared Image supports hibernation. Changing this forces a new resource to be created.
     */
    hibernationEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The generation of HyperV that the Virtual Machine used to create the Shared Image is based on. Possible values are `V1` and `V2`. Defaults to `V1`. Changing this forces a new resource to be created.
     */
    hyperVGeneration?: pulumi.Input<string | undefined>;
    /**
     * An `identifier` block as defined below.
     */
    identifier?: pulumi.Input<inputs.compute.SharedImageIdentifier | undefined>;
    /**
     * Specifies the supported Azure location where the Shared Image Gallery exists. Changing this forces a new resource to be created.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * Maximum memory in GB recommended for the Image.
     */
    maxRecommendedMemoryInGb?: pulumi.Input<number | undefined>;
    /**
     * Maximum count of vCPUs recommended for the Image.
     */
    maxRecommendedVcpuCount?: pulumi.Input<number | undefined>;
    /**
     * Minimum memory in GB recommended for the Image.
     */
    minRecommendedMemoryInGb?: pulumi.Input<number | undefined>;
    /**
     * Minimum count of vCPUs recommended for the Image.
     */
    minRecommendedVcpuCount?: pulumi.Input<number | undefined>;
    /**
     * Specifies the name of the Shared Image. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The type of Operating System present in this Shared Image. Possible values are `Linux` and `Windows`. Changing this forces a new resource to be created.
     */
    osType?: pulumi.Input<string | undefined>;
    /**
     * The URI containing the Privacy Statement associated with this Shared Image. Changing this forces a new resource to be created.
     */
    privacyStatementUri?: pulumi.Input<string | undefined>;
    /**
     * A `purchasePlan` block as defined below.
     */
    purchasePlan?: pulumi.Input<inputs.compute.SharedImagePurchasePlan | undefined>;
    /**
     * The URI containing the Release Notes associated with this Shared Image.
     */
    releaseNoteUri?: pulumi.Input<string | undefined>;
    /**
     * The name of the resource group in which the Shared Image Gallery exists. Changing this forces a new resource to be created.
     */
    resourceGroupName?: pulumi.Input<string | undefined>;
    /**
     * Specifies that the Operating System used inside this Image has not been Generalized (for example, `sysprep` on Windows has not been run). Changing this forces a new resource to be created.
     *
     * !> **Note:** It's recommended to Generalize images where possible - Specialized Images reuse the same UUID internally within each Virtual Machine, which can have unintended side-effects.
     */
    specialized?: pulumi.Input<boolean | undefined>;
    /**
     * A mapping of tags to assign to the Shared Image.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Specifies if Trusted Launch has to be enabled for the Virtual Machine created from the Shared Image. Changing this forces a new resource to be created.
     */
    trustedLaunchEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Specifies if supports creation of both Trusted Launch virtual machines and Gen2 virtual machines with standard security created from the Shared Image. Changing this forces a new resource to be created.
     */
    trustedLaunchSupported?: pulumi.Input<boolean | undefined>;
}
/**
 * The set of arguments for constructing a SharedImage resource.
 */
export interface SharedImageArgs {
    /**
     * Specifies if the Shared Image supports Accelerated Network. Changing this forces a new resource to be created.
     */
    acceleratedNetworkSupportEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * CPU architecture supported by an OS. Possible values are `x64` and `Arm64`. Defaults to `x64`. Changing this forces a new resource to be created.
     */
    architecture?: pulumi.Input<string | undefined>;
    /**
     * Specifies if Confidential Virtual Machines enabled. It will enable all the features of trusted, with higher confidentiality features for isolate machines or encrypted data. Available for Gen2 machines. Changing this forces a new resource to be created.
     *
     * > **Note:** Only one of `trustedLaunchSupported`, `trustedLaunchEnabled`, `confidentialVmSupported` and `confidentialVmEnabled` can be specified.
     */
    confidentialVmEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Specifies if supports creation of both Confidential virtual machines and Gen2 virtual machines with standard security from a compatible Gen2 OS disk VHD or Gen2 Managed image. Changing this forces a new resource to be created.
     */
    confidentialVmSupported?: pulumi.Input<boolean | undefined>;
    /**
     * A description of this Shared Image.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Specifies if the Shared Image supports NVMe disks. Changing this forces a new resource to be created.
     */
    diskControllerTypeNvmeEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * One or more Disk Types not allowed for the Image. Possible values include `Standard_LRS` and `Premium_LRS`.
     */
    diskTypesNotAlloweds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The end of life date in RFC3339 format of the Image.
     */
    endOfLifeDate?: pulumi.Input<string | undefined>;
    /**
     * The End User Licence Agreement for the Shared Image. Changing this forces a new resource to be created.
     */
    eula?: pulumi.Input<string | undefined>;
    /**
     * Specifies the name of the Shared Image Gallery in which this Shared Image should exist. Changing this forces a new resource to be created.
     */
    galleryName: pulumi.Input<string>;
    /**
     * Specifies if the Shared Image supports hibernation. Changing this forces a new resource to be created.
     */
    hibernationEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The generation of HyperV that the Virtual Machine used to create the Shared Image is based on. Possible values are `V1` and `V2`. Defaults to `V1`. Changing this forces a new resource to be created.
     */
    hyperVGeneration?: pulumi.Input<string | undefined>;
    /**
     * An `identifier` block as defined below.
     */
    identifier: pulumi.Input<inputs.compute.SharedImageIdentifier>;
    /**
     * Specifies the supported Azure location where the Shared Image Gallery exists. Changing this forces a new resource to be created.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * Maximum memory in GB recommended for the Image.
     */
    maxRecommendedMemoryInGb?: pulumi.Input<number | undefined>;
    /**
     * Maximum count of vCPUs recommended for the Image.
     */
    maxRecommendedVcpuCount?: pulumi.Input<number | undefined>;
    /**
     * Minimum memory in GB recommended for the Image.
     */
    minRecommendedMemoryInGb?: pulumi.Input<number | undefined>;
    /**
     * Minimum count of vCPUs recommended for the Image.
     */
    minRecommendedVcpuCount?: pulumi.Input<number | undefined>;
    /**
     * Specifies the name of the Shared Image. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The type of Operating System present in this Shared Image. Possible values are `Linux` and `Windows`. Changing this forces a new resource to be created.
     */
    osType: pulumi.Input<string>;
    /**
     * The URI containing the Privacy Statement associated with this Shared Image. Changing this forces a new resource to be created.
     */
    privacyStatementUri?: pulumi.Input<string | undefined>;
    /**
     * A `purchasePlan` block as defined below.
     */
    purchasePlan?: pulumi.Input<inputs.compute.SharedImagePurchasePlan | undefined>;
    /**
     * The URI containing the Release Notes associated with this Shared Image.
     */
    releaseNoteUri?: pulumi.Input<string | undefined>;
    /**
     * The name of the resource group in which the Shared Image Gallery exists. Changing this forces a new resource to be created.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * Specifies that the Operating System used inside this Image has not been Generalized (for example, `sysprep` on Windows has not been run). Changing this forces a new resource to be created.
     *
     * !> **Note:** It's recommended to Generalize images where possible - Specialized Images reuse the same UUID internally within each Virtual Machine, which can have unintended side-effects.
     */
    specialized?: pulumi.Input<boolean | undefined>;
    /**
     * A mapping of tags to assign to the Shared Image.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Specifies if Trusted Launch has to be enabled for the Virtual Machine created from the Shared Image. Changing this forces a new resource to be created.
     */
    trustedLaunchEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Specifies if supports creation of both Trusted Launch virtual machines and Gen2 virtual machines with standard security created from the Shared Image. Changing this forces a new resource to be created.
     */
    trustedLaunchSupported?: pulumi.Input<boolean | undefined>;
}
//# sourceMappingURL=sharedImage.d.ts.map