import * as pulumi from "@pulumi/pulumi"; /** * Manages a File within an Azure Storage File Share. * * > **Note:** When using Azure Active Directory Authentication (i.e. setting the provider property `storageUseAzuread = true`), the principal running Terraform must have the *Storage File Data Privileged Contributor* IAM role assigned. The *Storage File Data SMB Share Contributor* does not have sufficient permissions to create files. Refer to [official documentation](https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-with-azure-active-directory#permissions-for-file-service-operations) for more details. * * ## 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 exampleAccount = new azure.storage.Account("example", { * name: "azureteststorage", * resourceGroupName: example.name, * location: example.location, * accountTier: "Standard", * accountReplicationType: "LRS", * }); * const exampleShare = new azure.storage.Share("example", { * name: "sharename", * storageAccountId: exampleAccount.id, * quota: 50, * }); * const exampleShareFile = new azure.storage.ShareFile("example", { * name: "my-awesome-content.zip", * storageShareUrl: exampleShare.url, * source: "some-local-file.zip", * }); * ``` * * ## Import * * Directories within an Azure Storage File Share can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:storage/shareFile:ShareFile example https://account1.file.core.windows.net/share1/file1 * ``` */ export declare class ShareFile extends pulumi.CustomResource { /** * Get an existing ShareFile 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?: ShareFileState, opts?: pulumi.CustomResourceOptions): ShareFile; /** * Returns true if the given object is an instance of ShareFile. 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 ShareFile; /** * Sets the file’s Content-Disposition header. */ readonly contentDisposition: pulumi.Output; /** * Specifies which content encodings have been applied to the file. */ readonly contentEncoding: pulumi.Output; /** * The length in bytes of the file content */ readonly contentLength: pulumi.Output; /** * The MD5 sum of the file contents. Changing this forces a new resource to be created. * * > **Note:** This property is intended to be used with the Terraform internal filemd5 and md5 functions when `source` is defined. */ readonly contentMd5: pulumi.Output; /** * The content type of the share file. Defaults to `application/octet-stream`. */ readonly contentType: pulumi.Output; /** * A mapping of metadata to assign to this file. */ readonly metadata: pulumi.Output<{ [key: string]: string; } | undefined>; /** * The name (or path) of the File that should be created within this File Share. Changing this forces a new resource to be created. */ readonly name: pulumi.Output; /** * The storage share directory that you would like the file placed into. Changing this forces a new resource to be created. Defaults to `""`. */ readonly path: pulumi.Output; /** * An absolute path to a file on the local system. Changing this forces a new resource to be created. * * > **Note:** The file specified with `source` can not be empty. */ readonly source: pulumi.Output; /** * @deprecated This property has been deprecated in favour of `storageShareUrl` and will be removed in version 5.0 of the Provider. */ readonly storageShareId: pulumi.Output; /** * The Storage Share URL in which this file will be placed into. Changing this forces a new resource to be created. */ readonly storageShareUrl: pulumi.Output; /** * Create a ShareFile 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?: ShareFileArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering ShareFile resources. */ export interface ShareFileState { /** * Sets the file’s Content-Disposition header. */ contentDisposition?: pulumi.Input; /** * Specifies which content encodings have been applied to the file. */ contentEncoding?: pulumi.Input; /** * The length in bytes of the file content */ contentLength?: pulumi.Input; /** * The MD5 sum of the file contents. Changing this forces a new resource to be created. * * > **Note:** This property is intended to be used with the Terraform internal filemd5 and md5 functions when `source` is defined. */ contentMd5?: pulumi.Input; /** * The content type of the share file. Defaults to `application/octet-stream`. */ contentType?: pulumi.Input; /** * A mapping of metadata to assign to this file. */ metadata?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The name (or path) of the File that should be created within this File Share. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * The storage share directory that you would like the file placed into. Changing this forces a new resource to be created. Defaults to `""`. */ path?: pulumi.Input; /** * An absolute path to a file on the local system. Changing this forces a new resource to be created. * * > **Note:** The file specified with `source` can not be empty. */ source?: pulumi.Input; /** * @deprecated This property has been deprecated in favour of `storageShareUrl` and will be removed in version 5.0 of the Provider. */ storageShareId?: pulumi.Input; /** * The Storage Share URL in which this file will be placed into. Changing this forces a new resource to be created. */ storageShareUrl?: pulumi.Input; } /** * The set of arguments for constructing a ShareFile resource. */ export interface ShareFileArgs { /** * Sets the file’s Content-Disposition header. */ contentDisposition?: pulumi.Input; /** * Specifies which content encodings have been applied to the file. */ contentEncoding?: pulumi.Input; /** * The MD5 sum of the file contents. Changing this forces a new resource to be created. * * > **Note:** This property is intended to be used with the Terraform internal filemd5 and md5 functions when `source` is defined. */ contentMd5?: pulumi.Input; /** * The content type of the share file. Defaults to `application/octet-stream`. */ contentType?: pulumi.Input; /** * A mapping of metadata to assign to this file. */ metadata?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The name (or path) of the File that should be created within this File Share. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * The storage share directory that you would like the file placed into. Changing this forces a new resource to be created. Defaults to `""`. */ path?: pulumi.Input; /** * An absolute path to a file on the local system. Changing this forces a new resource to be created. * * > **Note:** The file specified with `source` can not be empty. */ source?: pulumi.Input; /** * @deprecated This property has been deprecated in favour of `storageShareUrl` and will be removed in version 5.0 of the Provider. */ storageShareId?: pulumi.Input; /** * The Storage Share URL in which this file will be placed into. Changing this forces a new resource to be created. */ storageShareUrl?: pulumi.Input; }