import * as pulumi from "@pulumi/pulumi"; /** * Manages a Key Vault Managed Storage Account. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const current = azure.core.getClientConfig({}); * const example = new azure.core.ResourceGroup("example", { * name: "example-resources", * location: "West Europe", * }); * const exampleAccount = new azure.storage.Account("example", { * name: "storageaccountname", * resourceGroupName: example.name, * location: example.location, * accountTier: "Standard", * accountReplicationType: "LRS", * }); * const exampleKeyVault = new azure.keyvault.KeyVault("example", { * name: "keyvaultname", * location: example.location, * resourceGroupName: example.name, * tenantId: current.then(current => current.tenantId), * skuName: "standard", * accessPolicies: [{ * tenantId: current.then(current => current.tenantId), * objectId: current.then(current => current.objectId), * secretPermissions: [ * "Get", * "Delete", * ], * storagePermissions: [ * "Get", * "List", * "Set", * "SetSAS", * "GetSAS", * "DeleteSAS", * "Update", * "RegenerateKey", * ], * }], * }); * const exampleManagedStorageAccount = new azure.keyvault.ManagedStorageAccount("example", { * name: "examplemanagedstorage", * keyVaultId: exampleKeyVault.id, * storageAccountId: exampleAccount.id, * storageAccountKey: "key1", * regenerateKeyAutomatically: false, * regenerationPeriod: "P1D", * }); * ``` * * ## Import * * Key Vault Managed Storage Accounts can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:keyvault/managedStorageAccount:ManagedStorageAccount example https://example-keyvault.vault.azure.net/storage/exampleStorageAcc01 * ``` */ export declare class ManagedStorageAccount extends pulumi.CustomResource { /** * Get an existing ManagedStorageAccount 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, state?: ManagedStorageAccountState, opts?: pulumi.CustomResourceOptions): ManagedStorageAccount; /** * Returns true if the given object is an instance of ManagedStorageAccount. 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 ManagedStorageAccount; /** * The ID of the Key Vault where the Managed Storage Account should be created. Changing this forces a new resource to be created. */ readonly keyVaultId: pulumi.Output; /** * The name which should be used for this Key Vault Managed Storage Account. Changing this forces a new Key Vault Managed Storage Account to be created. */ readonly name: pulumi.Output; /** * Should Storage Account access key be regenerated periodically? * * > **Note:** Azure Key Vault application needs to have access to Storage Account for auto regeneration to work. Example can be found above. */ readonly regenerateKeyAutomatically: pulumi.Output; /** * How often Storage Account access key should be regenerated. Value needs to be in [ISO 8601 duration format](https://en.wikipedia.org/wiki/ISO_8601#Durations). */ readonly regenerationPeriod: pulumi.Output; /** * The ID of the Storage Account. */ readonly storageAccountId: pulumi.Output; /** * Which Storage Account access key that is managed by Key Vault. Possible values are `key1` and `key2`. */ readonly storageAccountKey: pulumi.Output; /** * A mapping of tags which should be assigned to the Key Vault Managed Storage Account. Changing this forces a new resource to be created. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Create a ManagedStorageAccount 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: ManagedStorageAccountArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering ManagedStorageAccount resources. */ export interface ManagedStorageAccountState { /** * The ID of the Key Vault where the Managed Storage Account should be created. Changing this forces a new resource to be created. */ keyVaultId?: pulumi.Input; /** * The name which should be used for this Key Vault Managed Storage Account. Changing this forces a new Key Vault Managed Storage Account to be created. */ name?: pulumi.Input; /** * Should Storage Account access key be regenerated periodically? * * > **Note:** Azure Key Vault application needs to have access to Storage Account for auto regeneration to work. Example can be found above. */ regenerateKeyAutomatically?: pulumi.Input; /** * How often Storage Account access key should be regenerated. Value needs to be in [ISO 8601 duration format](https://en.wikipedia.org/wiki/ISO_8601#Durations). */ regenerationPeriod?: pulumi.Input; /** * The ID of the Storage Account. */ storageAccountId?: pulumi.Input; /** * Which Storage Account access key that is managed by Key Vault. Possible values are `key1` and `key2`. */ storageAccountKey?: pulumi.Input; /** * A mapping of tags which should be assigned to the Key Vault Managed Storage Account. Changing this forces a new resource to be created. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; } /** * The set of arguments for constructing a ManagedStorageAccount resource. */ export interface ManagedStorageAccountArgs { /** * The ID of the Key Vault where the Managed Storage Account should be created. Changing this forces a new resource to be created. */ keyVaultId: pulumi.Input; /** * The name which should be used for this Key Vault Managed Storage Account. Changing this forces a new Key Vault Managed Storage Account to be created. */ name?: pulumi.Input; /** * Should Storage Account access key be regenerated periodically? * * > **Note:** Azure Key Vault application needs to have access to Storage Account for auto regeneration to work. Example can be found above. */ regenerateKeyAutomatically?: pulumi.Input; /** * How often Storage Account access key should be regenerated. Value needs to be in [ISO 8601 duration format](https://en.wikipedia.org/wiki/ISO_8601#Durations). */ regenerationPeriod?: pulumi.Input; /** * The ID of the Storage Account. */ storageAccountId: pulumi.Input; /** * Which Storage Account access key that is managed by Key Vault. Possible values are `key1` and `key2`. */ storageAccountKey: pulumi.Input; /** * A mapping of tags which should be assigned to the Key Vault Managed Storage Account. Changing this forces a new resource to be created. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; }