import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Manages a HPC Cache.
 *
 * !> **Note:** The `azure.hpc.Cache` resource has been deprecated because the service is retiring on 2025-09-30. This resource will be removed in v5.0 of the AzureRM Provider. See https://aka.ms/hpccacheretirement for more information.
 *
 * > **Note:** By request of the service team the provider no longer automatically registers the `Microsoft.StorageCache` Resource Provider for this resource. To register it you can run `az provider register --namespace 'Microsoft.StorageCache'`.
 *
 * ## 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 exampleVirtualNetwork = new azure.network.VirtualNetwork("example", {
 *     name: "examplevn",
 *     addressSpaces: ["10.0.0.0/16"],
 *     location: example.location,
 *     resourceGroupName: example.name,
 * });
 * const exampleSubnet = new azure.network.Subnet("example", {
 *     name: "examplesubnet",
 *     resourceGroupName: example.name,
 *     virtualNetworkName: exampleVirtualNetwork.name,
 *     addressPrefixes: ["10.0.1.0/24"],
 * });
 * const exampleCache = new azure.hpc.Cache("example", {
 *     name: "examplehpccache",
 *     resourceGroupName: example.name,
 *     location: example.location,
 *     cacheSizeInGb: 3072,
 *     subnetId: exampleSubnet.id,
 *     skuName: "Standard_2G",
 * });
 * ```
 *
 * ## API Providers
 *
 * <!-- This section is generated, changes will be overwritten -->
 * This resource uses the following Azure API Providers:
 *
 * * `Microsoft.StorageCache` - 2023-05-01
 *
 * ## Import
 *
 * HPC Caches can be imported using the `resource id`, e.g.
 *
 * ```sh
 * $ pulumi import azure:hpc/cache:Cache example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroupName/providers/Microsoft.StorageCache/caches/cacheName
 * ```
 */
export declare class Cache extends pulumi.CustomResource {
    /**
     * Get an existing Cache 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?: CacheState, opts?: pulumi.CustomResourceOptions): Cache;
    /**
     * Returns true if the given object is an instance of Cache.  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 Cache;
    /**
     * Specifies whether the HPC Cache automatically rotates Encryption Key to the latest version.
     */
    readonly automaticallyRotateKeyToLatestEnabled: pulumi.Output<boolean | undefined>;
    /**
     * The size of the HPC Cache, in GB. Possible values are `3072`, `6144`, `12288`, `21623`, `24576`, `43246`, `49152` and `86491`. Changing this forces a new resource to be created.
     *
     * > **Note:** The `21623`, `43246` and `86491` sizes are restricted to read only resources.
     */
    readonly cacheSizeInGb: pulumi.Output<number>;
    /**
     * A `defaultAccessPolicy` block as defined below.
     */
    readonly defaultAccessPolicy: pulumi.Output<outputs.hpc.CacheDefaultAccessPolicy>;
    /**
     * A `directoryActiveDirectory` block as defined below.
     */
    readonly directoryActiveDirectory: pulumi.Output<outputs.hpc.CacheDirectoryActiveDirectory | undefined>;
    /**
     * A `directoryFlatFile` block as defined below.
     */
    readonly directoryFlatFile: pulumi.Output<outputs.hpc.CacheDirectoryFlatFile | undefined>;
    /**
     * A `directoryLdap` block as defined below.
     *
     * > **Note:** Only one of `directoryActiveDirectory`, `directoryFlatFile` and `directoryLdap` can be set.
     */
    readonly directoryLdap: pulumi.Output<outputs.hpc.CacheDirectoryLdap | undefined>;
    /**
     * A `dns` block as defined below.
     */
    readonly dns: pulumi.Output<outputs.hpc.CacheDns | undefined>;
    /**
     * An `identity` block as defined below. Changing this forces a new resource to be created.
     */
    readonly identity: pulumi.Output<outputs.hpc.CacheIdentity | undefined>;
    /**
     * The ID of the Key Vault Key which should be used to encrypt the data in this HPC Cache.
     */
    readonly keyVaultKeyId: pulumi.Output<string | undefined>;
    /**
     * Specifies the supported Azure Region where the HPC Cache should be created. Changing this forces a new resource to be created.
     */
    readonly location: pulumi.Output<string>;
    /**
     * A list of IP Addresses where the HPC Cache can be mounted.
     */
    readonly mountAddresses: pulumi.Output<string[]>;
    /**
     * The IPv4 maximum transmission unit configured for the subnet of the HPC Cache. Possible values range from 576 - 1500. Defaults to `1500`.
     */
    readonly mtu: pulumi.Output<number | undefined>;
    /**
     * The name of the HPC Cache. Changing this forces a new resource to be created.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The NTP server IP Address or FQDN for the HPC Cache. Defaults to `time.windows.com`.
     */
    readonly ntpServer: pulumi.Output<string | undefined>;
    /**
     * The name of the Resource Group in which to create the HPC Cache. Changing this forces a new resource to be created.
     */
    readonly resourceGroupName: pulumi.Output<string>;
    /**
     * The SKU of HPC Cache to use. Possible values are (ReadWrite) - `Standard_2G`, `Standard_4G` `Standard_8G` or (ReadOnly) - `Standard_L4_5G`, `Standard_L9G`, and `Standard_L16G`. Changing this forces a new resource to be created.
     *
     * > **Note:** The read-only SKUs have restricted cache sizes. `Standard_L4_5G` must be set to `21623`. `Standard_L9G` to `43246` and `Standard_L16G` to `86491`.
     */
    readonly skuName: pulumi.Output<string>;
    /**
     * The ID of the Subnet for the HPC Cache. Changing this forces a new resource to be created.
     */
    readonly subnetId: pulumi.Output<string>;
    /**
     * A mapping of tags to assign to the HPC Cache.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * Create a Cache 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: CacheArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Cache resources.
 */
export interface CacheState {
    /**
     * Specifies whether the HPC Cache automatically rotates Encryption Key to the latest version.
     */
    automaticallyRotateKeyToLatestEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The size of the HPC Cache, in GB. Possible values are `3072`, `6144`, `12288`, `21623`, `24576`, `43246`, `49152` and `86491`. Changing this forces a new resource to be created.
     *
     * > **Note:** The `21623`, `43246` and `86491` sizes are restricted to read only resources.
     */
    cacheSizeInGb?: pulumi.Input<number | undefined>;
    /**
     * A `defaultAccessPolicy` block as defined below.
     */
    defaultAccessPolicy?: pulumi.Input<inputs.hpc.CacheDefaultAccessPolicy | undefined>;
    /**
     * A `directoryActiveDirectory` block as defined below.
     */
    directoryActiveDirectory?: pulumi.Input<inputs.hpc.CacheDirectoryActiveDirectory | undefined>;
    /**
     * A `directoryFlatFile` block as defined below.
     */
    directoryFlatFile?: pulumi.Input<inputs.hpc.CacheDirectoryFlatFile | undefined>;
    /**
     * A `directoryLdap` block as defined below.
     *
     * > **Note:** Only one of `directoryActiveDirectory`, `directoryFlatFile` and `directoryLdap` can be set.
     */
    directoryLdap?: pulumi.Input<inputs.hpc.CacheDirectoryLdap | undefined>;
    /**
     * A `dns` block as defined below.
     */
    dns?: pulumi.Input<inputs.hpc.CacheDns | undefined>;
    /**
     * An `identity` block as defined below. Changing this forces a new resource to be created.
     */
    identity?: pulumi.Input<inputs.hpc.CacheIdentity | undefined>;
    /**
     * The ID of the Key Vault Key which should be used to encrypt the data in this HPC Cache.
     */
    keyVaultKeyId?: pulumi.Input<string | undefined>;
    /**
     * Specifies the supported Azure Region where the HPC Cache should be created. Changing this forces a new resource to be created.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * A list of IP Addresses where the HPC Cache can be mounted.
     */
    mountAddresses?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The IPv4 maximum transmission unit configured for the subnet of the HPC Cache. Possible values range from 576 - 1500. Defaults to `1500`.
     */
    mtu?: pulumi.Input<number | undefined>;
    /**
     * The name of the HPC Cache. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The NTP server IP Address or FQDN for the HPC Cache. Defaults to `time.windows.com`.
     */
    ntpServer?: pulumi.Input<string | undefined>;
    /**
     * The name of the Resource Group in which to create the HPC Cache. Changing this forces a new resource to be created.
     */
    resourceGroupName?: pulumi.Input<string | undefined>;
    /**
     * The SKU of HPC Cache to use. Possible values are (ReadWrite) - `Standard_2G`, `Standard_4G` `Standard_8G` or (ReadOnly) - `Standard_L4_5G`, `Standard_L9G`, and `Standard_L16G`. Changing this forces a new resource to be created.
     *
     * > **Note:** The read-only SKUs have restricted cache sizes. `Standard_L4_5G` must be set to `21623`. `Standard_L9G` to `43246` and `Standard_L16G` to `86491`.
     */
    skuName?: pulumi.Input<string | undefined>;
    /**
     * The ID of the Subnet for the HPC Cache. Changing this forces a new resource to be created.
     */
    subnetId?: pulumi.Input<string | undefined>;
    /**
     * A mapping of tags to assign to the HPC Cache.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
}
/**
 * The set of arguments for constructing a Cache resource.
 */
export interface CacheArgs {
    /**
     * Specifies whether the HPC Cache automatically rotates Encryption Key to the latest version.
     */
    automaticallyRotateKeyToLatestEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The size of the HPC Cache, in GB. Possible values are `3072`, `6144`, `12288`, `21623`, `24576`, `43246`, `49152` and `86491`. Changing this forces a new resource to be created.
     *
     * > **Note:** The `21623`, `43246` and `86491` sizes are restricted to read only resources.
     */
    cacheSizeInGb: pulumi.Input<number>;
    /**
     * A `defaultAccessPolicy` block as defined below.
     */
    defaultAccessPolicy?: pulumi.Input<inputs.hpc.CacheDefaultAccessPolicy | undefined>;
    /**
     * A `directoryActiveDirectory` block as defined below.
     */
    directoryActiveDirectory?: pulumi.Input<inputs.hpc.CacheDirectoryActiveDirectory | undefined>;
    /**
     * A `directoryFlatFile` block as defined below.
     */
    directoryFlatFile?: pulumi.Input<inputs.hpc.CacheDirectoryFlatFile | undefined>;
    /**
     * A `directoryLdap` block as defined below.
     *
     * > **Note:** Only one of `directoryActiveDirectory`, `directoryFlatFile` and `directoryLdap` can be set.
     */
    directoryLdap?: pulumi.Input<inputs.hpc.CacheDirectoryLdap | undefined>;
    /**
     * A `dns` block as defined below.
     */
    dns?: pulumi.Input<inputs.hpc.CacheDns | undefined>;
    /**
     * An `identity` block as defined below. Changing this forces a new resource to be created.
     */
    identity?: pulumi.Input<inputs.hpc.CacheIdentity | undefined>;
    /**
     * The ID of the Key Vault Key which should be used to encrypt the data in this HPC Cache.
     */
    keyVaultKeyId?: pulumi.Input<string | undefined>;
    /**
     * Specifies the supported Azure Region where the HPC Cache should be created. Changing this forces a new resource to be created.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * The IPv4 maximum transmission unit configured for the subnet of the HPC Cache. Possible values range from 576 - 1500. Defaults to `1500`.
     */
    mtu?: pulumi.Input<number | undefined>;
    /**
     * The name of the HPC Cache. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The NTP server IP Address or FQDN for the HPC Cache. Defaults to `time.windows.com`.
     */
    ntpServer?: pulumi.Input<string | undefined>;
    /**
     * The name of the Resource Group in which to create the HPC Cache. Changing this forces a new resource to be created.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * The SKU of HPC Cache to use. Possible values are (ReadWrite) - `Standard_2G`, `Standard_4G` `Standard_8G` or (ReadOnly) - `Standard_L4_5G`, `Standard_L9G`, and `Standard_L16G`. Changing this forces a new resource to be created.
     *
     * > **Note:** The read-only SKUs have restricted cache sizes. `Standard_L4_5G` must be set to `21623`. `Standard_L9G` to `43246` and `Standard_L16G` to `86491`.
     */
    skuName: pulumi.Input<string>;
    /**
     * The ID of the Subnet for the HPC Cache. Changing this forces a new resource to be created.
     */
    subnetId: pulumi.Input<string>;
    /**
     * A mapping of tags to assign to the HPC Cache.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
}
//# sourceMappingURL=cache.d.ts.map