import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Manages a Version of a Shared Image within a Shared Image Gallery.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 *
 * const existing = azure.compute.getImage({
 *     name: "search-api",
 *     resourceGroupName: "packerimages",
 * });
 * const existingGetSharedImage = azure.compute.getSharedImage({
 *     name: "existing-image",
 *     galleryName: "existing_gallery",
 *     resourceGroupName: "existing-resources",
 * });
 * const example = new azure.compute.SharedImageVersion("example", {
 *     name: "0.0.1",
 *     galleryName: existingGetSharedImage.then(existingGetSharedImage => existingGetSharedImage.galleryName),
 *     imageName: existingGetSharedImage.then(existingGetSharedImage => existingGetSharedImage.name),
 *     resourceGroupName: existingGetSharedImage.then(existingGetSharedImage => existingGetSharedImage.resourceGroupName),
 *     location: existingGetSharedImage.then(existingGetSharedImage => existingGetSharedImage.location),
 *     managedImageId: existing.then(existing => existing.id),
 *     targetRegions: [{
 *         name: existingGetSharedImage.then(existingGetSharedImage => existingGetSharedImage.location),
 *         regionalReplicaCount: 5,
 *         storageAccountType: "Standard_LRS",
 *     }],
 * });
 * ```
 *
 * ## API Providers
 *
 * <!-- This section is generated, changes will be overwritten -->
 * This resource uses the following Azure API Providers:
 *
 * * `Microsoft.Compute` - 2023-07-03
 *
 * ## Import
 *
 * Shared Image Versions can be imported using the `resource id`, e.g.
 *
 * ```sh
 * $ pulumi import azure:compute/sharedImageVersion:SharedImageVersion version /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/galleries/gallery1/images/image1/versions/1.2.3
 * ```
 */
export declare class SharedImageVersion extends pulumi.CustomResource {
    /**
     * Get an existing SharedImageVersion 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?: SharedImageVersionState, opts?: pulumi.CustomResourceOptions): SharedImageVersion;
    /**
     * Returns true if the given object is an instance of SharedImageVersion.  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 SharedImageVersion;
    /**
     * URI of the Azure Storage Blob used to create the Image Version. Changing this forces a new resource to be created.
     *
     * > **NOTE:** You must specify exact one of `blobUri`, `managedImageId` and `osDiskSnapshotId`.
     *
     * > **NOTE:** `blobUri` and `storageAccountId` must be specified together
     */
    readonly blobUri: pulumi.Output<string | undefined>;
    /**
     * Specifies whether this Shared Image Version can be deleted from the Azure Regions this is replicated to. Defaults to `false`. Changing this forces a new resource to be created.
     */
    readonly deletionOfReplicatedLocationsEnabled: pulumi.Output<boolean | undefined>;
    /**
     * The end of life date in RFC3339 format of the Image Version.
     */
    readonly endOfLifeDate: pulumi.Output<string | undefined>;
    /**
     * Should this Image Version be excluded from the `latest` filter? If set to `true` this Image Version won't be returned for the `latest` version. Defaults to `false`.
     */
    readonly excludeFromLatest: pulumi.Output<boolean | undefined>;
    /**
     * The name of the Shared Image Gallery in which the Shared Image exists. Changing this forces a new resource to be created.
     */
    readonly galleryName: pulumi.Output<string>;
    /**
     * The name of the Shared Image within the Shared Image Gallery in which this Version should be created. Changing this forces a new resource to be created.
     */
    readonly imageName: pulumi.Output<string>;
    /**
     * The Azure Region in which the Shared Image Gallery exists. Changing this forces a new resource to be created.
     */
    readonly location: pulumi.Output<string>;
    /**
     * The ID of the Managed Image or Virtual Machine ID which should be used for this Shared Image Version. Changing this forces a new resource to be created.
     *
     * > **NOTE:** The ID can be sourced from the `azure.compute.Image` data source or resource
     *
     * > **NOTE:** You must specify exact one of `blobUri`, `managedImageId` and `osDiskSnapshotId`.
     */
    readonly managedImageId: pulumi.Output<string | undefined>;
    /**
     * The version number for this Image Version, such as `1.0.0`. Changing this forces a new resource to be created.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The ID of the OS disk snapshot which should be used for this Shared Image Version. Changing this forces a new resource to be created.
     *
     * > **NOTE:** You must specify exact one of `blobUri`, `managedImageId` and `osDiskSnapshotId`.
     */
    readonly osDiskSnapshotId: pulumi.Output<string | undefined>;
    /**
     * Mode to be used for replication. Possible values are `Full` and `Shallow`. Defaults to `Full`. Changing this forces a new resource to be created.
     */
    readonly replicationMode: 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>;
    /**
     * The ID of the Storage Account where the Blob exists. Changing this forces a new resource to be created.
     *
     * > **NOTE:** `blobUri` and `storageAccountId` must be specified together
     */
    readonly storageAccountId: pulumi.Output<string | undefined>;
    /**
     * A collection of tags which should be applied to this resource.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * One or more `targetRegion` blocks as documented below.
     */
    readonly targetRegions: pulumi.Output<outputs.compute.SharedImageVersionTargetRegion[]>;
    /**
     * Create a SharedImageVersion 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: SharedImageVersionArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering SharedImageVersion resources.
 */
export interface SharedImageVersionState {
    /**
     * URI of the Azure Storage Blob used to create the Image Version. Changing this forces a new resource to be created.
     *
     * > **NOTE:** You must specify exact one of `blobUri`, `managedImageId` and `osDiskSnapshotId`.
     *
     * > **NOTE:** `blobUri` and `storageAccountId` must be specified together
     */
    blobUri?: pulumi.Input<string | undefined>;
    /**
     * Specifies whether this Shared Image Version can be deleted from the Azure Regions this is replicated to. Defaults to `false`. Changing this forces a new resource to be created.
     */
    deletionOfReplicatedLocationsEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The end of life date in RFC3339 format of the Image Version.
     */
    endOfLifeDate?: pulumi.Input<string | undefined>;
    /**
     * Should this Image Version be excluded from the `latest` filter? If set to `true` this Image Version won't be returned for the `latest` version. Defaults to `false`.
     */
    excludeFromLatest?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the Shared Image Gallery in which the Shared Image exists. Changing this forces a new resource to be created.
     */
    galleryName?: pulumi.Input<string | undefined>;
    /**
     * The name of the Shared Image within the Shared Image Gallery in which this Version should be created. Changing this forces a new resource to be created.
     */
    imageName?: pulumi.Input<string | undefined>;
    /**
     * The Azure Region in which the Shared Image Gallery exists. Changing this forces a new resource to be created.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * The ID of the Managed Image or Virtual Machine ID which should be used for this Shared Image Version. Changing this forces a new resource to be created.
     *
     * > **NOTE:** The ID can be sourced from the `azure.compute.Image` data source or resource
     *
     * > **NOTE:** You must specify exact one of `blobUri`, `managedImageId` and `osDiskSnapshotId`.
     */
    managedImageId?: pulumi.Input<string | undefined>;
    /**
     * The version number for this Image Version, such as `1.0.0`. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The ID of the OS disk snapshot which should be used for this Shared Image Version. Changing this forces a new resource to be created.
     *
     * > **NOTE:** You must specify exact one of `blobUri`, `managedImageId` and `osDiskSnapshotId`.
     */
    osDiskSnapshotId?: pulumi.Input<string | undefined>;
    /**
     * Mode to be used for replication. Possible values are `Full` and `Shallow`. Defaults to `Full`. Changing this forces a new resource to be created.
     */
    replicationMode?: 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>;
    /**
     * The ID of the Storage Account where the Blob exists. Changing this forces a new resource to be created.
     *
     * > **NOTE:** `blobUri` and `storageAccountId` must be specified together
     */
    storageAccountId?: pulumi.Input<string | undefined>;
    /**
     * A collection of tags which should be applied to this resource.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * One or more `targetRegion` blocks as documented below.
     */
    targetRegions?: pulumi.Input<pulumi.Input<inputs.compute.SharedImageVersionTargetRegion>[] | undefined>;
}
/**
 * The set of arguments for constructing a SharedImageVersion resource.
 */
export interface SharedImageVersionArgs {
    /**
     * URI of the Azure Storage Blob used to create the Image Version. Changing this forces a new resource to be created.
     *
     * > **NOTE:** You must specify exact one of `blobUri`, `managedImageId` and `osDiskSnapshotId`.
     *
     * > **NOTE:** `blobUri` and `storageAccountId` must be specified together
     */
    blobUri?: pulumi.Input<string | undefined>;
    /**
     * Specifies whether this Shared Image Version can be deleted from the Azure Regions this is replicated to. Defaults to `false`. Changing this forces a new resource to be created.
     */
    deletionOfReplicatedLocationsEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The end of life date in RFC3339 format of the Image Version.
     */
    endOfLifeDate?: pulumi.Input<string | undefined>;
    /**
     * Should this Image Version be excluded from the `latest` filter? If set to `true` this Image Version won't be returned for the `latest` version. Defaults to `false`.
     */
    excludeFromLatest?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the Shared Image Gallery in which the Shared Image exists. Changing this forces a new resource to be created.
     */
    galleryName: pulumi.Input<string>;
    /**
     * The name of the Shared Image within the Shared Image Gallery in which this Version should be created. Changing this forces a new resource to be created.
     */
    imageName: pulumi.Input<string>;
    /**
     * The Azure Region in which the Shared Image Gallery exists. Changing this forces a new resource to be created.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * The ID of the Managed Image or Virtual Machine ID which should be used for this Shared Image Version. Changing this forces a new resource to be created.
     *
     * > **NOTE:** The ID can be sourced from the `azure.compute.Image` data source or resource
     *
     * > **NOTE:** You must specify exact one of `blobUri`, `managedImageId` and `osDiskSnapshotId`.
     */
    managedImageId?: pulumi.Input<string | undefined>;
    /**
     * The version number for this Image Version, such as `1.0.0`. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The ID of the OS disk snapshot which should be used for this Shared Image Version. Changing this forces a new resource to be created.
     *
     * > **NOTE:** You must specify exact one of `blobUri`, `managedImageId` and `osDiskSnapshotId`.
     */
    osDiskSnapshotId?: pulumi.Input<string | undefined>;
    /**
     * Mode to be used for replication. Possible values are `Full` and `Shallow`. Defaults to `Full`. Changing this forces a new resource to be created.
     */
    replicationMode?: 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>;
    /**
     * The ID of the Storage Account where the Blob exists. Changing this forces a new resource to be created.
     *
     * > **NOTE:** `blobUri` and `storageAccountId` must be specified together
     */
    storageAccountId?: pulumi.Input<string | undefined>;
    /**
     * A collection of tags which should be applied to this resource.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * One or more `targetRegion` blocks as documented below.
     */
    targetRegions: pulumi.Input<pulumi.Input<inputs.compute.SharedImageVersionTargetRegion>[]>;
}
//# sourceMappingURL=sharedImageVersion.d.ts.map