@azure/storage-file-datalake 12.26.0 → 12.27.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +117 -190
- package/dist/browser/DataLakeFileSystemClient.d.ts +473 -0
- package/dist/browser/DataLakeFileSystemClient.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/DataLakeFileSystemClient.js +170 -75
- package/dist/browser/DataLakeFileSystemClient.js.map +1 -0
- package/dist/browser/DataLakeLeaseClient.d.ts +14 -0
- package/dist/browser/DataLakeLeaseClient.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/DataLakeLeaseClient.js +3 -1
- package/dist/browser/DataLakeLeaseClient.js.map +1 -0
- package/dist/browser/DataLakeServiceClient.d.ts +281 -0
- package/dist/browser/DataLakeServiceClient.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/DataLakeServiceClient.js +94 -62
- package/dist/browser/DataLakeServiceClient.js.map +1 -0
- package/dist/browser/Pipeline.d.ts +52 -0
- package/dist/browser/Pipeline.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/Pipeline.js +8 -8
- package/dist/browser/Pipeline.js.map +1 -0
- package/dist/browser/StorageClient.d.ts +61 -0
- package/dist/browser/StorageClient.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/StorageClient.js +5 -3
- package/dist/browser/StorageClient.js.map +1 -0
- package/dist/browser/StorageContextClient.d.ts +9 -0
- package/dist/browser/StorageContextClient.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/StorageContextClient.js +3 -3
- package/dist/browser/StorageContextClient.js.map +1 -0
- package/dist/browser/clients.d.ts +689 -0
- package/dist/browser/clients.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/clients.js +87 -45
- package/dist/browser/clients.js.map +1 -0
- package/dist/browser/credentials/StorageSharedKeyCredential-browser.d.mts.map +1 -0
- package/dist/browser/credentials/StorageSharedKeyCredential-browser.mjs.map +1 -0
- package/dist/browser/credentials/StorageSharedKeyCredential.d.ts +3 -0
- package/{dist-esm/storage-file-datalake/src/credentials/StorageSharedKeyCredential.browser.js → dist/browser/credentials/StorageSharedKeyCredential.js} +1 -1
- package/dist/browser/credentials/UserDelegationKeyCredential-browser.d.mts.map +1 -0
- package/dist/browser/credentials/UserDelegationKeyCredential-browser.mjs.map +1 -0
- package/dist/browser/credentials/UserDelegationKeyCredential.d.ts +3 -0
- package/{dist-esm/storage-file-datalake/src/credentials/UserDelegationKeyCredential.browser.js → dist/browser/credentials/UserDelegationKeyCredential.js} +1 -1
- package/dist/browser/generated/src/index.d.ts +4 -0
- package/dist/browser/generated/src/index.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/generated/src/index.js +3 -3
- package/dist/browser/generated/src/index.js.map +1 -0
- package/dist/browser/generated/src/models/index.d.ts +1091 -0
- package/dist/browser/generated/src/models/index.d.ts.map +1 -0
- package/dist/browser/generated/src/models/index.js.map +1 -0
- package/dist/browser/generated/src/models/mappers.d.ts +53 -0
- package/dist/browser/generated/src/models/mappers.d.ts.map +1 -0
- package/dist/browser/generated/src/models/mappers.js.map +1 -0
- package/dist/browser/generated/src/models/parameters.d.ts +87 -0
- package/dist/browser/generated/src/models/parameters.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/generated/src/models/parameters.js +1 -1
- package/dist/browser/generated/src/models/parameters.js.map +1 -0
- package/dist/browser/generated/src/operations/fileSystemOperations.d.ts +55 -0
- package/dist/browser/generated/src/operations/fileSystemOperations.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/generated/src/operations/fileSystemOperations.js +2 -2
- package/dist/browser/generated/src/operations/fileSystemOperations.js.map +1 -0
- package/dist/browser/generated/src/operations/index.d.ts +4 -0
- package/dist/browser/generated/src/operations/index.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src/generated/src/operationsInterfaces → dist/browser/generated/src/operations}/index.js +3 -3
- package/dist/browser/generated/src/operations/index.js.map +1 -0
- package/dist/browser/generated/src/operations/pathOperations.d.ts +120 -0
- package/dist/browser/generated/src/operations/pathOperations.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/generated/src/operations/pathOperations.js +2 -2
- package/dist/browser/generated/src/operations/pathOperations.js.map +1 -0
- package/dist/browser/generated/src/operations/service.d.ts +18 -0
- package/dist/browser/generated/src/operations/service.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/generated/src/operations/service.js +2 -2
- package/dist/browser/generated/src/operations/service.js.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/fileSystemOperations.d.ts +47 -0
- package/dist/browser/generated/src/operationsInterfaces/fileSystemOperations.d.ts.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/fileSystemOperations.js.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/index.d.ts +4 -0
- package/dist/browser/generated/src/operationsInterfaces/index.d.ts.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/index.js +11 -0
- package/dist/browser/generated/src/operationsInterfaces/index.js.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/pathOperations.d.ts +112 -0
- package/dist/browser/generated/src/operationsInterfaces/pathOperations.d.ts.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/pathOperations.js.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/service.d.ts +10 -0
- package/dist/browser/generated/src/operationsInterfaces/service.d.ts.map +1 -0
- package/dist/browser/generated/src/operationsInterfaces/service.js.map +1 -0
- package/dist/browser/generated/src/storageClient.d.ts +20 -0
- package/dist/browser/generated/src/storageClient.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/generated/src/storageClient.js +3 -3
- package/dist/browser/generated/src/storageClient.js.map +1 -0
- package/dist/browser/index-browser.d.mts.map +1 -0
- package/dist/browser/index-browser.mjs.map +1 -0
- package/dist/browser/index.d.ts +13 -0
- package/{dist-esm/storage-file-datalake/src/index.browser.js → dist/browser/index.js} +10 -10
- package/dist/browser/log.d.ts +5 -0
- package/dist/browser/log.d.ts.map +1 -0
- package/dist/browser/log.js.map +1 -0
- package/dist/browser/models.d.ts +1318 -0
- package/dist/browser/models.d.ts.map +1 -0
- package/dist/browser/models.internal.d.ts +2 -0
- package/dist/browser/models.internal.d.ts.map +1 -0
- package/dist/browser/models.internal.js.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/models.js +2 -0
- package/dist/browser/models.js.map +1 -0
- package/dist/browser/package.json +3 -0
- package/dist/browser/sas/AccountSASPermissions.d.ts +61 -0
- package/dist/browser/sas/AccountSASPermissions.d.ts.map +1 -0
- package/dist/browser/sas/AccountSASPermissions.js.map +1 -0
- package/dist/browser/sas/AccountSASResourceTypes.d.ts +38 -0
- package/dist/browser/sas/AccountSASResourceTypes.d.ts.map +1 -0
- package/dist/browser/sas/AccountSASResourceTypes.js.map +1 -0
- package/dist/browser/sas/AccountSASServices.d.ts +40 -0
- package/dist/browser/sas/AccountSASServices.d.ts.map +1 -0
- package/dist/browser/sas/AccountSASServices.js.map +1 -0
- package/dist/browser/sas/AccountSASSignatureValues.d.ts +78 -0
- package/dist/browser/sas/AccountSASSignatureValues.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/sas/AccountSASSignatureValues.js +7 -7
- package/dist/browser/sas/AccountSASSignatureValues.js.map +1 -0
- package/dist/browser/sas/DataLakeSASPermissions.d.ts +65 -0
- package/dist/browser/sas/DataLakeSASPermissions.d.ts.map +1 -0
- package/dist/browser/sas/DataLakeSASPermissions.js.map +1 -0
- package/dist/browser/sas/DataLakeSASSignatureValues.d.ts +205 -0
- package/dist/browser/sas/DataLakeSASSignatureValues.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/sas/DataLakeSASSignatureValues.js +107 -10
- package/dist/browser/sas/DataLakeSASSignatureValues.js.map +1 -0
- package/dist/browser/sas/DirectorySASPermissions.d.ts +69 -0
- package/dist/browser/sas/DirectorySASPermissions.d.ts.map +1 -0
- package/dist/browser/sas/DirectorySASPermissions.js.map +1 -0
- package/dist/browser/sas/FileSystemSASPermissions.d.ts +69 -0
- package/dist/browser/sas/FileSystemSASPermissions.d.ts.map +1 -0
- package/dist/browser/sas/FileSystemSASPermissions.js.map +1 -0
- package/dist/browser/sas/SASQueryParameters.d.ts +309 -0
- package/dist/browser/sas/SASQueryParameters.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/sas/SASQueryParameters.js +4 -2
- package/dist/browser/sas/SASQueryParameters.js.map +1 -0
- package/dist/browser/sas/SasIPRange.d.ts +24 -0
- package/dist/browser/sas/SasIPRange.d.ts.map +1 -0
- package/dist/browser/sas/SasIPRange.js.map +1 -0
- package/dist/browser/transforms.d.ts +51 -0
- package/dist/browser/transforms.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/transforms.js +2 -2
- package/dist/browser/transforms.js.map +1 -0
- package/dist/browser/utils/Batch.d.ts +68 -0
- package/dist/browser/utils/Batch.d.ts.map +1 -0
- package/dist/browser/utils/Batch.js.map +1 -0
- package/dist/browser/utils/BufferScheduler.d.ts +158 -0
- package/dist/browser/utils/BufferScheduler.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/utils/BufferScheduler.js +1 -1
- package/dist/browser/utils/BufferScheduler.js.map +1 -0
- package/dist/browser/utils/DataLakeAclChangeFailedError.d.ts +16 -0
- package/dist/browser/utils/DataLakeAclChangeFailedError.d.ts.map +1 -0
- package/dist/browser/utils/DataLakeAclChangeFailedError.js.map +1 -0
- package/dist/browser/utils/PathClientInternal.d.ts +24 -0
- package/dist/browser/utils/PathClientInternal.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/utils/PathClientInternal.js +2 -2
- package/dist/browser/utils/PathClientInternal.js.map +1 -0
- package/dist/browser/utils/constants.d.ts +70 -0
- package/dist/browser/utils/constants.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/utils/constants.js +2 -2
- package/dist/browser/utils/constants.js.map +1 -0
- package/dist/browser/utils/tracing.d.ts +6 -0
- package/dist/browser/utils/tracing.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/utils/tracing.js +1 -1
- package/dist/browser/utils/tracing.js.map +1 -0
- package/dist/browser/utils/utils-browser.d.mts.map +1 -0
- package/dist/browser/utils/utils-browser.mjs.map +1 -0
- package/dist/browser/utils/utils.common.d.ts +236 -0
- package/dist/browser/utils/utils.common.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/browser}/utils/utils.common.js +5 -5
- package/dist/browser/utils/utils.common.js.map +1 -0
- package/dist/browser/utils/utils.d.ts +3 -0
- package/dist/browser/utils/utils.js +9 -0
- package/dist/commonjs/DataLakeFileSystemClient.d.ts +473 -0
- package/dist/commonjs/DataLakeFileSystemClient.d.ts.map +1 -0
- package/dist/commonjs/DataLakeFileSystemClient.js +683 -0
- package/dist/commonjs/DataLakeFileSystemClient.js.map +1 -0
- package/dist/commonjs/DataLakeLeaseClient.d.ts +14 -0
- package/dist/commonjs/DataLakeLeaseClient.d.ts.map +1 -0
- package/dist/commonjs/DataLakeLeaseClient.js +49 -0
- package/dist/commonjs/DataLakeLeaseClient.js.map +1 -0
- package/dist/commonjs/DataLakeServiceClient.d.ts +281 -0
- package/dist/commonjs/DataLakeServiceClient.d.ts.map +1 -0
- package/dist/commonjs/DataLakeServiceClient.js +372 -0
- package/dist/commonjs/DataLakeServiceClient.js.map +1 -0
- package/dist/commonjs/Pipeline.d.ts +52 -0
- package/dist/commonjs/Pipeline.d.ts.map +1 -0
- package/dist/commonjs/Pipeline.js +222 -0
- package/dist/commonjs/Pipeline.js.map +1 -0
- package/dist/commonjs/StorageClient.d.ts +61 -0
- package/dist/commonjs/StorageClient.d.ts.map +1 -0
- package/dist/commonjs/StorageClient.js +55 -0
- package/dist/commonjs/StorageClient.js.map +1 -0
- package/dist/commonjs/StorageContextClient.d.ts +9 -0
- package/dist/commonjs/StorageContextClient.d.ts.map +1 -0
- package/dist/commonjs/StorageContextClient.js +39 -0
- package/dist/commonjs/StorageContextClient.js.map +1 -0
- package/dist/commonjs/clients.d.ts +689 -0
- package/dist/commonjs/clients.d.ts.map +1 -0
- package/dist/commonjs/clients.js +1195 -0
- package/dist/commonjs/clients.js.map +1 -0
- package/dist/commonjs/credentials/StorageSharedKeyCredential.d.ts +2 -0
- package/dist/commonjs/credentials/StorageSharedKeyCredential.d.ts.map +1 -0
- package/dist/commonjs/credentials/StorageSharedKeyCredential.js +8 -0
- package/dist/commonjs/credentials/StorageSharedKeyCredential.js.map +1 -0
- package/dist/commonjs/credentials/UserDelegationKeyCredential.d.ts +34 -0
- package/dist/commonjs/credentials/UserDelegationKeyCredential.d.ts.map +1 -0
- package/dist/commonjs/credentials/UserDelegationKeyCredential.js +35 -0
- package/dist/commonjs/credentials/UserDelegationKeyCredential.js.map +1 -0
- package/dist/commonjs/generated/src/index.d.ts +4 -0
- package/dist/commonjs/generated/src/index.d.ts.map +1 -0
- package/dist/commonjs/generated/src/index.js +16 -0
- package/dist/commonjs/generated/src/index.js.map +1 -0
- package/dist/commonjs/generated/src/models/index.d.ts +1091 -0
- package/dist/commonjs/generated/src/models/index.d.ts.map +1 -0
- package/dist/commonjs/generated/src/models/index.js +19 -0
- package/dist/commonjs/generated/src/models/index.js.map +1 -0
- package/dist/commonjs/generated/src/models/mappers.d.ts +53 -0
- package/dist/commonjs/generated/src/models/mappers.d.ts.map +1 -0
- package/dist/commonjs/generated/src/models/mappers.js +2450 -0
- package/dist/commonjs/generated/src/models/mappers.js.map +1 -0
- package/dist/commonjs/generated/src/models/parameters.d.ts +87 -0
- package/dist/commonjs/generated/src/models/parameters.d.ts.map +1 -0
- package/dist/commonjs/generated/src/models/parameters.js +952 -0
- package/dist/commonjs/generated/src/models/parameters.js.map +1 -0
- package/dist/commonjs/generated/src/operations/fileSystemOperations.d.ts +55 -0
- package/dist/commonjs/generated/src/operations/fileSystemOperations.d.ts.map +1 -0
- package/dist/commonjs/generated/src/operations/fileSystemOperations.js +236 -0
- package/dist/commonjs/generated/src/operations/fileSystemOperations.js.map +1 -0
- package/dist/commonjs/generated/src/operations/index.d.ts +4 -0
- package/dist/commonjs/generated/src/operations/index.d.ts.map +1 -0
- package/dist/commonjs/generated/src/operations/index.js +14 -0
- package/dist/commonjs/generated/src/operations/index.js.map +1 -0
- package/dist/commonjs/generated/src/operations/pathOperations.d.ts +120 -0
- package/dist/commonjs/generated/src/operations/pathOperations.d.ts.map +1 -0
- package/dist/commonjs/generated/src/operations/pathOperations.js +596 -0
- package/dist/commonjs/generated/src/operations/pathOperations.js.map +1 -0
- package/dist/commonjs/generated/src/operations/service.d.ts +18 -0
- package/dist/commonjs/generated/src/operations/service.d.ts.map +1 -0
- package/dist/commonjs/generated/src/operations/service.js +63 -0
- package/dist/commonjs/generated/src/operations/service.js.map +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/fileSystemOperations.d.ts +47 -0
- package/dist/commonjs/generated/src/operationsInterfaces/fileSystemOperations.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src/generated/src/operations/index.js → dist/commonjs/generated/src/operationsInterfaces/fileSystemOperations.js} +3 -4
- package/dist/commonjs/generated/src/operationsInterfaces/fileSystemOperations.js.map +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/index.d.ts +4 -0
- package/dist/commonjs/generated/src/operationsInterfaces/index.d.ts.map +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/index.js +14 -0
- package/dist/commonjs/generated/src/operationsInterfaces/index.js.map +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/pathOperations.d.ts +112 -0
- package/dist/commonjs/generated/src/operationsInterfaces/pathOperations.d.ts.map +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/pathOperations.js +10 -0
- package/dist/commonjs/generated/src/operationsInterfaces/pathOperations.js.map +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/service.d.ts +10 -0
- package/dist/commonjs/generated/src/operationsInterfaces/service.d.ts.map +1 -0
- package/dist/commonjs/generated/src/operationsInterfaces/service.js +10 -0
- package/dist/commonjs/generated/src/operationsInterfaces/service.js.map +1 -0
- package/dist/commonjs/generated/src/storageClient.d.ts +20 -0
- package/dist/commonjs/generated/src/storageClient.d.ts.map +1 -0
- package/dist/commonjs/generated/src/storageClient.js +52 -0
- package/dist/commonjs/generated/src/storageClient.js.map +1 -0
- package/dist/commonjs/index.d.ts +23 -0
- package/dist/commonjs/index.d.ts.map +1 -0
- package/dist/commonjs/index.js +49 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/commonjs/log.d.ts +5 -0
- package/dist/commonjs/log.d.ts.map +1 -0
- package/dist/commonjs/log.js +11 -0
- package/dist/commonjs/log.js.map +1 -0
- package/dist/commonjs/models.d.ts +1318 -0
- package/dist/commonjs/models.d.ts.map +1 -0
- package/dist/commonjs/models.internal.d.ts +2 -0
- package/dist/commonjs/models.internal.d.ts.map +1 -0
- package/dist/commonjs/models.internal.js +5 -0
- package/dist/commonjs/models.internal.js.map +1 -0
- package/dist/commonjs/models.js +57 -0
- package/dist/commonjs/models.js.map +1 -0
- package/dist/commonjs/package.json +3 -0
- package/dist/commonjs/sas/AccountSASPermissions.d.ts +61 -0
- package/dist/commonjs/sas/AccountSASPermissions.d.ts.map +1 -0
- package/dist/commonjs/sas/AccountSASPermissions.js +132 -0
- package/dist/commonjs/sas/AccountSASPermissions.js.map +1 -0
- package/dist/commonjs/sas/AccountSASResourceTypes.d.ts +38 -0
- package/dist/commonjs/sas/AccountSASResourceTypes.d.ts.map +1 -0
- package/dist/commonjs/sas/AccountSASResourceTypes.js +76 -0
- package/dist/commonjs/sas/AccountSASResourceTypes.js.map +1 -0
- package/dist/commonjs/sas/AccountSASServices.d.ts +40 -0
- package/dist/commonjs/sas/AccountSASServices.d.ts.map +1 -0
- package/dist/commonjs/sas/AccountSASServices.js +84 -0
- package/dist/commonjs/sas/AccountSASServices.js.map +1 -0
- package/dist/commonjs/sas/AccountSASSignatureValues.d.ts +78 -0
- package/dist/commonjs/sas/AccountSASSignatureValues.d.ts.map +1 -0
- package/dist/commonjs/sas/AccountSASSignatureValues.js +76 -0
- package/dist/commonjs/sas/AccountSASSignatureValues.js.map +1 -0
- package/dist/commonjs/sas/DataLakeSASPermissions.d.ts +65 -0
- package/dist/commonjs/sas/DataLakeSASPermissions.d.ts.map +1 -0
- package/dist/commonjs/sas/DataLakeSASPermissions.js +139 -0
- package/dist/commonjs/sas/DataLakeSASPermissions.js.map +1 -0
- package/dist/commonjs/sas/DataLakeSASSignatureValues.d.ts +205 -0
- package/dist/commonjs/sas/DataLakeSASSignatureValues.d.ts.map +1 -0
- package/dist/commonjs/sas/DataLakeSASSignatureValues.js +722 -0
- package/dist/commonjs/sas/DataLakeSASSignatureValues.js.map +1 -0
- package/dist/commonjs/sas/DirectorySASPermissions.d.ts +69 -0
- package/dist/commonjs/sas/DirectorySASPermissions.d.ts.map +1 -0
- package/dist/commonjs/sas/DirectorySASPermissions.js +149 -0
- package/dist/commonjs/sas/DirectorySASPermissions.js.map +1 -0
- package/dist/commonjs/sas/FileSystemSASPermissions.d.ts +69 -0
- package/dist/commonjs/sas/FileSystemSASPermissions.d.ts.map +1 -0
- package/dist/commonjs/sas/FileSystemSASPermissions.js +149 -0
- package/dist/commonjs/sas/FileSystemSASPermissions.js.map +1 -0
- package/dist/commonjs/sas/SASQueryParameters.d.ts +309 -0
- package/dist/commonjs/sas/SASQueryParameters.d.ts.map +1 -0
- package/dist/commonjs/sas/SASQueryParameters.js +252 -0
- package/dist/commonjs/sas/SASQueryParameters.js.map +1 -0
- package/dist/commonjs/sas/SasIPRange.d.ts +24 -0
- package/dist/commonjs/sas/SasIPRange.d.ts.map +1 -0
- package/dist/commonjs/sas/SasIPRange.js +16 -0
- package/dist/commonjs/sas/SasIPRange.js.map +1 -0
- package/dist/commonjs/transforms.d.ts +51 -0
- package/dist/commonjs/transforms.d.ts.map +1 -0
- package/dist/commonjs/transforms.js +357 -0
- package/dist/commonjs/transforms.js.map +1 -0
- package/dist/commonjs/tsdoc-metadata.json +11 -0
- package/dist/commonjs/utils/Batch.d.ts +68 -0
- package/dist/commonjs/utils/Batch.d.ts.map +1 -0
- package/dist/commonjs/utils/Batch.js +126 -0
- package/dist/commonjs/utils/Batch.js.map +1 -0
- package/dist/commonjs/utils/BufferScheduler.d.ts +158 -0
- package/dist/commonjs/utils/BufferScheduler.d.ts.map +1 -0
- package/dist/commonjs/utils/BufferScheduler.js +268 -0
- package/dist/commonjs/utils/BufferScheduler.js.map +1 -0
- package/dist/commonjs/utils/DataLakeAclChangeFailedError.d.ts +16 -0
- package/dist/commonjs/utils/DataLakeAclChangeFailedError.d.ts.map +1 -0
- package/dist/commonjs/utils/DataLakeAclChangeFailedError.js +17 -0
- package/dist/commonjs/utils/DataLakeAclChangeFailedError.js.map +1 -0
- package/dist/commonjs/utils/PathClientInternal.d.ts +24 -0
- package/dist/commonjs/utils/PathClientInternal.d.ts.map +1 -0
- package/dist/commonjs/utils/PathClientInternal.js +28 -0
- package/dist/commonjs/utils/PathClientInternal.js.map +1 -0
- package/dist/commonjs/utils/constants.d.ts +70 -0
- package/dist/commonjs/utils/constants.d.ts.map +1 -0
- package/dist/commonjs/utils/constants.js +247 -0
- package/dist/commonjs/utils/constants.js.map +1 -0
- package/dist/commonjs/utils/tracing.d.ts +6 -0
- package/dist/commonjs/utils/tracing.d.ts.map +1 -0
- package/dist/commonjs/utils/tracing.js +17 -0
- package/dist/commonjs/utils/tracing.js.map +1 -0
- package/dist/commonjs/utils/utils.common.d.ts +236 -0
- package/dist/commonjs/utils/utils.common.d.ts.map +1 -0
- package/dist/commonjs/utils/utils.common.js +595 -0
- package/dist/commonjs/utils/utils.common.js.map +1 -0
- package/dist/commonjs/utils/utils.d.ts +29 -0
- package/dist/commonjs/utils/utils.d.ts.map +1 -0
- package/dist/commonjs/utils/utils.js +91 -0
- package/dist/commonjs/utils/utils.js.map +1 -0
- package/dist/esm/DataLakeFileSystemClient.d.ts +473 -0
- package/dist/esm/DataLakeFileSystemClient.d.ts.map +1 -0
- package/dist/esm/DataLakeFileSystemClient.js +679 -0
- package/dist/esm/DataLakeFileSystemClient.js.map +1 -0
- package/dist/esm/DataLakeLeaseClient.d.ts +14 -0
- package/dist/esm/DataLakeLeaseClient.d.ts.map +1 -0
- package/dist/esm/DataLakeLeaseClient.js +45 -0
- package/dist/esm/DataLakeLeaseClient.js.map +1 -0
- package/dist/esm/DataLakeServiceClient.d.ts +281 -0
- package/dist/esm/DataLakeServiceClient.d.ts.map +1 -0
- package/dist/esm/DataLakeServiceClient.js +368 -0
- package/dist/esm/DataLakeServiceClient.js.map +1 -0
- package/dist/esm/Pipeline.d.ts +52 -0
- package/dist/esm/Pipeline.d.ts.map +1 -0
- package/dist/esm/Pipeline.js +216 -0
- package/dist/esm/Pipeline.js.map +1 -0
- package/dist/esm/StorageClient.d.ts +61 -0
- package/dist/esm/StorageClient.d.ts.map +1 -0
- package/dist/esm/StorageClient.js +51 -0
- package/dist/esm/StorageClient.js.map +1 -0
- package/dist/esm/StorageContextClient.d.ts +9 -0
- package/dist/esm/StorageContextClient.d.ts.map +1 -0
- package/dist/esm/StorageContextClient.js +35 -0
- package/dist/esm/StorageContextClient.js.map +1 -0
- package/dist/esm/clients.d.ts +689 -0
- package/dist/esm/clients.d.ts.map +1 -0
- package/dist/esm/clients.js +1189 -0
- package/dist/esm/clients.js.map +1 -0
- package/dist/esm/credentials/StorageSharedKeyCredential.d.ts +2 -0
- package/dist/esm/credentials/StorageSharedKeyCredential.d.ts.map +1 -0
- package/dist/esm/credentials/StorageSharedKeyCredential.js.map +1 -0
- package/dist/esm/credentials/UserDelegationKeyCredential.d.ts +34 -0
- package/dist/esm/credentials/UserDelegationKeyCredential.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src → dist/esm}/credentials/UserDelegationKeyCredential.js +1 -1
- package/dist/esm/credentials/UserDelegationKeyCredential.js.map +1 -0
- package/dist/esm/generated/src/index.d.ts +4 -0
- package/dist/esm/generated/src/index.d.ts.map +1 -0
- package/dist/esm/generated/src/index.js +11 -0
- package/dist/esm/generated/src/index.js.map +1 -0
- package/dist/esm/generated/src/models/index.d.ts +1091 -0
- package/dist/esm/generated/src/models/index.d.ts.map +1 -0
- package/dist/esm/generated/src/models/index.js +16 -0
- package/dist/esm/generated/src/models/index.js.map +1 -0
- package/dist/esm/generated/src/models/mappers.d.ts +53 -0
- package/dist/esm/generated/src/models/mappers.d.ts.map +1 -0
- package/dist/esm/generated/src/models/mappers.js +2446 -0
- package/dist/esm/generated/src/models/mappers.js.map +1 -0
- package/dist/esm/generated/src/models/parameters.d.ts +87 -0
- package/dist/esm/generated/src/models/parameters.d.ts.map +1 -0
- package/dist/esm/generated/src/models/parameters.js +948 -0
- package/dist/esm/generated/src/models/parameters.js.map +1 -0
- package/dist/esm/generated/src/operations/fileSystemOperations.d.ts +55 -0
- package/dist/esm/generated/src/operations/fileSystemOperations.d.ts.map +1 -0
- package/dist/esm/generated/src/operations/fileSystemOperations.js +231 -0
- package/dist/esm/generated/src/operations/fileSystemOperations.js.map +1 -0
- package/dist/esm/generated/src/operations/index.d.ts +4 -0
- package/dist/esm/generated/src/operations/index.d.ts.map +1 -0
- package/dist/esm/generated/src/operations/index.js +11 -0
- package/dist/esm/generated/src/operations/index.js.map +1 -0
- package/dist/esm/generated/src/operations/pathOperations.d.ts +120 -0
- package/dist/esm/generated/src/operations/pathOperations.d.ts.map +1 -0
- package/dist/esm/generated/src/operations/pathOperations.js +591 -0
- package/dist/esm/generated/src/operations/pathOperations.js.map +1 -0
- package/dist/esm/generated/src/operations/service.d.ts +18 -0
- package/dist/esm/generated/src/operations/service.d.ts.map +1 -0
- package/dist/esm/generated/src/operations/service.js +58 -0
- package/dist/esm/generated/src/operations/service.js.map +1 -0
- package/dist/esm/generated/src/operationsInterfaces/fileSystemOperations.d.ts +47 -0
- package/dist/esm/generated/src/operationsInterfaces/fileSystemOperations.d.ts.map +1 -0
- package/dist/esm/generated/src/operationsInterfaces/fileSystemOperations.js +9 -0
- package/dist/esm/generated/src/operationsInterfaces/fileSystemOperations.js.map +1 -0
- package/dist/esm/generated/src/operationsInterfaces/index.d.ts +4 -0
- package/dist/esm/generated/src/operationsInterfaces/index.d.ts.map +1 -0
- package/dist/esm/generated/src/operationsInterfaces/index.js +11 -0
- package/dist/esm/generated/src/operationsInterfaces/index.js.map +1 -0
- package/dist/esm/generated/src/operationsInterfaces/pathOperations.d.ts +112 -0
- package/dist/esm/generated/src/operationsInterfaces/pathOperations.d.ts.map +1 -0
- package/dist/esm/generated/src/operationsInterfaces/pathOperations.js +9 -0
- package/dist/esm/generated/src/operationsInterfaces/pathOperations.js.map +1 -0
- package/dist/esm/generated/src/operationsInterfaces/service.d.ts +10 -0
- package/dist/esm/generated/src/operationsInterfaces/service.d.ts.map +1 -0
- package/dist/esm/generated/src/operationsInterfaces/service.js +9 -0
- package/dist/esm/generated/src/operationsInterfaces/service.js.map +1 -0
- package/dist/esm/generated/src/storageClient.d.ts +20 -0
- package/dist/esm/generated/src/storageClient.d.ts.map +1 -0
- package/dist/esm/generated/src/storageClient.js +47 -0
- package/dist/esm/generated/src/storageClient.js.map +1 -0
- package/dist/esm/index.d.ts +23 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +23 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/log.d.ts +5 -0
- package/dist/esm/log.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src → dist/esm}/log.js +1 -1
- package/dist/esm/log.js.map +1 -0
- package/dist/esm/models.d.ts +1318 -0
- package/dist/esm/models.d.ts.map +1 -0
- package/dist/esm/models.internal.d.ts +2 -0
- package/dist/esm/models.internal.d.ts.map +1 -0
- package/dist/esm/models.internal.js +4 -0
- package/dist/esm/models.internal.js.map +1 -0
- package/dist/esm/models.js +53 -0
- package/dist/esm/models.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/sas/AccountSASPermissions.d.ts +61 -0
- package/dist/esm/sas/AccountSASPermissions.d.ts.map +1 -0
- package/dist/esm/sas/AccountSASPermissions.js +128 -0
- package/dist/esm/sas/AccountSASPermissions.js.map +1 -0
- package/dist/esm/sas/AccountSASResourceTypes.d.ts +38 -0
- package/dist/esm/sas/AccountSASResourceTypes.d.ts.map +1 -0
- package/dist/esm/sas/AccountSASResourceTypes.js +72 -0
- package/dist/esm/sas/AccountSASResourceTypes.js.map +1 -0
- package/dist/esm/sas/AccountSASServices.d.ts +40 -0
- package/dist/esm/sas/AccountSASServices.d.ts.map +1 -0
- package/dist/esm/sas/AccountSASServices.js +80 -0
- package/dist/esm/sas/AccountSASServices.js.map +1 -0
- package/dist/esm/sas/AccountSASSignatureValues.d.ts +78 -0
- package/dist/esm/sas/AccountSASSignatureValues.d.ts.map +1 -0
- package/dist/esm/sas/AccountSASSignatureValues.js +72 -0
- package/dist/esm/sas/AccountSASSignatureValues.js.map +1 -0
- package/dist/esm/sas/DataLakeSASPermissions.d.ts +65 -0
- package/dist/esm/sas/DataLakeSASPermissions.d.ts.map +1 -0
- package/dist/esm/sas/DataLakeSASPermissions.js +135 -0
- package/dist/esm/sas/DataLakeSASPermissions.js.map +1 -0
- package/dist/esm/sas/DataLakeSASSignatureValues.d.ts +205 -0
- package/dist/esm/sas/DataLakeSASSignatureValues.d.ts.map +1 -0
- package/dist/esm/sas/DataLakeSASSignatureValues.js +718 -0
- package/dist/esm/sas/DataLakeSASSignatureValues.js.map +1 -0
- package/dist/esm/sas/DirectorySASPermissions.d.ts +69 -0
- package/dist/esm/sas/DirectorySASPermissions.d.ts.map +1 -0
- package/dist/esm/sas/DirectorySASPermissions.js +145 -0
- package/dist/esm/sas/DirectorySASPermissions.js.map +1 -0
- package/dist/esm/sas/FileSystemSASPermissions.d.ts +69 -0
- package/dist/esm/sas/FileSystemSASPermissions.d.ts.map +1 -0
- package/dist/esm/sas/FileSystemSASPermissions.js +145 -0
- package/dist/esm/sas/FileSystemSASPermissions.js.map +1 -0
- package/dist/esm/sas/SASQueryParameters.d.ts +309 -0
- package/dist/esm/sas/SASQueryParameters.d.ts.map +1 -0
- package/dist/esm/sas/SASQueryParameters.js +248 -0
- package/dist/esm/sas/SASQueryParameters.js.map +1 -0
- package/dist/esm/sas/SasIPRange.d.ts +24 -0
- package/dist/esm/sas/SasIPRange.d.ts.map +1 -0
- package/dist/esm/sas/SasIPRange.js +13 -0
- package/dist/esm/sas/SasIPRange.js.map +1 -0
- package/dist/esm/transforms.d.ts +51 -0
- package/dist/esm/transforms.d.ts.map +1 -0
- package/dist/esm/transforms.js +337 -0
- package/dist/esm/transforms.js.map +1 -0
- package/dist/esm/utils/Batch.d.ts +68 -0
- package/dist/esm/utils/Batch.d.ts.map +1 -0
- package/dist/esm/utils/Batch.js.map +1 -0
- package/dist/esm/utils/BufferScheduler.d.ts +158 -0
- package/dist/esm/utils/BufferScheduler.d.ts.map +1 -0
- package/{dist-esm/storage-common/src → dist/esm/utils}/BufferScheduler.js +27 -15
- package/dist/esm/utils/BufferScheduler.js.map +1 -0
- package/dist/esm/utils/DataLakeAclChangeFailedError.d.ts +16 -0
- package/dist/esm/utils/DataLakeAclChangeFailedError.d.ts.map +1 -0
- package/dist/esm/utils/DataLakeAclChangeFailedError.js +13 -0
- package/dist/esm/utils/DataLakeAclChangeFailedError.js.map +1 -0
- package/dist/esm/utils/PathClientInternal.d.ts +24 -0
- package/dist/esm/utils/PathClientInternal.d.ts.map +1 -0
- package/dist/esm/utils/PathClientInternal.js +24 -0
- package/dist/esm/utils/PathClientInternal.js.map +1 -0
- package/dist/esm/utils/constants.d.ts +70 -0
- package/dist/esm/utils/constants.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src → dist/esm}/utils/constants.js +85 -67
- package/dist/esm/utils/constants.js.map +1 -0
- package/dist/esm/utils/tracing.d.ts +6 -0
- package/dist/esm/utils/tracing.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src → dist/esm}/utils/tracing.js +2 -2
- package/dist/esm/utils/tracing.js.map +1 -0
- package/dist/esm/utils/utils.common.d.ts +236 -0
- package/dist/esm/utils/utils.common.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src → dist/esm}/utils/utils.common.js +105 -297
- package/dist/esm/utils/utils.common.js.map +1 -0
- package/dist/esm/utils/utils.d.ts +29 -0
- package/dist/esm/utils/utils.d.ts.map +1 -0
- package/{dist-esm/storage-file-datalake/src/utils/utils.node.js → dist/esm/utils/utils.js} +3 -3
- package/dist/esm/utils/utils.js.map +1 -0
- package/dist/react-native/DataLakeFileSystemClient.d.ts +473 -0
- package/dist/react-native/DataLakeFileSystemClient.d.ts.map +1 -0
- package/dist/react-native/DataLakeFileSystemClient.js +679 -0
- package/dist/react-native/DataLakeFileSystemClient.js.map +1 -0
- package/dist/react-native/DataLakeLeaseClient.d.ts +14 -0
- package/dist/react-native/DataLakeLeaseClient.d.ts.map +1 -0
- package/dist/react-native/DataLakeLeaseClient.js +45 -0
- package/dist/react-native/DataLakeLeaseClient.js.map +1 -0
- package/dist/react-native/DataLakeServiceClient.d.ts +281 -0
- package/dist/react-native/DataLakeServiceClient.d.ts.map +1 -0
- package/dist/react-native/DataLakeServiceClient.js +368 -0
- package/dist/react-native/DataLakeServiceClient.js.map +1 -0
- package/dist/react-native/Pipeline.d.ts +52 -0
- package/dist/react-native/Pipeline.d.ts.map +1 -0
- package/dist/react-native/Pipeline.js +216 -0
- package/dist/react-native/Pipeline.js.map +1 -0
- package/dist/react-native/StorageClient.d.ts +61 -0
- package/dist/react-native/StorageClient.d.ts.map +1 -0
- package/dist/react-native/StorageClient.js +51 -0
- package/dist/react-native/StorageClient.js.map +1 -0
- package/dist/react-native/StorageContextClient.d.ts +9 -0
- package/dist/react-native/StorageContextClient.d.ts.map +1 -0
- package/dist/react-native/StorageContextClient.js +35 -0
- package/dist/react-native/StorageContextClient.js.map +1 -0
- package/dist/react-native/clients.d.ts +689 -0
- package/dist/react-native/clients.d.ts.map +1 -0
- package/dist/react-native/clients.js +1189 -0
- package/dist/react-native/clients.js.map +1 -0
- package/dist/react-native/credentials/StorageSharedKeyCredential.d.ts +2 -0
- package/dist/react-native/credentials/StorageSharedKeyCredential.d.ts.map +1 -0
- package/dist/react-native/credentials/StorageSharedKeyCredential.js +4 -0
- package/dist/react-native/credentials/StorageSharedKeyCredential.js.map +1 -0
- package/dist/react-native/credentials/UserDelegationKeyCredential.d.ts +34 -0
- package/dist/react-native/credentials/UserDelegationKeyCredential.d.ts.map +1 -0
- package/dist/react-native/credentials/UserDelegationKeyCredential.js +31 -0
- package/dist/react-native/credentials/UserDelegationKeyCredential.js.map +1 -0
- package/dist/react-native/generated/src/index.d.ts +4 -0
- package/dist/react-native/generated/src/index.d.ts.map +1 -0
- package/dist/react-native/generated/src/index.js +11 -0
- package/dist/react-native/generated/src/index.js.map +1 -0
- package/dist/react-native/generated/src/models/index.d.ts +1091 -0
- package/dist/react-native/generated/src/models/index.d.ts.map +1 -0
- package/dist/react-native/generated/src/models/index.js +16 -0
- package/dist/react-native/generated/src/models/index.js.map +1 -0
- package/dist/react-native/generated/src/models/mappers.d.ts +53 -0
- package/dist/react-native/generated/src/models/mappers.d.ts.map +1 -0
- package/dist/react-native/generated/src/models/mappers.js +2446 -0
- package/dist/react-native/generated/src/models/mappers.js.map +1 -0
- package/dist/react-native/generated/src/models/parameters.d.ts +87 -0
- package/dist/react-native/generated/src/models/parameters.d.ts.map +1 -0
- package/dist/react-native/generated/src/models/parameters.js +948 -0
- package/dist/react-native/generated/src/models/parameters.js.map +1 -0
- package/dist/react-native/generated/src/operations/fileSystemOperations.d.ts +55 -0
- package/dist/react-native/generated/src/operations/fileSystemOperations.d.ts.map +1 -0
- package/dist/react-native/generated/src/operations/fileSystemOperations.js +231 -0
- package/dist/react-native/generated/src/operations/fileSystemOperations.js.map +1 -0
- package/dist/react-native/generated/src/operations/index.d.ts +4 -0
- package/dist/react-native/generated/src/operations/index.d.ts.map +1 -0
- package/dist/react-native/generated/src/operations/index.js +11 -0
- package/dist/react-native/generated/src/operations/index.js.map +1 -0
- package/dist/react-native/generated/src/operations/pathOperations.d.ts +120 -0
- package/dist/react-native/generated/src/operations/pathOperations.d.ts.map +1 -0
- package/dist/react-native/generated/src/operations/pathOperations.js +591 -0
- package/dist/react-native/generated/src/operations/pathOperations.js.map +1 -0
- package/dist/react-native/generated/src/operations/service.d.ts +18 -0
- package/dist/react-native/generated/src/operations/service.d.ts.map +1 -0
- package/dist/react-native/generated/src/operations/service.js +58 -0
- package/dist/react-native/generated/src/operations/service.js.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/fileSystemOperations.d.ts +47 -0
- package/dist/react-native/generated/src/operationsInterfaces/fileSystemOperations.d.ts.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/fileSystemOperations.js +9 -0
- package/dist/react-native/generated/src/operationsInterfaces/fileSystemOperations.js.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/index.d.ts +4 -0
- package/dist/react-native/generated/src/operationsInterfaces/index.d.ts.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/index.js +11 -0
- package/dist/react-native/generated/src/operationsInterfaces/index.js.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/pathOperations.d.ts +112 -0
- package/dist/react-native/generated/src/operationsInterfaces/pathOperations.d.ts.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/pathOperations.js +9 -0
- package/dist/react-native/generated/src/operationsInterfaces/pathOperations.js.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/service.d.ts +10 -0
- package/dist/react-native/generated/src/operationsInterfaces/service.d.ts.map +1 -0
- package/dist/react-native/generated/src/operationsInterfaces/service.js +9 -0
- package/dist/react-native/generated/src/operationsInterfaces/service.js.map +1 -0
- package/dist/react-native/generated/src/storageClient.d.ts +20 -0
- package/dist/react-native/generated/src/storageClient.d.ts.map +1 -0
- package/dist/react-native/generated/src/storageClient.js +47 -0
- package/dist/react-native/generated/src/storageClient.js.map +1 -0
- package/dist/react-native/index.d.ts +23 -0
- package/dist/react-native/index.d.ts.map +1 -0
- package/dist/react-native/index.js +23 -0
- package/dist/react-native/index.js.map +1 -0
- package/dist/react-native/log.d.ts +5 -0
- package/dist/react-native/log.d.ts.map +1 -0
- package/dist/react-native/log.js +8 -0
- package/dist/react-native/log.js.map +1 -0
- package/dist/react-native/models.d.ts +1318 -0
- package/dist/react-native/models.d.ts.map +1 -0
- package/dist/react-native/models.internal.d.ts +2 -0
- package/dist/react-native/models.internal.d.ts.map +1 -0
- package/dist/react-native/models.internal.js +4 -0
- package/dist/react-native/models.internal.js.map +1 -0
- package/dist/react-native/models.js +53 -0
- package/dist/react-native/models.js.map +1 -0
- package/dist/react-native/package.json +3 -0
- package/dist/react-native/sas/AccountSASPermissions.d.ts +61 -0
- package/dist/react-native/sas/AccountSASPermissions.d.ts.map +1 -0
- package/dist/react-native/sas/AccountSASPermissions.js +128 -0
- package/dist/react-native/sas/AccountSASPermissions.js.map +1 -0
- package/dist/react-native/sas/AccountSASResourceTypes.d.ts +38 -0
- package/dist/react-native/sas/AccountSASResourceTypes.d.ts.map +1 -0
- package/dist/react-native/sas/AccountSASResourceTypes.js +72 -0
- package/dist/react-native/sas/AccountSASResourceTypes.js.map +1 -0
- package/dist/react-native/sas/AccountSASServices.d.ts +40 -0
- package/dist/react-native/sas/AccountSASServices.d.ts.map +1 -0
- package/dist/react-native/sas/AccountSASServices.js +80 -0
- package/dist/react-native/sas/AccountSASServices.js.map +1 -0
- package/dist/react-native/sas/AccountSASSignatureValues.d.ts +78 -0
- package/dist/react-native/sas/AccountSASSignatureValues.d.ts.map +1 -0
- package/dist/react-native/sas/AccountSASSignatureValues.js +72 -0
- package/dist/react-native/sas/AccountSASSignatureValues.js.map +1 -0
- package/dist/react-native/sas/DataLakeSASPermissions.d.ts +65 -0
- package/dist/react-native/sas/DataLakeSASPermissions.d.ts.map +1 -0
- package/dist/react-native/sas/DataLakeSASPermissions.js +135 -0
- package/dist/react-native/sas/DataLakeSASPermissions.js.map +1 -0
- package/dist/react-native/sas/DataLakeSASSignatureValues.d.ts +205 -0
- package/dist/react-native/sas/DataLakeSASSignatureValues.d.ts.map +1 -0
- package/dist/react-native/sas/DataLakeSASSignatureValues.js +718 -0
- package/dist/react-native/sas/DataLakeSASSignatureValues.js.map +1 -0
- package/dist/react-native/sas/DirectorySASPermissions.d.ts +69 -0
- package/dist/react-native/sas/DirectorySASPermissions.d.ts.map +1 -0
- package/dist/react-native/sas/DirectorySASPermissions.js +145 -0
- package/dist/react-native/sas/DirectorySASPermissions.js.map +1 -0
- package/dist/react-native/sas/FileSystemSASPermissions.d.ts +69 -0
- package/dist/react-native/sas/FileSystemSASPermissions.d.ts.map +1 -0
- package/dist/react-native/sas/FileSystemSASPermissions.js +145 -0
- package/dist/react-native/sas/FileSystemSASPermissions.js.map +1 -0
- package/dist/react-native/sas/SASQueryParameters.d.ts +309 -0
- package/dist/react-native/sas/SASQueryParameters.d.ts.map +1 -0
- package/dist/react-native/sas/SASQueryParameters.js +248 -0
- package/dist/react-native/sas/SASQueryParameters.js.map +1 -0
- package/dist/react-native/sas/SasIPRange.d.ts +24 -0
- package/dist/react-native/sas/SasIPRange.d.ts.map +1 -0
- package/dist/react-native/sas/SasIPRange.js +13 -0
- package/dist/react-native/sas/SasIPRange.js.map +1 -0
- package/dist/react-native/transforms.d.ts +51 -0
- package/dist/react-native/transforms.d.ts.map +1 -0
- package/dist/react-native/transforms.js +337 -0
- package/dist/react-native/transforms.js.map +1 -0
- package/dist/react-native/utils/Batch.d.ts +68 -0
- package/dist/react-native/utils/Batch.d.ts.map +1 -0
- package/dist/react-native/utils/Batch.js +122 -0
- package/dist/react-native/utils/Batch.js.map +1 -0
- package/dist/react-native/utils/BufferScheduler.d.ts +158 -0
- package/dist/react-native/utils/BufferScheduler.d.ts.map +1 -0
- package/dist/react-native/utils/BufferScheduler.js +264 -0
- package/dist/react-native/utils/BufferScheduler.js.map +1 -0
- package/dist/react-native/utils/DataLakeAclChangeFailedError.d.ts +16 -0
- package/dist/react-native/utils/DataLakeAclChangeFailedError.d.ts.map +1 -0
- package/dist/react-native/utils/DataLakeAclChangeFailedError.js +13 -0
- package/dist/react-native/utils/DataLakeAclChangeFailedError.js.map +1 -0
- package/dist/react-native/utils/PathClientInternal.d.ts +24 -0
- package/dist/react-native/utils/PathClientInternal.d.ts.map +1 -0
- package/dist/react-native/utils/PathClientInternal.js +24 -0
- package/dist/react-native/utils/PathClientInternal.js.map +1 -0
- package/dist/react-native/utils/constants.d.ts +70 -0
- package/dist/react-native/utils/constants.d.ts.map +1 -0
- package/dist/react-native/utils/constants.js +244 -0
- package/dist/react-native/utils/constants.js.map +1 -0
- package/dist/react-native/utils/tracing.d.ts +6 -0
- package/dist/react-native/utils/tracing.d.ts.map +1 -0
- package/dist/react-native/utils/tracing.js +14 -0
- package/dist/react-native/utils/tracing.js.map +1 -0
- package/dist/react-native/utils/utils.common.d.ts +236 -0
- package/dist/react-native/utils/utils.common.d.ts.map +1 -0
- package/dist/react-native/utils/utils.common.js +564 -0
- package/dist/react-native/utils/utils.common.js.map +1 -0
- package/dist/react-native/utils/utils.d.ts +29 -0
- package/dist/react-native/utils/utils.d.ts.map +1 -0
- package/{dist-esm/storage-blob/src/utils/utils.node.js → dist/react-native/utils/utils.js} +4 -51
- package/dist/react-native/utils/utils.js.map +1 -0
- package/package.json +70 -83
- package/dist/index.js +0 -9735
- package/dist/index.js.map +0 -1
- package/dist-esm/storage-blob/src/StorageBrowserPolicyFactory.js +0 -19
- package/dist-esm/storage-blob/src/StorageBrowserPolicyFactory.js.map +0 -1
- package/dist-esm/storage-blob/src/StorageRetryPolicyFactory.js +0 -26
- package/dist-esm/storage-blob/src/StorageRetryPolicyFactory.js.map +0 -1
- package/dist-esm/storage-blob/src/log.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/AnonymousCredentialPolicy.js +0 -20
- package/dist-esm/storage-blob/src/policies/AnonymousCredentialPolicy.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/CredentialPolicy.js +0 -29
- package/dist-esm/storage-blob/src/policies/CredentialPolicy.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/RequestPolicy.js +0 -40
- package/dist-esm/storage-blob/src/policies/RequestPolicy.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageBrowserPolicy.js +0 -47
- package/dist-esm/storage-blob/src/policies/StorageBrowserPolicy.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageBrowserPolicyV2.js +0 -31
- package/dist-esm/storage-blob/src/policies/StorageBrowserPolicyV2.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageCorrectContentLengthPolicy.browser.js +0 -18
- package/dist-esm/storage-blob/src/policies/StorageCorrectContentLengthPolicy.browser.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageCorrectContentLengthPolicy.js +0 -27
- package/dist-esm/storage-blob/src/policies/StorageCorrectContentLengthPolicy.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageRetryPolicy.js +0 -229
- package/dist-esm/storage-blob/src/policies/StorageRetryPolicy.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageRetryPolicyV2.js +0 -180
- package/dist-esm/storage-blob/src/policies/StorageRetryPolicyV2.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicy.js +0 -141
- package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicy.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2.browser.js +0 -18
- package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2.browser.js.map +0 -1
- package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2.js +0 -132
- package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/Batch.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/BlobQuickQueryStream.js +0 -111
- package/dist-esm/storage-blob/src/utils/BlobQuickQueryStream.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/Mutex.js +0 -65
- package/dist-esm/storage-blob/src/utils/Mutex.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/RetriableReadableStream.js +0 -119
- package/dist-esm/storage-blob/src/utils/RetriableReadableStream.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/SharedKeyComparator.js +0 -73
- package/dist-esm/storage-blob/src/utils/SharedKeyComparator.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/cache.js +0 -11
- package/dist-esm/storage-blob/src/utils/cache.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/constants.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/tracing.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/utils.common.js.map +0 -1
- package/dist-esm/storage-blob/src/utils/utils.node.js.map +0 -1
- package/dist-esm/storage-common/src/BufferScheduler.browser.js +0 -8
- package/dist-esm/storage-common/src/BufferScheduler.browser.js.map +0 -1
- package/dist-esm/storage-common/src/BufferScheduler.js.map +0 -1
- package/dist-esm/storage-common/src/BuffersStream.js +0 -83
- package/dist-esm/storage-common/src/BuffersStream.js.map +0 -1
- package/dist-esm/storage-common/src/PooledBuffer.js +0 -87
- package/dist-esm/storage-common/src/PooledBuffer.js.map +0 -1
- package/dist-esm/storage-common/src/index.browser.js +0 -4
- package/dist-esm/storage-common/src/index.browser.js.map +0 -1
- package/dist-esm/storage-common/src/index.js +0 -4
- package/dist-esm/storage-common/src/index.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/DataLakeFileSystemClient.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/DataLakeLeaseClient.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/DataLakeServiceClient.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/Pipeline.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/StorageClient.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/StorageContextClient.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/clients.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/credentials/StorageSharedKeyCredential.browser.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/credentials/StorageSharedKeyCredential.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/credentials/UserDelegationKeyCredential.browser.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/credentials/UserDelegationKeyCredential.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/generated/src/index.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/generated/src/models/index.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/generated/src/models/mappers.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/generated/src/models/parameters.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/generated/src/operations/fileSystemOperations.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/generated/src/operations/index.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/generated/src/operations/pathOperations.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/generated/src/operations/service.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/generated/src/operationsInterfaces/fileSystemOperations.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/generated/src/operationsInterfaces/index.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/generated/src/operationsInterfaces/pathOperations.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/generated/src/operationsInterfaces/service.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/generated/src/storageClient.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/index.browser.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/index.js +0 -23
- package/dist-esm/storage-file-datalake/src/index.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/log.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/models.internal.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/models.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/sas/AccountSASPermissions.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/sas/AccountSASResourceTypes.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/sas/AccountSASServices.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/sas/AccountSASSignatureValues.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/sas/DataLakeSASPermissions.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/sas/DataLakeSASSignatureValues.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/sas/DirectorySASPermissions.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/sas/FileSystemSASPermissions.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/sas/SASQueryParameters.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/sas/SasIPRange.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/transforms.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/utils/Batch.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/utils/BufferScheduler.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/utils/DataLakeAclChangeFailedError.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/utils/PathClientInternal.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/utils/constants.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/utils/tracing.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/utils/utils.browser.js +0 -39
- package/dist-esm/storage-file-datalake/src/utils/utils.browser.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/utils/utils.common.js.map +0 -1
- package/dist-esm/storage-file-datalake/src/utils/utils.node.js.map +0 -1
- package/types/latest/storage-file-datalake.d.ts +0 -5102
- /package/{dist-esm/storage-file-datalake/src → dist/browser}/generated/src/models/index.js +0 -0
- /package/{dist-esm/storage-file-datalake/src → dist/browser}/generated/src/models/mappers.js +0 -0
- /package/{dist-esm/storage-file-datalake/src → dist/browser}/generated/src/operationsInterfaces/fileSystemOperations.js +0 -0
- /package/{dist-esm/storage-file-datalake/src → dist/browser}/generated/src/operationsInterfaces/pathOperations.js +0 -0
- /package/{dist-esm/storage-file-datalake/src → dist/browser}/generated/src/operationsInterfaces/service.js +0 -0
- /package/{dist-esm/storage-file-datalake/src → dist/browser}/log.js +0 -0
- /package/{dist-esm/storage-file-datalake/src → dist/browser}/models.internal.js +0 -0
- /package/{dist-esm/storage-file-datalake/src → dist/browser}/sas/AccountSASPermissions.js +0 -0
- /package/{dist-esm/storage-file-datalake/src → dist/browser}/sas/AccountSASResourceTypes.js +0 -0
- /package/{dist-esm/storage-file-datalake/src → dist/browser}/sas/AccountSASServices.js +0 -0
- /package/{dist-esm/storage-file-datalake/src → dist/browser}/sas/DataLakeSASPermissions.js +0 -0
- /package/{dist-esm/storage-file-datalake/src → dist/browser}/sas/DirectorySASPermissions.js +0 -0
- /package/{dist-esm/storage-file-datalake/src → dist/browser}/sas/FileSystemSASPermissions.js +0 -0
- /package/{dist-esm/storage-file-datalake/src → dist/browser}/sas/SasIPRange.js +0 -0
- /package/{dist-esm/storage-blob/src → dist/browser}/utils/Batch.js +0 -0
- /package/{dist-esm/storage-file-datalake/src → dist/browser}/utils/DataLakeAclChangeFailedError.js +0 -0
- /package/{dist-esm/storage-file-datalake/src → dist/esm}/credentials/StorageSharedKeyCredential.js +0 -0
- /package/{dist-esm/storage-file-datalake/src → dist/esm}/utils/Batch.js +0 -0
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/log.ts","../src/utils/constants.ts","../src/Pipeline.ts","../src/utils/tracing.ts","../src/DataLakeLeaseClient.ts","../src/generated/src/models/mappers.ts","../src/generated/src/models/parameters.ts","../src/generated/src/operations/service.ts","../src/generated/src/operations/fileSystemOperations.ts","../src/generated/src/operations/pathOperations.ts","../src/generated/src/storageClient.ts","../src/StorageContextClient.ts","../src/utils/utils.common.ts","../src/transforms.ts","../src/StorageClient.ts","../../storage-common/src/BuffersStream.ts","../../storage-common/src/PooledBuffer.ts","../../storage-common/src/BufferScheduler.ts","../src/credentials/UserDelegationKeyCredential.ts","../src/sas/DataLakeSASPermissions.ts","../src/sas/FileSystemSASPermissions.ts","../src/sas/SasIPRange.ts","../src/sas/SASQueryParameters.ts","../src/sas/DirectorySASPermissions.ts","../src/sas/DataLakeSASSignatureValues.ts","../src/utils/Batch.ts","../src/utils/DataLakeAclChangeFailedError.ts","../src/utils/utils.node.ts","../src/clients.ts","../src/utils/PathClientInternal.ts","../src/DataLakeFileSystemClient.ts","../src/sas/AccountSASPermissions.ts","../src/sas/AccountSASResourceTypes.ts","../src/sas/AccountSASServices.ts","../src/sas/AccountSASSignatureValues.ts","../src/DataLakeServiceClient.ts","../src/models.ts"],"sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createClientLogger } from \"@azure/logger\";\n\n/**\n * The `@azure/logger` configuration for this package.\n */\nexport const logger = createClientLogger(\"storage-file-datalake\");\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const SDK_VERSION: string = \"12.26.0\";\nexport const SERVICE_VERSION: string = \"2025-05-05\";\n\nexport const KB: number = 1024;\nexport const MB: number = KB * 1024;\nexport const GB: number = MB * 1024;\nexport const TB: number = GB * 1024;\n\nexport const DEFAULT_HIGH_LEVEL_CONCURRENCY: number = 5;\nexport const FILE_MAX_SINGLE_UPLOAD_THRESHOLD: number = 100 * MB;\nexport const FILE_UPLOAD_MAX_CHUNK_SIZE: number = 4000 * MB;\nexport const FILE_UPLOAD_DEFAULT_CHUNK_SIZE: number = 8 * MB;\nexport const BLOCK_BLOB_MAX_BLOCKS: number = 50000;\nexport const FILE_MAX_SIZE_BYTES: number = BLOCK_BLOB_MAX_BLOCKS * FILE_UPLOAD_MAX_CHUNK_SIZE;\n\n/**\n * The OAuth scope to use with Azure Storage.\n */\nexport const StorageOAuthScopes: string | string[] = \"https://storage.azure.com/.default\";\n\nexport const StorageDataLakeLoggingAllowedHeaderNames = [\n \"Access-Control-Allow-Origin\",\n \"Cache-Control\",\n \"Content-Length\",\n \"Content-Type\",\n \"Date\",\n \"Request-Id\",\n \"traceparent\",\n \"Transfer-Encoding\",\n \"User-Agent\",\n \"x-ms-client-request-id\",\n \"x-ms-date\",\n \"x-ms-error-code\",\n \"x-ms-request-id\",\n \"x-ms-return-client-request-id\",\n \"x-ms-version\",\n \"Accept-Ranges\",\n \"Content-Disposition\",\n \"Content-Encoding\",\n \"Content-Language\",\n \"Content-MD5\",\n \"Content-Range\",\n \"ETag\",\n \"Last-Modified\",\n \"Server\",\n \"Vary\",\n \"x-ms-content-crc64\",\n \"x-ms-copy-action\",\n \"x-ms-copy-completion-time\",\n \"x-ms-copy-id\",\n \"x-ms-copy-progress\",\n \"x-ms-copy-status\",\n \"x-ms-has-immutability-policy\",\n \"x-ms-has-legal-hold\",\n \"x-ms-lease-state\",\n \"x-ms-lease-status\",\n \"x-ms-range\",\n \"x-ms-request-server-encrypted\",\n \"x-ms-server-encrypted\",\n \"x-ms-snapshot\",\n \"x-ms-source-range\",\n \"If-Match\",\n \"If-Modified-Since\",\n \"If-None-Match\",\n \"If-Unmodified-Since\",\n \"x-ms-access-tier\",\n \"x-ms-access-tier-change-time\",\n \"x-ms-access-tier-inferred\",\n \"x-ms-account-kind\",\n \"x-ms-archive-status\",\n \"x-ms-blob-append-offset\",\n \"x-ms-blob-cache-control\",\n \"x-ms-blob-committed-block-count\",\n \"x-ms-blob-condition-appendpos\",\n \"x-ms-blob-condition-maxsize\",\n \"x-ms-blob-content-disposition\",\n \"x-ms-blob-content-encoding\",\n \"x-ms-blob-content-language\",\n \"x-ms-blob-content-length\",\n \"x-ms-blob-content-md5\",\n \"x-ms-blob-content-type\",\n \"x-ms-blob-public-access\",\n \"x-ms-blob-sequence-number\",\n \"x-ms-blob-type\",\n \"x-ms-copy-destination-snapshot\",\n \"x-ms-creation-time\",\n \"x-ms-default-encryption-scope\",\n \"x-ms-delete-snapshots\",\n \"x-ms-delete-type-permanent\",\n \"x-ms-deny-encryption-scope-override\",\n \"x-ms-encryption-algorithm\",\n \"x-ms-if-sequence-number-eq\",\n \"x-ms-if-sequence-number-le\",\n \"x-ms-if-sequence-number-lt\",\n \"x-ms-incremental-copy\",\n \"x-ms-lease-action\",\n \"x-ms-lease-break-period\",\n \"x-ms-lease-duration\",\n \"x-ms-lease-id\",\n \"x-ms-lease-time\",\n \"x-ms-page-write\",\n \"x-ms-proposed-lease-id\",\n \"x-ms-range-get-content-md5\",\n \"x-ms-rehydrate-priority\",\n \"x-ms-sequence-number-action\",\n \"x-ms-sku-name\",\n \"x-ms-source-content-md5\",\n \"x-ms-source-if-match\",\n \"x-ms-source-if-modified-since\",\n \"x-ms-source-if-none-match\",\n \"x-ms-source-if-unmodified-since\",\n \"x-ms-tag-count\",\n \"x-ms-encryption-key-sha256\",\n];\n\nexport const StorageDataLakeLoggingAllowedQueryParameters = [\n \"comp\",\n \"maxresults\",\n \"rscc\",\n \"rscd\",\n \"rsce\",\n \"rscl\",\n \"rsct\",\n \"se\",\n \"si\",\n \"sip\",\n \"sp\",\n \"spr\",\n \"sr\",\n \"srt\",\n \"ss\",\n \"st\",\n \"sv\",\n \"include\",\n \"marker\",\n \"prefix\",\n \"copyid\",\n \"restype\",\n \"blockid\",\n \"blocklisttype\",\n \"delimiter\",\n \"prevsnapshot\",\n \"ske\",\n \"skoid\",\n \"sks\",\n \"skt\",\n \"sktid\",\n \"skv\",\n \"snapshot\",\n];\n\nexport const UrlConstants = {\n Parameters: {\n FORCE_BROWSER_NO_CACHE: \"_\",\n SIGNATURE: \"sig\",\n SNAPSHOT: \"snapshot\",\n TIMEOUT: \"timeout\",\n },\n};\n\nexport const HttpUrlConnection = {\n HTTP_ACCEPTED: 202,\n HTTP_CONFLICT: 409,\n HTTP_NOT_FOUND: 404,\n HTTP_PRECON_FAILED: 412,\n HTTP_RANGE_NOT_SATISFIABLE: 416,\n};\n\nexport const HeaderConstants = {\n AUTHORIZATION: \"Authorization\",\n AUTHORIZATION_SCHEME: \"Bearer\",\n CONTENT_ENCODING: \"Content-Encoding\",\n CONTENT_ID: \"Content-ID\",\n CONTENT_LANGUAGE: \"Content-Language\",\n CONTENT_LENGTH: \"Content-Length\",\n CONTENT_MD5: \"Content-Md5\",\n CONTENT_TRANSFER_ENCODING: \"Content-Transfer-Encoding\",\n CONTENT_TYPE: \"Content-Type\",\n COOKIE: \"Cookie\",\n DATE: \"date\",\n IF_MATCH: \"if-match\",\n IF_MODIFIED_SINCE: \"if-modified-since\",\n IF_NONE_MATCH: \"if-none-match\",\n IF_UNMODIFIED_SINCE: \"if-unmodified-since\",\n PREFIX_FOR_STORAGE: \"x-ms-\",\n RANGE: \"Range\",\n USER_AGENT: \"User-Agent\",\n X_MS_CLIENT_REQUEST_ID: \"x-ms-client-request-id\",\n X_MS_COPY_SOURCE: \"x-ms-copy-source\",\n X_MS_DATE: \"x-ms-date\",\n X_MS_ERROR_CODE: \"x-ms-error-code\",\n X_MS_VERSION: \"x-ms-version\",\n};\n\nexport const DevelopmentConnectionString = `DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;`;\n\n// Mapping pairs to transform url from dfs endpoint to blob endpoint\n// Customize this value to add more mapping patterns\nexport const ToBlobEndpointHostMappings = [\n [\"dfs.preprod.core.windows.net\", \"blob.preprod.core.windows.net\"],\n [\"dfs.core.windows.net\", \"blob.core.windows.net\"],\n [\"dfs.core.chinacloudapi.cn\", \"blob.core.chinacloudapi.cn\"],\n [\"dfs.core.usgovcloudapi.net\", \"blob.core.usgovcloudapi.net\"],\n [\"dfs.core.cloudapi.de\", \"blob.core.cloudapi.de\"],\n [\"dfs.core.microsoft.scloud\", \"blob.core.microsoft.scloud\"],\n [\"dfs.core.eaglex.ic.gov\", \"blob.core.eaglex.ic.gov\"],\n [\"dfs.storage.azure.net\", \"blob.storage.azure.net\"],\n];\n\n// Mapping pairs to transform url from blob endpoint to dfs endpoint\n// Customize this value to add more mapping patterns\nexport const ToDfsEndpointHostMappings = [\n [\"blob.preprod.core.windows.net\", \"dfs.preprod.core.windows.net\"],\n [\"blob.core.windows.net\", \"dfs.core.windows.net\"],\n [\"blob.core.chinacloudapi.cn\", \"dfs.core.chinacloudapi.cn\"],\n [\"blob.core.usgovcloudapi.net\", \"dfs.core.usgovcloudapi.net\"],\n [\"blob.core.cloudapi.de\", \"dfs.core.cloudapi.de\"],\n [\"blob.core.microsoft.scloud\", \"dfs.core.microsoft.scloud\"],\n [\"blob.core.eaglex.ic.gov\", \"dfs.core.eaglex.ic.gov\"],\n [\"blob.storage.azure.net\", \"dfs.storage.azure.net\"],\n];\n\nexport const ETagAny = \"*\";\n\nexport const DeletionIdKey = \"deletionid\";\nexport const EncryptionAlgorithmAES25 = \"AES256\";\n\nexport const PathResultTypeConstants = {\n FileResourceType: \"file\",\n DirectoryResourceType: \"directory\",\n};\n\n/// List of ports used for path style addressing.\n/// Path style addressing means that storage account is put in URI's Path segment in instead of in host.\nexport const PathStylePorts = [\n \"10000\",\n \"10001\",\n \"10002\",\n \"10003\",\n \"10004\",\n \"10100\",\n \"10101\",\n \"10102\",\n \"10103\",\n \"10104\",\n \"11000\",\n \"11001\",\n \"11002\",\n \"11003\",\n \"11004\",\n \"11100\",\n \"11101\",\n \"11102\",\n \"11103\",\n \"11104\",\n];\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n KeepAliveOptions,\n ExtendedServiceClientOptions,\n HttpPipelineLogLevel,\n} from \"@azure/core-http-compat\";\nimport {\n CompatResponse as HttpOperationResponse,\n RequestPolicy as IHttpClient,\n HttpHeadersLike as HttpHeaders,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptionsLike as RequestPolicyOptions,\n WebResourceLike as WebResource,\n convertHttpClient,\n createRequestPolicyFactoryPolicy,\n} from \"@azure/core-http-compat\";\nimport type {\n ProxySettings as ProxyOptions,\n UserAgentPolicyOptions as UserAgentOptions,\n Pipeline as CorePipeline,\n PipelinePolicy,\n HttpClient,\n} from \"@azure/core-rest-pipeline\";\nimport {\n RequestBodyType as HttpRequestBody,\n bearerTokenAuthenticationPolicy,\n decompressResponsePolicyName,\n} from \"@azure/core-rest-pipeline\";\nimport { authorizeRequestOnTenantChallenge, createClientPipeline } from \"@azure/core-client\";\nimport { parseXML, stringifyXML } from \"@azure/core-xml\";\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\n\nimport { logger } from \"./log\";\nimport type { StorageRetryOptions } from \"@azure/storage-blob\";\nimport { StorageRetryPolicyFactory } from \"@azure/storage-blob\";\nimport { StorageSharedKeyCredential } from \"./credentials/StorageSharedKeyCredential\";\nimport { AnonymousCredential } from \"@azure/storage-blob\";\nimport {\n StorageOAuthScopes,\n StorageDataLakeLoggingAllowedHeaderNames,\n StorageDataLakeLoggingAllowedQueryParameters,\n SDK_VERSION,\n} from \"./utils/constants\";\nimport { getCachedDefaultHttpClient } from \"../../storage-blob/src/utils/cache\";\nimport { storageBrowserPolicy } from \"../../storage-blob/src/policies/StorageBrowserPolicyV2\";\nimport { storageRetryPolicy } from \"../../storage-blob/src/policies/StorageRetryPolicyV2\";\nimport { storageSharedKeyCredentialPolicy } from \"../../storage-blob/src/policies/StorageSharedKeyCredentialPolicyV2\";\nimport { StorageBrowserPolicyFactory } from \"@azure/storage-blob\";\n\nimport {\n ServiceClientOptions,\n PipelineOptions,\n PipelineLike,\n isPipelineLike,\n Pipeline,\n} from \"@azure/storage-blob\";\nimport { storageCorrectContentLengthPolicy } from \"../../storage-blob/src/policies/StorageCorrectContentLengthPolicy\";\n\n// Export following interfaces and types for customers who want to implement their\n// own RequestPolicy or HTTPClient\nexport {\n StorageOAuthScopes,\n IHttpClient,\n HttpHeaders,\n HttpRequestBody,\n HttpOperationResponse,\n WebResource,\n RequestPolicyFactory,\n RequestPolicy,\n RequestPolicyOptions,\n ServiceClientOptions,\n PipelineOptions,\n PipelineLike,\n Pipeline,\n isPipelineLike,\n};\n\n/**\n * Options interface for the {@link newPipeline} function.\n */\nexport interface StoragePipelineOptions {\n /**\n * Options to configure a proxy for outgoing requests.\n */\n proxyOptions?: ProxyOptions;\n /**\n * Options for adding user agent details to outgoing requests.\n */\n userAgentOptions?: UserAgentOptions;\n /**\n * Configures the built-in retry policy behavior.\n */\n retryOptions?: StorageRetryOptions;\n /**\n * Keep alive configurations. Default keep-alive is enabled.\n */\n keepAliveOptions?: KeepAliveOptions;\n /**\n * Configures the HTTP client to send requests and receive responses.\n */\n httpClient?: IHttpClient;\n /**\n * The audience used to retrieve an AAD token.\n * By default, audience 'https://storage.azure.com/.default' will be used.\n */\n audience?: string;\n}\n\n/**\n * Creates a new Pipeline object with Credential provided.\n *\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param pipelineOptions - Optional. Options.\n * @returns A new Pipeline object.\n */\nexport function newPipeline(\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n pipelineOptions: StoragePipelineOptions = {},\n): Pipeline {\n if (!credential) {\n credential = new AnonymousCredential();\n }\n const pipeline = new Pipeline([], pipelineOptions);\n (pipeline as any)._credential = credential;\n return pipeline;\n}\n\nfunction processDownlevelPipeline(\n pipeline: PipelineLike,\n): { wrappedPolicies: PipelinePolicy; afterRetry: boolean } | undefined {\n const knownFactoryFunctions = [\n isAnonymousCredential,\n isStorageSharedKeyCredential,\n isCoreHttpBearerTokenFactory,\n isStorageBrowserPolicyFactory,\n isStorageRetryPolicyFactory,\n isStorageTelemetryPolicyFactory,\n isCoreHttpPolicyFactory,\n ];\n if (pipeline.factories.length) {\n const novelFactories = pipeline.factories.filter((factory) => {\n return !knownFactoryFunctions.some((knownFactory) => knownFactory(factory));\n });\n if (novelFactories.length) {\n const hasInjector = novelFactories.some((factory) => isInjectorPolicyFactory(factory));\n // if there are any left over, wrap in a requestPolicyFactoryPolicy\n return {\n wrappedPolicies: createRequestPolicyFactoryPolicy(novelFactories),\n afterRetry: hasInjector,\n };\n }\n }\n return undefined;\n}\n\nexport function getCoreClientOptions(pipeline: PipelineLike): ExtendedServiceClientOptions {\n const { httpClient: v1Client, ...restOptions } = pipeline.options as StoragePipelineOptions;\n\n let httpClient: HttpClient = (pipeline as any)._coreHttpClient;\n if (!httpClient) {\n httpClient = v1Client ? convertHttpClient(v1Client) : getCachedDefaultHttpClient();\n (pipeline as any)._coreHttpClient = httpClient;\n }\n\n let corePipeline: CorePipeline = (pipeline as any)._corePipeline;\n if (!corePipeline) {\n const packageDetails = `azsdk-js-azure-storage-blob/${SDK_VERSION}`;\n const userAgentPrefix =\n restOptions.userAgentOptions && restOptions.userAgentOptions.userAgentPrefix\n ? `${restOptions.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n corePipeline = createClientPipeline({\n ...restOptions,\n loggingOptions: {\n additionalAllowedHeaderNames: StorageDataLakeLoggingAllowedHeaderNames,\n additionalAllowedQueryParameters: StorageDataLakeLoggingAllowedQueryParameters,\n logger: logger.info,\n },\n userAgentOptions: {\n userAgentPrefix,\n },\n serializationOptions: {\n stringifyXML,\n serializerOptions: {\n xml: {\n // Use customized XML char key of \"#\" so we can deserialize metadata\n // with \"_\" key\n xmlCharKey: \"#\",\n },\n },\n },\n deserializationOptions: {\n parseXML,\n serializerOptions: {\n xml: {\n // Use customized XML char key of \"#\" so we can deserialize metadata\n // with \"_\" key\n xmlCharKey: \"#\",\n },\n },\n },\n });\n corePipeline.removePolicy({ phase: \"Retry\" });\n corePipeline.removePolicy({ name: decompressResponsePolicyName });\n corePipeline.addPolicy(storageCorrectContentLengthPolicy());\n corePipeline.addPolicy(storageRetryPolicy(restOptions.retryOptions), { phase: \"Retry\" });\n corePipeline.addPolicy(storageBrowserPolicy());\n const downlevelResults = processDownlevelPipeline(pipeline);\n if (downlevelResults) {\n corePipeline.addPolicy(\n downlevelResults.wrappedPolicies,\n downlevelResults.afterRetry ? { afterPhase: \"Retry\" } : undefined,\n );\n }\n const credential = getCredentialFromPipeline(pipeline);\n if (isTokenCredential(credential)) {\n corePipeline.addPolicy(\n bearerTokenAuthenticationPolicy({\n credential,\n scopes: restOptions.audience ?? StorageOAuthScopes,\n challengeCallbacks: { authorizeRequestOnChallenge: authorizeRequestOnTenantChallenge },\n }),\n { phase: \"Sign\" },\n );\n } else if (credential instanceof StorageSharedKeyCredential) {\n corePipeline.addPolicy(\n storageSharedKeyCredentialPolicy({\n accountName: credential.accountName,\n accountKey: (credential as any).accountKey,\n }),\n { phase: \"Sign\" },\n );\n }\n (pipeline as any)._corePipeline = corePipeline;\n }\n return {\n ...restOptions,\n allowInsecureConnection: true,\n httpClient,\n pipeline: corePipeline,\n };\n}\n\nexport function getCredentialFromPipeline(\n pipeline: PipelineLike,\n): StorageSharedKeyCredential | AnonymousCredential | TokenCredential {\n // see if we squirreled one away on the type itself\n if ((pipeline as any)._credential) {\n return (pipeline as any)._credential;\n }\n // if it came from another package, loop over the factories and look for one like before\n let credential = new AnonymousCredential();\n for (const factory of pipeline.factories) {\n if (isTokenCredential((factory as any).credential)) {\n // Only works if the factory has been attached a \"credential\" property.\n // We do that in newPipeline() when using TokenCredential.\n credential = (factory as any).credential;\n } else if (isStorageSharedKeyCredential(factory)) {\n return factory;\n }\n }\n return credential;\n}\n\nfunction isStorageSharedKeyCredential(\n factory: RequestPolicyFactory,\n): factory is StorageSharedKeyCredential {\n if (factory instanceof StorageSharedKeyCredential) {\n return true;\n }\n return factory.constructor.name === \"StorageSharedKeyCredential\";\n}\n\nfunction isAnonymousCredential(factory: RequestPolicyFactory): factory is AnonymousCredential {\n if (factory instanceof AnonymousCredential) {\n return true;\n }\n return factory.constructor.name === \"AnonymousCredential\";\n}\n\nfunction isCoreHttpBearerTokenFactory(factory: RequestPolicyFactory): boolean {\n return isTokenCredential((factory as any).credential);\n}\n\nfunction isStorageBrowserPolicyFactory(\n factory: RequestPolicyFactory,\n): factory is StorageBrowserPolicyFactory {\n if (factory instanceof StorageBrowserPolicyFactory) {\n return true;\n }\n return factory.constructor.name === \"StorageBrowserPolicyFactory\";\n}\n\nfunction isStorageRetryPolicyFactory(\n factory: RequestPolicyFactory,\n): factory is StorageRetryPolicyFactory {\n if (factory instanceof StorageRetryPolicyFactory) {\n return true;\n }\n return factory.constructor.name === \"StorageRetryPolicyFactory\";\n}\n\nfunction isStorageTelemetryPolicyFactory(factory: RequestPolicyFactory): boolean {\n return factory.constructor.name === \"TelemetryPolicyFactory\";\n}\n\nfunction isInjectorPolicyFactory(factory: RequestPolicyFactory): boolean {\n return factory.constructor.name === \"InjectorPolicyFactory\";\n}\n\nfunction isCoreHttpPolicyFactory(factory: RequestPolicyFactory): boolean {\n const knownPolicies = [\n \"GenerateClientRequestIdPolicy\",\n \"TracingPolicy\",\n \"LogPolicy\",\n \"ProxyPolicy\",\n \"DisableResponseDecompressionPolicy\",\n \"KeepAlivePolicy\",\n \"DeserializationPolicy\",\n ];\n\n const mockHttpClient: IHttpClient = {\n sendRequest: async (request: WebResource) => {\n return {\n request,\n headers: request.headers.clone(),\n status: 500,\n };\n },\n };\n const mockRequestPolicyOptions: RequestPolicyOptions = {\n log(_logLevel: HttpPipelineLogLevel, _message: string): void {\n /* do nothing */\n },\n shouldLog(_logLevel: HttpPipelineLogLevel): boolean {\n return false;\n },\n };\n const policyInstance = factory.create(mockHttpClient, mockRequestPolicyOptions);\n const policyName = policyInstance.constructor.name;\n // bundlers sometimes add a custom suffix to the class name to make it unique\n return knownPolicies.some((knownPolicyName) => {\n return policyName.startsWith(knownPolicyName);\n });\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createTracingClient } from \"@azure/core-tracing\";\nimport { SDK_VERSION } from \"./constants\";\n\n/**\n * Creates a span using the global tracer.\n * @internal\n */\nexport const tracingClient = createTracingClient({\n packageName: \"@azure/storage-file-datalake\",\n packageVersion: SDK_VERSION,\n namespace: \"Microsoft.Storage\",\n});\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { BlobLeaseClient } from \"@azure/storage-blob\";\n\nimport type { Lease, LeaseOperationOptions, LeaseOperationResponse } from \"./models\";\nimport { tracingClient } from \"./utils/tracing\";\n\nexport class DataLakeLeaseClient {\n public get leaseId(): string {\n return this.client.leaseId;\n }\n\n public get url(): string {\n return this.client.url;\n }\n\n constructor(private readonly client: BlobLeaseClient) {}\n\n public async acquireLease(\n duration: number,\n options: LeaseOperationOptions = {},\n ): Promise<LeaseOperationResponse> {\n options.conditions = options.conditions || {};\n return tracingClient.withSpan(\n \"DataLakeLeaseClient-acquireLease\",\n options,\n async (updatedOptions) => {\n return this.client.acquireLease(duration, updatedOptions);\n },\n );\n }\n\n public async changeLease(\n proposedLeaseId: string,\n options: LeaseOperationOptions = {},\n ): Promise<LeaseOperationResponse> {\n options.conditions = options.conditions || {};\n return tracingClient.withSpan(\n \"DataLakeLeaseClient-changeLease\",\n options,\n async (updatedOptions) => {\n return this.client.changeLease(proposedLeaseId, updatedOptions);\n },\n );\n }\n\n public async releaseLease(options: LeaseOperationOptions = {}): Promise<LeaseOperationResponse> {\n options.conditions = options.conditions || {};\n return tracingClient.withSpan(\n \"DataLakeLeaseClient-releaseLease\",\n options,\n async (updatedOptions) => {\n return this.client.releaseLease(updatedOptions);\n },\n );\n }\n\n public async renewLease(options: LeaseOperationOptions = {}): Promise<Lease> {\n options.conditions = options.conditions || {};\n return tracingClient.withSpan(\n \"DataLakeLeaseClient-renewLease\",\n options,\n async (updatedOptions) => {\n return this.client.renewLease(updatedOptions);\n },\n );\n }\n\n public async breakLease(\n breakPeriod: number,\n options: LeaseOperationOptions = {},\n ): Promise<LeaseOperationResponse> {\n options.conditions = options.conditions || {};\n return tracingClient.withSpan(\n \"DataLakeLeaseClient-renewLease\",\n options,\n async (updatedOptions) => {\n return this.client.breakLease(breakPeriod, updatedOptions);\n },\n );\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\nexport const FileSystemList: coreClient.CompositeMapper = {\n serializedName: \"FileSystemList\",\n type: {\n name: \"Composite\",\n className: \"FileSystemList\",\n modelProperties: {\n filesystems: {\n serializedName: \"filesystems\",\n xmlName: \"filesystems\",\n xmlElementName: \"FileSystem\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"FileSystem\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const FileSystem: coreClient.CompositeMapper = {\n serializedName: \"FileSystem\",\n type: {\n name: \"Composite\",\n className: \"FileSystem\",\n modelProperties: {\n name: {\n serializedName: \"name\",\n xmlName: \"name\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"lastModified\",\n xmlName: \"lastModified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"eTag\",\n xmlName: \"eTag\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const StorageError: coreClient.CompositeMapper = {\n serializedName: \"StorageError\",\n type: {\n name: \"Composite\",\n className: \"StorageError\",\n modelProperties: {\n error: {\n serializedName: \"error\",\n xmlName: \"error\",\n type: {\n name: \"Composite\",\n className: \"StorageErrorError\"\n }\n },\n code: {\n serializedName: \"Code\",\n xmlName: \"Code\",\n type: {\n name: \"String\"\n }\n },\n authenticationErrorDetail: {\n serializedName: \"AuthenticationErrorDetail\",\n xmlName: \"AuthenticationErrorDetail\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const StorageErrorError: coreClient.CompositeMapper = {\n serializedName: \"StorageErrorError\",\n type: {\n name: \"Composite\",\n className: \"StorageErrorError\",\n modelProperties: {\n code: {\n serializedName: \"Code\",\n xmlName: \"Code\",\n type: {\n name: \"String\"\n }\n },\n message: {\n serializedName: \"Message\",\n xmlName: \"Message\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathList: coreClient.CompositeMapper = {\n serializedName: \"PathList\",\n type: {\n name: \"Composite\",\n className: \"PathList\",\n modelProperties: {\n paths: {\n serializedName: \"paths\",\n xmlName: \"paths\",\n xmlElementName: \"Path\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"Path\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const Path: coreClient.CompositeMapper = {\n serializedName: \"Path\",\n type: {\n name: \"Composite\",\n className: \"Path\",\n modelProperties: {\n name: {\n serializedName: \"name\",\n xmlName: \"name\",\n type: {\n name: \"String\"\n }\n },\n isDirectory: {\n defaultValue: false,\n serializedName: \"isDirectory\",\n xmlName: \"isDirectory\",\n type: {\n name: \"Boolean\"\n }\n },\n lastModified: {\n serializedName: \"lastModified\",\n xmlName: \"lastModified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"eTag\",\n xmlName: \"eTag\",\n type: {\n name: \"String\"\n }\n },\n contentLength: {\n serializedName: \"contentLength\",\n xmlName: \"contentLength\",\n type: {\n name: \"Number\"\n }\n },\n owner: {\n serializedName: \"owner\",\n xmlName: \"owner\",\n type: {\n name: \"String\"\n }\n },\n group: {\n serializedName: \"group\",\n xmlName: \"group\",\n type: {\n name: \"String\"\n }\n },\n permissions: {\n serializedName: \"permissions\",\n xmlName: \"permissions\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"EncryptionScope\",\n xmlName: \"EncryptionScope\",\n type: {\n name: \"String\"\n }\n },\n creationTime: {\n serializedName: \"creationTime\",\n xmlName: \"creationTime\",\n type: {\n name: \"String\"\n }\n },\n expiryTime: {\n serializedName: \"expiryTime\",\n xmlName: \"expiryTime\",\n type: {\n name: \"String\"\n }\n },\n encryptionContext: {\n serializedName: \"EncryptionContext\",\n xmlName: \"EncryptionContext\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ListBlobsHierarchySegmentResponse: coreClient.CompositeMapper = {\n serializedName: \"ListBlobsHierarchySegmentResponse\",\n xmlName: \"EnumerationResults\",\n type: {\n name: \"Composite\",\n className: \"ListBlobsHierarchySegmentResponse\",\n modelProperties: {\n serviceEndpoint: {\n serializedName: \"ServiceEndpoint\",\n required: true,\n xmlName: \"ServiceEndpoint\",\n xmlIsAttribute: true,\n type: {\n name: \"String\"\n }\n },\n containerName: {\n serializedName: \"ContainerName\",\n required: true,\n xmlName: \"ContainerName\",\n xmlIsAttribute: true,\n type: {\n name: \"String\"\n }\n },\n prefix: {\n serializedName: \"Prefix\",\n xmlName: \"Prefix\",\n type: {\n name: \"String\"\n }\n },\n marker: {\n serializedName: \"Marker\",\n xmlName: \"Marker\",\n type: {\n name: \"String\"\n }\n },\n maxResults: {\n serializedName: \"MaxResults\",\n xmlName: \"MaxResults\",\n type: {\n name: \"Number\"\n }\n },\n delimiter: {\n serializedName: \"Delimiter\",\n xmlName: \"Delimiter\",\n type: {\n name: \"String\"\n }\n },\n segment: {\n serializedName: \"Segment\",\n xmlName: \"Blobs\",\n type: {\n name: \"Composite\",\n className: \"BlobHierarchyListSegment\"\n }\n },\n nextMarker: {\n serializedName: \"NextMarker\",\n xmlName: \"NextMarker\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobHierarchyListSegment: coreClient.CompositeMapper = {\n serializedName: \"BlobHierarchyListSegment\",\n xmlName: \"Blobs\",\n type: {\n name: \"Composite\",\n className: \"BlobHierarchyListSegment\",\n modelProperties: {\n blobPrefixes: {\n serializedName: \"BlobPrefixes\",\n xmlName: \"BlobPrefixes\",\n xmlElementName: \"BlobPrefix\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"BlobPrefix\"\n }\n }\n }\n },\n blobItems: {\n serializedName: \"BlobItems\",\n required: true,\n xmlName: \"BlobItems\",\n xmlElementName: \"Blob\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"BlobItemModel\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const BlobPrefix: coreClient.CompositeMapper = {\n serializedName: \"BlobPrefix\",\n type: {\n name: \"Composite\",\n className: \"BlobPrefix\",\n modelProperties: {\n name: {\n serializedName: \"Name\",\n required: true,\n xmlName: \"Name\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobItemModel: coreClient.CompositeMapper = {\n serializedName: \"BlobItemModel\",\n xmlName: \"Blob\",\n type: {\n name: \"Composite\",\n className: \"BlobItemModel\",\n modelProperties: {\n name: {\n serializedName: \"Name\",\n required: true,\n xmlName: \"Name\",\n type: {\n name: \"String\"\n }\n },\n deleted: {\n serializedName: \"Deleted\",\n required: true,\n xmlName: \"Deleted\",\n type: {\n name: \"Boolean\"\n }\n },\n snapshot: {\n serializedName: \"Snapshot\",\n required: true,\n xmlName: \"Snapshot\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"VersionId\",\n xmlName: \"VersionId\",\n type: {\n name: \"String\"\n }\n },\n isCurrentVersion: {\n serializedName: \"IsCurrentVersion\",\n xmlName: \"IsCurrentVersion\",\n type: {\n name: \"Boolean\"\n }\n },\n properties: {\n serializedName: \"Properties\",\n xmlName: \"Properties\",\n type: {\n name: \"Composite\",\n className: \"BlobPropertiesModel\"\n }\n },\n deletionId: {\n serializedName: \"DeletionId\",\n xmlName: \"DeletionId\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobPropertiesModel: coreClient.CompositeMapper = {\n serializedName: \"BlobPropertiesModel\",\n xmlName: \"Properties\",\n type: {\n name: \"Composite\",\n className: \"BlobPropertiesModel\",\n modelProperties: {\n creationTime: {\n serializedName: \"Creation-Time\",\n xmlName: \"Creation-Time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n lastModified: {\n serializedName: \"Last-Modified\",\n required: true,\n xmlName: \"Last-Modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"Etag\",\n required: true,\n xmlName: \"Etag\",\n type: {\n name: \"String\"\n }\n },\n contentLength: {\n serializedName: \"Content-Length\",\n xmlName: \"Content-Length\",\n type: {\n name: \"Number\"\n }\n },\n contentType: {\n serializedName: \"Content-Type\",\n xmlName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n },\n contentEncoding: {\n serializedName: \"Content-Encoding\",\n xmlName: \"Content-Encoding\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n serializedName: \"Content-Language\",\n xmlName: \"Content-Language\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n serializedName: \"Content-MD5\",\n xmlName: \"Content-MD5\",\n type: {\n name: \"ByteArray\"\n }\n },\n contentDisposition: {\n serializedName: \"Content-Disposition\",\n xmlName: \"Content-Disposition\",\n type: {\n name: \"String\"\n }\n },\n cacheControl: {\n serializedName: \"Cache-Control\",\n xmlName: \"Cache-Control\",\n type: {\n name: \"String\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n xmlName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n copyId: {\n serializedName: \"CopyId\",\n xmlName: \"CopyId\",\n type: {\n name: \"String\"\n }\n },\n copySource: {\n serializedName: \"CopySource\",\n xmlName: \"CopySource\",\n type: {\n name: \"String\"\n }\n },\n copyProgress: {\n serializedName: \"CopyProgress\",\n xmlName: \"CopyProgress\",\n type: {\n name: \"String\"\n }\n },\n copyCompletionTime: {\n serializedName: \"CopyCompletionTime\",\n xmlName: \"CopyCompletionTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyStatusDescription: {\n serializedName: \"CopyStatusDescription\",\n xmlName: \"CopyStatusDescription\",\n type: {\n name: \"String\"\n }\n },\n serverEncrypted: {\n serializedName: \"ServerEncrypted\",\n xmlName: \"ServerEncrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n incrementalCopy: {\n serializedName: \"IncrementalCopy\",\n xmlName: \"IncrementalCopy\",\n type: {\n name: \"Boolean\"\n }\n },\n destinationSnapshot: {\n serializedName: \"DestinationSnapshot\",\n xmlName: \"DestinationSnapshot\",\n type: {\n name: \"String\"\n }\n },\n deletedTime: {\n serializedName: \"DeletedTime\",\n xmlName: \"DeletedTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n remainingRetentionDays: {\n serializedName: \"RemainingRetentionDays\",\n xmlName: \"RemainingRetentionDays\",\n type: {\n name: \"Number\"\n }\n },\n accessTierInferred: {\n serializedName: \"AccessTierInferred\",\n xmlName: \"AccessTierInferred\",\n type: {\n name: \"Boolean\"\n }\n },\n customerProvidedKeySha256: {\n serializedName: \"CustomerProvidedKeySha256\",\n xmlName: \"CustomerProvidedKeySha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"EncryptionScope\",\n xmlName: \"EncryptionScope\",\n type: {\n name: \"String\"\n }\n },\n accessTierChangeTime: {\n serializedName: \"AccessTierChangeTime\",\n xmlName: \"AccessTierChangeTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n tagCount: {\n serializedName: \"TagCount\",\n xmlName: \"TagCount\",\n type: {\n name: \"Number\"\n }\n },\n expiresOn: {\n serializedName: \"Expiry-Time\",\n xmlName: \"Expiry-Time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n sealed: {\n serializedName: \"Sealed\",\n xmlName: \"Sealed\",\n type: {\n name: \"Boolean\"\n }\n },\n lastAccessedOn: {\n serializedName: \"LastAccessTime\",\n xmlName: \"LastAccessTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const SetAccessControlRecursiveResponse: coreClient.CompositeMapper = {\n serializedName: \"SetAccessControlRecursiveResponse\",\n type: {\n name: \"Composite\",\n className: \"SetAccessControlRecursiveResponse\",\n modelProperties: {\n directoriesSuccessful: {\n serializedName: \"directoriesSuccessful\",\n xmlName: \"directoriesSuccessful\",\n type: {\n name: \"Number\"\n }\n },\n filesSuccessful: {\n serializedName: \"filesSuccessful\",\n xmlName: \"filesSuccessful\",\n type: {\n name: \"Number\"\n }\n },\n failureCount: {\n serializedName: \"failureCount\",\n xmlName: \"failureCount\",\n type: {\n name: \"Number\"\n }\n },\n failedEntries: {\n serializedName: \"failedEntries\",\n xmlName: \"failedEntries\",\n xmlElementName: \"AclFailedEntry\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"AclFailedEntry\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const AclFailedEntry: coreClient.CompositeMapper = {\n serializedName: \"AclFailedEntry\",\n type: {\n name: \"Composite\",\n className: \"AclFailedEntry\",\n modelProperties: {\n name: {\n serializedName: \"name\",\n xmlName: \"name\",\n type: {\n name: \"String\"\n }\n },\n type: {\n serializedName: \"type\",\n xmlName: \"type\",\n type: {\n name: \"String\"\n }\n },\n errorMessage: {\n serializedName: \"errorMessage\",\n xmlName: \"errorMessage\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceListFileSystemsHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_listFileSystemsHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceListFileSystemsHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n requestId: {\n constraints: {\n Pattern: new RegExp(\n \"^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$\"\n )\n },\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n continuation: {\n serializedName: \"x-ms-continuation\",\n xmlName: \"x-ms-continuation\",\n type: {\n name: \"String\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n xmlName: \"content-type\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceListFileSystemsExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_listFileSystemsExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceListFileSystemsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const FileSystemCreateHeaders: coreClient.CompositeMapper = {\n serializedName: \"FileSystem_createHeaders\",\n type: {\n name: \"Composite\",\n className: \"FileSystemCreateHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n constraints: {\n Pattern: new RegExp(\n \"^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$\"\n )\n },\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n namespaceEnabled: {\n serializedName: \"x-ms-namespace-enabled\",\n xmlName: \"x-ms-namespace-enabled\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const FileSystemCreateExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"FileSystem_createExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"FileSystemCreateExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const FileSystemSetPropertiesHeaders: coreClient.CompositeMapper = {\n serializedName: \"FileSystem_setPropertiesHeaders\",\n type: {\n name: \"Composite\",\n className: \"FileSystemSetPropertiesHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n requestId: {\n constraints: {\n Pattern: new RegExp(\n \"^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$\"\n )\n },\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const FileSystemSetPropertiesExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"FileSystem_setPropertiesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"FileSystemSetPropertiesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const FileSystemGetPropertiesHeaders: coreClient.CompositeMapper = {\n serializedName: \"FileSystem_getPropertiesHeaders\",\n type: {\n name: \"Composite\",\n className: \"FileSystemGetPropertiesHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n requestId: {\n constraints: {\n Pattern: new RegExp(\n \"^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$\"\n )\n },\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n properties: {\n serializedName: \"x-ms-properties\",\n xmlName: \"x-ms-properties\",\n type: {\n name: \"String\"\n }\n },\n namespaceEnabled: {\n serializedName: \"x-ms-namespace-enabled\",\n xmlName: \"x-ms-namespace-enabled\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const FileSystemGetPropertiesExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"FileSystem_getPropertiesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"FileSystemGetPropertiesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const FileSystemDeleteHeaders: coreClient.CompositeMapper = {\n serializedName: \"FileSystem_deleteHeaders\",\n type: {\n name: \"Composite\",\n className: \"FileSystemDeleteHeaders\",\n modelProperties: {\n requestId: {\n constraints: {\n Pattern: new RegExp(\n \"^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$\"\n )\n },\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const FileSystemDeleteExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"FileSystem_deleteExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"FileSystemDeleteExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const FileSystemListPathsHeaders: coreClient.CompositeMapper = {\n serializedName: \"FileSystem_listPathsHeaders\",\n type: {\n name: \"Composite\",\n className: \"FileSystemListPathsHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n requestId: {\n constraints: {\n Pattern: new RegExp(\n \"^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$\"\n )\n },\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n continuation: {\n serializedName: \"x-ms-continuation\",\n xmlName: \"x-ms-continuation\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const FileSystemListPathsExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"FileSystem_listPathsExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"FileSystemListPathsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const FileSystemListBlobHierarchySegmentHeaders: coreClient.CompositeMapper = {\n serializedName: \"FileSystem_listBlobHierarchySegmentHeaders\",\n type: {\n name: \"Composite\",\n className: \"FileSystemListBlobHierarchySegmentHeaders\",\n modelProperties: {\n contentType: {\n serializedName: \"content-type\",\n xmlName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const FileSystemListBlobHierarchySegmentExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"FileSystem_listBlobHierarchySegmentExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"FileSystemListBlobHierarchySegmentExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathCreateHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_createHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathCreateHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n requestId: {\n constraints: {\n Pattern: new RegExp(\n \"^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$\"\n )\n },\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n continuation: {\n serializedName: \"x-ms-continuation\",\n xmlName: \"x-ms-continuation\",\n type: {\n name: \"String\"\n }\n },\n contentLength: {\n serializedName: \"content-length\",\n xmlName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathCreateExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_createExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathCreateExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathUpdateHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_updateHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathUpdateHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n acceptRanges: {\n serializedName: \"accept-ranges\",\n xmlName: \"accept-ranges\",\n type: {\n name: \"String\"\n }\n },\n cacheControl: {\n serializedName: \"cache-control\",\n xmlName: \"cache-control\",\n type: {\n name: \"String\"\n }\n },\n contentDisposition: {\n serializedName: \"content-disposition\",\n xmlName: \"content-disposition\",\n type: {\n name: \"String\"\n }\n },\n contentEncoding: {\n serializedName: \"content-encoding\",\n xmlName: \"content-encoding\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n serializedName: \"content-language\",\n xmlName: \"content-language\",\n type: {\n name: \"String\"\n }\n },\n contentLength: {\n serializedName: \"content-length\",\n xmlName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n contentRange: {\n serializedName: \"content-range\",\n xmlName: \"content-range\",\n type: {\n name: \"String\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n xmlName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"String\"\n }\n },\n properties: {\n serializedName: \"x-ms-properties\",\n xmlName: \"x-ms-properties\",\n type: {\n name: \"String\"\n }\n },\n xMsContinuation: {\n serializedName: \"x-ms-continuation\",\n xmlName: \"x-ms-continuation\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n constraints: {\n Pattern: new RegExp(\n \"^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$\"\n )\n },\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathUpdateExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_updateExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathUpdateExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathLeaseHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_leaseHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathLeaseHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n requestId: {\n constraints: {\n Pattern: new RegExp(\n \"^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$\"\n )\n },\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n leaseId: {\n constraints: {\n Pattern: new RegExp(\n \"^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$\"\n )\n },\n serializedName: \"x-ms-lease-id\",\n xmlName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathLeaseExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_leaseExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathLeaseExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathReadHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_readHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathReadHeaders\",\n modelProperties: {\n acceptRanges: {\n serializedName: \"accept-ranges\",\n xmlName: \"accept-ranges\",\n type: {\n name: \"String\"\n }\n },\n cacheControl: {\n serializedName: \"cache-control\",\n xmlName: \"cache-control\",\n type: {\n name: \"String\"\n }\n },\n contentDisposition: {\n serializedName: \"content-disposition\",\n xmlName: \"content-disposition\",\n type: {\n name: \"String\"\n }\n },\n contentEncoding: {\n serializedName: \"content-encoding\",\n xmlName: \"content-encoding\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n serializedName: \"content-language\",\n xmlName: \"content-language\",\n type: {\n name: \"String\"\n }\n },\n contentLength: {\n serializedName: \"content-length\",\n xmlName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n contentRange: {\n serializedName: \"content-range\",\n xmlName: \"content-range\",\n type: {\n name: \"String\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n xmlName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n requestId: {\n constraints: {\n Pattern: new RegExp(\n \"^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$\"\n )\n },\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n resourceType: {\n serializedName: \"x-ms-resource-type\",\n xmlName: \"x-ms-resource-type\",\n type: {\n name: \"String\"\n }\n },\n properties: {\n serializedName: \"x-ms-properties\",\n xmlName: \"x-ms-properties\",\n type: {\n name: \"String\"\n }\n },\n leaseDuration: {\n serializedName: \"x-ms-lease-duration\",\n xmlName: \"x-ms-lease-duration\",\n type: {\n name: \"String\"\n }\n },\n leaseState: {\n serializedName: \"x-ms-lease-state\",\n xmlName: \"x-ms-lease-state\",\n type: {\n name: \"String\"\n }\n },\n leaseStatus: {\n serializedName: \"x-ms-lease-status\",\n xmlName: \"x-ms-lease-status\",\n type: {\n name: \"String\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathReadExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_readExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathReadExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathGetPropertiesHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_getPropertiesHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathGetPropertiesHeaders\",\n modelProperties: {\n acceptRanges: {\n serializedName: \"accept-ranges\",\n xmlName: \"accept-ranges\",\n type: {\n name: \"String\"\n }\n },\n cacheControl: {\n serializedName: \"cache-control\",\n xmlName: \"cache-control\",\n type: {\n name: \"String\"\n }\n },\n contentDisposition: {\n serializedName: \"content-disposition\",\n xmlName: \"content-disposition\",\n type: {\n name: \"String\"\n }\n },\n contentEncoding: {\n serializedName: \"content-encoding\",\n xmlName: \"content-encoding\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n serializedName: \"content-language\",\n xmlName: \"content-language\",\n type: {\n name: \"String\"\n }\n },\n contentLength: {\n serializedName: \"content-length\",\n xmlName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n contentRange: {\n serializedName: \"content-range\",\n xmlName: \"content-range\",\n type: {\n name: \"String\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n xmlName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n requestId: {\n constraints: {\n Pattern: new RegExp(\n \"^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$\"\n )\n },\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n resourceType: {\n serializedName: \"x-ms-resource-type\",\n xmlName: \"x-ms-resource-type\",\n type: {\n name: \"String\"\n }\n },\n properties: {\n serializedName: \"x-ms-properties\",\n xmlName: \"x-ms-properties\",\n type: {\n name: \"String\"\n }\n },\n owner: {\n serializedName: \"x-ms-owner\",\n xmlName: \"x-ms-owner\",\n type: {\n name: \"String\"\n }\n },\n group: {\n serializedName: \"x-ms-group\",\n xmlName: \"x-ms-group\",\n type: {\n name: \"String\"\n }\n },\n permissions: {\n serializedName: \"x-ms-permissions\",\n xmlName: \"x-ms-permissions\",\n type: {\n name: \"String\"\n }\n },\n acl: {\n serializedName: \"x-ms-acl\",\n xmlName: \"x-ms-acl\",\n type: {\n name: \"String\"\n }\n },\n leaseDuration: {\n serializedName: \"x-ms-lease-duration\",\n xmlName: \"x-ms-lease-duration\",\n type: {\n name: \"String\"\n }\n },\n leaseState: {\n serializedName: \"x-ms-lease-state\",\n xmlName: \"x-ms-lease-state\",\n type: {\n name: \"String\"\n }\n },\n leaseStatus: {\n serializedName: \"x-ms-lease-status\",\n xmlName: \"x-ms-lease-status\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathGetPropertiesExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_getPropertiesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathGetPropertiesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathDeleteHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_deleteHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathDeleteHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n requestId: {\n constraints: {\n Pattern: new RegExp(\n \"^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$\"\n )\n },\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n continuation: {\n serializedName: \"x-ms-continuation\",\n xmlName: \"x-ms-continuation\",\n type: {\n name: \"String\"\n }\n },\n deletionId: {\n serializedName: \"x-ms-deletion-id\",\n xmlName: \"x-ms-deletion-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathDeleteExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_deleteExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathDeleteExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathSetAccessControlHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_setAccessControlHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathSetAccessControlHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathSetAccessControlExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_setAccessControlExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathSetAccessControlExceptionHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathSetAccessControlRecursiveHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_setAccessControlRecursiveHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathSetAccessControlRecursiveHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n continuation: {\n serializedName: \"x-ms-continuation\",\n xmlName: \"x-ms-continuation\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathSetAccessControlRecursiveExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_setAccessControlRecursiveExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathSetAccessControlRecursiveExceptionHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathFlushDataHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_flushDataHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathFlushDataHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentLength: {\n serializedName: \"content-length\",\n xmlName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n constraints: {\n Pattern: new RegExp(\n \"^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$\"\n )\n },\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n leaseRenewed: {\n serializedName: \"x-ms-lease-renewed\",\n xmlName: \"x-ms-lease-renewed\",\n type: {\n name: \"Boolean\"\n }\n }\n }\n }\n};\n\nexport const PathFlushDataExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_flushDataExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathFlushDataExceptionHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathAppendDataHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_appendDataHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathAppendDataHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n xmlName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n leaseRenewed: {\n serializedName: \"x-ms-lease-renewed\",\n xmlName: \"x-ms-lease-renewed\",\n type: {\n name: \"Boolean\"\n }\n }\n }\n }\n};\n\nexport const PathAppendDataExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_appendDataExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathAppendDataExceptionHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathSetExpiryHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_setExpiryHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathSetExpiryHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathSetExpiryExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_setExpiryExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathSetExpiryExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PathUndeleteHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_undeleteHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathUndeleteHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n resourceType: {\n serializedName: \"x-ms-resource-type\",\n xmlName: \"x-ms-resource-type\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const PathUndeleteExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Path_undeleteExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PathUndeleteExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport {\n OperationParameter,\n OperationURLParameter,\n OperationQueryParameter\n} from \"@azure/core-client\";\n\nexport const accept: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const url: OperationURLParameter = {\n parameterPath: \"url\",\n mapper: {\n serializedName: \"url\",\n required: true,\n xmlName: \"url\",\n type: {\n name: \"String\"\n }\n },\n skipEncoding: true\n};\n\nexport const resource: OperationQueryParameter = {\n parameterPath: \"resource\",\n mapper: {\n defaultValue: \"account\",\n isConstant: true,\n serializedName: \"resource\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const prefix: OperationQueryParameter = {\n parameterPath: [\"options\", \"prefix\"],\n mapper: {\n serializedName: \"prefix\",\n xmlName: \"prefix\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const continuation: OperationQueryParameter = {\n parameterPath: [\"options\", \"continuation\"],\n mapper: {\n serializedName: \"continuation\",\n xmlName: \"continuation\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const maxResults: OperationQueryParameter = {\n parameterPath: [\"options\", \"maxResults\"],\n mapper: {\n constraints: {\n InclusiveMinimum: 1\n },\n serializedName: \"maxResults\",\n xmlName: \"maxResults\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const requestId: OperationParameter = {\n parameterPath: [\"options\", \"requestId\"],\n mapper: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const timeout: OperationQueryParameter = {\n parameterPath: [\"options\", \"timeout\"],\n mapper: {\n constraints: {\n InclusiveMinimum: 0\n },\n serializedName: \"timeout\",\n xmlName: \"timeout\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const version: OperationParameter = {\n parameterPath: \"version\",\n mapper: {\n defaultValue: \"2025-05-05\",\n isConstant: true,\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const resource1: OperationQueryParameter = {\n parameterPath: \"resource\",\n mapper: {\n defaultValue: \"filesystem\",\n isConstant: true,\n serializedName: \"resource\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const properties: OperationParameter = {\n parameterPath: [\"options\", \"properties\"],\n mapper: {\n serializedName: \"x-ms-properties\",\n xmlName: \"x-ms-properties\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const ifModifiedSince: OperationParameter = {\n parameterPath: [\"options\", \"modifiedAccessConditions\", \"ifModifiedSince\"],\n mapper: {\n serializedName: \"If-Modified-Since\",\n xmlName: \"If-Modified-Since\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\n\nexport const ifUnmodifiedSince: OperationParameter = {\n parameterPath: [\"options\", \"modifiedAccessConditions\", \"ifUnmodifiedSince\"],\n mapper: {\n serializedName: \"If-Unmodified-Since\",\n xmlName: \"If-Unmodified-Since\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\n\nexport const path: OperationQueryParameter = {\n parameterPath: [\"options\", \"path\"],\n mapper: {\n serializedName: \"directory\",\n xmlName: \"directory\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const recursive: OperationQueryParameter = {\n parameterPath: \"recursive\",\n mapper: {\n serializedName: \"recursive\",\n required: true,\n xmlName: \"recursive\",\n type: {\n name: \"Boolean\"\n }\n }\n};\n\nexport const upn: OperationQueryParameter = {\n parameterPath: [\"options\", \"upn\"],\n mapper: {\n serializedName: \"upn\",\n xmlName: \"upn\",\n type: {\n name: \"Boolean\"\n }\n }\n};\n\nexport const accept1: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/xml\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const restype: OperationQueryParameter = {\n parameterPath: \"restype\",\n mapper: {\n defaultValue: \"container\",\n isConstant: true,\n serializedName: \"restype\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"list\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const delimiter: OperationQueryParameter = {\n parameterPath: [\"options\", \"delimiter\"],\n mapper: {\n serializedName: \"delimiter\",\n xmlName: \"delimiter\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const marker: OperationQueryParameter = {\n parameterPath: [\"options\", \"marker\"],\n mapper: {\n serializedName: \"marker\",\n xmlName: \"marker\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const include: OperationQueryParameter = {\n parameterPath: [\"options\", \"include\"],\n mapper: {\n serializedName: \"include\",\n xmlName: \"include\",\n xmlElementName: \"ListBlobsIncludeItem\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Enum\",\n allowedValues: [\n \"copy\",\n \"deleted\",\n \"metadata\",\n \"snapshots\",\n \"uncommittedblobs\",\n \"versions\",\n \"tags\"\n ]\n }\n }\n }\n },\n collectionFormat: \"CSV\"\n};\n\nexport const showonly: OperationQueryParameter = {\n parameterPath: [\"options\", \"showonly\"],\n mapper: {\n defaultValue: \"deleted\",\n isConstant: true,\n serializedName: \"showonly\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const resource2: OperationQueryParameter = {\n parameterPath: [\"options\", \"resource\"],\n mapper: {\n serializedName: \"resource\",\n xmlName: \"resource\",\n type: {\n name: \"Enum\",\n allowedValues: [\"directory\", \"file\"]\n }\n }\n};\n\nexport const mode: OperationQueryParameter = {\n parameterPath: [\"options\", \"mode\"],\n mapper: {\n serializedName: \"mode\",\n xmlName: \"mode\",\n type: {\n name: \"Enum\",\n allowedValues: [\"legacy\", \"posix\"]\n }\n }\n};\n\nexport const cacheControl: OperationParameter = {\n parameterPath: [\"options\", \"pathHttpHeaders\", \"cacheControl\"],\n mapper: {\n serializedName: \"x-ms-cache-control\",\n xmlName: \"x-ms-cache-control\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentEncoding: OperationParameter = {\n parameterPath: [\"options\", \"pathHttpHeaders\", \"contentEncoding\"],\n mapper: {\n serializedName: \"x-ms-content-encoding\",\n xmlName: \"x-ms-content-encoding\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentLanguage: OperationParameter = {\n parameterPath: [\"options\", \"pathHttpHeaders\", \"contentLanguage\"],\n mapper: {\n serializedName: \"x-ms-content-language\",\n xmlName: \"x-ms-content-language\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentDisposition: OperationParameter = {\n parameterPath: [\"options\", \"pathHttpHeaders\", \"contentDisposition\"],\n mapper: {\n serializedName: \"x-ms-content-disposition\",\n xmlName: \"x-ms-content-disposition\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentType: OperationParameter = {\n parameterPath: [\"options\", \"pathHttpHeaders\", \"contentType\"],\n mapper: {\n serializedName: \"x-ms-content-type\",\n xmlName: \"x-ms-content-type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const renameSource: OperationParameter = {\n parameterPath: [\"options\", \"renameSource\"],\n mapper: {\n serializedName: \"x-ms-rename-source\",\n xmlName: \"x-ms-rename-source\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const leaseId: OperationParameter = {\n parameterPath: [\"options\", \"leaseAccessConditions\", \"leaseId\"],\n mapper: {\n serializedName: \"x-ms-lease-id\",\n xmlName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const sourceLeaseId: OperationParameter = {\n parameterPath: [\"options\", \"sourceLeaseId\"],\n mapper: {\n serializedName: \"x-ms-source-lease-id\",\n xmlName: \"x-ms-source-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const permissions: OperationParameter = {\n parameterPath: [\"options\", \"permissions\"],\n mapper: {\n serializedName: \"x-ms-permissions\",\n xmlName: \"x-ms-permissions\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const umask: OperationParameter = {\n parameterPath: [\"options\", \"umask\"],\n mapper: {\n serializedName: \"x-ms-umask\",\n xmlName: \"x-ms-umask\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const ifMatch: OperationParameter = {\n parameterPath: [\"options\", \"modifiedAccessConditions\", \"ifMatch\"],\n mapper: {\n serializedName: \"If-Match\",\n xmlName: \"If-Match\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const ifNoneMatch: OperationParameter = {\n parameterPath: [\"options\", \"modifiedAccessConditions\", \"ifNoneMatch\"],\n mapper: {\n serializedName: \"If-None-Match\",\n xmlName: \"If-None-Match\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const sourceIfMatch: OperationParameter = {\n parameterPath: [\"options\", \"sourceModifiedAccessConditions\", \"sourceIfMatch\"],\n mapper: {\n serializedName: \"x-ms-source-if-match\",\n xmlName: \"x-ms-source-if-match\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const sourceIfNoneMatch: OperationParameter = {\n parameterPath: [\n \"options\",\n \"sourceModifiedAccessConditions\",\n \"sourceIfNoneMatch\"\n ],\n mapper: {\n serializedName: \"x-ms-source-if-none-match\",\n xmlName: \"x-ms-source-if-none-match\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const sourceIfModifiedSince: OperationParameter = {\n parameterPath: [\n \"options\",\n \"sourceModifiedAccessConditions\",\n \"sourceIfModifiedSince\"\n ],\n mapper: {\n serializedName: \"x-ms-source-if-modified-since\",\n xmlName: \"x-ms-source-if-modified-since\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\n\nexport const sourceIfUnmodifiedSince: OperationParameter = {\n parameterPath: [\n \"options\",\n \"sourceModifiedAccessConditions\",\n \"sourceIfUnmodifiedSince\"\n ],\n mapper: {\n serializedName: \"x-ms-source-if-unmodified-since\",\n xmlName: \"x-ms-source-if-unmodified-since\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\n\nexport const encryptionKey: OperationParameter = {\n parameterPath: [\"options\", \"cpkInfo\", \"encryptionKey\"],\n mapper: {\n serializedName: \"x-ms-encryption-key\",\n xmlName: \"x-ms-encryption-key\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const encryptionKeySha256: OperationParameter = {\n parameterPath: [\"options\", \"cpkInfo\", \"encryptionKeySha256\"],\n mapper: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const encryptionAlgorithm: OperationParameter = {\n parameterPath: [\"options\", \"cpkInfo\", \"encryptionAlgorithm\"],\n mapper: {\n serializedName: \"x-ms-encryption-algorithm\",\n xmlName: \"x-ms-encryption-algorithm\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const owner: OperationParameter = {\n parameterPath: [\"options\", \"owner\"],\n mapper: {\n serializedName: \"x-ms-owner\",\n xmlName: \"x-ms-owner\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const group: OperationParameter = {\n parameterPath: [\"options\", \"group\"],\n mapper: {\n serializedName: \"x-ms-group\",\n xmlName: \"x-ms-group\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const acl: OperationParameter = {\n parameterPath: [\"options\", \"acl\"],\n mapper: {\n serializedName: \"x-ms-acl\",\n xmlName: \"x-ms-acl\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const proposedLeaseId: OperationParameter = {\n parameterPath: [\"options\", \"proposedLeaseId\"],\n mapper: {\n serializedName: \"x-ms-proposed-lease-id\",\n xmlName: \"x-ms-proposed-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const leaseDuration: OperationParameter = {\n parameterPath: [\"options\", \"leaseDuration\"],\n mapper: {\n serializedName: \"x-ms-lease-duration\",\n xmlName: \"x-ms-lease-duration\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const expiryOptions: OperationParameter = {\n parameterPath: [\"options\", \"expiryOptions\"],\n mapper: {\n serializedName: \"x-ms-expiry-option\",\n xmlName: \"x-ms-expiry-option\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"NeverExpire\",\n \"RelativeToCreation\",\n \"RelativeToNow\",\n \"Absolute\"\n ]\n }\n }\n};\n\nexport const expiresOn: OperationParameter = {\n parameterPath: [\"options\", \"expiresOn\"],\n mapper: {\n serializedName: \"x-ms-expiry-time\",\n xmlName: \"x-ms-expiry-time\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const encryptionContext: OperationParameter = {\n parameterPath: [\"options\", \"encryptionContext\"],\n mapper: {\n serializedName: \"x-ms-encryption-context\",\n xmlName: \"x-ms-encryption-context\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentType1: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/octet-stream\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const body: OperationParameter = {\n parameterPath: \"body\",\n mapper: {\n serializedName: \"body\",\n required: true,\n xmlName: \"body\",\n type: {\n name: \"Stream\"\n }\n }\n};\n\nexport const accept2: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const action: OperationQueryParameter = {\n parameterPath: \"action\",\n mapper: {\n serializedName: \"action\",\n required: true,\n xmlName: \"action\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"append\",\n \"flush\",\n \"setProperties\",\n \"setAccessControl\",\n \"setAccessControlRecursive\"\n ]\n }\n }\n};\n\nexport const maxRecords: OperationQueryParameter = {\n parameterPath: [\"options\", \"maxRecords\"],\n mapper: {\n constraints: {\n InclusiveMinimum: 1\n },\n serializedName: \"maxRecords\",\n xmlName: \"maxRecords\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const mode1: OperationQueryParameter = {\n parameterPath: \"mode\",\n mapper: {\n serializedName: \"mode\",\n required: true,\n xmlName: \"mode\",\n type: {\n name: \"Enum\",\n allowedValues: [\"set\", \"modify\", \"remove\"]\n }\n }\n};\n\nexport const forceFlag: OperationQueryParameter = {\n parameterPath: [\"options\", \"forceFlag\"],\n mapper: {\n serializedName: \"forceFlag\",\n xmlName: \"forceFlag\",\n type: {\n name: \"Boolean\"\n }\n }\n};\n\nexport const position: OperationQueryParameter = {\n parameterPath: [\"options\", \"position\"],\n mapper: {\n serializedName: \"position\",\n xmlName: \"position\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const retainUncommittedData: OperationQueryParameter = {\n parameterPath: [\"options\", \"retainUncommittedData\"],\n mapper: {\n serializedName: \"retainUncommittedData\",\n xmlName: \"retainUncommittedData\",\n type: {\n name: \"Boolean\"\n }\n }\n};\n\nexport const close: OperationQueryParameter = {\n parameterPath: [\"options\", \"close\"],\n mapper: {\n serializedName: \"close\",\n xmlName: \"close\",\n type: {\n name: \"Boolean\"\n }\n }\n};\n\nexport const contentLength: OperationParameter = {\n parameterPath: [\"options\", \"contentLength\"],\n mapper: {\n constraints: {\n InclusiveMinimum: 0\n },\n serializedName: \"Content-Length\",\n xmlName: \"Content-Length\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const contentMD5: OperationParameter = {\n parameterPath: [\"options\", \"pathHttpHeaders\", \"contentMD5\"],\n mapper: {\n serializedName: \"x-ms-content-md5\",\n xmlName: \"x-ms-content-md5\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\n\nexport const xMsLeaseAction: OperationParameter = {\n parameterPath: \"xMsLeaseAction\",\n mapper: {\n serializedName: \"x-ms-lease-action\",\n required: true,\n xmlName: \"x-ms-lease-action\",\n type: {\n name: \"Enum\",\n allowedValues: [\"acquire\", \"break\", \"change\", \"renew\", \"release\"]\n }\n }\n};\n\nexport const xMsLeaseDuration: OperationParameter = {\n parameterPath: \"xMsLeaseDuration\",\n mapper: {\n serializedName: \"x-ms-lease-duration\",\n xmlName: \"x-ms-lease-duration\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const xMsLeaseBreakPeriod: OperationParameter = {\n parameterPath: [\"options\", \"xMsLeaseBreakPeriod\"],\n mapper: {\n serializedName: \"x-ms-lease-break-period\",\n xmlName: \"x-ms-lease-break-period\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const range: OperationParameter = {\n parameterPath: [\"options\", \"range\"],\n mapper: {\n serializedName: \"Range\",\n xmlName: \"Range\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const xMsRangeGetContentMd5: OperationParameter = {\n parameterPath: [\"options\", \"xMsRangeGetContentMd5\"],\n mapper: {\n serializedName: \"x-ms-range-get-content-md5\",\n xmlName: \"x-ms-range-get-content-md5\",\n type: {\n name: \"Boolean\"\n }\n }\n};\n\nexport const action1: OperationQueryParameter = {\n parameterPath: [\"options\", \"action\"],\n mapper: {\n serializedName: \"action\",\n xmlName: \"action\",\n type: {\n name: \"Enum\",\n allowedValues: [\"getAccessControl\", \"getStatus\"]\n }\n }\n};\n\nexport const recursive1: OperationQueryParameter = {\n parameterPath: [\"options\", \"recursive\"],\n mapper: {\n serializedName: \"recursive\",\n xmlName: \"recursive\",\n type: {\n name: \"Boolean\"\n }\n }\n};\n\nexport const paginated: OperationQueryParameter = {\n parameterPath: [\"options\", \"paginated\"],\n mapper: {\n serializedName: \"paginated\",\n xmlName: \"paginated\",\n type: {\n name: \"Boolean\"\n }\n }\n};\n\nexport const action2: OperationQueryParameter = {\n parameterPath: \"action\",\n mapper: {\n defaultValue: \"setAccessControl\",\n isConstant: true,\n serializedName: \"action\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const action3: OperationQueryParameter = {\n parameterPath: \"action\",\n mapper: {\n defaultValue: \"setAccessControlRecursive\",\n isConstant: true,\n serializedName: \"action\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const action4: OperationQueryParameter = {\n parameterPath: \"action\",\n mapper: {\n defaultValue: \"flush\",\n isConstant: true,\n serializedName: \"action\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const leaseAction: OperationParameter = {\n parameterPath: [\"options\", \"leaseAction\"],\n mapper: {\n serializedName: \"x-ms-lease-action\",\n xmlName: \"x-ms-lease-action\",\n type: {\n name: \"Enum\",\n allowedValues: [\"acquire\", \"auto-renew\", \"release\", \"acquire-release\"]\n }\n }\n};\n\nexport const contentType2: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const action5: OperationQueryParameter = {\n parameterPath: \"action\",\n mapper: {\n defaultValue: \"append\",\n isConstant: true,\n serializedName: \"action\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const transactionalContentHash: OperationParameter = {\n parameterPath: [\"options\", \"pathHttpHeaders\", \"transactionalContentHash\"],\n mapper: {\n serializedName: \"Content-MD5\",\n xmlName: \"Content-MD5\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\n\nexport const transactionalContentCrc64: OperationParameter = {\n parameterPath: [\"options\", \"transactionalContentCrc64\"],\n mapper: {\n serializedName: \"x-ms-content-crc64\",\n xmlName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\n\nexport const flush: OperationQueryParameter = {\n parameterPath: [\"options\", \"flush\"],\n mapper: {\n serializedName: \"flush\",\n xmlName: \"flush\",\n type: {\n name: \"Boolean\"\n }\n }\n};\n\nexport const comp1: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"expiry\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const expiryOptions1: OperationParameter = {\n parameterPath: \"expiryOptions\",\n mapper: {\n serializedName: \"x-ms-expiry-option\",\n required: true,\n xmlName: \"x-ms-expiry-option\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"NeverExpire\",\n \"RelativeToCreation\",\n \"RelativeToNow\",\n \"Absolute\"\n ]\n }\n }\n};\n\nexport const comp2: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"undelete\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const undeleteSource: OperationParameter = {\n parameterPath: [\"options\", \"undeleteSource\"],\n mapper: {\n serializedName: \"x-ms-undelete-source\",\n xmlName: \"x-ms-undelete-source\",\n type: {\n name: \"String\"\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { Service } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { StorageClient } from \"../storageClient\";\nimport {\n ServiceListFileSystemsOptionalParams,\n ServiceListFileSystemsResponse\n} from \"../models\";\n\n/** Class containing Service operations. */\nexport class ServiceImpl implements Service {\n private readonly client: StorageClient;\n\n /**\n * Initialize a new instance of the class Service class.\n * @param client Reference to the service client\n */\n constructor(client: StorageClient) {\n this.client = client;\n }\n\n /**\n * List filesystems and their properties in given account.\n * @param options The options parameters.\n */\n listFileSystems(\n options?: ServiceListFileSystemsOptionalParams\n ): Promise<ServiceListFileSystemsResponse> {\n return this.client.sendOperationRequest(\n { options },\n listFileSystemsOperationSpec\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst listFileSystemsOperationSpec: coreClient.OperationSpec = {\n path: \"/\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.FileSystemList,\n headersMapper: Mappers.ServiceListFileSystemsHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.ServiceListFileSystemsExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.resource,\n Parameters.prefix,\n Parameters.continuation,\n Parameters.maxResults,\n Parameters.timeout\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.requestId,\n Parameters.version\n ],\n serializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { FileSystemOperations } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { StorageClient } from \"../storageClient\";\nimport {\n FileSystemCreateOptionalParams,\n FileSystemCreateResponse,\n FileSystemSetPropertiesOptionalParams,\n FileSystemSetPropertiesResponse,\n FileSystemGetPropertiesOptionalParams,\n FileSystemGetPropertiesResponse,\n FileSystemDeleteOptionalParams,\n FileSystemDeleteResponse,\n FileSystemListPathsOptionalParams,\n FileSystemListPathsResponse,\n FileSystemListBlobHierarchySegmentOptionalParams,\n FileSystemListBlobHierarchySegmentResponse\n} from \"../models\";\n\n/** Class containing FileSystemOperations operations. */\nexport class FileSystemOperationsImpl implements FileSystemOperations {\n private readonly client: StorageClient;\n\n /**\n * Initialize a new instance of the class FileSystemOperations class.\n * @param client Reference to the service client\n */\n constructor(client: StorageClient) {\n this.client = client;\n }\n\n /**\n * Create a FileSystem rooted at the specified location. If the FileSystem already exists, the\n * operation fails. This operation does not support conditional HTTP requests.\n * @param options The options parameters.\n */\n create(\n options?: FileSystemCreateOptionalParams\n ): Promise<FileSystemCreateResponse> {\n return this.client.sendOperationRequest({ options }, createOperationSpec);\n }\n\n /**\n * Set properties for the FileSystem. This operation supports conditional HTTP requests. For more\n * information, see [Specifying Conditional Headers for Blob Service\n * Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations).\n * @param options The options parameters.\n */\n setProperties(\n options?: FileSystemSetPropertiesOptionalParams\n ): Promise<FileSystemSetPropertiesResponse> {\n return this.client.sendOperationRequest(\n { options },\n setPropertiesOperationSpec\n );\n }\n\n /**\n * All system and user-defined filesystem properties are specified in the response headers.\n * @param options The options parameters.\n */\n getProperties(\n options?: FileSystemGetPropertiesOptionalParams\n ): Promise<FileSystemGetPropertiesResponse> {\n return this.client.sendOperationRequest(\n { options },\n getPropertiesOperationSpec\n );\n }\n\n /**\n * Marks the FileSystem for deletion. When a FileSystem is deleted, a FileSystem with the same\n * identifier cannot be created for at least 30 seconds. While the filesystem is being deleted,\n * attempts to create a filesystem with the same identifier will fail with status code 409 (Conflict),\n * with the service returning additional error information indicating that the filesystem is being\n * deleted. All other operations, including operations on any files or directories within the\n * filesystem, will fail with status code 404 (Not Found) while the filesystem is being deleted. This\n * operation supports conditional HTTP requests. For more information, see [Specifying Conditional\n * Headers for Blob Service\n * Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations).\n * @param options The options parameters.\n */\n delete(\n options?: FileSystemDeleteOptionalParams\n ): Promise<FileSystemDeleteResponse> {\n return this.client.sendOperationRequest({ options }, deleteOperationSpec);\n }\n\n /**\n * List FileSystem paths and their properties.\n * @param recursive Required\n * @param options The options parameters.\n */\n listPaths(\n recursive: boolean,\n options?: FileSystemListPathsOptionalParams\n ): Promise<FileSystemListPathsResponse> {\n return this.client.sendOperationRequest(\n { recursive, options },\n listPathsOperationSpec\n );\n }\n\n /**\n * The List Blobs operation returns a list of the blobs under the specified container\n * @param options The options parameters.\n */\n listBlobHierarchySegment(\n options?: FileSystemListBlobHierarchySegmentOptionalParams\n ): Promise<FileSystemListBlobHierarchySegmentResponse> {\n return this.client.sendOperationRequest(\n { options },\n listBlobHierarchySegmentOperationSpec\n );\n }\n}\n// Operation Specifications\nconst xmlSerializer = coreClient.createSerializer(Mappers, /* isXml */ true);\n\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst createOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}\",\n httpMethod: \"PUT\",\n responses: {\n 201: {\n headersMapper: Mappers.FileSystemCreateHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.FileSystemCreateExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeout, Parameters.resource1],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.requestId,\n Parameters.version,\n Parameters.properties\n ],\n serializer\n};\nconst setPropertiesOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}\",\n httpMethod: \"PATCH\",\n responses: {\n 200: {\n headersMapper: Mappers.FileSystemSetPropertiesHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.FileSystemSetPropertiesExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeout, Parameters.resource1],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.requestId,\n Parameters.version,\n Parameters.properties,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince\n ],\n serializer\n};\nconst getPropertiesOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {\n headersMapper: Mappers.FileSystemGetPropertiesHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.FileSystemGetPropertiesExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeout, Parameters.resource1],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.requestId,\n Parameters.version\n ],\n serializer\n};\nconst deleteOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}\",\n httpMethod: \"DELETE\",\n responses: {\n 202: {\n headersMapper: Mappers.FileSystemDeleteHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.FileSystemDeleteExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeout, Parameters.resource1],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.requestId,\n Parameters.version,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince\n ],\n serializer\n};\nconst listPathsOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.PathList,\n headersMapper: Mappers.FileSystemListPathsHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.FileSystemListPathsExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.continuation,\n Parameters.maxResults,\n Parameters.timeout,\n Parameters.resource1,\n Parameters.path,\n Parameters.recursive,\n Parameters.upn\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.requestId,\n Parameters.version\n ],\n serializer\n};\nconst listBlobHierarchySegmentOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ListBlobsHierarchySegmentResponse,\n headersMapper: Mappers.FileSystemListBlobHierarchySegmentHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.FileSystemListBlobHierarchySegmentExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.prefix,\n Parameters.maxResults,\n Parameters.timeout,\n Parameters.restype,\n Parameters.comp,\n Parameters.delimiter,\n Parameters.marker,\n Parameters.include,\n Parameters.showonly\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.requestId,\n Parameters.version,\n Parameters.accept1\n ],\n isXML: true,\n serializer: xmlSerializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { PathOperations } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as coreRestPipeline from \"@azure/core-rest-pipeline\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { StorageClient } from \"../storageClient\";\nimport {\n PathCreateOptionalParams,\n PathCreateResponse,\n PathUpdateAction,\n PathSetAccessControlRecursiveMode,\n PathUpdateOptionalParams,\n PathUpdateResponse,\n PathLeaseAction,\n PathLeaseOptionalParams,\n PathLeaseResponse,\n PathReadOptionalParams,\n PathReadResponse,\n PathGetPropertiesOptionalParams,\n PathGetPropertiesResponse,\n PathDeleteOptionalParams,\n PathDeleteResponse,\n PathSetAccessControlOptionalParams,\n PathSetAccessControlResponse,\n PathSetAccessControlRecursiveOptionalParams,\n PathSetAccessControlRecursiveResponse,\n PathFlushDataOptionalParams,\n PathFlushDataResponse,\n PathAppendDataOptionalParams,\n PathAppendDataResponse,\n PathExpiryOptions,\n PathSetExpiryOptionalParams,\n PathSetExpiryResponse,\n PathUndeleteOptionalParams,\n PathUndeleteResponse\n} from \"../models\";\n\n/** Class containing PathOperations operations. */\nexport class PathOperationsImpl implements PathOperations {\n private readonly client: StorageClient;\n\n /**\n * Initialize a new instance of the class PathOperations class.\n * @param client Reference to the service client\n */\n constructor(client: StorageClient) {\n this.client = client;\n }\n\n /**\n * Create or rename a file or directory. By default, the destination is overwritten and if the\n * destination already exists and has a lease the lease is broken. This operation supports conditional\n * HTTP requests. For more information, see [Specifying Conditional Headers for Blob Service\n * Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations).\n * To fail if the destination already exists, use a conditional request with If-None-Match: \"*\".\n * @param options The options parameters.\n */\n create(options?: PathCreateOptionalParams): Promise<PathCreateResponse> {\n return this.client.sendOperationRequest({ options }, createOperationSpec);\n }\n\n /**\n * Uploads data to be appended to a file, flushes (writes) previously uploaded data to a file, sets\n * properties for a file or directory, or sets access control for a file or directory. Data can only be\n * appended to a file. Concurrent writes to the same file using multiple clients are not supported.\n * This operation supports conditional HTTP requests. For more information, see [Specifying Conditional\n * Headers for Blob Service\n * Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations).\n * @param action The action must be \"append\" to upload data to be appended to a file, \"flush\" to flush\n * previously uploaded data to a file, \"setProperties\" to set the properties of a file or directory,\n * \"setAccessControl\" to set the owner, group, permissions, or access control list for a file or\n * directory, or \"setAccessControlRecursive\" to set the access control list for a directory\n * recursively. Note that Hierarchical Namespace must be enabled for the account in order to use access\n * control. Also note that the Access Control List (ACL) includes permissions for the owner, owning\n * group, and others, so the x-ms-permissions and x-ms-acl request headers are mutually exclusive.\n * @param mode Mode \"set\" sets POSIX access control rights on files and directories, \"modify\" modifies\n * one or more POSIX access control rights that pre-exist on files and directories, \"remove\" removes\n * one or more POSIX access control rights that were present earlier on files and directories\n * @param body Initial data\n * @param options The options parameters.\n */\n update(\n action: PathUpdateAction,\n mode: PathSetAccessControlRecursiveMode,\n body: coreRestPipeline.RequestBodyType,\n options?: PathUpdateOptionalParams\n ): Promise<PathUpdateResponse> {\n return this.client.sendOperationRequest(\n { action, mode, body, options },\n updateOperationSpec\n );\n }\n\n /**\n * Create and manage a lease to restrict write and delete access to the path. This operation supports\n * conditional HTTP requests. For more information, see [Specifying Conditional Headers for Blob\n * Service\n * Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations).\n * @param xMsLeaseAction There are five lease actions: \"acquire\", \"break\", \"change\", \"renew\", and\n * \"release\". Use \"acquire\" and specify the \"x-ms-proposed-lease-id\" and \"x-ms-lease-duration\" to\n * acquire a new lease. Use \"break\" to break an existing lease. When a lease is broken, the lease break\n * period is allowed to elapse, during which time no lease operation except break and release can be\n * performed on the file. When a lease is successfully broken, the response indicates the interval in\n * seconds until a new lease can be acquired. Use \"change\" and specify the current lease ID in\n * \"x-ms-lease-id\" and the new lease ID in \"x-ms-proposed-lease-id\" to change the lease ID of an active\n * lease. Use \"renew\" and specify the \"x-ms-lease-id\" to renew an existing lease. Use \"release\" and\n * specify the \"x-ms-lease-id\" to release a lease.\n * @param options The options parameters.\n */\n lease(\n xMsLeaseAction: PathLeaseAction,\n options?: PathLeaseOptionalParams\n ): Promise<PathLeaseResponse> {\n return this.client.sendOperationRequest(\n { xMsLeaseAction, options },\n leaseOperationSpec\n );\n }\n\n /**\n * Read the contents of a file. For read operations, range requests are supported. This operation\n * supports conditional HTTP requests. For more information, see [Specifying Conditional Headers for\n * Blob Service\n * Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations).\n * @param options The options parameters.\n */\n read(options?: PathReadOptionalParams): Promise<PathReadResponse> {\n return this.client.sendOperationRequest({ options }, readOperationSpec);\n }\n\n /**\n * Get Properties returns all system and user defined properties for a path. Get Status returns all\n * system defined properties for a path. Get Access Control List returns the access control list for a\n * path. This operation supports conditional HTTP requests. For more information, see [Specifying\n * Conditional Headers for Blob Service\n * Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations).\n * @param options The options parameters.\n */\n getProperties(\n options?: PathGetPropertiesOptionalParams\n ): Promise<PathGetPropertiesResponse> {\n return this.client.sendOperationRequest(\n { options },\n getPropertiesOperationSpec\n );\n }\n\n /**\n * Delete the file or directory. This operation supports conditional HTTP requests. For more\n * information, see [Specifying Conditional Headers for Blob Service\n * Operations](https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations).\n * @param options The options parameters.\n */\n delete(options?: PathDeleteOptionalParams): Promise<PathDeleteResponse> {\n return this.client.sendOperationRequest({ options }, deleteOperationSpec);\n }\n\n /**\n * Set the owner, group, permissions, or access control list for a path.\n * @param options The options parameters.\n */\n setAccessControl(\n options?: PathSetAccessControlOptionalParams\n ): Promise<PathSetAccessControlResponse> {\n return this.client.sendOperationRequest(\n { options },\n setAccessControlOperationSpec\n );\n }\n\n /**\n * Set the access control list for a path and sub-paths.\n * @param mode Mode \"set\" sets POSIX access control rights on files and directories, \"modify\" modifies\n * one or more POSIX access control rights that pre-exist on files and directories, \"remove\" removes\n * one or more POSIX access control rights that were present earlier on files and directories\n * @param options The options parameters.\n */\n setAccessControlRecursive(\n mode: PathSetAccessControlRecursiveMode,\n options?: PathSetAccessControlRecursiveOptionalParams\n ): Promise<PathSetAccessControlRecursiveResponse> {\n return this.client.sendOperationRequest(\n { mode, options },\n setAccessControlRecursiveOperationSpec\n );\n }\n\n /**\n * Set the owner, group, permissions, or access control list for a path.\n * @param options The options parameters.\n */\n flushData(\n options?: PathFlushDataOptionalParams\n ): Promise<PathFlushDataResponse> {\n return this.client.sendOperationRequest(\n { options },\n flushDataOperationSpec\n );\n }\n\n /**\n * Append data to the file.\n * @param body Initial data\n * @param options The options parameters.\n */\n appendData(\n body: coreRestPipeline.RequestBodyType,\n options?: PathAppendDataOptionalParams\n ): Promise<PathAppendDataResponse> {\n return this.client.sendOperationRequest(\n { body, options },\n appendDataOperationSpec\n );\n }\n\n /**\n * Sets the time a blob will expire and be deleted.\n * @param expiryOptions Required. Indicates mode of the expiry time\n * @param options The options parameters.\n */\n setExpiry(\n expiryOptions: PathExpiryOptions,\n options?: PathSetExpiryOptionalParams\n ): Promise<PathSetExpiryResponse> {\n return this.client.sendOperationRequest(\n { expiryOptions, options },\n setExpiryOperationSpec\n );\n }\n\n /**\n * Undelete a path that was previously soft deleted\n * @param options The options parameters.\n */\n undelete(\n options?: PathUndeleteOptionalParams\n ): Promise<PathUndeleteResponse> {\n return this.client.sendOperationRequest({ options }, undeleteOperationSpec);\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst createOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}/{path}\",\n httpMethod: \"PUT\",\n responses: {\n 201: {\n headersMapper: Mappers.PathCreateHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.PathCreateExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.continuation,\n Parameters.timeout,\n Parameters.resource2,\n Parameters.mode\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.requestId,\n Parameters.version,\n Parameters.properties,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.cacheControl,\n Parameters.contentEncoding,\n Parameters.contentLanguage,\n Parameters.contentDisposition,\n Parameters.contentType,\n Parameters.renameSource,\n Parameters.leaseId,\n Parameters.sourceLeaseId,\n Parameters.permissions,\n Parameters.umask,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.sourceIfMatch,\n Parameters.sourceIfNoneMatch,\n Parameters.sourceIfModifiedSince,\n Parameters.sourceIfUnmodifiedSince,\n Parameters.encryptionKey,\n Parameters.encryptionKeySha256,\n Parameters.encryptionAlgorithm,\n Parameters.owner,\n Parameters.group,\n Parameters.acl,\n Parameters.proposedLeaseId,\n Parameters.leaseDuration,\n Parameters.expiryOptions,\n Parameters.expiresOn,\n Parameters.encryptionContext\n ],\n serializer\n};\nconst updateOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}/{path}\",\n httpMethod: \"PATCH\",\n responses: {\n 200: {\n bodyMapper: Mappers.SetAccessControlRecursiveResponse,\n headersMapper: Mappers.PathUpdateHeaders\n },\n 202: {\n headersMapper: Mappers.PathUpdateHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.PathUpdateExceptionHeaders\n }\n },\n requestBody: Parameters.body,\n queryParameters: [\n Parameters.continuation,\n Parameters.timeout,\n Parameters.action,\n Parameters.maxRecords,\n Parameters.mode1,\n Parameters.forceFlag,\n Parameters.position,\n Parameters.retainUncommittedData,\n Parameters.close\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.requestId,\n Parameters.version,\n Parameters.properties,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.cacheControl,\n Parameters.contentEncoding,\n Parameters.contentLanguage,\n Parameters.contentDisposition,\n Parameters.contentType,\n Parameters.leaseId,\n Parameters.permissions,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.owner,\n Parameters.group,\n Parameters.acl,\n Parameters.contentType1,\n Parameters.accept2,\n Parameters.contentLength,\n Parameters.contentMD5\n ],\n mediaType: \"binary\",\n serializer\n};\nconst leaseOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}/{path}\",\n httpMethod: \"POST\",\n responses: {\n 200: {\n headersMapper: Mappers.PathLeaseHeaders\n },\n 201: {\n headersMapper: Mappers.PathLeaseHeaders\n },\n 202: {\n headersMapper: Mappers.PathLeaseHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.PathLeaseExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeout],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.requestId,\n Parameters.version,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.leaseId,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.proposedLeaseId,\n Parameters.xMsLeaseAction,\n Parameters.xMsLeaseDuration,\n Parameters.xMsLeaseBreakPeriod\n ],\n serializer\n};\nconst readOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}/{path}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: {\n type: { name: \"Stream\" },\n serializedName: \"parsedResponse\"\n },\n headersMapper: Mappers.PathReadHeaders\n },\n 206: {\n bodyMapper: {\n type: { name: \"Stream\" },\n serializedName: \"parsedResponse\"\n },\n headersMapper: Mappers.PathReadHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.PathReadExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeout],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.requestId,\n Parameters.version,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.leaseId,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.encryptionKey,\n Parameters.encryptionKeySha256,\n Parameters.encryptionAlgorithm,\n Parameters.range,\n Parameters.xMsRangeGetContentMd5\n ],\n serializer\n};\nconst getPropertiesOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}/{path}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {\n headersMapper: Mappers.PathGetPropertiesHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.PathGetPropertiesExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeout, Parameters.upn, Parameters.action1],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.requestId,\n Parameters.version,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.leaseId,\n Parameters.ifMatch,\n Parameters.ifNoneMatch\n ],\n serializer\n};\nconst deleteOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}/{path}\",\n httpMethod: \"DELETE\",\n responses: {\n 200: {\n headersMapper: Mappers.PathDeleteHeaders\n },\n 202: {\n headersMapper: Mappers.PathDeleteHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.PathDeleteExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.continuation,\n Parameters.timeout,\n Parameters.recursive1,\n Parameters.paginated\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.requestId,\n Parameters.version,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.leaseId,\n Parameters.ifMatch,\n Parameters.ifNoneMatch\n ],\n serializer\n};\nconst setAccessControlOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}/{path}\",\n httpMethod: \"PATCH\",\n responses: {\n 200: {\n headersMapper: Mappers.PathSetAccessControlHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.PathSetAccessControlExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeout, Parameters.action2],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.requestId,\n Parameters.version,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.leaseId,\n Parameters.permissions,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.owner,\n Parameters.group,\n Parameters.acl\n ],\n serializer\n};\nconst setAccessControlRecursiveOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}/{path}\",\n httpMethod: \"PATCH\",\n responses: {\n 200: {\n bodyMapper: Mappers.SetAccessControlRecursiveResponse,\n headersMapper: Mappers.PathSetAccessControlRecursiveHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.PathSetAccessControlRecursiveExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.continuation,\n Parameters.timeout,\n Parameters.maxRecords,\n Parameters.mode1,\n Parameters.forceFlag,\n Parameters.action3\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.requestId,\n Parameters.version,\n Parameters.acl\n ],\n serializer\n};\nconst flushDataOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}/{path}\",\n httpMethod: \"PATCH\",\n responses: {\n 200: {\n headersMapper: Mappers.PathFlushDataHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.PathFlushDataExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.timeout,\n Parameters.position,\n Parameters.retainUncommittedData,\n Parameters.close,\n Parameters.action4\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.requestId,\n Parameters.version,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.cacheControl,\n Parameters.contentEncoding,\n Parameters.contentLanguage,\n Parameters.contentDisposition,\n Parameters.contentType,\n Parameters.leaseId,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.encryptionKey,\n Parameters.encryptionKeySha256,\n Parameters.encryptionAlgorithm,\n Parameters.proposedLeaseId,\n Parameters.leaseDuration,\n Parameters.contentLength,\n Parameters.contentMD5,\n Parameters.leaseAction\n ],\n serializer\n};\nconst appendDataOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}/{path}\",\n httpMethod: \"PATCH\",\n responses: {\n 202: {\n headersMapper: Mappers.PathAppendDataHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.PathAppendDataExceptionHeaders\n }\n },\n requestBody: Parameters.body,\n queryParameters: [\n Parameters.timeout,\n Parameters.position,\n Parameters.action5,\n Parameters.flush\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.requestId,\n Parameters.version,\n Parameters.leaseId,\n Parameters.encryptionKey,\n Parameters.encryptionKeySha256,\n Parameters.encryptionAlgorithm,\n Parameters.proposedLeaseId,\n Parameters.leaseDuration,\n Parameters.accept2,\n Parameters.contentLength,\n Parameters.leaseAction,\n Parameters.contentType2,\n Parameters.transactionalContentHash,\n Parameters.transactionalContentCrc64\n ],\n mediaType: \"binary\",\n serializer\n};\nconst setExpiryOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}/{path}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {\n headersMapper: Mappers.PathSetExpiryHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.PathSetExpiryExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeout, Parameters.comp1],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.requestId,\n Parameters.version,\n Parameters.expiresOn,\n Parameters.expiryOptions1\n ],\n serializer\n};\nconst undeleteOperationSpec: coreClient.OperationSpec = {\n path: \"/{filesystem}/{path}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {\n headersMapper: Mappers.PathUndeleteHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.PathUndeleteExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeout, Parameters.comp2],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.requestId,\n Parameters.version,\n Parameters.undeleteSource\n ],\n serializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreHttpCompat from \"@azure/core-http-compat\";\nimport {\n ServiceImpl,\n FileSystemOperationsImpl,\n PathOperationsImpl\n} from \"./operations\";\nimport {\n Service,\n FileSystemOperations,\n PathOperations\n} from \"./operationsInterfaces\";\nimport { StorageClientOptionalParams } from \"./models\";\n\nexport class StorageClient extends coreHttpCompat.ExtendedServiceClient {\n url: string;\n version: string;\n resource: string;\n xMsLeaseDuration?: number;\n\n /**\n * Initializes a new instance of the StorageClient class.\n * @param url The URL of the service account, container, or blob that is the target of the desired\n * operation.\n * @param options The parameter options\n */\n constructor(url: string, options?: StorageClientOptionalParams) {\n if (url === undefined) {\n throw new Error(\"'url' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: StorageClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\"\n };\n\n const packageDetails = `azsdk-js-azure-storage-datalake/12.26.0`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix\n },\n endpoint: options.endpoint ?? options.baseUri ?? \"{url}\"\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.url = url;\n\n // Assigning values to Constant parameters\n this.version = options.version || \"2025-05-05\";\n this.resource = options.resource || \"filesystem\";\n this.service = new ServiceImpl(this);\n this.fileSystemOperations = new FileSystemOperationsImpl(this);\n this.pathOperations = new PathOperationsImpl(this);\n }\n\n service: Service;\n fileSystemOperations: FileSystemOperations;\n pathOperations: PathOperations;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { OperationArguments, OperationSpec } from \"@azure/core-client\";\nimport { isNode } from \"@azure/core-util\";\nimport { StorageClient } from \"./generated/src\";\n\n/**\n * @internal\n */\nexport class StorageContextClient extends StorageClient {\n async sendOperationRequest<T>(\n operationArguments: OperationArguments,\n operationSpec: OperationSpec,\n ): Promise<T> {\n const operationSpecToSend = { ...operationSpec };\n\n if (\n !isNode &&\n !operationSpec.requestBody &&\n operationSpec.headerParameters?.some(\n (param) => param.mapper.serializedName === \"Content-Length\",\n )\n ) {\n operationSpecToSend.mediaType = \"text\";\n operationSpecToSend.requestBody = {\n parameterPath: \"body\",\n mapper: {\n serializedName: \"body\",\n isConstant: true,\n defaultValue: \"\",\n type: {\n name: \"String\",\n },\n },\n };\n }\n\n if (\n operationSpecToSend.path === \"/{filesystem}\" ||\n operationSpecToSend.path === \"/{filesystem}/{path}\"\n ) {\n operationSpecToSend.path = \"\";\n }\n return super.sendOperationRequest(operationArguments, operationSpecToSend);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { HttpHeaders } from \"@azure/core-rest-pipeline\";\nimport { createHttpHeaders } from \"@azure/core-rest-pipeline\";\nimport { isNode } from \"@azure/core-util\";\nimport type { ContainerEncryptionScope, WithResponse } from \"@azure/storage-blob\";\nimport type {\n CpkInfo,\n FileSystemEncryptionScope,\n PathAccessControlItem,\n PathPermissions,\n} from \"../models\";\n\nimport {\n DevelopmentConnectionString,\n EncryptionAlgorithmAES25,\n HeaderConstants,\n PathStylePorts,\n UrlConstants,\n} from \"./constants\";\nimport type { HttpResponse } from \"@azure/storage-blob\";\nimport type { HttpHeadersLike } from \"@azure/core-http-compat\";\nimport { toAcl, toPermissions } from \"../transforms\";\n\n/**\n * Reserved URL characters must be properly escaped for Storage services like Blob or File.\n *\n * ## URL encode and escape strategy for JS SDKs\n *\n * When customers pass a URL string into XxxClient classes constructors, the URL string may already be URL encoded or not.\n * But before sending to Azure Storage server, the URL must be encoded. However, it's hard for a SDK to guess whether the URL\n * string has been encoded or not. We have 2 potential strategies, and chose strategy two for the XxxClient constructors.\n *\n * ### Strategy One: Assume the customer URL string is not encoded, and always encode URL string in SDK.\n *\n * This is what legacy V2 SDK does, simple and works for most of the cases.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b:\",\n * SDK will encode it to \"http://account.blob.core.windows.net/con/b%3A\" and send to server. A blob named \"b:\" will be created.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b%3A\",\n * SDK will encode it to \"http://account.blob.core.windows.net/con/b%253A\" and send to server. A blob named \"b%3A\" will be created.\n *\n * But this strategy will make it not possible to create a blob with \"?\" in it's name. Because when customer URL string is\n * \"http://account.blob.core.windows.net/con/blob?name\", the \"?name\" will be treated as URL paramter instead of blob name.\n * If customer URL string is \"http://account.blob.core.windows.net/con/blob%3Fname\", a blob named \"blob%3Fname\" will be created.\n * V2 SDK doesn't have this issue because it doesn't allow customer pass in a full URL, it accepts a separate blob name and encodeURIComponent for it.\n * We cannot accept a SDK cannot create a blob name with \"?\". So we implement strategy two:\n *\n * ### Strategy Two: SDK doesn't assume the URL has been encoded or not. It will just escape the special characters.\n *\n * This is what V10 Blob Go SDK does. It accepts a URL type in Go, and call url.EscapedPath() to escape the special chars unescaped.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b:\",\n * SDK will escape \":\" like \"http://account.blob.core.windows.net/con/b%3A\" and send to server. A blob named \"b:\" will be created.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b%3A\",\n * There is no special characters, so send \"http://account.blob.core.windows.net/con/b%3A\" to server. A blob named \"b:\" will be created.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b%253A\",\n * There is no special characters, so send \"http://account.blob.core.windows.net/con/b%253A\" to server. A blob named \"b%3A\" will be created.\n *\n * This strategy gives us flexibility to create with any special characters. But \"%\" will be treated as a special characters, if the URL string\n * is not encoded, there shouldn't a \"%\" in the URL string, otherwise the URL is not a valid URL.\n * If customer needs to create a blob with \"%\" in it's blob name, use \"%25\" instead of \"%\". Just like above 3rd sample.\n * And following URL strings are invalid:\n * - \"http://account.blob.core.windows.net/con/b%\"\n * - \"http://account.blob.core.windows.net/con/b%2\"\n * - \"http://account.blob.core.windows.net/con/b%G\"\n *\n * Another special character is \"?\", use \"%2F\" to represent a blob name with \"?\" in a URL string.\n *\n * ### Strategy for containerName, blobName or other specific XXXName parameters in methods such as `containerClient.getBlobClient(blobName)`\n *\n * We will apply strategy one, and call encodeURIComponent for these parameters like blobName. Because what customers passes in is a plain name instead of a URL.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-shares--directories--files--and-metadata\n *\n * @param url -\n */\nexport function escapeURLPath(url: string): string {\n const urlParsed = new URL(url);\n\n let path = urlParsed.pathname;\n path = path || \"/\";\n\n path = escape(path);\n urlParsed.pathname = path;\n\n return urlParsed.toString();\n}\n\nexport interface ConnectionString {\n kind: \"AccountConnString\" | \"SASConnString\";\n url: string;\n accountName: string;\n accountKey?: any;\n accountSas?: string;\n proxyUri?: string; // Development Connection String may contain proxyUri\n}\n\nfunction getProxyUriFromDevConnString(connectionString: string): string {\n // Development Connection String\n // https://learn.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string#connect-to-the-emulator-account-using-the-well-known-account-name-and-key\n let proxyUri = \"\";\n if (connectionString.search(\"DevelopmentStorageProxyUri=\") !== -1) {\n // CONNECTION_STRING=UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://myProxyUri\n const matchCredentials = connectionString.split(\";\");\n for (const element of matchCredentials) {\n if (element.trim().startsWith(\"DevelopmentStorageProxyUri=\")) {\n proxyUri = element.trim().match(\"DevelopmentStorageProxyUri=(.*)\")![1];\n }\n }\n }\n return proxyUri;\n}\n\nexport function getValueInConnString(\n connectionString: string,\n argument:\n | \"BlobEndpoint\"\n | \"AccountName\"\n | \"AccountKey\"\n | \"DefaultEndpointsProtocol\"\n | \"EndpointSuffix\"\n | \"SharedAccessSignature\",\n): string {\n const elements = connectionString.split(\";\");\n for (const element of elements) {\n if (element.trim().startsWith(argument)) {\n return element.trim().match(argument + \"=(.*)\")![1];\n }\n }\n return \"\";\n}\n\n/**\n * Extracts the parts of an Azure Storage account connection string.\n *\n * @param connectionString - Connection string.\n * @returns String key value pairs of the storage account's url and credentials.\n */\nexport function extractConnectionStringParts(connectionString: string): ConnectionString {\n let proxyUri = \"\";\n\n if (connectionString.startsWith(\"UseDevelopmentStorage=true\")) {\n // Development connection string\n proxyUri = getProxyUriFromDevConnString(connectionString);\n connectionString = DevelopmentConnectionString;\n }\n\n // Matching BlobEndpoint in the Account connection string\n let blobEndpoint = getValueInConnString(connectionString, \"BlobEndpoint\");\n // Slicing off '/' at the end if exists\n // (The methods that use `extractConnectionStringParts` expect the url to not have `/` at the end)\n blobEndpoint = blobEndpoint.endsWith(\"/\") ? blobEndpoint.slice(0, -1) : blobEndpoint;\n\n if (\n connectionString.search(\"DefaultEndpointsProtocol=\") !== -1 &&\n connectionString.search(\"AccountKey=\") !== -1\n ) {\n // Account connection string\n\n let defaultEndpointsProtocol = \"\";\n let accountName = \"\";\n let accountKey = Buffer.from(\"accountKey\", \"base64\");\n let endpointSuffix = \"\";\n\n // Get account name and key\n accountName = getValueInConnString(connectionString, \"AccountName\");\n accountKey = Buffer.from(getValueInConnString(connectionString, \"AccountKey\"), \"base64\");\n\n if (!blobEndpoint) {\n // BlobEndpoint is not present in the Account connection string\n // Can be obtained from `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`\n\n defaultEndpointsProtocol = getValueInConnString(connectionString, \"DefaultEndpointsProtocol\");\n const protocol = defaultEndpointsProtocol!.toLowerCase();\n if (protocol !== \"https\" && protocol !== \"http\") {\n throw new Error(\n \"Invalid DefaultEndpointsProtocol in the provided Connection String. Expecting 'https' or 'http'\",\n );\n }\n\n endpointSuffix = getValueInConnString(connectionString, \"EndpointSuffix\");\n if (!endpointSuffix) {\n throw new Error(\"Invalid EndpointSuffix in the provided Connection String\");\n }\n blobEndpoint = `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`;\n }\n\n if (!accountName) {\n throw new Error(\"Invalid AccountName in the provided Connection String\");\n } else if (accountKey.length === 0) {\n throw new Error(\"Invalid AccountKey in the provided Connection String\");\n }\n\n return {\n kind: \"AccountConnString\",\n url: blobEndpoint,\n accountName,\n accountKey,\n proxyUri,\n };\n } else {\n // SAS connection string\n\n const accountSas = getValueInConnString(connectionString, \"SharedAccessSignature\");\n let accountName = getValueInConnString(connectionString, \"AccountName\");\n // if accountName is empty, try to read it from BlobEndpoint\n if (!accountName) {\n accountName = getAccountNameFromUrl(blobEndpoint);\n }\n if (!blobEndpoint) {\n throw new Error(\"Invalid BlobEndpoint in the provided SAS Connection String\");\n } else if (!accountSas) {\n throw new Error(\"Invalid SharedAccessSignature in the provided SAS Connection String\");\n }\n\n return { kind: \"SASConnString\", url: blobEndpoint, accountName, accountSas };\n }\n}\n\n/**\n * Internal escape method implemented Strategy Two mentioned in escapeURL() description.\n *\n * @param text -\n */\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nfunction escape(text: string): string {\n return encodeURIComponent(text)\n .replace(/%2F/g, \"/\") // Don't escape for \"/\"\n .replace(/'/g, \"%27\") // Escape for \"'\"\n .replace(/\\+/g, \"%20\")\n .replace(/%25/g, \"%\"); // Revert encoded \"%\"\n}\n\n/**\n * Append a string to URL path. Will remove duplicated \"/\" in front of the string\n * when URL path ends with a \"/\".\n *\n * @param url - Source URL string\n * @param name - String to be appended to URL\n * @returns An updated URL string\n */\nexport function appendToURLPath(url: string, name: string): string {\n const urlParsed = new URL(url);\n\n let path = urlParsed.pathname;\n path = path ? (path.endsWith(\"/\") ? `${path}${name}` : `${path}/${name}`) : name;\n urlParsed.pathname = path;\n\n return urlParsed.toString();\n}\n\n/**\n * Append a string to URL query.\n *\n * @param url - Source URL string.\n * @param queryParts - String to be appended to the URL query.\n * @returns An updated URL string.\n */\nexport function appendToURLQuery(url: string, queryParts: string): string {\n const urlParsed = new URL(url);\n\n let query = urlParsed.search;\n if (query) {\n query += \"&\" + queryParts;\n } else {\n query = queryParts;\n }\n\n urlParsed.search = query;\n return urlParsed.toString();\n}\n\n/**\n * Set URL parameter name and value. If name exists in URL parameters, old value\n * will be replaced by name key. If not provide value, the parameter will be deleted.\n *\n * @param url - Source URL string\n * @param name - Parameter name\n * @param value - Parameter value\n * @returns An updated URL string\n */\nexport function setURLParameter(url: string, name: string, value?: string): string {\n const urlParsed = new URL(url);\n const encodedName = encodeURIComponent(name);\n const encodedValue = value ? encodeURIComponent(value) : undefined;\n // mutating searchParams will change the encoding, so we have to do this ourselves\n const searchString = urlParsed.search === \"\" ? \"?\" : urlParsed.search;\n\n const searchPieces: string[] = [];\n\n for (const pair of searchString.slice(1).split(\"&\")) {\n if (pair) {\n const [key] = pair.split(\"=\", 2);\n if (key !== encodedName) {\n searchPieces.push(pair);\n }\n }\n }\n if (encodedValue) {\n searchPieces.push(`${encodedName}=${encodedValue}`);\n }\n\n urlParsed.search = searchPieces.length ? `?${searchPieces.join(\"&\")}` : \"\";\n\n return urlParsed.toString();\n}\n\n/**\n * Get URL parameter by name.\n *\n * @param url -\n * @param name -\n */\nexport function getURLParameter(url: string, name: string): string | string[] | undefined {\n const urlParsed = new URL(url);\n return urlParsed.searchParams.get(name) ?? undefined;\n}\n\n/**\n * Set URL host.\n *\n * @param url - Source URL string\n * @param host - New host string\n * @returns An updated URL string\n */\nexport function setURLHost(url: string, host: string): string {\n const urlParsed = new URL(url);\n urlParsed.hostname = host;\n return urlParsed.toString();\n}\n\n/**\n * Get URL path from an URL string.\n *\n * @param url - Source URL string\n */\nexport function getURLPath(url: string): string | undefined {\n try {\n const urlParsed = new URL(url);\n return urlParsed.pathname;\n } catch (e) {\n return undefined;\n }\n}\n\n/**\n * Set URL path.\n *\n * @param url -\n * @param path -\n */\nexport function setURLPath(url: string, path: string): string {\n const urlParsed = new URL(url);\n urlParsed.pathname = path;\n return urlParsed.toString();\n}\n\n/**\n * Get URL scheme from an URL string.\n *\n * @param url - Source URL string\n */\nexport function getURLScheme(url: string): string | undefined {\n try {\n const urlParsed = new URL(url);\n return urlParsed.protocol.endsWith(\":\") ? urlParsed.protocol.slice(0, -1) : urlParsed.protocol;\n } catch (e) {\n return undefined;\n }\n}\n\n/**\n * Get URL path and query from an URL string.\n *\n * @param url - Source URL string\n */\nexport function getURLPathAndQuery(url: string): string | undefined {\n const urlParsed = new URL(url);\n const pathString = urlParsed.pathname;\n if (!pathString) {\n throw new RangeError(\"Invalid url without valid path.\");\n }\n\n let queryString = urlParsed.search || \"\";\n queryString = queryString.trim();\n if (queryString !== \"\") {\n queryString = queryString.startsWith(\"?\") ? queryString : `?${queryString}`; // Ensure query string start with '?'\n }\n\n return `${pathString}${queryString}`;\n}\n\n/**\n * Get URL query key value pairs from an URL string.\n *\n * @param url -\n */\nexport function getURLQueries(url: string): { [key: string]: string } {\n let queryString = new URL(url).search;\n if (!queryString) {\n return {};\n }\n\n queryString = queryString.trim();\n queryString = queryString.startsWith(\"?\") ? queryString.substring(1) : queryString;\n\n let querySubStrings: string[] = queryString.split(\"&\");\n querySubStrings = querySubStrings.filter((value: string) => {\n const indexOfEqual = value.indexOf(\"=\");\n const lastIndexOfEqual = value.lastIndexOf(\"=\");\n return (\n indexOfEqual > 0 && indexOfEqual === lastIndexOfEqual && lastIndexOfEqual < value.length - 1\n );\n });\n\n const queries: { [key: string]: string } = {};\n for (const querySubString of querySubStrings) {\n const splitResults = querySubString.split(\"=\");\n const key: string = splitResults[0];\n const value: string = splitResults[1];\n queries[key] = value;\n }\n\n return queries;\n}\n\n/**\n * Set URL query string.\n *\n * @param url -\n * @param queryString -\n */\nexport function setURLQueries(url: string, queryString: string): string {\n const urlParsed = new URL(url);\n urlParsed.search = queryString;\n return urlParsed.toString();\n}\n\n/**\n * Rounds a date off to seconds.\n *\n * @param date -\n * @param withMilliseconds - If true, YYYY-MM-DDThh:mm:ss.fffffffZ will be returned;\n * If false, YYYY-MM-DDThh:mm:ssZ will be returned.\n * @returns Date string in ISO8061 format, with or without 7 milliseconds component\n */\nexport function truncatedISO8061Date(date: Date, withMilliseconds: boolean = true): string {\n // Date.toISOString() will return like \"2018-10-29T06:34:36.139Z\"\n const dateString = date.toISOString();\n\n return withMilliseconds\n ? dateString.substring(0, dateString.length - 1) + \"0000\" + \"Z\"\n : dateString.substring(0, dateString.length - 5) + \"Z\";\n}\n\n/**\n * Base64 encode.\n *\n * @param content -\n */\nexport function base64encode(content: string): string {\n return !isNode ? btoa(content) : Buffer.from(content).toString(\"base64\");\n}\n\n/**\n * Base64 decode.\n *\n * @param encodedString -\n */\nexport function base64decode(encodedString: string): string {\n return !isNode ? atob(encodedString) : Buffer.from(encodedString, \"base64\").toString();\n}\n\n/**\n * Generate a 64 bytes base64 block ID string.\n *\n * @param blockIndex -\n */\nexport function generateBlockID(blockIDPrefix: string, blockIndex: number): string {\n // To generate a 64 bytes base64 string, source string should be 48\n const maxSourceStringLength = 48;\n\n // A blob can have a maximum of 100,000 uncommitted blocks at any given time\n const maxBlockIndexLength = 6;\n\n const maxAllowedBlockIDPrefixLength = maxSourceStringLength - maxBlockIndexLength;\n\n if (blockIDPrefix.length > maxAllowedBlockIDPrefixLength) {\n blockIDPrefix = blockIDPrefix.slice(0, maxAllowedBlockIDPrefixLength);\n }\n const res =\n blockIDPrefix +\n blockIndex.toString().padStart(maxSourceStringLength - blockIDPrefix.length, \"0\");\n return base64encode(res);\n}\n\nexport function sanitizeURL(url: string): string {\n let safeURL: string = url;\n if (getURLParameter(safeURL, UrlConstants.Parameters.SIGNATURE)) {\n safeURL = setURLParameter(safeURL, UrlConstants.Parameters.SIGNATURE, \"*****\");\n }\n\n return safeURL;\n}\n\nexport function sanitizeHeaders(originalHeader: HttpHeaders): HttpHeaders {\n const headers: HttpHeaders = createHttpHeaders();\n for (const [name, value] of originalHeader) {\n if (name.toLowerCase() === HeaderConstants.AUTHORIZATION.toLowerCase()) {\n headers.set(name, \"*****\");\n } else if (name.toLowerCase() === HeaderConstants.X_MS_COPY_SOURCE) {\n headers.set(name, sanitizeURL(value));\n } else {\n headers.set(name, value);\n }\n }\n\n return headers;\n}\n/**\n * If two strings are equal when compared case insensitive.\n *\n * @param str1 -\n * @param str2 -\n */\nexport function iEqual(str1: string, str2: string): boolean {\n return str1.toLocaleLowerCase() === str2.toLocaleLowerCase();\n}\n\n/**\n * Extracts account name from the url\n * @param url - url to extract the account name from\n * @returns with the account name\n */\nexport function getAccountNameFromUrl(url: string): string {\n const parsedUrl = new URL(url);\n let accountName;\n try {\n if (parsedUrl.hostname.split(\".\")[1] === \"blob\") {\n // `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`;\n accountName = parsedUrl.hostname.split(\".\")[0];\n } else if (isIpEndpointStyle(parsedUrl)) {\n // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/\n // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/\n // .getPath() -> /devstoreaccount1/\n accountName = parsedUrl.pathname.split(\"/\")[1];\n } else {\n // Custom domain case: \"https://customdomain.com/containername/blob\".\n accountName = \"\";\n }\n return accountName;\n } catch (error: any) {\n throw new Error(\"Unable to extract accountName with provided information.\");\n }\n}\n\nexport function isIpEndpointStyle(parsedUrl: URL): boolean {\n const host = parsedUrl.host;\n\n // Case 1: Ipv6, use a broad regex to find out candidates whose host contains two ':'.\n // Case 2: localhost(:port) or host.docker.internal, use broad regex to match port part.\n // Case 3: Ipv4, use broad regex which just check if host contains Ipv4.\n // For valid host please refer to https://man7.org/linux/man-pages/man7/hostname.7.html.\n return (\n /^.*:.*:.*$|^(localhost|host.docker.internal)(:[0-9]+)?$|^(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])){3}(:[0-9]+)?$/.test(\n host,\n ) ||\n (Boolean(parsedUrl.port) && PathStylePorts.includes(parsedUrl.port))\n );\n}\n\n/**\n * This is to convert a Windows File Time ticks to a Date object.\n */\nexport function windowsFileTimeTicksToTime(timeNumber: string | undefined): Date | undefined {\n if (!timeNumber) return undefined;\n // A windows file time is a 64-bit value that represents the number of 100-nanosecond intervals that have elapsed\n // since 12:00 A.M. January 1, 1601 Coordinated Universal Time (UTC).\n // JS Date accepts a value that represents milliseconds from 12:00 A.M. January 1, 1970\n // So, we'll handle the calculations in milliseconds from here\n\n // Time in milliseconds since \"12:00 A.M. January 1, 1601\"\n const timeElapsed = parseInt(timeNumber) / 10000;\n\n if (timeElapsed === 0) return undefined;\n\n // Reference - https://stackoverflow.com/a/24188106/4137356\n\n // Milliseconds calculated relative to \"12:00 A.M. January 1, 1970\" (will be negative)\n const initialFrameOfReference = Date.UTC(1601, 0, 1);\n\n // TimeRelativeTo1970 = (TimeAt1601 - TimeAt1970) + (Current - TimeAt1601) = (Current - TimeAt1970)\n return new Date(initialFrameOfReference + timeElapsed);\n}\n\nexport function ensureCpkIfSpecified(cpk: CpkInfo | undefined, isHttps: boolean): void {\n if (cpk && !isHttps) {\n throw new RangeError(\"Customer-provided encryption key must be used over HTTPS.\");\n }\n\n if (cpk && !cpk.encryptionAlgorithm) {\n cpk.encryptionAlgorithm = EncryptionAlgorithmAES25;\n }\n}\n\nexport function ToBlobContainerEncryptionScope(\n fileSystemEncryptionScope?: FileSystemEncryptionScope,\n): ContainerEncryptionScope | undefined {\n if (!fileSystemEncryptionScope) return undefined;\n\n if (!fileSystemEncryptionScope.defaultEncryptionScope) return undefined;\n\n return {\n defaultEncryptionScope: fileSystemEncryptionScope.defaultEncryptionScope,\n preventEncryptionScopeOverride: true,\n };\n}\n\n/**\n * Escape the file or directory name but keep path separator ('/').\n */\nexport function EscapePath(pathName: string): string {\n const split = pathName.split(\"/\");\n for (let i = 0; i < split.length; i++) {\n split[i] = encodeURIComponent(split[i]);\n }\n return split.join(\"/\");\n}\n\n/**\n * A typesafe helper for ensuring that a given response object has\n * the original _response attached.\n * @param response - A response object from calling a client operation\n * @returns The same object, but with known _response property\n */\nexport function assertResponse<T extends object, Headers = undefined, Body = undefined>(\n response: T,\n): WithResponse<T, Headers, Body> {\n if (`_response` in response) {\n return response as WithResponse<T, Headers, Body>;\n }\n\n throw new TypeError(`Unexpected response object ${response}`);\n}\n\nexport interface PathGetPropertiesRawResponseWithExtraPropertiesLike {\n encryptionContext?: string;\n owner?: string;\n group?: string;\n permissions?: PathPermissions;\n acl: PathAccessControlItem[];\n _response: HttpResponse & {\n parsedHeaders: {\n encryptionContext?: string;\n owner?: string;\n group?: string;\n permissions?: PathPermissions;\n acl: PathAccessControlItem[];\n };\n };\n}\n\nfunction ParseHeaderValue(\n rawResponse: PathGetPropertiesRawResponseWithExtraPropertiesLike,\n headerName: string,\n): string | undefined {\n if (rawResponse._response) {\n const headers = rawResponse._response.headers as HttpHeadersLike;\n if (headers) {\n return headers.get(headerName);\n }\n }\n\n return undefined;\n}\n\n/**\n * Parse extra properties values from headers in raw response.\n */\nexport function ParsePathGetPropertiesExtraHeaderValues(\n rawResponse: PathGetPropertiesRawResponseWithExtraPropertiesLike,\n): PathGetPropertiesRawResponseWithExtraPropertiesLike {\n const response = rawResponse;\n response.encryptionContext = ParseHeaderValue(rawResponse, \"x-ms-encryption-context\");\n response.owner = ParseHeaderValue(rawResponse, \"x-ms-owner\");\n response.group = ParseHeaderValue(rawResponse, \"x-ms-group\");\n response.permissions = toPermissions(ParseHeaderValue(rawResponse, \"x-ms-permissions\"));\n response.acl = toAcl(ParseHeaderValue(rawResponse, \"x-ms-acl\"));\n if (response._response?.parsedHeaders) {\n response._response.parsedHeaders.encryptionContext = response.encryptionContext;\n response._response.parsedHeaders.owner = response.owner;\n response._response.parsedHeaders.group = response.group;\n response._response.parsedHeaders.permissions = response.permissions;\n response._response.parsedHeaders.acl = response.acl;\n }\n return response;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PagedAsyncIterableIterator, PageSettings } from \"@azure/core-paging\";\nimport type {\n ContainerItem,\n CpkInfo as BlobCpkInfo,\n PublicAccessType as ContainerPublicAccessType,\n} from \"@azure/storage-blob\";\n\nimport type { AclFailedEntry, CpkInfo } from \"./generated/src/models\";\nimport type {\n AccessControlChangeError,\n FileSystemItem,\n Metadata,\n PathAccessControlItem,\n PathPermissions,\n PublicAccessType,\n RemovePathAccessControlItem,\n RolePermissions,\n ServiceListContainersSegmentResponse,\n ServiceListFileSystemsSegmentResponse,\n} from \"./models\";\nimport { ToBlobEndpointHostMappings, ToDfsEndpointHostMappings } from \"./utils/constants\";\nimport { base64encode } from \"./utils/utils.common\";\n\n/**\n * Get a blob endpoint URL from incoming blob or dfs endpoint URLs.\n * Only handle known host name pair patterns, add more patterns into ToBlobEndpointHostMappings in constants.ts.\n *\n * Expected input and outputs:\n * http://account.blob.core.windows.net - http://account.blob.core.windows.net\n * http://account.dfs.core.windows.net - http://account.blob.core.windows.net\n * http://127.0.0.1:10000 - http://127.0.0.1:10000\n * http://account.blob.core.windows.net/abc - http://account.blob.core.windows.net/abc\n * http://account.dfs.core.windows.net/abc - http://account.blob.core.windows.net/abc\n * http://127.0.0.1:10000/abc - http://127.0.0.1:10000/abc\n *\n * @param url -\n */\nexport function toBlobEndpointUrl(url: string): string {\n return mapHostUrl(url, ToBlobEndpointHostMappings, \"toBlobEndpointUrl\");\n}\n\n/**\n * Get a dfs endpoint URL from incoming blob or dfs endpoint URLs.\n * Only handle known host name pair patterns, add more patterns into ToDfsEndpointHostMappings in constants.ts.\n *\n * Expected input and outputs:\n * http://account.blob.core.windows.net - http://account.dfs.core.windows.net\n * http://account.dfs.core.windows.net - http://account.dfs.core.windows.net\n * http://127.0.0.1:10000 - http://127.0.0.1:10000\n * http://account.blob.core.windows.net/abc - http://account.dfs.core.windows.net/abc\n * http://account.dfs.core.windows.net/abc - http://account.dfs.core.windows.net/abc\n * http://127.0.0.1:10000/abc - http://127.0.0.1:10000/abc\n *\n * @param url -\n */\nexport function toDfsEndpointUrl(url: string): string {\n return mapHostUrl(url, ToDfsEndpointHostMappings, \"toDfsEndpointUrl\");\n}\n\nfunction mapHostUrl(url: string, hostMappings: string[][], callerMethodName: string): string {\n let urlParsed: URL;\n try {\n urlParsed = new URL(url);\n } catch (e) {\n // invalid urls are returned unmodified\n return url;\n }\n\n let host = urlParsed.hostname;\n if (host === undefined) {\n throw RangeError(`${callerMethodName}() parameter url ${url} doesn't include valid host.`);\n }\n\n for (const mapping of hostMappings) {\n if (host.includes(mapping[0])) {\n host = host.replace(mapping[0], mapping[1]);\n break;\n }\n }\n urlParsed.hostname = host;\n const result = urlParsed.toString();\n // don't add a trailing slash if one wasn't already present\n if (!url.endsWith(\"/\") && result.endsWith(\"/\")) {\n return result.slice(0, -1);\n } else {\n return result;\n }\n}\n\nfunction toFileSystemAsyncIterableIterator(\n iter: AsyncIterableIterator<ServiceListContainersSegmentResponse>,\n): AsyncIterableIterator<ServiceListFileSystemsSegmentResponse> {\n return {\n async next() {\n const rawResult = await iter.next();\n if (rawResult.value) {\n rawResult.value.fileSystemItems = rawResult.value.containerItems.map(\n (val: ContainerItem): FileSystemItem => {\n return {\n ...val,\n versionId: val.version,\n properties: {\n ...val.properties,\n publicAccess: toPublicAccessType(val.properties.publicAccess),\n },\n };\n },\n );\n }\n return rawResult as any;\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\n\nexport function toFileSystemPagedAsyncIterableIterator(\n iter: PagedAsyncIterableIterator<ContainerItem, ServiceListContainersSegmentResponse>,\n): PagedAsyncIterableIterator<FileSystemItem, ServiceListFileSystemsSegmentResponse> {\n return {\n async next(): Promise<IteratorResult<FileSystemItem>> {\n const rawResult = await iter.next();\n const result = rawResult as IteratorResult<FileSystemItem>;\n if (!result.done && !rawResult.done) {\n result.value.properties.publicAccess = toPublicAccessType(\n rawResult.value.properties.publicAccess,\n );\n result.value.versionId = rawResult.value.version;\n }\n return result;\n },\n [Symbol.asyncIterator](): PagedAsyncIterableIterator<\n FileSystemItem,\n ServiceListFileSystemsSegmentResponse\n > {\n return this;\n },\n byPage(\n settings: PageSettings = {},\n ): AsyncIterableIterator<ServiceListFileSystemsSegmentResponse> {\n return toFileSystemAsyncIterableIterator(iter.byPage(settings));\n },\n };\n}\n\nexport function toContainerPublicAccessType(\n publicAccessType?: PublicAccessType,\n): ContainerPublicAccessType | undefined {\n if (!publicAccessType) {\n return undefined;\n }\n\n switch (publicAccessType) {\n case \"filesystem\":\n return \"container\";\n case \"file\":\n return \"blob\";\n default:\n throw TypeError(\n `toContainerPublicAccessType() parameter ${publicAccessType} is not recognized.`,\n );\n }\n}\n\nexport function toPublicAccessType(\n containerPublicAccessType?: ContainerPublicAccessType,\n): PublicAccessType | undefined {\n if (!containerPublicAccessType) {\n return undefined;\n }\n\n switch (containerPublicAccessType) {\n case \"container\":\n return \"filesystem\";\n case \"blob\":\n return \"file\";\n default:\n throw TypeError(\n `toPublicAccessType() parameter ${containerPublicAccessType} is not recognized.`,\n );\n }\n}\n\nexport function toProperties(metadata?: Metadata): string | undefined {\n if (metadata === undefined) {\n return undefined;\n }\n\n const properties = [];\n for (const key in metadata) {\n if (Object.prototype.hasOwnProperty.call(metadata, key)) {\n const value = metadata[key];\n properties.push(`${key}=${base64encode(value)}`);\n }\n }\n\n return properties.join(\",\");\n}\n\nexport function toRolePermissions(permissionsString: string): RolePermissions {\n const error = new RangeError(\n `toRolePermissions() Invalid role permissions string ${permissionsString}`,\n );\n if (permissionsString.length !== 3) {\n throw error;\n }\n\n permissionsString = permissionsString.toLowerCase();\n\n let read = false;\n if (permissionsString[0] === \"r\") {\n read = true;\n } else if (permissionsString[0] !== \"-\") {\n throw error;\n }\n\n let write = false;\n if (permissionsString[1] === \"w\") {\n write = true;\n } else if (permissionsString[1] !== \"-\") {\n throw error;\n }\n\n let execute = false;\n if (permissionsString[2] === \"x\") {\n execute = true;\n } else if (permissionsString[2] !== \"-\") {\n throw error;\n }\n\n return { read, write, execute };\n}\n\nexport function toPermissions(permissionsString?: string): PathPermissions | undefined {\n if (permissionsString === undefined || permissionsString === \"\" || permissionsString === null) {\n return undefined;\n }\n\n if (permissionsString.length !== 9 && permissionsString.length !== 10) {\n throw RangeError(`toPermissions() Invalid permissions string ${permissionsString}`);\n }\n\n let stickyBit = false;\n if (permissionsString[8] === \"t\") {\n stickyBit = true;\n const firstPart = permissionsString.substr(0, 8);\n const lastPart = permissionsString.substr(9);\n permissionsString = firstPart + \"x\" + lastPart;\n } else if (permissionsString[8] === \"T\") {\n stickyBit = true;\n const firstPart = permissionsString.substr(0, 8);\n const lastPart = permissionsString.substr(9);\n permissionsString = firstPart + \"-\" + lastPart;\n }\n\n // Case insensitive\n permissionsString = permissionsString.toLowerCase();\n\n let extendedAcls = false;\n if (permissionsString.length === 10) {\n if (permissionsString[9] === \"+\") {\n extendedAcls = true;\n } else {\n throw RangeError(\n `toPermissions() Invalid extendedAcls bit ${permissionsString[9]} in permissions string ${permissionsString}`,\n );\n }\n }\n\n const owner = toRolePermissions(permissionsString.substr(0, 3));\n const group = toRolePermissions(permissionsString.substr(3, 3));\n const other = toRolePermissions(permissionsString.substr(6, 3));\n\n return {\n owner,\n group,\n other,\n stickyBit,\n extendedAcls,\n };\n}\n\nexport function toAccessControlItem(aclItemString: string): PathAccessControlItem {\n const error = new RangeError(\n `toAccessControlItem() Parameter access control item string ${aclItemString} is not valid.`,\n );\n if (aclItemString === \"\") {\n throw error;\n }\n\n aclItemString = aclItemString.toLowerCase();\n\n const parts = aclItemString.split(\":\");\n if (parts.length < 3 || parts.length > 4) {\n throw error;\n }\n\n let defaultScope = false;\n let index = 0;\n if (parts.length === 4) {\n if (parts[index] !== \"default\") {\n throw error;\n }\n defaultScope = true;\n index++;\n }\n\n const accessControlType = parts[index++];\n if (\n accessControlType !== \"user\" &&\n accessControlType !== \"group\" &&\n accessControlType !== \"mask\" &&\n accessControlType !== \"other\"\n ) {\n throw error;\n }\n\n const entityId = parts[index++];\n const permissions = toRolePermissions(parts[index++]);\n\n return {\n defaultScope,\n accessControlType,\n entityId,\n permissions,\n };\n}\n\nexport function toRemoveAccessControlItem(aclItemString: string): RemovePathAccessControlItem {\n const error = new RangeError(\n `toAccessControlItem() Parameter access control item string \"${aclItemString}\" is not valid.`,\n );\n if (aclItemString === \"\") {\n throw error;\n }\n\n aclItemString = aclItemString.toLowerCase();\n\n const parts = aclItemString.split(\":\");\n if (parts.length < 1 || parts.length > 3) {\n throw error;\n }\n\n if (parts.length === 3) {\n if (parts[0] !== \"default\") {\n throw error;\n }\n }\n\n let defaultScope = false;\n let index = 0;\n if (parts[index] === \"default\") {\n defaultScope = true;\n index++;\n }\n\n const accessControlType = parts[index++];\n if (\n accessControlType !== \"user\" &&\n accessControlType !== \"group\" &&\n accessControlType !== \"mask\" &&\n accessControlType !== \"other\"\n ) {\n throw error;\n }\n\n const entityId = parts[index++];\n\n return {\n defaultScope,\n accessControlType,\n entityId,\n };\n}\n\nexport function toAcl(aclString?: string): PathAccessControlItem[] {\n if (aclString === undefined || aclString === \"\" || aclString === null) {\n return [];\n }\n\n const acls = [];\n const aclParts = aclString.split(\",\");\n for (const aclPart of aclParts) {\n acls.push(toAccessControlItem(aclPart));\n }\n\n return acls;\n}\n\nexport function toRemoveAcl(aclString?: string): RemovePathAccessControlItem[] {\n if (aclString === undefined || aclString === \"\" || aclString === null) {\n return [];\n }\n\n const acls = [];\n const aclParts = aclString.split(\",\");\n for (const aclPart of aclParts) {\n acls.push(toRemoveAccessControlItem(aclPart));\n }\n\n return acls;\n}\n\nexport function toAccessControlItemString(item: PathAccessControlItem): string {\n const entityIdString = item.entityId !== undefined ? `:${item.entityId}` : \"\";\n const permissionsString =\n item.permissions !== undefined ? `:${toRolePermissionsString(item.permissions)}` : \"\";\n return `${item.defaultScope ? \"default:\" : \"\"}${\n item.accessControlType\n }${entityIdString}${permissionsString}`;\n}\n\nexport function toAclString(acl: PathAccessControlItem[]): string {\n return acl.map(toAccessControlItemString).join(\",\");\n}\n\nexport function toRolePermissionsString(p: RolePermissions, stickyBit: boolean = false): string {\n return `${p.read ? \"r\" : \"-\"}${p.write ? \"w\" : \"-\"}${\n stickyBit ? (p.execute ? \"t\" : \"T\") : p.execute ? \"x\" : \"-\"\n }`;\n}\n\nexport function toPermissionsString(permissions: PathPermissions): string {\n return `${toRolePermissionsString(permissions.owner)}${toRolePermissionsString(\n permissions.group,\n )}${toRolePermissionsString(permissions.other, permissions.stickyBit)}${\n permissions.extendedAcls ? \"+\" : \"\"\n }`;\n}\n\nexport function toAccessControlChangeFailureArray(\n aclFailedEntries: AclFailedEntry[] = [],\n): AccessControlChangeError[] {\n return aclFailedEntries.map((aclFailedEntry: AclFailedEntry) => {\n return {\n name: aclFailedEntry.name || \"\",\n isDirectory: (aclFailedEntry.type || \"\").toLowerCase() === \"directory\",\n message: aclFailedEntry.errorMessage || \"\",\n };\n });\n}\n\nexport function toBlobCpkInfo(input?: CpkInfo): BlobCpkInfo | undefined {\n return input\n ? {\n encryptionKey: input.encryptionKey,\n encryptionKeySha256: input.encryptionKeySha256,\n encryptionAlgorithm: \"AES256\",\n }\n : undefined;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { StorageContextClient } from \"./StorageContextClient\";\nimport type { StorageClient as StorageClientContext } from \"./generated/src\";\nimport type { Pipeline, PipelineLike, StoragePipelineOptions } from \"./Pipeline\";\nimport type { AnonymousCredential } from \"@azure/storage-blob\";\nimport { BlobServiceClient } from \"@azure/storage-blob\";\nimport type { StorageSharedKeyCredential } from \"@azure/storage-blob\";\nimport { toBlobEndpointUrl, toDfsEndpointUrl } from \"./transforms\";\nimport { escapeURLPath, getAccountNameFromUrl, getURLScheme, iEqual } from \"./utils/utils.common\";\nimport type { ExtendedServiceClientOptions } from \"@azure/core-http-compat\";\nimport type { HttpClient, Pipeline as CorePipeline } from \"@azure/core-rest-pipeline\";\nimport type { OperationTracingOptions } from \"@azure/core-tracing\";\n\n/**\n * An interface for options common to every remote operation.\n */\nexport interface CommonOptions {\n tracingOptions?: OperationTracingOptions;\n}\n\n// This function relies on the Pipeline already being initialized by a storage-blob client\nfunction getCoreClientOptions(pipeline: Pipeline): ExtendedServiceClientOptions {\n const { httpClient: v1Client, ...restOptions } = pipeline.options as StoragePipelineOptions;\n const httpClient: HttpClient = (pipeline as any)._coreHttpClient;\n if (!httpClient) {\n throw new Error(\"Pipeline not correctly initialized; missing V2 HttpClient\");\n }\n\n const corePipeline: CorePipeline = (pipeline as any)._corePipeline;\n if (!corePipeline) {\n throw new Error(\"Pipeline not correctly initialized; missing V2 Pipeline\");\n }\n return {\n ...restOptions,\n allowInsecureConnection: true,\n httpClient,\n pipeline: corePipeline,\n };\n}\n\n/**\n * A StorageClient represents a based URL class for {@link BlobServiceClient}, {@link ContainerClient}\n * and etc.\n */\nexport abstract class StorageClient {\n /**\n * Encoded URL string value.\n */\n public readonly url: string;\n\n public readonly accountName: string;\n\n /**\n * Encoded URL string value for corresponding blob endpoint.\n */\n protected readonly blobEndpointUrl: string;\n\n /**\n * Encoded URL string value for corresponding dfs endpoint.\n */\n protected readonly dfsEndpointUrl: string;\n\n /**\n * Request policy pipeline.\n *\n * @internal\n */\n protected readonly pipeline: Pipeline;\n\n /**\n * Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n */\n public readonly credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential;\n\n /**\n * StorageClient is a reference to protocol layer operations entry, which is\n * generated by AutoRest generator.\n */\n protected readonly storageClientContext: StorageClientContext;\n\n /**\n * storageClientContextWithBlobEndpoint is a reference to protocol layer operations entry, which is\n * generated by AutoRest generator, with its url pointing to the Blob endpoint.\n */\n protected readonly storageClientContextToBlobEndpoint: StorageClientContext;\n\n /**\n */\n protected readonly isHttps: boolean;\n\n /**\n * Creates an instance of StorageClient.\n * @param url - url to resource\n * @param pipeline - request policy pipeline.\n */\n protected constructor(url: string, pipeline: PipelineLike) {\n // URL should be encoded and only once, protocol layer shouldn't encode URL again\n this.url = escapeURLPath(url);\n this.blobEndpointUrl = toBlobEndpointUrl(this.url);\n this.dfsEndpointUrl = toDfsEndpointUrl(this.url);\n this.accountName = getAccountNameFromUrl(this.blobEndpointUrl);\n this.pipeline = pipeline;\n // creating this BlobServiceClient allows us to use the converted V2 Pipeline attached to `pipeline`.\n const blobClient = new BlobServiceClient(url, pipeline);\n this.storageClientContext = new StorageContextClient(\n this.dfsEndpointUrl,\n getCoreClientOptions(pipeline),\n );\n\n this.storageClientContextToBlobEndpoint = new StorageContextClient(\n this.blobEndpointUrl,\n getCoreClientOptions(pipeline),\n );\n\n this.isHttps = iEqual(getURLScheme(this.url) || \"\", \"https\");\n\n this.credential = (blobClient as any).credential;\n\n // Override protocol layer's default content-type\n const storageClientContext = this.storageClientContext as any;\n storageClientContext.requestContentType = undefined;\n const storageClientContextWithBlobEndpoint = this.storageClientContextToBlobEndpoint as any;\n storageClientContextWithBlobEndpoint.requestContentType = undefined;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { Readable, ReadableOptions } from \"stream\";\n\n/**\n * Options to configure the BuffersStream.\n */\nexport interface BuffersStreamOptions extends ReadableOptions {}\n\n/**\n * This class generates a readable stream from the data in an array of buffers.\n */\nexport class BuffersStream extends Readable {\n /**\n * The offset of data to be read in the current buffer.\n */\n private byteOffsetInCurrentBuffer: number;\n\n /**\n * The index of buffer to be read in the array of buffers.\n */\n private bufferIndex: number;\n\n /**\n * The total length of data already read.\n */\n private pushedBytesLength: number;\n\n /**\n * Creates an instance of BuffersStream that will emit the data\n * contained in the array of buffers.\n *\n * @param buffers - Array of buffers containing the data\n * @param byteLength - The total length of data contained in the buffers\n */\n constructor(\n private buffers: Buffer[],\n private byteLength: number,\n options?: BuffersStreamOptions\n ) {\n super(options);\n this.byteOffsetInCurrentBuffer = 0;\n this.bufferIndex = 0;\n this.pushedBytesLength = 0;\n\n // check byteLength is no larger than buffers[] total length\n let buffersLength = 0;\n for (const buf of this.buffers) {\n buffersLength += buf.byteLength;\n }\n if (buffersLength < this.byteLength) {\n throw new Error(\"Data size shouldn't be larger than the total length of buffers.\");\n }\n }\n\n /**\n * Internal _read() that will be called when the stream wants to pull more data in.\n *\n * @param size - Optional. The size of data to be read\n */\n public _read(size?: number) {\n if (this.pushedBytesLength >= this.byteLength) {\n this.push(null);\n }\n\n if (!size) {\n size = this.readableHighWaterMark;\n }\n\n const outBuffers: Buffer[] = [];\n let i = 0;\n while (i < size && this.pushedBytesLength < this.byteLength) {\n // The last buffer may be longer than the data it contains.\n const remainingDataInAllBuffers = this.byteLength - this.pushedBytesLength;\n const remainingCapacityInThisBuffer =\n this.buffers[this.bufferIndex].byteLength - this.byteOffsetInCurrentBuffer;\n const remaining = Math.min(remainingCapacityInThisBuffer, remainingDataInAllBuffers);\n if (remaining > size - i) {\n // chunkSize = size - i\n const end = this.byteOffsetInCurrentBuffer + size - i;\n outBuffers.push(this.buffers[this.bufferIndex].slice(this.byteOffsetInCurrentBuffer, end));\n this.pushedBytesLength += size - i;\n this.byteOffsetInCurrentBuffer = end;\n i = size;\n break;\n } else {\n // chunkSize = remaining\n const end = this.byteOffsetInCurrentBuffer + remaining;\n outBuffers.push(this.buffers[this.bufferIndex].slice(this.byteOffsetInCurrentBuffer, end));\n if (remaining === remainingCapacityInThisBuffer) {\n // this.buffers[this.bufferIndex] used up, shift to next one\n this.byteOffsetInCurrentBuffer = 0;\n this.bufferIndex++;\n } else {\n this.byteOffsetInCurrentBuffer = end;\n }\n this.pushedBytesLength += remaining;\n i += remaining;\n }\n }\n\n if (outBuffers.length > 1) {\n this.push(Buffer.concat(outBuffers));\n } else if (outBuffers.length === 1) {\n this.push(outBuffers[0]);\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { BuffersStream } from \"./BuffersStream\";\nimport { Readable } from \"stream\";\n\n/**\n * maxBufferLength is max size of each buffer in the pooled buffers.\n */\nimport buffer from \"buffer\";\nconst maxBufferLength = buffer.constants.MAX_LENGTH;\n\n/**\n * This class provides a buffer container which conceptually has no hard size limit.\n * It accepts a capacity, an array of input buffers and the total length of input data.\n * It will allocate an internal \"buffer\" of the capacity and fill the data in the input buffers\n * into the internal \"buffer\" serially with respect to the total length.\n * Then by calling PooledBuffer.getReadableStream(), you can get a readable stream\n * assembled from all the data in the internal \"buffer\".\n */\nexport class PooledBuffer {\n /**\n * Internal buffers used to keep the data.\n * Each buffer has a length of the maxBufferLength except last one.\n */\n private buffers: Buffer[] = [];\n\n /**\n * The total size of internal buffers.\n */\n private readonly capacity: number;\n\n /**\n * The total size of data contained in internal buffers.\n */\n private _size: number;\n\n /**\n * The size of the data contained in the pooled buffers.\n */\n public get size(): number {\n return this._size;\n }\n\n /**\n * Creates an instance of PooledBuffer with given capacity.\n * Internal buffers are allocated but contains no data.\n * Users may call the {@link PooledBuffer.fill} method to fill this\n * pooled buffer with data.\n *\n * @param capacity - Total capacity of the internal buffers\n */\n constructor(capacity: number);\n\n /**\n * Creates an instance of PooledBuffer with given capacity.\n * Internal buffers are allocated and filled with data in the input buffers serially\n * with respect to the total length.\n *\n * @param capacity - Total capacity of the internal buffers\n * @param buffers - Input buffers containing the data to be filled in the pooled buffer\n * @param totalLength - Total length of the data to be filled in.\n */\n constructor(capacity: number, buffers: Buffer[], totalLength: number);\n constructor(capacity: number, buffers?: Buffer[], totalLength?: number) {\n this.capacity = capacity;\n this._size = 0;\n\n // allocate\n const bufferNum = Math.ceil(capacity / maxBufferLength);\n for (let i = 0; i < bufferNum; i++) {\n let len = i === bufferNum - 1 ? capacity % maxBufferLength : maxBufferLength;\n if (len === 0) {\n len = maxBufferLength;\n }\n this.buffers.push(Buffer.allocUnsafe(len));\n }\n\n if (buffers) {\n this.fill(buffers, totalLength!);\n }\n }\n\n /**\n * Fill the internal buffers with data in the input buffers serially\n * with respect to the total length and the total capacity of the internal buffers.\n * Data copied will be shift out of the input buffers.\n *\n * @param buffers - Input buffers containing the data to be filled in the pooled buffer\n * @param totalLength - Total length of the data to be filled in.\n *\n */\n public fill(buffers: Buffer[], totalLength: number) {\n this._size = Math.min(this.capacity, totalLength);\n\n let i = 0,\n j = 0,\n targetOffset = 0,\n sourceOffset = 0,\n totalCopiedNum = 0;\n while (totalCopiedNum < this._size) {\n const source = buffers[i];\n const target = this.buffers[j];\n const copiedNum = source.copy(target, targetOffset, sourceOffset);\n\n totalCopiedNum += copiedNum;\n sourceOffset += copiedNum;\n targetOffset += copiedNum;\n if (sourceOffset === source.length) {\n i++;\n sourceOffset = 0;\n }\n if (targetOffset === target.length) {\n j++;\n targetOffset = 0;\n }\n }\n\n // clear copied from source buffers\n buffers.splice(0, i);\n if (buffers.length > 0) {\n buffers[0] = buffers[0].slice(sourceOffset);\n }\n }\n\n /**\n * Get the readable stream assembled from all the data in the internal buffers.\n *\n */\n public getReadableStream(): Readable {\n return new BuffersStream(this.buffers, this.size);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { EventEmitter } from \"events\";\nimport { Readable } from \"stream\";\nimport { PooledBuffer } from \"./PooledBuffer\";\n\n/**\n * OutgoingHandler is an async function triggered by BufferScheduler.\n */\nexport declare type OutgoingHandler = (\n body: () => NodeJS.ReadableStream,\n length: number,\n offset?: number\n) => Promise<any>;\n\n/**\n * This class accepts a Node.js Readable stream as input, and keeps reading data\n * from the stream into the internal buffer structure, until it reaches maxBuffers.\n * Every available buffer will try to trigger outgoingHandler.\n *\n * The internal buffer structure includes an incoming buffer array, and a outgoing\n * buffer array. The incoming buffer array includes the \"empty\" buffers can be filled\n * with new incoming data. The outgoing array includes the filled buffers to be\n * handled by outgoingHandler. Every above buffer size is defined by parameter bufferSize.\n *\n * NUM_OF_ALL_BUFFERS = BUFFERS_IN_INCOMING + BUFFERS_IN_OUTGOING + BUFFERS_UNDER_HANDLING\n *\n * NUM_OF_ALL_BUFFERS lesser than or equal to maxBuffers\n *\n * PERFORMANCE IMPROVEMENT TIPS:\n * 1. Input stream highWaterMark is better to set a same value with bufferSize\n * parameter, which will avoid Buffer.concat() operations.\n * 2. concurrency should set a smaller value than maxBuffers, which is helpful to\n * reduce the possibility when a outgoing handler waits for the stream data.\n * in this situation, outgoing handlers are blocked.\n * Outgoing queue shouldn't be empty.\n */\nexport class BufferScheduler {\n /**\n * Size of buffers in incoming and outgoing queues. This class will try to align\n * data read from Readable stream into buffer chunks with bufferSize defined.\n */\n private readonly bufferSize: number;\n\n /**\n * How many buffers can be created or maintained.\n */\n private readonly maxBuffers: number;\n\n /**\n * A Node.js Readable stream.\n */\n private readonly readable: Readable;\n\n /**\n * OutgoingHandler is an async function triggered by BufferScheduler when there\n * are available buffers in outgoing array.\n */\n private readonly outgoingHandler: OutgoingHandler;\n\n /**\n * An internal event emitter.\n */\n private readonly emitter: EventEmitter = new EventEmitter();\n\n /**\n * Concurrency of executing outgoingHandlers. (0 lesser than concurrency lesser than or equal to maxBuffers)\n */\n private readonly concurrency: number;\n\n /**\n * An internal offset marker to track data offset in bytes of next outgoingHandler.\n */\n private offset: number = 0;\n\n /**\n * An internal marker to track whether stream is end.\n */\n private isStreamEnd: boolean = false;\n\n /**\n * An internal marker to track whether stream or outgoingHandler returns error.\n */\n private isError: boolean = false;\n\n /**\n * How many handlers are executing.\n */\n private executingOutgoingHandlers: number = 0;\n\n /**\n * Encoding of the input Readable stream which has string data type instead of Buffer.\n */\n private encoding?: BufferEncoding;\n\n /**\n * How many buffers have been allocated.\n */\n private numBuffers: number = 0;\n\n /**\n * Because this class doesn't know how much data every time stream pops, which\n * is defined by highWaterMarker of the stream. So BufferScheduler will cache\n * data received from the stream, when data in unresolvedDataArray exceeds the\n * blockSize defined, it will try to concat a blockSize of buffer, fill into available\n * buffers from incoming and push to outgoing array.\n */\n private unresolvedDataArray: Buffer[] = [];\n\n /**\n * How much data consisted in unresolvedDataArray.\n */\n private unresolvedLength: number = 0;\n\n /**\n * The array includes all the available buffers can be used to fill data from stream.\n */\n private incoming: PooledBuffer[] = [];\n\n /**\n * The array (queue) includes all the buffers filled from stream data.\n */\n private outgoing: PooledBuffer[] = [];\n\n /**\n * Creates an instance of BufferScheduler.\n *\n * @param readable - A Node.js Readable stream\n * @param bufferSize - Buffer size of every maintained buffer\n * @param maxBuffers - How many buffers can be allocated\n * @param outgoingHandler - An async function scheduled to be\n * triggered when a buffer fully filled\n * with stream data\n * @param concurrency - Concurrency of executing outgoingHandlers (>0)\n * @param encoding - [Optional] Encoding of Readable stream when it's a string stream\n */\n constructor(\n readable: Readable,\n bufferSize: number,\n maxBuffers: number,\n outgoingHandler: OutgoingHandler,\n concurrency: number,\n encoding?: BufferEncoding\n ) {\n if (bufferSize <= 0) {\n throw new RangeError(`bufferSize must be larger than 0, current is ${bufferSize}`);\n }\n\n if (maxBuffers <= 0) {\n throw new RangeError(`maxBuffers must be larger than 0, current is ${maxBuffers}`);\n }\n\n if (concurrency <= 0) {\n throw new RangeError(`concurrency must be larger than 0, current is ${concurrency}`);\n }\n\n this.bufferSize = bufferSize;\n this.maxBuffers = maxBuffers;\n this.readable = readable;\n this.outgoingHandler = outgoingHandler;\n this.concurrency = concurrency;\n this.encoding = encoding;\n }\n\n /**\n * Start the scheduler, will return error when stream of any of the outgoingHandlers\n * returns error.\n *\n */\n public async do(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n this.readable.on(\"data\", (data) => {\n data = typeof data === \"string\" ? Buffer.from(data, this.encoding) : data;\n this.appendUnresolvedData(data);\n\n if (!this.resolveData()) {\n this.readable.pause();\n }\n });\n\n this.readable.on(\"error\", (err) => {\n this.emitter.emit(\"error\", err);\n });\n\n this.readable.on(\"end\", () => {\n this.isStreamEnd = true;\n this.emitter.emit(\"checkEnd\");\n });\n\n this.emitter.on(\"error\", (err) => {\n this.isError = true;\n this.readable.pause();\n reject(err);\n });\n\n this.emitter.on(\"checkEnd\", () => {\n if (this.outgoing.length > 0) {\n this.triggerOutgoingHandlers();\n return;\n }\n\n if (this.isStreamEnd && this.executingOutgoingHandlers === 0) {\n if (this.unresolvedLength > 0 && this.unresolvedLength < this.bufferSize) {\n const buffer = this.shiftBufferFromUnresolvedDataArray();\n this.outgoingHandler(() => buffer.getReadableStream(), buffer.size, this.offset)\n .then(resolve)\n .catch(reject);\n } else if (this.unresolvedLength >= this.bufferSize) {\n return;\n } else {\n resolve();\n }\n }\n });\n });\n }\n\n /**\n * Insert a new data into unresolved array.\n *\n * @param data -\n */\n private appendUnresolvedData(data: Buffer) {\n this.unresolvedDataArray.push(data);\n this.unresolvedLength += data.length;\n }\n\n /**\n * Try to shift a buffer with size in blockSize. The buffer returned may be less\n * than blockSize when data in unresolvedDataArray is less than bufferSize.\n *\n */\n private shiftBufferFromUnresolvedDataArray(buffer?: PooledBuffer): PooledBuffer {\n if (!buffer) {\n buffer = new PooledBuffer(this.bufferSize, this.unresolvedDataArray, this.unresolvedLength);\n } else {\n buffer.fill(this.unresolvedDataArray, this.unresolvedLength);\n }\n\n this.unresolvedLength -= buffer.size;\n return buffer;\n }\n\n /**\n * Resolve data in unresolvedDataArray. For every buffer with size in blockSize\n * shifted, it will try to get (or allocate a buffer) from incoming, and fill it,\n * then push it into outgoing to be handled by outgoing handler.\n *\n * Return false when available buffers in incoming are not enough, else true.\n *\n * @returns Return false when buffers in incoming are not enough, else true.\n */\n private resolveData(): boolean {\n while (this.unresolvedLength >= this.bufferSize) {\n let buffer: PooledBuffer;\n\n if (this.incoming.length > 0) {\n buffer = this.incoming.shift()!;\n this.shiftBufferFromUnresolvedDataArray(buffer);\n } else {\n if (this.numBuffers < this.maxBuffers) {\n buffer = this.shiftBufferFromUnresolvedDataArray();\n this.numBuffers++;\n } else {\n // No available buffer, wait for buffer returned\n return false;\n }\n }\n\n this.outgoing.push(buffer);\n this.triggerOutgoingHandlers();\n }\n return true;\n }\n\n /**\n * Try to trigger a outgoing handler for every buffer in outgoing. Stop when\n * concurrency reaches.\n */\n private async triggerOutgoingHandlers() {\n let buffer: PooledBuffer | undefined;\n do {\n if (this.executingOutgoingHandlers >= this.concurrency) {\n return;\n }\n\n buffer = this.outgoing.shift();\n if (buffer) {\n this.triggerOutgoingHandler(buffer);\n }\n } while (buffer);\n }\n\n /**\n * Trigger a outgoing handler for a buffer shifted from outgoing.\n *\n * @param buffer -\n */\n private async triggerOutgoingHandler(buffer: PooledBuffer): Promise<any> {\n const bufferLength = buffer.size;\n\n this.executingOutgoingHandlers++;\n this.offset += bufferLength;\n\n try {\n await this.outgoingHandler(\n () => buffer.getReadableStream(),\n bufferLength,\n this.offset - bufferLength\n );\n } catch (err: any) {\n this.emitter.emit(\"error\", err);\n return;\n }\n\n this.executingOutgoingHandlers--;\n this.reuseBuffer(buffer);\n this.emitter.emit(\"checkEnd\");\n }\n\n /**\n * Return buffer used by outgoing handler into incoming.\n *\n * @param buffer -\n */\n private reuseBuffer(buffer: PooledBuffer) {\n this.incoming.push(buffer);\n if (!this.isError && this.resolveData() && !this.isStreamEnd) {\n this.readable.resume();\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { UserDelegationKey } from \"../models\";\nimport { createHmac } from \"crypto\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * UserDelegationKeyCredential is only used for generation of user delegation SAS.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/create-user-delegation-sas\n */\nexport class UserDelegationKeyCredential {\n /**\n * Azure Storage account name; readonly.\n */\n public readonly accountName: string;\n\n /**\n * Azure Storage user delegation key; readonly.\n */\n public readonly userDelegationKey: UserDelegationKey;\n\n /**\n * Key value in Buffer type.\n */\n private readonly key: Buffer;\n\n /**\n * Creates an instance of UserDelegationKeyCredential.\n * @param accountName -\n * @param userDelegationKey -\n */\n constructor(accountName: string, userDelegationKey: UserDelegationKey) {\n this.accountName = accountName;\n this.userDelegationKey = userDelegationKey;\n this.key = Buffer.from(userDelegationKey.value, \"base64\");\n }\n\n /**\n * Generates a hash signature for an HTTP request or for a SAS.\n *\n * @param stringToSign -\n */\n public computeHMACSHA256(stringToSign: string): string {\n // console.log(`stringToSign: ${JSON.stringify(stringToSign)}`);\n\n return createHmac(\"sha256\", this.key).update(stringToSign, \"utf8\").digest(\"base64\");\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * This is a helper class to construct a string representing the permissions granted by a ServiceSAS. Setting\n * a value to true means that any SAS which uses these permissions will grant permissions for that operation. Once all\n * the values are set, this should be serialized with toString and set as the permissions field on a\n * {@link DataLakeSASSignatureValues} object. It is possible to construct the permissions string without this class, but\n * the order of the permissions is particular and this class guarantees correctness.\n */\nexport class DataLakeSASPermissions {\n /**\n * Creates a {@link DataLakeSASPermissions} from the specified permissions string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid permission.\n *\n * @param permissions -\n */\n public static parse(permissions: string): DataLakeSASPermissions {\n const blobSASPermissions = new DataLakeSASPermissions();\n\n for (const char of permissions) {\n switch (char) {\n case \"r\":\n blobSASPermissions.read = true;\n break;\n case \"a\":\n blobSASPermissions.add = true;\n break;\n case \"c\":\n blobSASPermissions.create = true;\n break;\n case \"w\":\n blobSASPermissions.write = true;\n break;\n case \"d\":\n blobSASPermissions.delete = true;\n break;\n case \"m\":\n blobSASPermissions.move = true;\n break;\n case \"e\":\n blobSASPermissions.execute = true;\n break;\n case \"o\":\n blobSASPermissions.manageOwnership = true;\n break;\n case \"p\":\n blobSASPermissions.manageAccessControl = true;\n break;\n default:\n throw new RangeError(`Invalid permission: ${char}`);\n }\n }\n\n return blobSASPermissions;\n }\n\n /**\n * Specifies Read access granted.\n */\n public read: boolean = false;\n\n /**\n * Specifies Add access granted.\n */\n public add: boolean = false;\n\n /**\n * Specifies Create access granted.\n */\n public create: boolean = false;\n\n /**\n * Specifies Write access granted.\n */\n public write: boolean = false;\n\n /**\n * Specifies Delete access granted.\n */\n public delete: boolean = false;\n\n /**\n * Specifies Move access granted.\n */\n public move: boolean = false;\n\n /**\n * Specifies Execute access granted.\n */\n public execute: boolean = false;\n\n /**\n * Specifies Ownership access granted, which allows the caller to set owner, owning group,\n * or act as the owner when renaming or deleting a blob (file or directory) within a folder\n * that has the sticky bit set.\n */\n public manageOwnership: boolean = false;\n\n /**\n * Specifies Permission access granted, which allows the caller to set permissions and\n * POSIX ACLs on blobs (files and directories).\n */\n public manageAccessControl: boolean = false;\n\n /**\n * Converts the given permissions to a string. Using this method will guarantee the permissions are in an\n * order accepted by the service.\n *\n * @returns A string which represents the DataLakeSASPermissions\n */\n public toString(): string {\n const permissions: string[] = [];\n if (this.read) {\n permissions.push(\"r\");\n }\n if (this.add) {\n permissions.push(\"a\");\n }\n if (this.create) {\n permissions.push(\"c\");\n }\n if (this.write) {\n permissions.push(\"w\");\n }\n if (this.delete) {\n permissions.push(\"d\");\n }\n if (this.move) {\n permissions.push(\"m\");\n }\n if (this.execute) {\n permissions.push(\"e\");\n }\n if (this.manageOwnership) {\n permissions.push(\"o\");\n }\n if (this.manageAccessControl) {\n permissions.push(\"p\");\n }\n return permissions.join(\"\");\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * This is a helper class to construct a string representing the permissions granted by a ServiceSAS to a container.\n * Setting a value to true means that any SAS which uses these permissions will grant permissions for that operation.\n * Once all the values are set, this should be serialized with toString and set as the permissions field on a\n * {@link DataLakeSASSignatureValues} object. It is possible to construct the permissions string without this class, but\n * the order of the permissions is particular and this class guarantees correctness.\n */\nexport class FileSystemSASPermissions {\n /**\n * Creates an {@link FileSystemSASPermissions} from the specified permissions string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid permission.\n *\n * @param permissions -\n */\n public static parse(permissions: string): FileSystemSASPermissions {\n const containerSASPermissions = new FileSystemSASPermissions();\n\n for (const char of permissions) {\n switch (char) {\n case \"r\":\n containerSASPermissions.read = true;\n break;\n case \"a\":\n containerSASPermissions.add = true;\n break;\n case \"c\":\n containerSASPermissions.create = true;\n break;\n case \"w\":\n containerSASPermissions.write = true;\n break;\n case \"d\":\n containerSASPermissions.delete = true;\n break;\n case \"l\":\n containerSASPermissions.list = true;\n break;\n case \"m\":\n containerSASPermissions.move = true;\n break;\n case \"e\":\n containerSASPermissions.execute = true;\n break;\n case \"o\":\n containerSASPermissions.manageOwnership = true;\n break;\n case \"p\":\n containerSASPermissions.manageAccessControl = true;\n break;\n default:\n throw new RangeError(`Invalid permission ${char}`);\n }\n }\n\n return containerSASPermissions;\n }\n\n /**\n * Specifies Read access granted.\n */\n public read: boolean = false;\n\n /**\n * Specifies Add access granted.\n */\n public add: boolean = false;\n\n /**\n * Specifies Create access granted.\n */\n public create: boolean = false;\n\n /**\n * Specifies Write access granted.\n */\n public write: boolean = false;\n\n /**\n * Specifies Delete access granted.\n */\n public delete: boolean = false;\n\n /**\n * Specifies List access granted.\n */\n public list: boolean = false;\n\n /**\n * Specifies Move access granted.\n */\n public move: boolean = false;\n\n /**\n * Specifies Execute access granted.\n */\n public execute: boolean = false;\n\n /**\n * Specifies Ownership access granted, which allows the caller to set owner, owning group,\n * or act as the owner when renaming or deleting a blob (file or directory) within a folder\n * that has the sticky bit set.\n */\n public manageOwnership: boolean = false;\n\n /**\n * Specifies Permission access granted, which allows the caller to set permissions and\n * POSIX ACLs on blobs (files and directories).\n */\n public manageAccessControl: boolean = false;\n\n /**\n * Converts the given permissions to a string. Using this method will guarantee the permissions are in an\n * order accepted by the service.\n *\n * The order of the characters should be as specified here to ensure correctness.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n */\n public toString(): string {\n const permissions: string[] = [];\n if (this.read) {\n permissions.push(\"r\");\n }\n if (this.add) {\n permissions.push(\"a\");\n }\n if (this.create) {\n permissions.push(\"c\");\n }\n if (this.write) {\n permissions.push(\"w\");\n }\n if (this.delete) {\n permissions.push(\"d\");\n }\n if (this.list) {\n permissions.push(\"l\");\n }\n if (this.move) {\n permissions.push(\"m\");\n }\n if (this.execute) {\n permissions.push(\"e\");\n }\n if (this.manageOwnership) {\n permissions.push(\"o\");\n }\n if (this.manageAccessControl) {\n permissions.push(\"p\");\n }\n return permissions.join(\"\");\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Allowed IP range for a SAS.\n */\nexport interface SasIPRange {\n /**\n * Starting IP address in the IP range.\n * If end IP doesn't provide, start IP will the only IP allowed.\n */\n start: string;\n /**\n * Optional. IP address that ends the IP range.\n * If not provided, start IP will the only IP allowed.\n */\n end?: string;\n}\n\n/**\n * Generate SasIPRange format string. For example:\n *\n * \"8.8.8.8\" or \"1.1.1.1-255.255.255.255\"\n *\n * @param ipRange -\n */\nexport function ipRangeToString(ipRange: SasIPRange): string {\n return ipRange.end ? `${ipRange.start}-${ipRange.end}` : ipRange.start;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { UserDelegationKey } from \"../models\";\nimport type { SasIPRange } from \"./SasIPRange\";\nimport { ipRangeToString } from \"./SasIPRange\";\nimport { truncatedISO8061Date } from \"../utils/utils.common\";\n\n/**\n * Protocols for generated SAS.\n */\nexport enum SASProtocol {\n /**\n * Protocol that allows HTTPS only\n */\n Https = \"https\",\n\n /**\n * Protocol that allows both HTTPS and HTTP\n */\n HttpsAndHttp = \"https,http\",\n}\n\n/**\n * Options to construct {@link SASQueryParameters}.\n */\nexport interface SASQueryParametersOptions {\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link AccountSASPermissions}, {@link BlobSASPermissions}, or {@link ContainerSASPermissions} for\n * more details.\n */\n permissions?: string;\n /**\n * Optional. The storage services being accessed (only for Account SAS). Please refer to {@link AccountSASServices}\n * for more details.\n */\n services?: string;\n /**\n * Optional. The storage resource types being accessed (only for Account SAS). Please refer to\n * {@link AccountSASResourceTypes} for more details.\n */\n resourceTypes?: string;\n /**\n * Optional. The allowed HTTP protocol(s).\n */\n protocol?: SASProtocol;\n /**\n * Optional. The start time for this SAS token.\n */\n startsOn?: Date;\n /**\n * Optional only when identifier is provided. The expiry time for this SAS token.\n */\n expiresOn?: Date;\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n /**\n * Optional. The signed identifier (only for {@link BlobSASSignatureValues}).\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n encryptionScope?: string;\n /**\n * Optional. Specifies which resources are accessible via the SAS (only for {@link BlobSASSignatureValues}).\n * @see https://learn.microsoft.com/rest/api/storageservices/create-service-sas#specifying-the-signed-resource-blob-service-only\n */\n resource?: string;\n /**\n * Value for cache-control header in Blob/File Service SAS.\n */\n cacheControl?: string;\n /**\n * Value for content-disposition header in Blob/File Service SAS.\n */\n contentDisposition?: string;\n /**\n * Value for content-encoding header in Blob/File Service SAS.\n */\n contentEncoding?: string;\n /**\n * Value for content-length header in Blob/File Service SAS.\n */\n contentLanguage?: string;\n /**\n * Value for content-type header in Blob/File Service SAS.\n */\n contentType?: string;\n /**\n * User delegation key properties.\n */\n userDelegationKey?: UserDelegationKey;\n /**\n * Indicate the depth of the directory specified in the canonicalizedresource field of the string-to-sign.\n * The depth of the directory is the number of directories beneath the root folder.\n */\n directoryDepth?: number;\n /**\n * Authorized AAD Object ID in GUID format. The AAD Object ID of a user authorized by the owner of the User Delegation Key\n * to perform the action granted by the SAS. The Azure Storage service will ensure that the owner of the user delegation key\n * has the required permissions before granting access but no additional permission check for the user specified in\n * this value will be performed. This cannot be used in conjuction with {@link signedUnauthorizedUserObjectId}.\n * This is only used for User Delegation SAS.\n */\n preauthorizedAgentObjectId?: string;\n /**\n * Unauthorized AAD Object ID in GUID format. The AAD Object ID of a user that is assumed to be unauthorized by the owner of the User Delegation Key.\n * The Azure Storage Service will perform an additional POSIX ACL check to determine if the user is authorized to perform the requested operation.\n * This cannot be used in conjuction with {@link signedAuthorizedUserObjectId}. This is only used for User Delegation SAS.\n */\n agentObjectId?: string;\n /**\n * A GUID value that will be logged in the storage diagnostic logs and can be used to correlate SAS generation with storage resource access.\n * This is only used for User Delegation SAS.\n */\n correlationId?: string;\n}\n\n/**\n * Represents the components that make up an Azure Storage SAS' query parameters. This type is not constructed directly\n * by the user; it is only generated by the {@link AccountSASSignatureValues} and {@link BlobSASSignatureValues}\n * types. Once generated, it can be encoded into a {@link String} and appended to a URL directly (though caution should\n * be taken here in case there are existing query parameters, which might affect the appropriate means of appending\n * these query parameters).\n *\n * NOTE: Instances of this class are immutable.\n */\nexport class SASQueryParameters {\n /**\n * The storage API version.\n */\n public readonly version: string;\n\n /**\n * Optional. The allowed HTTP protocol(s).\n */\n public readonly protocol?: SASProtocol;\n\n /**\n * Optional. The start time for this SAS token.\n */\n public readonly startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The expiry time for this SAS token.\n */\n public readonly expiresOn?: Date;\n\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link AccountSASPermissions}, {@link BlobSASPermissions}, or {@link ContainerSASPermissions} for\n * more details.\n */\n public readonly permissions?: string;\n\n /**\n * Optional. The storage services being accessed (only for Account SAS). Please refer to {@link AccountSASServices}\n * for more details.\n */\n public readonly services?: string;\n\n /**\n * Optional. The storage resource types being accessed (only for Account SAS). Please refer to\n * {@link AccountSASResourceTypes} for more details.\n */\n public readonly resourceTypes?: string;\n\n /**\n * Optional. The signed identifier (only for {@link BlobSASSignatureValues}).\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n public readonly identifier?: string;\n\n /**\n * Optional. Specifies which resources are accessible via the SAS (only for {@link BlobSASSignatureValues}).\n * @see https://learn.microsoft.com/rest/api/storageservices/create-service-sas#specifying-the-signed-resource-blob-service-only\n */\n public readonly resource?: string;\n\n /**\n * The signature for the SAS token.\n */\n public readonly signature: string;\n\n /**\n * Value for cache-control header in Blob/File Service SAS.\n */\n public readonly cacheControl?: string;\n\n /**\n * Value for content-disposition header in Blob/File Service SAS.\n */\n public readonly contentDisposition?: string;\n\n /**\n * Value for content-encoding header in Blob/File Service SAS.\n */\n public readonly contentEncoding?: string;\n\n /**\n * Value for content-length header in Blob/File Service SAS.\n */\n public readonly contentLanguage?: string;\n\n /**\n * Value for content-type header in Blob/File Service SAS.\n */\n public readonly contentType?: string;\n\n /**\n * Inner value of getter ipRange.\n */\n private readonly ipRangeInner?: SasIPRange;\n\n /**\n * The Azure Active Directory object ID in GUID format.\n * Property of user delegation key.\n */\n private readonly signedOid?: string;\n\n /**\n * The Azure Active Directory tenant ID in GUID format.\n * Property of user delegation key.\n */\n private readonly signedTenantId?: string;\n\n /**\n * The date-time the key is active.\n * Property of user delegation key.\n */\n private readonly signedStartsOn?: Date;\n\n /**\n * The date-time the key expires.\n * Property of user delegation key.\n */\n private readonly signedExpiresOn?: Date;\n\n /**\n * Abbreviation of the Azure Storage service that accepts the user delegation key.\n * Property of user delegation key.\n */\n private readonly signedService?: string;\n\n /**\n * The service version that created the user delegation key.\n * Property of user delegation key.\n */\n private readonly signedVersion?: string;\n\n /**\n * Indicate the depth of the directory specified in the canonicalizedresource field of the string-to-sign.\n * The depth of the directory is the number of directories beneath the root folder.\n */\n public readonly directoryDepth?: number;\n\n /**\n * Authorized AAD Object ID in GUID format. The AAD Object ID of a user authorized by the owner of the User Delegation Key\n * to perform the action granted by the SAS. The Azure Storage service will ensure that the owner of the user delegation key\n * has the required permissions before granting access but no additional permission check for the user specified in\n * this value will be performed. This cannot be used in conjuction with {@link signedUnauthorizedUserObjectId}.\n * This is only used for User Delegation SAS.\n */\n public readonly preauthorizedAgentObjectId?: string;\n\n /**\n * Unauthorized AAD Object ID in GUID format. The AAD Object ID of a user that is assumed to be unauthorized by the owner of the User Delegation Key.\n * The Azure Storage Service will perform an additional POSIX ACL check to determine if the user is authorized to perform the requested operation.\n * This cannot be used in conjuction with {@link signedAuthorizedUserObjectId}.\n * This is only used for User Delegation SAS.\n */\n public readonly agentObjectId?: string;\n\n /**\n * A GUID value that will be logged in the storage diagnostic logs and can be used to correlate SAS generation with storage resource access.\n * This is only used for User Delegation SAS.\n */\n public readonly correlationId?: string;\n\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n public readonly encryptionScope?: string;\n\n /**\n * Optional. IP range allowed for this SAS.\n *\n * @readonly\n */\n public get ipRange(): SasIPRange | undefined {\n if (this.ipRangeInner) {\n return {\n end: this.ipRangeInner.end,\n start: this.ipRangeInner.start,\n };\n }\n return undefined;\n }\n\n /**\n * Creates an instance of SASQueryParameters.\n *\n * @param version - Representing the storage version\n * @param signature - Representing the signature for the SAS token\n * @param permissions - Representing the storage permissions\n * @param services - Representing the storage services being accessed (only for Account SAS)\n * @param resourceTypes - Representing the storage resource types being accessed (only for Account SAS)\n * @param protocol - Representing the allowed HTTP protocol(s)\n * @param startsOn - Representing the start time for this SAS token\n * @param expiresOn - Representing the expiry time for this SAS token\n * @param ipRange - Representing the range of valid IP addresses for this SAS token\n * @param identifier - Representing the signed identifier (only for Service SAS)\n * @param resource - Representing the storage container or blob (only for Service SAS)\n * @param cacheControl - Representing the cache-control header (only for Blob/File Service SAS)\n * @param contentDisposition - Representing the content-disposition header (only for Blob/File Service SAS)\n * @param contentEncoding - Representing the content-encoding header (only for Blob/File Service SAS)\n * @param contentLanguage - Representing the content-language header (only for Blob/File Service SAS)\n * @param contentType - Representing the content-type header (only for Blob/File Service SAS)\n * @param userDelegationKey - Representing the user delegation key properties\n * @param preauthorizedAgentObjectId - Representing the authorized AAD Object ID (only for User Delegation SAS)\n * @param agentObjectId - Representing the unauthorized AAD Object ID (only for User Delegation SAS)\n * @param correlationId - Representing the correlation ID (only for User Delegation SAS)\n */\n constructor(\n version: string,\n signature: string,\n permissions?: string,\n services?: string,\n resourceTypes?: string,\n protocol?: SASProtocol,\n startsOn?: Date,\n expiresOn?: Date,\n ipRange?: SasIPRange,\n identifier?: string,\n resource?: string,\n cacheControl?: string,\n contentDisposition?: string,\n contentEncoding?: string,\n contentLanguage?: string,\n contentType?: string,\n userDelegationKey?: UserDelegationKey,\n directoryDepth?: number,\n preauthorizedAgentObjectId?: string,\n agentObjectId?: string,\n correlationId?: string,\n encryptionScope?: string,\n );\n\n /**\n * Creates an instance of SASQueryParameters.\n *\n * @param version - Representing the storage version\n * @param signature - Representing the signature for the SAS token\n * @param options - Optional. Options to construct the SASQueryParameters.\n */\n constructor(version: string, signature: string, options?: SASQueryParametersOptions);\n\n constructor(\n version: string,\n signature: string,\n permissionsOrOptions?: string | SASQueryParametersOptions,\n services?: string,\n resourceTypes?: string,\n protocol?: SASProtocol,\n startsOn?: Date,\n expiresOn?: Date,\n ipRange?: SasIPRange,\n identifier?: string,\n resource?: string,\n cacheControl?: string,\n contentDisposition?: string,\n contentEncoding?: string,\n contentLanguage?: string,\n contentType?: string,\n userDelegationKey?: UserDelegationKey,\n directoryDepth?: number,\n preauthorizedAgentObjectId?: string,\n agentObjectId?: string,\n correlationId?: string,\n encryptionScope?: string,\n ) {\n this.version = version;\n this.signature = signature;\n\n if (permissionsOrOptions !== undefined && typeof permissionsOrOptions !== \"string\") {\n // SASQueryParametersOptions\n const options = permissionsOrOptions;\n this.services = options.services;\n this.resourceTypes = options.resourceTypes;\n this.expiresOn = options.expiresOn;\n this.permissions = options.permissions;\n this.protocol = options.protocol;\n this.startsOn = options.startsOn;\n this.ipRangeInner = options.ipRange;\n this.identifier = options.identifier;\n this.resource = options.resource;\n this.cacheControl = options.cacheControl;\n this.contentDisposition = options.contentDisposition;\n this.contentEncoding = options.contentEncoding;\n this.contentLanguage = options.contentLanguage;\n this.contentType = options.contentType;\n this.directoryDepth = options.directoryDepth;\n this.preauthorizedAgentObjectId = options.preauthorizedAgentObjectId;\n this.agentObjectId = options.agentObjectId;\n this.correlationId = options.correlationId;\n this.encryptionScope = options.encryptionScope;\n\n if (options.userDelegationKey) {\n this.signedOid = options.userDelegationKey.signedObjectId;\n this.signedTenantId = options.userDelegationKey.signedTenantId;\n this.signedStartsOn = options.userDelegationKey.signedStartsOn;\n this.signedExpiresOn = options.userDelegationKey.signedExpiresOn;\n this.signedService = options.userDelegationKey.signedService;\n this.signedVersion = options.userDelegationKey.signedVersion;\n }\n } else {\n this.services = services;\n this.resourceTypes = resourceTypes;\n this.expiresOn = expiresOn;\n this.permissions = permissionsOrOptions;\n this.protocol = protocol;\n this.startsOn = startsOn;\n this.ipRangeInner = ipRange;\n this.identifier = identifier;\n this.resource = resource;\n this.cacheControl = cacheControl;\n this.contentDisposition = contentDisposition;\n this.contentEncoding = contentEncoding;\n this.contentLanguage = contentLanguage;\n this.contentType = contentType;\n this.directoryDepth = directoryDepth;\n this.preauthorizedAgentObjectId = preauthorizedAgentObjectId;\n this.agentObjectId = agentObjectId;\n this.correlationId = correlationId;\n this.encryptionScope = encryptionScope;\n\n if (userDelegationKey) {\n this.signedOid = userDelegationKey.signedObjectId;\n this.signedTenantId = userDelegationKey.signedTenantId;\n this.signedStartsOn = userDelegationKey.signedStartsOn;\n this.signedExpiresOn = userDelegationKey.signedExpiresOn;\n this.signedService = userDelegationKey.signedService;\n this.signedVersion = userDelegationKey.signedVersion;\n }\n }\n }\n\n /**\n * Encodes all SAS query parameters into a string that can be appended to a URL.\n *\n */\n public toString(): string {\n const params: string[] = [\n \"sv\",\n \"ss\",\n \"srt\",\n \"spr\",\n \"st\",\n \"se\",\n \"sip\",\n \"si\",\n \"ses\",\n \"skoid\", // Signed object ID\n \"sktid\", // Signed tenant ID\n \"skt\", // Signed key start time\n \"ske\", // Signed key expiry time\n \"sks\", // Signed key service\n \"skv\", // Signed key version\n \"sr\",\n \"sp\",\n \"sig\",\n \"rscc\",\n \"rscd\",\n \"rsce\",\n \"rscl\",\n \"rsct\",\n \"sdd\",\n \"saoid\",\n \"suoid\",\n \"scid\",\n ];\n const queries: string[] = [];\n\n for (const param of params) {\n switch (param) {\n case \"sv\":\n this.tryAppendQueryParameter(queries, param, this.version);\n break;\n case \"ss\":\n this.tryAppendQueryParameter(queries, param, this.services);\n break;\n case \"srt\":\n this.tryAppendQueryParameter(queries, param, this.resourceTypes);\n break;\n case \"spr\":\n this.tryAppendQueryParameter(queries, param, this.protocol);\n break;\n case \"st\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.startsOn ? truncatedISO8061Date(this.startsOn, false) : undefined,\n );\n break;\n case \"se\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.expiresOn ? truncatedISO8061Date(this.expiresOn, false) : undefined,\n );\n break;\n case \"sip\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.ipRange ? ipRangeToString(this.ipRange) : undefined,\n );\n break;\n case \"si\":\n this.tryAppendQueryParameter(queries, param, this.identifier);\n break;\n case \"ses\":\n this.tryAppendQueryParameter(queries, param, this.encryptionScope);\n break;\n case \"skoid\": // Signed object ID\n this.tryAppendQueryParameter(queries, param, this.signedOid);\n break;\n case \"sktid\": // Signed tenant ID\n this.tryAppendQueryParameter(queries, param, this.signedTenantId);\n break;\n case \"skt\": // Signed key start time\n this.tryAppendQueryParameter(\n queries,\n param,\n this.signedStartsOn ? truncatedISO8061Date(this.signedStartsOn, false) : undefined,\n );\n break;\n case \"ske\": // Signed key expiry time\n this.tryAppendQueryParameter(\n queries,\n param,\n this.signedExpiresOn ? truncatedISO8061Date(this.signedExpiresOn, false) : undefined,\n );\n break;\n case \"sks\": // Signed key service\n this.tryAppendQueryParameter(queries, param, this.signedService);\n break;\n case \"skv\": // Signed key version\n this.tryAppendQueryParameter(queries, param, this.signedVersion);\n break;\n case \"sr\":\n this.tryAppendQueryParameter(queries, param, this.resource);\n break;\n case \"sp\":\n this.tryAppendQueryParameter(queries, param, this.permissions);\n break;\n case \"sig\":\n this.tryAppendQueryParameter(queries, param, this.signature);\n break;\n case \"rscc\":\n this.tryAppendQueryParameter(queries, param, this.cacheControl);\n break;\n case \"rscd\":\n this.tryAppendQueryParameter(queries, param, this.contentDisposition);\n break;\n case \"rsce\":\n this.tryAppendQueryParameter(queries, param, this.contentEncoding);\n break;\n case \"rscl\":\n this.tryAppendQueryParameter(queries, param, this.contentLanguage);\n break;\n case \"rsct\":\n this.tryAppendQueryParameter(queries, param, this.contentType);\n break;\n case \"sdd\":\n this.tryAppendQueryParameter(queries, param, this.directoryDepth?.toString());\n break;\n case \"saoid\":\n this.tryAppendQueryParameter(queries, param, this.preauthorizedAgentObjectId);\n break;\n case \"suoid\":\n this.tryAppendQueryParameter(queries, param, this.agentObjectId);\n break;\n case \"scid\":\n this.tryAppendQueryParameter(queries, param, this.correlationId);\n break;\n }\n }\n return queries.join(\"&\");\n }\n\n /**\n * A private helper method used to filter and append query key/value pairs into an array.\n *\n * @param queries -\n * @param key -\n * @param value -\n */\n private tryAppendQueryParameter(queries: string[], key: string, value?: string): void {\n if (!value) {\n return;\n }\n\n key = encodeURIComponent(key);\n value = encodeURIComponent(value);\n if (key.length > 0 && value.length > 0) {\n queries.push(`${key}=${value}`);\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * This is a helper class to construct a string representing the permissions granted by a ServiceSAS to a directory.\n * Setting a value to true means that any SAS which uses these permissions will grant permissions for that operation.\n * Once all the values are set, this should be serialized with toString and set as the permissions field on a\n * {@link DataLakeSASSignatureValues} object. It is possible to construct the permissions string without this class, but\n * the order of the permissions is particular and this class guarantees correctness.\n */\nexport class DirectorySASPermissions {\n /**\n * Creates an {@link DirectorySASPermissions} from the specified permissions string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid permission.\n *\n * @param permissions -\n */\n public static parse(permissions: string): DirectorySASPermissions {\n const directorySASPermissions = new DirectorySASPermissions();\n\n for (const char of permissions) {\n switch (char) {\n case \"r\":\n directorySASPermissions.read = true;\n break;\n case \"a\":\n directorySASPermissions.add = true;\n break;\n case \"c\":\n directorySASPermissions.create = true;\n break;\n case \"w\":\n directorySASPermissions.write = true;\n break;\n case \"d\":\n directorySASPermissions.delete = true;\n break;\n case \"l\":\n directorySASPermissions.list = true;\n break;\n case \"m\":\n directorySASPermissions.move = true;\n break;\n case \"e\":\n directorySASPermissions.execute = true;\n break;\n case \"o\":\n directorySASPermissions.manageOwnership = true;\n break;\n case \"p\":\n directorySASPermissions.manageAccessControl = true;\n break;\n default:\n throw new RangeError(`Invalid permission ${char}`);\n }\n }\n\n return directorySASPermissions;\n }\n\n /**\n * Specifies Read access granted.\n */\n public read: boolean = false;\n\n /**\n * Specifies Add access granted.\n */\n public add: boolean = false;\n\n /**\n * Specifies Create access granted.\n */\n public create: boolean = false;\n\n /**\n * Specifies Write access granted.\n */\n public write: boolean = false;\n\n /**\n * Specifies Delete access granted.\n */\n public delete: boolean = false;\n\n /**\n * Specifies List access granted.\n */\n public list: boolean = false;\n\n /**\n * Specifies Move access granted.\n */\n public move: boolean = false;\n\n /**\n * Specifies Execute access granted.\n */\n public execute: boolean = false;\n\n /**\n * Specifies Ownership access granted, which allows the caller to set owner, owning group,\n * or act as the owner when renaming or deleting a blob (file or directory) within a folder\n * that has the sticky bit set.\n */\n public manageOwnership: boolean = false;\n\n /**\n * Specifies Permission access granted, which allows the caller to set permissions and\n * POSIX ACLs on blobs (files and directories).\n */\n public manageAccessControl: boolean = false;\n\n /**\n * Converts the given permissions to a string. Using this method will guarantee the permissions are in an\n * order accepted by the service.\n *\n * The order of the characters should be as specified here to ensure correctness.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n */\n public toString(): string {\n const permissions: string[] = [];\n if (this.read) {\n permissions.push(\"r\");\n }\n if (this.add) {\n permissions.push(\"a\");\n }\n if (this.create) {\n permissions.push(\"c\");\n }\n if (this.write) {\n permissions.push(\"w\");\n }\n if (this.delete) {\n permissions.push(\"d\");\n }\n if (this.list) {\n permissions.push(\"l\");\n }\n if (this.move) {\n permissions.push(\"m\");\n }\n if (this.execute) {\n permissions.push(\"e\");\n }\n if (this.manageOwnership) {\n permissions.push(\"o\");\n }\n if (this.manageAccessControl) {\n permissions.push(\"p\");\n }\n return permissions.join(\"\");\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { StorageSharedKeyCredential } from \"../credentials/StorageSharedKeyCredential\";\nimport { UserDelegationKeyCredential } from \"../credentials/UserDelegationKeyCredential\";\nimport { DataLakeSASPermissions } from \"./DataLakeSASPermissions\";\nimport { FileSystemSASPermissions } from \"./FileSystemSASPermissions\";\nimport type { UserDelegationKey } from \"../models\";\nimport type { SasIPRange } from \"./SasIPRange\";\nimport { ipRangeToString } from \"./SasIPRange\";\nimport type { SASProtocol } from \"./SASQueryParameters\";\nimport { SASQueryParameters } from \"./SASQueryParameters\";\nimport { SERVICE_VERSION } from \"../utils/constants\";\nimport { truncatedISO8061Date } from \"../utils/utils.common\";\nimport { DirectorySASPermissions } from \"./DirectorySASPermissions\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * DataLakeSASSignatureValues is used to help generating Blob and DataLake service SAS tokens for containers, blobs, filesystem, directories and files.\n */\nexport interface DataLakeSASSignatureValues {\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols, HTTPS only or HTTPSandHTTP\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The time after which the SAS will no longer work.\n */\n expiresOn?: Date;\n\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link FileSystemSASPermissions}, {@link DirectorySASPermissions} or {@link DataLakeSASPermissions} depending on the resource\n * being accessed for help constructing the permissions string.\n */\n permissions?: DataLakeSASPermissions | DirectorySASPermissions | FileSystemSASPermissions;\n\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n\n /**\n * The name of the file system the SAS user may access.\n */\n fileSystemName: string;\n\n /**\n * Optional. The path name of the directory or file SAS user may access. Required if snapshotTime is provided.\n */\n pathName?: string;\n\n /**\n * Optional. Beginning in version 2020-02-10, this value defines whether or not the {@link pathName} is a directory.\n * If this value is set to true, the Path is a Directory for a Directory SAS. If set to false or default, the Path\n * is a File Path for a File Path SAS.\n */\n isDirectory?: boolean;\n\n /**\n * Optional. Beginning in version 2020-02-10, indicate the depth of the directory specified in the canonicalizedresource field of the string-to-sign.\n * The depth of the directory is the number of directories beneath the root folder.\n */\n directoryDepth?: number;\n\n /**\n * Optional. Beginning in version 2020-02-10, specifies the Authorized AAD Object Id in GUID format. The AAD Object ID of a user\n * authorized by the owner of the user delegation key to perform the action granted by the SAS. The Azure Storage service will\n * ensure that the owner of the user delegation key has the required permissions before granting access but no additional permission\n * check for the user specified in this value will be performed. This cannot be used in conjuction with {@link agentObjectId}.\n * This is only used for User Delegation SAS.\n */\n preauthorizedAgentObjectId?: string;\n\n /**\n * Optional. Beginning in version 2020-02-10, specifies the Unauthorized AAD Object Id in GUID format. The AAD Object Id of a user that is assumed\n * to be unauthorized by the owner of the user delegation key. The Azure Storage Service will perform an additional POSIX ACL check to determine\n * if the user is authorized to perform the requested operation. This cannot be used in conjuction with {@link preauthorizedAgentObjectId}.\n * This is only used for User Delegation SAS.\n */\n agentObjectId?: string;\n\n /**\n * Optional. Beginning in version 2020-02-10, this is a GUID value that will be logged in the storage diagnostic logs and can be used to\n * correlate SAS generation with storage resource access. This is only used for User Delegation SAS.\n */\n correlationId?: string;\n\n /**\n * Optional. Snapshot timestamp string the SAS user may access. Only supported from API version 2018-11-09.\n */\n snapshotTime?: string;\n\n /**\n * Optional. The name of the access policy on the file system this SAS references if any.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n encryptionScope?: string;\n\n /**\n * Optional. The cache-control header for the SAS.\n */\n cacheControl?: string;\n\n /**\n * Optional. The content-disposition header for the SAS.\n */\n contentDisposition?: string;\n\n /**\n * Optional. The content-encoding header for the SAS.\n */\n contentEncoding?: string;\n\n /**\n * Optional. The content-language header for the SAS.\n */\n contentLanguage?: string;\n\n /**\n * Optional. The content-type header for the SAS.\n */\n contentType?: string;\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn and identifier.\n *\n * WARNING: When identifier is not provided, permissions and expiresOn are required.\n * You MUST assign value to identifier or expiresOn & permissions manually if you initial with\n * this constructor.\n *\n * Fill in the required details before running the following snippets.\n * @example\n * ```js\n * // Generate service level SAS for a file system\n * const containerSAS = generateDataLakeSASQueryParameters({\n * fileSystemName, // Required\n * permissions: ContainerSASPermissions.parse(\"racwdl\"), // Required\n * startsOn: new Date(), // Optional\n * expiresOn: new Date(new Date().valueOf() + 86400), // Required. Date type\n * ipRange: { start: \"0.0.0.0\", end: \"255.255.255.255\" }, // Optional\n * protocol: SASProtocol.HttpsAndHttp, // Optional\n * version: \"2016-05-31\" // Optional\n * },\n * sharedKeyCredential // StorageSharedKeyCredential - `new StorageSharedKeyCredential(account, accountKey)`\n * ).toString();\n * ```\n *\n * // Fill in the required details before running the snippet.\n * @example\n * ```js\n * // Generate service level SAS for a file\n * const fileSAS = generateDataLakeSASQueryParameters({\n * fileSystemName, // Required\n * fileName, // Required\n * permissions: DataLakeSASPermissions.parse(\"racwd\"), // Required\n * startsOn: new Date(), // Optional\n * expiresOn: new Date(new Date().valueOf() + 86400), // Required. Date type\n * cacheControl: \"cache-control-override\", // Optional\n * contentDisposition: \"content-disposition-override\", // Optional\n * contentEncoding: \"content-encoding-override\", // Optional\n * contentLanguage: \"content-language-override\", // Optional\n * contentType: \"content-type-override\", // Optional\n * ipRange: { start: \"0.0.0.0\", end: \"255.255.255.255\" }, // Optional\n * protocol: SASProtocol.HttpsAndHttp, // Optional\n * version: \"2016-05-31\" // Optional\n * },\n * sharedKeyCredential // StorageSharedKeyCredential - `new StorageSharedKeyCredential(account, accountKey)`\n * ).toString();\n * ```\n *\n * @param dataLakeSASSignatureValues -\n * @param sharedKeyCredential -\n */\nexport function generateDataLakeSASQueryParameters(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): SASQueryParameters;\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Creates an instance of SASQueryParameters.\n * WARNING: identifier will be ignored when generating user delegation SAS, permissions and expiresOn are required.\n *\n * @example\n * ```js\n * // Generate user delegation SAS for a file system\n * const userDelegationKey = await dataLakeServiceClient.getUserDelegationKey(startsOn, expiresOn);\n * const fileSystemSAS = generateDataLakeSASQueryParameters({\n * fileSystemName, // Required\n * permissions: FileSystemSASPermissions.parse(\"racwdl\"), // Required\n * startsOn, // Optional. Date type\n * expiresOn, // Required. Date type\n * ipRange: { start: \"0.0.0.0\", end: \"255.255.255.255\" }, // Optional\n * protocol: SASProtocol.HttpsAndHttp, // Optional\n * version: \"2018-11-09\" // Must greater than or equal to 2018-11-09 to generate user delegation SAS\n * },\n * userDelegationKey, // UserDelegationKey\n * accountName\n * ).toString();\n * ```\n *\n * @param dataLakeSASSignatureValues -\n * @param userDelegationKey - Return value of `blobServiceClient.getUserDelegationKey()`\n * @param accountName -\n */\nexport function generateDataLakeSASQueryParameters(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n userDelegationKey: UserDelegationKey,\n accountName: string,\n): SASQueryParameters;\n\nexport function generateDataLakeSASQueryParameters(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredentialOrUserDelegationKey: StorageSharedKeyCredential | UserDelegationKey,\n accountName?: string,\n): SASQueryParameters {\n return generateDataLakeSASQueryParametersInternal(\n dataLakeSASSignatureValues,\n sharedKeyCredentialOrUserDelegationKey,\n accountName,\n ).sasQueryParameter;\n}\n\nexport function generateDataLakeSASQueryParametersInternal(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredentialOrUserDelegationKey: StorageSharedKeyCredential | UserDelegationKey,\n accountName?: string,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n\n const sharedKeyCredential =\n sharedKeyCredentialOrUserDelegationKey instanceof StorageSharedKeyCredential\n ? sharedKeyCredentialOrUserDelegationKey\n : undefined;\n let userDelegationKeyCredential: UserDelegationKeyCredential | undefined;\n\n if (sharedKeyCredential === undefined && accountName !== undefined) {\n userDelegationKeyCredential = new UserDelegationKeyCredential(\n accountName,\n sharedKeyCredentialOrUserDelegationKey as UserDelegationKey,\n );\n }\n\n if (sharedKeyCredential === undefined && userDelegationKeyCredential === undefined) {\n throw TypeError(\"Invalid sharedKeyCredential, userDelegationKey or accountName.\");\n }\n\n // Version 2020-12-06 adds support for encryptionscope in SAS.\n if (version >= \"2020-12-06\") {\n if (sharedKeyCredential !== undefined) {\n return generateBlobSASQueryParameters20201206(\n dataLakeSASSignatureValues,\n sharedKeyCredential,\n );\n } else {\n return generateBlobSASQueryParametersUDK20201206(\n dataLakeSASSignatureValues,\n userDelegationKeyCredential!,\n );\n }\n }\n\n // Version 2018-11-09 adds support for the signed resource and signed blob snapshot time fields.\n // https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas#constructing-the-signature-string\n if (version >= \"2018-11-09\") {\n if (sharedKeyCredential !== undefined) {\n return generateBlobSASQueryParameters20181109(\n dataLakeSASSignatureValues,\n sharedKeyCredential,\n );\n } else {\n // Version 2020-02-10 delegation SAS signature construction includes preauthorizedAgentObjectId, agentObjectId, correlationId.\n if (version >= \"2020-02-10\") {\n return generateBlobSASQueryParametersUDK20200210(\n dataLakeSASSignatureValues,\n userDelegationKeyCredential!,\n );\n } else {\n return generateBlobSASQueryParametersUDK20181109(\n dataLakeSASSignatureValues,\n userDelegationKeyCredential!,\n );\n }\n }\n }\n\n if (version >= \"2015-04-05\") {\n if (sharedKeyCredential !== undefined) {\n return generateBlobSASQueryParameters20150405(\n dataLakeSASSignatureValues,\n sharedKeyCredential,\n );\n } else {\n throw new RangeError(\n \"'version' must be >= '2018-11-09' when generating user delegation SAS using user delegation key.\",\n );\n }\n }\n\n throw new RangeError(\"'version' must be >= '2015-04-05'.\");\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2015-04-05 AND BEFORE 2018-11-09.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn and identifier.\n *\n * WARNING: When identifier is not provided, permissions and expiresOn are required.\n * You MUST assign value to identifier or expiresOn & permissions manually if you initial with\n * this constructor.\n *\n * @param dataLakeSASSignatureValues -\n * @param sharedKeyCredential -\n */\nfunction generateBlobSASQueryParameters20150405(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (\n !dataLakeSASSignatureValues.identifier &&\n !(dataLakeSASSignatureValues.permissions && dataLakeSASSignatureValues.expiresOn)\n ) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for DataLake SAS generation when 'identifier' is not provided.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n resource = \"b\";\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n sharedKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\n ),\n dataLakeSASSignatureValues.identifier,\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n dataLakeSASSignatureValues.cacheControl ? dataLakeSASSignatureValues.cacheControl : \"\",\n dataLakeSASSignatureValues.contentDisposition\n ? dataLakeSASSignatureValues.contentDisposition\n : \"\",\n dataLakeSASSignatureValues.contentEncoding ? dataLakeSASSignatureValues.contentEncoding : \"\",\n dataLakeSASSignatureValues.contentLanguage ? dataLakeSASSignatureValues.contentLanguage : \"\",\n dataLakeSASSignatureValues.contentType ? dataLakeSASSignatureValues.contentType : \"\",\n ].join(\"\\n\");\n\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n ),\n stringToSign: stringToSign,\n };\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2018-11-09.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn and identifier.\n *\n * WARNING: When identifier is not provided, permissions and expiresOn are required.\n * You MUST assign value to identifier or expiresOn & permissions manually if you initial with\n * this constructor.\n *\n * @param dataLakeSASSignatureValues -\n * @param sharedKeyCredential -\n */\nfunction generateBlobSASQueryParameters20181109(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (\n !dataLakeSASSignatureValues.identifier &&\n !(dataLakeSASSignatureValues.permissions && dataLakeSASSignatureValues.expiresOn)\n ) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n resource = \"d\";\n } else {\n resource = \"b\";\n if (dataLakeSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n verifiedPermissions = DirectorySASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n sharedKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\n ),\n dataLakeSASSignatureValues.identifier,\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n resource,\n dataLakeSASSignatureValues.snapshotTime,\n dataLakeSASSignatureValues.cacheControl ? dataLakeSASSignatureValues.cacheControl : \"\",\n dataLakeSASSignatureValues.contentDisposition\n ? dataLakeSASSignatureValues.contentDisposition\n : \"\",\n dataLakeSASSignatureValues.contentEncoding ? dataLakeSASSignatureValues.contentEncoding : \"\",\n dataLakeSASSignatureValues.contentLanguage ? dataLakeSASSignatureValues.contentLanguage : \"\",\n dataLakeSASSignatureValues.contentType ? dataLakeSASSignatureValues.contentType : \"\",\n ].join(\"\\n\");\n\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n undefined,\n dataLakeSASSignatureValues.directoryDepth,\n ),\n stringToSign: stringToSign,\n };\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2018-11-09.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn.\n *\n * WARNING: identifier will be ignored, permissions and expiresOn are required.\n *\n * @param dataLakeSASSignatureValues -\n * @param userDelegationKeyCredential -\n */\nfunction generateBlobSASQueryParametersUDK20181109(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n userDelegationKeyCredential: UserDelegationKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (!dataLakeSASSignatureValues.permissions || !dataLakeSASSignatureValues.expiresOn) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n resource = \"d\";\n } else {\n resource = \"b\";\n if (dataLakeSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n verifiedPermissions = DirectorySASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n userDelegationKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\n ),\n userDelegationKeyCredential.userDelegationKey.signedObjectId,\n userDelegationKeyCredential.userDelegationKey.signedTenantId,\n userDelegationKeyCredential.userDelegationKey.signedStartsOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedStartsOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedExpiresOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedExpiresOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedService,\n userDelegationKeyCredential.userDelegationKey.signedVersion,\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n resource,\n dataLakeSASSignatureValues.snapshotTime,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n ].join(\"\\n\");\n\n const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n userDelegationKeyCredential.userDelegationKey,\n dataLakeSASSignatureValues.directoryDepth,\n dataLakeSASSignatureValues.preauthorizedAgentObjectId,\n dataLakeSASSignatureValues.agentObjectId,\n dataLakeSASSignatureValues.correlationId,\n ),\n stringToSign: stringToSign,\n };\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2020-02-10.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn.\n *\n * WARNING: identifier will be ignored, permissions and expiresOn are required.\n *\n * @param dataLakeSASSignatureValues -\n * @param userDelegationKeyCredential -\n */\nfunction generateBlobSASQueryParametersUDK20200210(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n userDelegationKeyCredential: UserDelegationKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (!dataLakeSASSignatureValues.permissions || !dataLakeSASSignatureValues.expiresOn) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n resource = \"d\";\n } else {\n resource = \"b\";\n if (dataLakeSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n verifiedPermissions = DirectorySASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n userDelegationKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\n ),\n userDelegationKeyCredential.userDelegationKey.signedObjectId,\n userDelegationKeyCredential.userDelegationKey.signedTenantId,\n userDelegationKeyCredential.userDelegationKey.signedStartsOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedStartsOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedExpiresOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedExpiresOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedService,\n userDelegationKeyCredential.userDelegationKey.signedVersion,\n dataLakeSASSignatureValues.preauthorizedAgentObjectId,\n dataLakeSASSignatureValues.agentObjectId,\n dataLakeSASSignatureValues.correlationId,\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n resource,\n dataLakeSASSignatureValues.snapshotTime,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n ].join(\"\\n\");\n\n const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n userDelegationKeyCredential.userDelegationKey,\n dataLakeSASSignatureValues.directoryDepth,\n dataLakeSASSignatureValues.preauthorizedAgentObjectId,\n dataLakeSASSignatureValues.agentObjectId,\n dataLakeSASSignatureValues.correlationId,\n ),\n stringToSign: stringToSign,\n };\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2020-12-06.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn and identifier.\n *\n * WARNING: When identifier is not provided, permissions and expiresOn are required.\n * You MUST assign value to identifier or expiresOn & permissions manually if you initial with\n * this constructor.\n *\n * @param dataLakeSASSignatureValues -\n * @param sharedKeyCredential -\n */\nfunction generateBlobSASQueryParameters20201206(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (\n !dataLakeSASSignatureValues.identifier &&\n !(dataLakeSASSignatureValues.permissions && dataLakeSASSignatureValues.expiresOn)\n ) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n resource = \"d\";\n } else {\n resource = \"b\";\n if (dataLakeSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n verifiedPermissions = DirectorySASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n sharedKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\n ),\n dataLakeSASSignatureValues.identifier,\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n resource,\n dataLakeSASSignatureValues.snapshotTime,\n dataLakeSASSignatureValues.encryptionScope ? dataLakeSASSignatureValues.encryptionScope : \"\",\n dataLakeSASSignatureValues.cacheControl ? dataLakeSASSignatureValues.cacheControl : \"\",\n dataLakeSASSignatureValues.contentDisposition\n ? dataLakeSASSignatureValues.contentDisposition\n : \"\",\n dataLakeSASSignatureValues.contentEncoding ? dataLakeSASSignatureValues.contentEncoding : \"\",\n dataLakeSASSignatureValues.contentLanguage ? dataLakeSASSignatureValues.contentLanguage : \"\",\n dataLakeSASSignatureValues.contentType ? dataLakeSASSignatureValues.contentType : \"\",\n ].join(\"\\n\");\n\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n undefined,\n dataLakeSASSignatureValues.directoryDepth,\n undefined,\n undefined,\n undefined,\n dataLakeSASSignatureValues.encryptionScope,\n ),\n stringToSign: stringToSign,\n };\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2020-12-06.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn.\n *\n * WARNING: identifier will be ignored, permissions and expiresOn are required.\n *\n * @param dataLakeSASSignatureValues -\n * @param userDelegationKeyCredential -\n */\nfunction generateBlobSASQueryParametersUDK20201206(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n userDelegationKeyCredential: UserDelegationKeyCredential,\n): { sasQueryParameter: SASQueryParameters; stringToSign: string } {\n if (!dataLakeSASSignatureValues.permissions || !dataLakeSASSignatureValues.expiresOn) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.\",\n );\n }\n\n const version = dataLakeSASSignatureValues.version\n ? dataLakeSASSignatureValues.version\n : SERVICE_VERSION;\n dataLakeSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues,\n version,\n );\n\n let resource: string = \"c\";\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n resource = \"d\";\n } else {\n resource = \"b\";\n if (dataLakeSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n }\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (dataLakeSASSignatureValues.permissions) {\n if (dataLakeSASSignatureValues.pathName) {\n if (dataLakeSASSignatureValues.isDirectory) {\n verifiedPermissions = DirectorySASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n } else {\n verifiedPermissions = DataLakeSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n } else {\n verifiedPermissions = FileSystemSASPermissions.parse(\n dataLakeSASSignatureValues.permissions.toString(),\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n dataLakeSASSignatureValues.startsOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.startsOn, false)\n : \"\",\n dataLakeSASSignatureValues.expiresOn\n ? truncatedISO8061Date(dataLakeSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n userDelegationKeyCredential.accountName,\n dataLakeSASSignatureValues.fileSystemName,\n dataLakeSASSignatureValues.pathName,\n ),\n userDelegationKeyCredential.userDelegationKey.signedObjectId,\n userDelegationKeyCredential.userDelegationKey.signedTenantId,\n userDelegationKeyCredential.userDelegationKey.signedStartsOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedStartsOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedExpiresOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedExpiresOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedService,\n userDelegationKeyCredential.userDelegationKey.signedVersion,\n dataLakeSASSignatureValues.preauthorizedAgentObjectId,\n dataLakeSASSignatureValues.agentObjectId,\n dataLakeSASSignatureValues.correlationId,\n dataLakeSASSignatureValues.ipRange ? ipRangeToString(dataLakeSASSignatureValues.ipRange) : \"\",\n dataLakeSASSignatureValues.protocol ? dataLakeSASSignatureValues.protocol : \"\",\n version,\n resource,\n dataLakeSASSignatureValues.snapshotTime,\n dataLakeSASSignatureValues.encryptionScope,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n ].join(\"\\n\");\n\n const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameter: new SASQueryParameters(\n version,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n dataLakeSASSignatureValues.protocol,\n dataLakeSASSignatureValues.startsOn,\n dataLakeSASSignatureValues.expiresOn,\n dataLakeSASSignatureValues.ipRange,\n dataLakeSASSignatureValues.identifier,\n resource,\n dataLakeSASSignatureValues.cacheControl,\n dataLakeSASSignatureValues.contentDisposition,\n dataLakeSASSignatureValues.contentEncoding,\n dataLakeSASSignatureValues.contentLanguage,\n dataLakeSASSignatureValues.contentType,\n userDelegationKeyCredential.userDelegationKey,\n dataLakeSASSignatureValues.directoryDepth,\n dataLakeSASSignatureValues.preauthorizedAgentObjectId,\n dataLakeSASSignatureValues.agentObjectId,\n dataLakeSASSignatureValues.correlationId,\n dataLakeSASSignatureValues.encryptionScope,\n ),\n stringToSign: stringToSign,\n };\n}\n\nfunction getCanonicalName(accountName: string, containerName: string, blobName?: string): string {\n // FileSystem: \"/blob/account/fileSystemName\"\n // File: \"/blob/account/fileSystemName/fileName\"\n const elements: string[] = [`/blob/${accountName}/${containerName}`];\n if (blobName) {\n elements.push(`/${blobName}`);\n }\n return elements.join(\"\");\n}\n\nfunction SASSignatureValuesSanityCheckAndAutofill(\n dataLakeSASSignatureValues: DataLakeSASSignatureValues,\n version: string,\n): DataLakeSASSignatureValues {\n if (\n version < \"2020-02-10\" &&\n (dataLakeSASSignatureValues.isDirectory || dataLakeSASSignatureValues.directoryDepth)\n ) {\n throw RangeError(\"'version' must be >= '2020-02-10' to support directory SAS.\");\n }\n if (dataLakeSASSignatureValues.isDirectory && dataLakeSASSignatureValues.pathName === undefined) {\n throw RangeError(\"Must provide 'pathName' when 'isDirectory' is true.\");\n }\n if (\n dataLakeSASSignatureValues.directoryDepth !== undefined &&\n (!Number.isInteger(dataLakeSASSignatureValues.directoryDepth) ||\n dataLakeSASSignatureValues.directoryDepth < 0)\n ) {\n throw RangeError(\"'directoryDepth' must be a non-negative interger.\");\n }\n if (\n dataLakeSASSignatureValues.isDirectory &&\n dataLakeSASSignatureValues.directoryDepth === undefined\n ) {\n // calculate directoryDepth from pathName\n if (dataLakeSASSignatureValues.pathName === \"/\") {\n dataLakeSASSignatureValues.directoryDepth = 0;\n } else {\n dataLakeSASSignatureValues.directoryDepth = dataLakeSASSignatureValues.pathName\n ?.split(\"/\")\n .filter((x) => x !== \"\").length;\n }\n }\n\n if (\n version < \"2020-02-10\" &&\n dataLakeSASSignatureValues.permissions &&\n (dataLakeSASSignatureValues.permissions.move ||\n dataLakeSASSignatureValues.permissions.execute ||\n dataLakeSASSignatureValues.permissions.manageOwnership ||\n dataLakeSASSignatureValues.permissions.manageAccessControl)\n ) {\n throw RangeError(\"'version' must be >= '2020-02-10' when providing m, e, o or p permission.\");\n }\n\n if (\n version < \"2020-02-10\" &&\n (dataLakeSASSignatureValues.preauthorizedAgentObjectId ||\n dataLakeSASSignatureValues.agentObjectId ||\n dataLakeSASSignatureValues.correlationId)\n ) {\n throw RangeError(\n \"'version' must be >= '2020-02-10' when providing 'preauthorizedAgentObjectId', 'agentObjectId' or 'correlationId'.\",\n );\n }\n if (\n dataLakeSASSignatureValues.preauthorizedAgentObjectId &&\n dataLakeSASSignatureValues.agentObjectId\n ) {\n throw RangeError(\n \"'preauthorizedAgentObjectId' or 'agentObjectId' shouldn't be specified at the same time.\",\n );\n }\n\n if (dataLakeSASSignatureValues.snapshotTime && version < \"2018-11-09\") {\n throw RangeError(\"'version' must be >= '2018-11-09' when provided 'snapshotTime'.\");\n }\n if (\n dataLakeSASSignatureValues.pathName === undefined &&\n dataLakeSASSignatureValues.snapshotTime\n ) {\n throw RangeError(\"Must provide 'blobName' when provided 'snapshotTime'.\");\n }\n\n return dataLakeSASSignatureValues;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// In browser, during webpack or browserify bundling, this module will be replaced by 'events'\n// https://github.com/Gozala/events\nimport { EventEmitter } from \"events\";\n\n/**\n * Operation is an async function to be executed and managed by Batch.\n */\nexport declare type Operation = () => Promise<any>;\n\n/**\n * States for Batch.\n */\nenum BatchStates {\n Good,\n Error,\n}\n\n/**\n * Batch provides basic parallel execution with concurrency limits.\n * Will stop execute left operations when one of the executed operation throws an error.\n * But Batch cannot cancel ongoing operations, you need to cancel them by yourself.\n */\nexport class Batch {\n /**\n * Concurrency. Must be lager than 0.\n */\n private concurrency: number;\n\n /**\n * Number of active operations under execution.\n */\n private actives: number = 0;\n\n /**\n * Number of completed operations under execution.\n */\n private completed: number = 0;\n\n /**\n * Offset of next operation to be executed.\n */\n private offset: number = 0;\n\n /**\n * Operation array to be executed.\n */\n private operations: Operation[] = [];\n\n /**\n * States of Batch. When an error happens, state will turn into error.\n * Batch will stop execute left operations.\n */\n private state: BatchStates = BatchStates.Good;\n\n /**\n * A private emitter used to pass events inside this class.\n */\n private emitter: EventEmitter;\n\n /**\n * Creates an instance of Batch.\n * @param concurrency -\n */\n public constructor(concurrency: number = 5) {\n if (concurrency < 1) {\n throw new RangeError(\"concurrency must be larger than 0\");\n }\n this.concurrency = concurrency;\n this.emitter = new EventEmitter();\n }\n\n /**\n * Add a operation into queue.\n *\n * @param operation -\n */\n public addOperation(operation: Operation): void {\n this.operations.push(async () => {\n try {\n this.actives++;\n await operation();\n this.actives--;\n this.completed++;\n this.parallelExecute();\n } catch (error: any) {\n this.emitter.emit(\"error\", error);\n }\n });\n }\n\n /**\n * Start execute operations in the queue.\n *\n */\n public async do(): Promise<void> {\n if (this.operations.length === 0) {\n return Promise.resolve();\n }\n this.parallelExecute();\n\n return new Promise<void>((resolve, reject) => {\n this.emitter.on(\"finish\", resolve);\n\n this.emitter.on(\"error\", (error) => {\n this.state = BatchStates.Error;\n reject(error);\n });\n });\n }\n\n /**\n * Get next operation to be executed. Return null when reaching ends.\n *\n */\n private nextOperation(): Operation | null {\n if (this.offset < this.operations.length) {\n return this.operations[this.offset++];\n }\n return null;\n }\n\n /**\n * Start execute operations. One one the most important difference between\n * this method with do() is that do() wraps as an sync method.\n *\n */\n private parallelExecute(): void {\n if (this.state === BatchStates.Error) {\n return;\n }\n\n if (this.completed >= this.operations.length) {\n this.emitter.emit(\"finish\");\n return;\n }\n\n while (this.actives < this.concurrency) {\n const operation = this.nextOperation();\n if (operation) {\n operation();\n } else {\n return;\n }\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { RestError } from \"@azure/core-rest-pipeline\";\n\n/**\n * An error thrown when an operation is interrupted and can be continued later on.\n */\nexport class DataLakeAclChangeFailedError extends Error {\n /**\n * Continuation token to continue next batch of operations.\n */\n public continuationToken?: string;\n\n /**\n * Internal error.\n */\n public innerError: RestError | Error;\n\n constructor(error: RestError | Error, continuationToken?: string) {\n super(error.message);\n this.name = \"DataLakeAclChangeFailedError\";\n this.innerError = error;\n this.continuationToken = continuationToken;\n Object.setPrototypeOf(this, DataLakeAclChangeFailedError.prototype);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport * as fs from \"fs\";\nimport * as util from \"util\";\n\n/**\n * Reads a readable stream into buffer. Fill the buffer from offset to end.\n *\n * @param stream - A Node.js Readable stream\n * @param buffer - Buffer to be filled, length must greater than or equal to offset\n * @param offset - From which position in the buffer to be filled, inclusive\n * @param end - To which position in the buffer to be filled, exclusive\n * @param encoding - Encoding of the Readable stream\n */\nexport async function streamToBuffer(\n stream: NodeJS.ReadableStream,\n buffer: Buffer,\n offset: number,\n end: number,\n encoding?: BufferEncoding,\n): Promise<void> {\n let pos = 0; // Position in stream\n const count = end - offset; // Total amount of data needed in stream\n\n return new Promise<void>((resolve, reject) => {\n stream.on(\"readable\", () => {\n if (pos >= count) {\n resolve();\n return;\n }\n\n let chunk = stream.read();\n if (!chunk) {\n return;\n }\n if (typeof chunk === \"string\") {\n chunk = Buffer.from(chunk, encoding);\n }\n\n // How much data needed in this chunk\n const chunkLength = pos + chunk.length > count ? count - pos : chunk.length;\n\n buffer.fill(chunk.slice(0, chunkLength), offset + pos, offset + pos + chunkLength);\n pos += chunkLength;\n });\n\n stream.on(\"end\", () => {\n if (pos < count) {\n reject(\n new Error(\n `Stream drains before getting enough data needed. Data read: ${pos}, data need: ${count}`,\n ),\n );\n }\n resolve();\n });\n\n stream.on(\"error\", reject);\n });\n}\n\n/**\n * Reads a readable stream into buffer entirely.\n *\n * @param stream - A Node.js Readable stream\n * @param buffer - Buffer to be filled, length must greater than or equal to offset\n * @param encoding - Encoding of the Readable stream\n * @returns with the count of bytes read.\n * @throws `RangeError` If buffer size is not big enough.\n */\nexport async function streamToBuffer2(\n stream: NodeJS.ReadableStream,\n buffer: Buffer,\n encoding?: BufferEncoding,\n): Promise<number> {\n let pos = 0; // Position in stream\n const bufferSize = buffer.length;\n\n return new Promise<number>((resolve, reject) => {\n stream.on(\"readable\", () => {\n let chunk = stream.read();\n if (!chunk) {\n return;\n }\n if (typeof chunk === \"string\") {\n chunk = Buffer.from(chunk, encoding);\n }\n\n if (pos + chunk.length > bufferSize) {\n reject(new Error(`Stream exceeds buffer size. Buffer size: ${bufferSize}`));\n return;\n }\n\n buffer.fill(chunk, pos, pos + chunk.length);\n pos += chunk.length;\n });\n\n stream.on(\"end\", () => {\n resolve(pos);\n });\n\n stream.on(\"error\", reject);\n });\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Promisified version of fs.stat().\n */\nexport const fsStat = util.promisify(fs.stat);\n\nexport const fsCreateReadStream = fs.createReadStream;\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\nimport type { RequestBodyType as HttpRequestBody } from \"@azure/core-rest-pipeline\";\nimport { isNode } from \"@azure/core-util\";\nimport type { Pipeline, StoragePipelineOptions } from \"./Pipeline\";\nimport { isPipelineLike, newPipeline } from \"./Pipeline\";\nimport { BlobClient, BlockBlobClient } from \"@azure/storage-blob\";\nimport { AnonymousCredential } from \"@azure/storage-blob\";\nimport { StorageSharedKeyCredential } from \"./credentials/StorageSharedKeyCredential\";\nimport type { Readable } from \"stream\";\n\nimport { BufferScheduler } from \"../../storage-common/src\";\nimport { DataLakeLeaseClient } from \"./DataLakeLeaseClient\";\nimport { PathOperationsImpl as Path } from \"./generated/src/operations\";\nimport type {\n AccessControlChanges,\n DirectoryCreateIfNotExistsOptions,\n DirectoryCreateIfNotExistsResponse,\n DirectoryCreateOptions,\n DirectoryCreateResponse,\n DirectoryGenerateSasUrlOptions,\n FileAppendOptions,\n FileAppendResponse,\n FileCreateIfNotExistsOptions,\n FileCreateIfNotExistsResponse,\n FileCreateOptions,\n FileCreateResponse,\n FileExpiryMode,\n FileFlushOptions,\n FileFlushResponse,\n FileGenerateSasUrlOptions,\n FileParallelUploadOptions,\n FileQueryOptions,\n FileReadOptions,\n FileReadResponse,\n FileReadToBufferOptions,\n FileSetExpiryOptions,\n FileSetExpiryResponse,\n FileUploadResponse,\n Metadata,\n PathAccessControlItem,\n PathChangeAccessControlRecursiveOptions,\n PathChangeAccessControlRecursiveResponse,\n PathCreateIfNotExistsOptions,\n PathCreateIfNotExistsResponse,\n PathCreateOptions,\n PathCreateResponse,\n PathDeleteIfExistsResponse,\n PathDeleteOptions,\n PathDeleteResponse,\n PathExistsOptions,\n PathGetAccessControlOptions,\n PathGetAccessControlResponse,\n PathGetPropertiesOptions,\n PathGetPropertiesResponse,\n PathHttpHeaders,\n PathMoveOptions,\n PathMoveResponse,\n PathPermissions,\n PathResourceTypeModel,\n PathSetAccessControlOptions,\n PathSetAccessControlResponse,\n PathSetHttpHeadersOptions,\n PathSetHttpHeadersResponse,\n PathSetMetadataOptions,\n PathSetMetadataResponse,\n PathSetPermissionsOptions,\n PathSetPermissionsResponse,\n RemovePathAccessControlItem,\n UserDelegationKey,\n} from \"./models\";\nimport type { PathSetAccessControlRecursiveMode } from \"./models.internal\";\nimport {\n generateDataLakeSASQueryParameters,\n generateDataLakeSASQueryParametersInternal,\n} from \"./sas/DataLakeSASSignatureValues\";\nimport { StorageClient } from \"./StorageClient\";\nimport {\n toAccessControlChangeFailureArray,\n toAcl,\n toAclString,\n toBlobCpkInfo,\n toPermissions,\n toPermissionsString,\n toProperties,\n} from \"./transforms\";\nimport { Batch } from \"./utils/Batch\";\nimport {\n BLOCK_BLOB_MAX_BLOCKS,\n DEFAULT_HIGH_LEVEL_CONCURRENCY,\n ETagAny,\n FILE_MAX_SINGLE_UPLOAD_THRESHOLD,\n FILE_MAX_SIZE_BYTES,\n FILE_UPLOAD_DEFAULT_CHUNK_SIZE,\n FILE_UPLOAD_MAX_CHUNK_SIZE,\n} from \"./utils/constants\";\nimport { DataLakeAclChangeFailedError } from \"./utils/DataLakeAclChangeFailedError\";\nimport { tracingClient } from \"./utils/tracing\";\nimport {\n appendToURLPath,\n appendToURLQuery,\n assertResponse,\n ensureCpkIfSpecified,\n getURLPathAndQuery,\n ParsePathGetPropertiesExtraHeaderValues,\n setURLPath,\n setURLQueries,\n} from \"./utils/utils.common\";\nimport { fsCreateReadStream, fsStat } from \"./utils/utils.node\";\nimport type {\n PathAppendDataHeaders,\n PathCreateHeaders,\n PathDeleteHeaders,\n PathFlushDataHeaders,\n PathGetPropertiesHeaders,\n PathSetAccessControlHeaders,\n PathSetExpiryHeaders,\n} from \"./generated/src\";\n\n/**\n * A DataLakePathClient represents a URL to the Azure Storage path (directory or file).\n */\nexport class DataLakePathClient extends StorageClient {\n /**\n * pathContext provided by protocol layer.\n */\n private pathContext: Path;\n\n /**\n * blobClient provided by `@azure/storage-blob` package.\n */\n private blobClient: BlobClient;\n\n private isTokenCredential?: boolean;\n\n /**\n * SetAccessControlRecursiveInternal operation sets the Access Control on a path and sub paths.\n *\n * @param mode - Mode \\\"set\\\" sets POSIX access control rights on files and directories,\n * Mode \\\"modify\\\" modifies one or more POSIX access control rights that pre-exist on files and directories,\n * Mode \\\"remove\\\" removes one or more POSIX access control rights that were present earlier on files and directories.\n * @param acl - The POSIX access control list for the file or directory.\n * @param options - Optional. Options\n */\n private async setAccessControlRecursiveInternal(\n mode: PathSetAccessControlRecursiveMode,\n acl: PathAccessControlItem[] | RemovePathAccessControlItem[],\n options: PathChangeAccessControlRecursiveOptions = {},\n ): Promise<PathChangeAccessControlRecursiveResponse> {\n if (options.maxBatches !== undefined && options.maxBatches < 1) {\n throw RangeError(`Options maxBatches must be larger than 0.`);\n }\n\n if (options.batchSize !== undefined && options.batchSize < 1) {\n throw RangeError(`Options batchSize must be larger than 0.`);\n }\n\n const result: PathChangeAccessControlRecursiveResponse = {\n counters: {\n failedChangesCount: 0,\n changedDirectoriesCount: 0,\n changedFilesCount: 0,\n },\n continuationToken: undefined,\n };\n\n return tracingClient.withSpan(\n \"DataLakePathClient-setAccessControlRecursiveInternal\",\n options,\n async (updatedOptions) => {\n let continuationToken = options.continuationToken;\n let batchCounter = 0;\n let reachMaxBatches = false;\n do {\n let response;\n try {\n response = await this.pathContext.setAccessControlRecursive(mode, {\n ...updatedOptions,\n acl: toAclString(acl as PathAccessControlItem[]),\n maxRecords: options.batchSize,\n continuation: continuationToken,\n forceFlag: options.continueOnFailure,\n });\n } catch (e: any) {\n throw new DataLakeAclChangeFailedError(e, continuationToken);\n }\n\n batchCounter++;\n continuationToken = response.continuation;\n\n // Update result\n result.continuationToken = continuationToken;\n result.counters.failedChangesCount += response.failureCount ?? 0;\n result.counters.changedDirectoriesCount += response.directoriesSuccessful ?? 0;\n result.counters.changedFilesCount += response.filesSuccessful ?? 0;\n\n // Progress event call back\n if (options.onProgress) {\n const progress: AccessControlChanges = {\n batchFailures: toAccessControlChangeFailureArray(response.failedEntries),\n batchCounters: {\n failedChangesCount: response.failureCount ?? 0,\n changedDirectoriesCount: response.directoriesSuccessful ?? 0,\n changedFilesCount: response.filesSuccessful ?? 0,\n },\n aggregateCounters: result.counters,\n continuationToken: continuationToken,\n };\n options.onProgress(progress);\n }\n\n reachMaxBatches =\n options.maxBatches === undefined ? false : batchCounter >= options.maxBatches;\n } while (continuationToken && !reachMaxBatches);\n\n return result;\n },\n );\n }\n\n /**\n * Creates an instance of DataLakePathClient from url and credential.\n *\n * @param url - A Client string pointing to Azure Storage data lake path (directory or file), such as\n * \"https://myaccount.dfs.core.windows.net/filesystem/directory\" or \"https://myaccount.dfs.core.windows.net/filesystem/file\".\n * You can append a SAS if using AnonymousCredential, such as \"https://myaccount.dfs.core.windows.net/filesystem/directory?sasString\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n public constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n );\n\n /**\n * Creates an instance of DataLakePathClient from url and pipeline.\n *\n * @param url - A Client string pointing to Azure Storage data lake path (directory or file), such as\n * \"https://myaccount.dfs.core.windows.net/filesystem/directory\" or \"https://myaccount.dfs.core.windows.net/filesystem/file\".\n * You can append a SAS if using AnonymousCredential, such as \"https://myaccount.dfs.core.windows.net/filesystem/directory?sasString\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n public constructor(url: string, pipeline: Pipeline);\n\n public constructor(\n url: string,\n credentialOrPipeline?:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | Pipeline,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n ) {\n if (isPipelineLike(credentialOrPipeline)) {\n super(url, credentialOrPipeline);\n } else {\n let credential;\n if (credentialOrPipeline === undefined) {\n credential = new AnonymousCredential();\n } else {\n credential = credentialOrPipeline;\n }\n\n const pipeline = newPipeline(credential, options);\n super(url, pipeline);\n }\n\n this.pathContext = new Path(this.storageClientContext);\n this.blobClient = new BlobClient(this.blobEndpointUrl, this.pipeline);\n }\n\n /**\n * Name of current file system.\n *\n * @readonly\n */\n public get fileSystemName(): string {\n return this.blobClient.containerName;\n }\n\n /**\n * Name of current path (directory or file).\n *\n * @readonly\n */\n public get name(): string {\n return this.blobClient.name;\n }\n\n /**\n * Convert current DataLakePathClient to DataLakeDirectoryClient if current path is a directory.\n *\n */\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-subclients */\n public toDirectoryClient(): DataLakeDirectoryClient {\n return new DataLakeDirectoryClient(this.dfsEndpointUrl, this.pipeline);\n }\n\n /**\n * Convert current DataLakePathClient to DataLakeFileClient if current path is a file.\n *\n */\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-subclients */\n public toFileClient(): DataLakeFileClient {\n return new DataLakeFileClient(this.dfsEndpointUrl, this.pipeline);\n }\n\n /**\n * Get a {@link DataLakeLeaseClient} that manages leases on the path (directory or file).\n *\n * @param proposeLeaseId - Optional. Initial proposed lease Id.\n */\n public getDataLakeLeaseClient(proposeLeaseId?: string): DataLakeLeaseClient {\n return new DataLakeLeaseClient(this.blobClient.getBlobLeaseClient(proposeLeaseId));\n }\n\n /**\n * Create a directory or path.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/create\n *\n * @param resourceType - Resource type, \"directory\" or \"file\".\n * @param options - Optional. Options when creating path.\n */\n public async create(\n resourceType: PathResourceTypeModel,\n options: PathCreateOptions = {},\n ): Promise<PathCreateResponse> {\n options.conditions = options.conditions || {};\n return tracingClient.withSpan(\"DataLakePathClient-create\", options, async (updatedOptions) => {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n let expiryOptions: FileExpiryMode | undefined;\n let expiresOn: string | undefined;\n if (typeof options.expiresOn === \"number\" && Number.isFinite(options.expiresOn)) {\n expiryOptions = \"RelativeToNow\";\n expiresOn = String(Math.round(options.expiresOn));\n } else if (options.expiresOn instanceof Date) {\n expiryOptions = \"Absolute\";\n expiresOn = options.expiresOn.toUTCString();\n } else if (options.expiresOn) {\n throw new Error(`Value for expiresOn is invalid: ${options.expiresOn}`);\n }\n\n return assertResponse<PathCreateHeaders, PathCreateHeaders>(\n await this.pathContext.create({\n ...updatedOptions,\n resource: resourceType,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: options.conditions,\n properties: toProperties(options.metadata),\n cpkInfo: options.customerProvidedKey,\n acl: options.acl ? toAclString(options.acl) : undefined,\n expiryOptions,\n expiresOn,\n }),\n );\n });\n }\n\n /**\n * Create a directory or file. If the resource already exists, it is not changed.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/create\n *\n * @param resourceType - Resource type, \"directory\" or \"file\".\n * @param options -\n */\n public async createIfNotExists(\n resourceType: PathResourceTypeModel,\n options: PathCreateIfNotExistsOptions = {},\n ): Promise<PathCreateIfNotExistsResponse> {\n return tracingClient.withSpan(\n \"DataLakePathClient-createIfNotExists\",\n options,\n async (updatedOptions) => {\n try {\n const conditions = { ifNoneMatch: ETagAny };\n const res = await this.create(resourceType, {\n ...options,\n conditions,\n tracingOptions: updatedOptions.tracingOptions,\n });\n return {\n succeeded: true,\n ...res,\n };\n } catch (e: any) {\n if (e.details?.errorCode === \"PathAlreadyExists\") {\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response,\n };\n }\n throw e;\n }\n },\n );\n }\n\n /**\n * Returns true if the Data Lake file represented by this client exists; false otherwise.\n *\n * NOTE: use this function with care since an existing file might be deleted by other clients or\n * applications. Vice versa new files might be added by other clients or applications after this\n * function completes.\n *\n * @param options - options to Exists operation.\n */\n public async exists(options: PathExistsOptions = {}): Promise<boolean> {\n return tracingClient.withSpan(\"DataLakeFileClient-exists\", options, async (updatedOptions) => {\n return this.blobClient.exists({\n ...updatedOptions,\n customerProvidedKey: toBlobCpkInfo(updatedOptions.customerProvidedKey),\n });\n });\n }\n\n /**\n * Delete current path (directory or file).\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/delete\n *\n * @param recursive - Required and valid only when the resource is a directory. If \"true\", all paths beneath the directory will be deleted.\n * @param options - Optional. Options when deleting path.\n */\n public async delete(\n recursive?: boolean,\n options: PathDeleteOptions = {},\n ): Promise<PathDeleteResponse> {\n options.conditions = options.conditions || {};\n return tracingClient.withSpan(\"DataLakePathClient-delete\", options, async (updatedOptions) => {\n if (this.isTokenCredential === undefined) {\n this.isTokenCredential = false;\n this.pipeline.factories.forEach((factory) => {\n if (isTokenCredential((factory as any).credential)) {\n this.isTokenCredential = true;\n }\n });\n\n if (isTokenCredential((this.pipeline as any)._credential)) {\n this.isTokenCredential = true;\n }\n }\n const paginated = recursive === true && this.isTokenCredential === true;\n let continuation: string | undefined;\n let response: PathDeleteResponse;\n\n // How to handle long delete loop?\n do {\n response = assertResponse<PathDeleteHeaders, PathDeleteHeaders>(\n await this.pathContext.delete({\n ...updatedOptions,\n continuation,\n recursive,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: options.conditions,\n abortSignal: options.abortSignal,\n paginated,\n }),\n );\n continuation = response.continuation;\n } while (continuation);\n\n return response;\n });\n }\n\n /**\n * Delete current path (directory or file) if it exists.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/delete\n *\n * @param recursive - Required and valid only when the resource is a directory. If \"true\", all paths beneath the directory will be deleted.\n * @param options -\n */\n public async deleteIfExists(\n recursive?: boolean,\n options: PathDeleteOptions = {},\n ): Promise<PathDeleteIfExistsResponse> {\n options.conditions = options.conditions || {};\n return tracingClient.withSpan(\n \"DataLakePathClient-deleteIfExists\",\n options,\n async (updatedOptions) => {\n try {\n const res = await this.delete(recursive, updatedOptions);\n return {\n succeeded: true,\n ...res,\n };\n } catch (e: any) {\n if (e.details?.errorCode === \"PathNotFound\") {\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response,\n };\n }\n throw e;\n }\n },\n );\n }\n\n /**\n * Returns the access control data for a path (directory of file).\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/getproperties\n *\n * @param options - Optional. Options when getting file access control.\n */\n public async getAccessControl(\n options: PathGetAccessControlOptions = {},\n ): Promise<PathGetAccessControlResponse> {\n options.conditions = options.conditions || {};\n return tracingClient.withSpan(\n \"DataLakePathClient-getAccessControl\",\n options,\n async (updatedOptions) => {\n const response = assertResponse<PathGetPropertiesHeaders, PathGetPropertiesHeaders>(\n await this.pathContext.getProperties({\n ...updatedOptions,\n action: \"getAccessControl\",\n upn: options.userPrincipalName,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: options.conditions,\n abortSignal: options.abortSignal,\n }),\n );\n return {\n ...response,\n _response: response._response,\n permissions: toPermissions(response.permissions),\n acl: toAcl(response.acl),\n };\n },\n );\n }\n\n /**\n * Set the access control data for a path (directory of file).\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/update\n *\n * @param acl - The POSIX access control list for the file or directory.\n * @param options - Optional. Options when setting path access control.\n */\n public async setAccessControl(\n acl: PathAccessControlItem[],\n options: PathSetAccessControlOptions = {},\n ): Promise<PathSetAccessControlResponse> {\n options.conditions = options.conditions || {};\n return tracingClient.withSpan(\n \"DataLakePathClient-setAccessControl\",\n options,\n async (updatedOptions) => {\n return assertResponse<PathSetAccessControlHeaders, PathSetAccessControlHeaders>(\n await this.pathContext.setAccessControl({\n ...updatedOptions,\n acl: toAclString(acl),\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: options.conditions,\n }),\n );\n },\n );\n }\n\n /**\n * Sets the Access Control on a path and sub paths.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/update\n *\n * @param acl - The POSIX access control list for the file or directory.\n * @param options - Optional. Options\n */\n public async setAccessControlRecursive(\n acl: PathAccessControlItem[],\n options: PathChangeAccessControlRecursiveOptions = {},\n ): Promise<PathChangeAccessControlRecursiveResponse> {\n return tracingClient.withSpan(\n \"DataLakePathClient-setAccessControlRecursive\",\n options,\n async (updatedOptions) => {\n return this.setAccessControlRecursiveInternal(\"set\", acl, updatedOptions);\n },\n );\n }\n\n /**\n * Modifies the Access Control on a path and sub paths.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/update\n *\n * @param acl - The POSIX access control list for the file or directory.\n * @param options - Optional. Options\n */\n public async updateAccessControlRecursive(\n acl: PathAccessControlItem[],\n options: PathChangeAccessControlRecursiveOptions = {},\n ): Promise<PathChangeAccessControlRecursiveResponse> {\n return tracingClient.withSpan(\n \"DataLakePathClient-updateAccessControlRecursive\",\n options,\n async (updatedOptions) => {\n return this.setAccessControlRecursiveInternal(\"modify\", acl, updatedOptions);\n },\n );\n }\n\n /**\n * Removes the Access Control on a path and sub paths.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/update\n *\n * @param acl - The POSIX access control list for the file or directory.\n * @param options - Optional. Options\n */\n public async removeAccessControlRecursive(\n acl: RemovePathAccessControlItem[],\n options: PathChangeAccessControlRecursiveOptions = {},\n ): Promise<PathChangeAccessControlRecursiveResponse> {\n return tracingClient.withSpan(\n \"DataLakePathClient-removeAccessControlRecursive\",\n options,\n async (updatedOptions) => {\n return this.setAccessControlRecursiveInternal(\"remove\", acl, updatedOptions);\n },\n );\n }\n\n /**\n * Sets the file permissions on a path.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/update\n *\n * @param permissions - The POSIX access permissions for the file owner, the file owning group, and others.\n * @param options - Optional. Options when setting path permissions.\n */\n public async setPermissions(\n permissions: PathPermissions,\n options: PathSetPermissionsOptions = {},\n ): Promise<PathSetPermissionsResponse> {\n options.conditions = options.conditions || {};\n return tracingClient.withSpan(\n \"DataLakePathClient-setPermissions\",\n options,\n async (updatedOptions) => {\n return assertResponse<PathSetAccessControlHeaders, PathSetAccessControlHeaders>(\n await this.pathContext.setAccessControl({\n ...updatedOptions,\n permissions: toPermissionsString(permissions),\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: options.conditions,\n }),\n );\n },\n );\n }\n\n /**\n * Returns all user-defined metadata, standard HTTP properties, and system properties\n * for the path (directory or file).\n *\n * WARNING: The `metadata` object returned in the response will have its keys in lowercase, even if\n * they originally contained uppercase characters. This differs from the metadata keys returned by\n * the methods of {@link DataLakeFileSystemClient} that list paths using the `includeMetadata` option, which\n * will retain their original casing.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob-properties\n *\n * @param options - Optional. Options when getting path properties.\n */\n public async getProperties(\n options: PathGetPropertiesOptions = {},\n ): Promise<PathGetPropertiesResponse> {\n return tracingClient.withSpan(\n \"DataLakePathClient-getProperties\",\n options,\n async (updatedOptions) => {\n const response = await this.blobClient.getProperties({\n ...options,\n customerProvidedKey: toBlobCpkInfo(options.customerProvidedKey),\n tracingOptions: updatedOptions.tracingOptions,\n });\n return ParsePathGetPropertiesExtraHeaderValues(response as PathGetPropertiesResponse);\n },\n );\n }\n\n /**\n * Sets system properties on the path (directory or file).\n *\n * If no value provided, or no value provided for the specified blob HTTP headers,\n * these blob HTTP headers without a value will be cleared.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-properties\n *\n * @param httpHeaders -\n * @param options -\n */\n public async setHttpHeaders(\n httpHeaders: PathHttpHeaders,\n options: PathSetHttpHeadersOptions = {},\n ): Promise<PathSetHttpHeadersResponse> {\n return tracingClient.withSpan(\n \"DataLakePathClient-setHttpHeaders\",\n options,\n async (updatedOptions) => {\n return this.blobClient.setHTTPHeaders(\n {\n blobCacheControl: httpHeaders.cacheControl,\n blobContentType: httpHeaders.contentType,\n blobContentMD5: httpHeaders.contentMD5,\n blobContentEncoding: httpHeaders.contentEncoding,\n blobContentLanguage: httpHeaders.contentLanguage,\n blobContentDisposition: httpHeaders.contentDisposition,\n },\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Sets user-defined metadata for the specified path (directory of file) as one or more name-value pairs.\n *\n * If no option provided, or no metadata defined in the parameter, the path\n * metadata will be removed.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-metadata\n *\n * @param metadata - Optional. Replace existing metadata with this value.\n * If no value provided the existing metadata will be removed.\n * @param options - Optional. Options when setting path metadata.\n */\n public async setMetadata(\n metadata?: Metadata,\n options: PathSetMetadataOptions = {},\n ): Promise<PathSetMetadataResponse> {\n return tracingClient.withSpan(\n \"DataLakePathClient-setMetadata\",\n options,\n async (updatedOptions) => {\n return this.blobClient.setMetadata(metadata, {\n ...options,\n customerProvidedKey: toBlobCpkInfo(options.customerProvidedKey),\n tracingOptions: updatedOptions.tracingOptions,\n });\n },\n );\n }\n\n /**\n * Move directory or file within same file system.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/create\n *\n * @param destinationPath - Destination directory path like \"directory\" or file path \"directory/file\".\n * If the destinationPath is authenticated with SAS, add the SAS to the destination path like \"directory/file?sasToken\".\n * @param options - Optional. Options when moving directory or file.\n */\n public async move(destinationPath: string, options?: PathMoveOptions): Promise<PathMoveResponse>;\n\n /**\n * Move directory or file to another file system.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/create\n *\n * @param destinationFileSystem - Destination file system like \"filesystem\".\n * @param destinationPath - Destination directory path like \"directory\" or file path \"directory/file\"\n * If the destinationPath is authenticated with SAS, add the SAS to the destination path like \"directory/file?sasToken\".\n * @param options - Optional. Options when moving directory or file.\n */\n public async move(\n destinationFileSystem: string,\n destinationPath: string,\n options?: PathMoveOptions,\n ): Promise<PathMoveResponse>;\n\n public async move(\n destinationPathOrFileSystem: string,\n destinationPathOrOptions?: string | PathMoveOptions,\n options?: PathMoveOptions,\n ): Promise<PathMoveResponse> {\n let destinationFileSystem = this.fileSystemName;\n let destinationPath = destinationPathOrFileSystem;\n let pathMoveOptions: PathMoveOptions;\n\n if (typeof destinationPathOrOptions === \"string\") {\n destinationFileSystem = destinationPathOrFileSystem;\n destinationPath = destinationPathOrOptions;\n pathMoveOptions = options ?? {};\n } else {\n pathMoveOptions = destinationPathOrOptions ?? {};\n }\n\n const renameSource = getURLPathAndQuery(this.dfsEndpointUrl);\n\n const split: string[] = destinationPath.split(\"?\");\n let destinationUrl: string;\n if (split.length === 2) {\n const renameDestination = `/${destinationFileSystem}/${split[0]}`;\n destinationUrl = setURLPath(this.dfsEndpointUrl, renameDestination);\n destinationUrl = setURLQueries(destinationUrl, split[1]);\n } else if (split.length === 1) {\n const renameDestination = `/${destinationFileSystem}/${destinationPath}`;\n destinationUrl = setURLPath(this.dfsEndpointUrl, renameDestination);\n } else {\n throw new RangeError(\"Destination path should not contain more than one query string\");\n }\n\n const destPathClient = new DataLakePathClient(destinationUrl, this.pipeline);\n\n return tracingClient.withSpan(\n \"DataLakePathClient-move\",\n pathMoveOptions,\n async (updatedOptions) => {\n return assertResponse<PathCreateHeaders, PathCreateHeaders>(\n await destPathClient.pathContext.create({\n ...updatedOptions,\n mode: \"legacy\", // By default\n renameSource,\n sourceLeaseId: pathMoveOptions.conditions?.leaseId,\n leaseAccessConditions: pathMoveOptions.destinationConditions,\n sourceModifiedAccessConditions: {\n sourceIfMatch: pathMoveOptions.conditions?.ifMatch,\n sourceIfNoneMatch: pathMoveOptions.conditions?.ifNoneMatch,\n sourceIfModifiedSince: pathMoveOptions.conditions?.ifModifiedSince,\n sourceIfUnmodifiedSince: pathMoveOptions.conditions?.ifUnmodifiedSince,\n },\n modifiedAccessConditions: pathMoveOptions.destinationConditions,\n abortSignal: pathMoveOptions.abortSignal,\n }),\n );\n },\n );\n }\n}\n\n/**\n * A DataLakeDirectoryClient represents a URL to the Azure Storage directory.\n */\nexport class DataLakeDirectoryClient extends DataLakePathClient {\n // https://stackoverflow.com/questions/50729485/override-method-with-different-argument-types-in-extended-class-typescript\n /**\n * Create a directory.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/create\n *\n * @param resourceType - Resource type, must be \"directory\" for DataLakeDirectoryClient.\n * @param options - Optional. Options when creating directory.\n */\n public async create(\n resourceType: PathResourceTypeModel,\n options?: PathCreateOptions,\n ): Promise<PathCreateResponse>;\n\n /**\n * Create a directory.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/create\n *\n * @param options - Optional. Options when creating directory.\n */\n public async create(options?: DirectoryCreateOptions): Promise<DirectoryCreateResponse>;\n\n public async create(\n resourceTypeOrOptions?: PathResourceTypeModel | PathCreateOptions,\n options: PathCreateOptions = {},\n ): Promise<PathCreateResponse> {\n if (resourceTypeOrOptions === \"file\") {\n throw TypeError(\n `DataLakeDirectoryClient:create() resourceType cannot be ${resourceTypeOrOptions}. Refer to DataLakeFileClient for file creation.`,\n );\n }\n\n let pathCreateOptions: PathCreateOptions;\n\n if (resourceTypeOrOptions === \"directory\") {\n pathCreateOptions = options;\n } else {\n pathCreateOptions = resourceTypeOrOptions ?? {};\n }\n return tracingClient.withSpan(\n \"DataLakeDirectoryClient-create\",\n pathCreateOptions,\n async (updatedOptions) => {\n return super.create(\"directory\", updatedOptions);\n },\n );\n }\n\n /**\n * Create a directory if it doesn't already exists.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/create\n *\n * @param resourceType - Resource type, must be \"directory\" for DataLakeDirectoryClient.\n * @param options -\n */\n public async createIfNotExists(\n resourceType: PathResourceTypeModel,\n options?: PathCreateIfNotExistsOptions,\n ): Promise<PathCreateIfNotExistsResponse>;\n\n /**\n * Create a directory if it doesn't already exists.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/create\n *\n * @param options -\n */\n public async createIfNotExists(\n options?: DirectoryCreateIfNotExistsOptions,\n ): Promise<DirectoryCreateIfNotExistsResponse>;\n\n public async createIfNotExists(\n resourceTypeOrOptions?: PathResourceTypeModel | PathCreateIfNotExistsOptions,\n options: PathCreateIfNotExistsOptions = {},\n ): Promise<PathCreateIfNotExistsResponse> {\n if (resourceTypeOrOptions === \"file\") {\n throw TypeError(\n `DataLakeDirectoryClient:createIfNotExists() resourceType cannot be ${resourceTypeOrOptions}. Refer to DataLakeFileClient for file creation.`,\n );\n }\n\n if (resourceTypeOrOptions !== \"directory\") {\n options = resourceTypeOrOptions || {};\n }\n\n return tracingClient.withSpan(\n \"DataLakeDirectoryClient-createIfNotExists\",\n options,\n async (updatedOptions) => {\n return super.createIfNotExists(\"directory\", {\n ...updatedOptions,\n });\n },\n );\n }\n\n /**\n * Creates a {@link DataLakeDirectoryClient} object under current directory.\n *\n * @param subdirectoryName - Subdirectory name.\n */\n public getSubdirectoryClient(subdirectoryName: string): DataLakeDirectoryClient {\n return new DataLakeDirectoryClient(\n appendToURLPath(this.url, encodeURIComponent(subdirectoryName)),\n this.pipeline,\n );\n }\n\n /**\n * Creates a {@link DataLakeFileClient} object under current directory.\n *\n * @param fileName -\n */\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-subclients */\n public getFileClient(fileName: string): DataLakeFileClient {\n return new DataLakeFileClient(\n appendToURLPath(this.url, encodeURIComponent(fileName)),\n this.pipeline,\n );\n }\n\n /**\n * Only available for clients constructed with a shared key credential.\n *\n * Generates a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n public generateSasUrl(options: DirectoryGenerateSasUrlOptions): Promise<string> {\n return new Promise((resolve) => {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw RangeError(\n \"Can only generate the SAS when the client is initialized with a shared key credential\",\n );\n }\n\n const sas = generateDataLakeSASQueryParameters(\n {\n fileSystemName: this.fileSystemName,\n pathName: this.name,\n isDirectory: true,\n ...options,\n },\n this.credential,\n ).toString();\n\n resolve(appendToURLQuery(this.url, sas));\n });\n }\n\n /**\n * Generates string to sign for a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n public generateSasStringToSign(options: DirectoryGenerateSasUrlOptions): string {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw RangeError(\n \"Can only generate the SAS when the client is initialized with a shared key credential\",\n );\n }\n return generateDataLakeSASQueryParametersInternal(\n {\n fileSystemName: this.fileSystemName,\n pathName: this.name,\n isDirectory: true,\n ...options,\n },\n this.credential,\n ).stringToSign;\n }\n\n /**\n * Generates a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the input user delegation key.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @param userDelegationKey - Return value of `blobServiceClient.getUserDelegationKey()`\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n public generateUserDelegationSasUrl(\n options: DirectoryGenerateSasUrlOptions,\n userDelegationKey: UserDelegationKey,\n ): Promise<string> {\n return new Promise((resolve) => {\n const sas = generateDataLakeSASQueryParameters(\n {\n fileSystemName: this.fileSystemName,\n pathName: this.name,\n isDirectory: true,\n ...options,\n },\n userDelegationKey,\n this.accountName,\n ).toString();\n\n resolve(appendToURLQuery(this.url, sas));\n });\n }\n\n /**\n * Generates string to sign for a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in The SAS is signed by the input user delegation key.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @param userDelegationKey - Return value of `blobServiceClient.getUserDelegationKey()`\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n\n public generateUserDelegationSasStringToSign(\n options: DirectoryGenerateSasUrlOptions,\n userDelegationKey: UserDelegationKey,\n ): string {\n return generateDataLakeSASQueryParametersInternal(\n {\n fileSystemName: this.fileSystemName,\n pathName: this.name,\n isDirectory: true,\n ...options,\n },\n userDelegationKey,\n this.accountName,\n ).stringToSign;\n }\n}\n\n/**\n * A DataLakeFileClient represents a URL to the Azure Storage file.\n */\nexport class DataLakeFileClient extends DataLakePathClient {\n /**\n * pathContextInternal provided by protocol layer.\n */\n private pathContextInternal: Path;\n\n /**\n * pathContextInternal provided by protocol layer, with its url pointing to the Blob endpoint.\n */\n private pathContextInternalToBlobEndpoint: Path;\n\n /**\n * blockBlobClientInternal provided by `@azure/storage-blob` package.\n */\n private blockBlobClientInternal: BlockBlobClient;\n\n /**\n * Creates an instance of DataLakeFileClient from url and credential.\n *\n * @param url - A Client string pointing to Azure Storage data lake file, such as\n * \"https://myaccount.dfs.core.windows.net/filesystem/file\".\n * You can append a SAS if using AnonymousCredential, such as \"https://myaccount.dfs.core.windows.net/filesystem/directory/file?sasString\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n public constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n );\n\n /**\n * Creates an instance of DataLakeFileClient from url and pipeline.\n *\n * @param url - A Client string pointing to Azure Storage data lake file, such as\n * \"https://myaccount.dfs.core.windows.net/filesystem/file\".\n * You can append a SAS if using AnonymousCredential, such as \"https://myaccount.dfs.core.windows.net/filesystem/directory/file?sasString\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n public constructor(url: string, pipeline: Pipeline);\n\n public constructor(\n url: string,\n credentialOrPipeline?:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | Pipeline,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n ) {\n if (isPipelineLike(credentialOrPipeline)) {\n super(url, credentialOrPipeline);\n } else {\n let credential;\n if (credentialOrPipeline === undefined) {\n credential = new AnonymousCredential();\n } else {\n credential = credentialOrPipeline;\n }\n\n const pipeline = newPipeline(credential, options);\n super(url, pipeline);\n }\n\n this.pathContextInternal = new Path(this.storageClientContext);\n this.blockBlobClientInternal = new BlockBlobClient(this.blobEndpointUrl, this.pipeline);\n this.pathContextInternalToBlobEndpoint = new Path(this.storageClientContextToBlobEndpoint);\n }\n\n /**\n * Create a file.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/create\n *\n * @param resourceType - Resource type, must be \"file\" for DataLakeFileClient.\n * @param options - Optional. Options when creating file.\n */\n public async create(\n resourceType: PathResourceTypeModel,\n options?: PathCreateOptions,\n ): Promise<PathCreateResponse>;\n\n /**\n * Create a file.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/create\n *\n * @param options - Optional. Options when creating file.\n */\n public async create(options?: FileCreateOptions): Promise<FileCreateResponse>;\n\n public async create(\n resourceTypeOrOptions?: PathResourceTypeModel | PathCreateOptions,\n options: PathCreateOptions = {},\n ): Promise<PathCreateResponse> {\n if (resourceTypeOrOptions === \"directory\") {\n throw TypeError(\n `DataLakeFileClient:create() resourceType cannot be ${resourceTypeOrOptions}. Refer to DataLakeDirectoryClient for directory creation.`,\n );\n }\n\n let pathCreateOptions: PathCreateOptions;\n if (resourceTypeOrOptions === \"file\") {\n pathCreateOptions = options;\n } else {\n pathCreateOptions = resourceTypeOrOptions ?? {};\n }\n\n return tracingClient.withSpan(\n \"DataLakeFileClient-create\",\n pathCreateOptions,\n async (updatedOptions) => {\n return super.create(\"file\", updatedOptions);\n },\n );\n }\n\n /**\n * Create a file if it doesn't already exists.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/create\n *\n * @param resourceType - Resource type, must be \"file\" for DataLakeFileClient.\n * @param options -\n */\n public async createIfNotExists(\n resourceType: PathResourceTypeModel,\n options?: PathCreateIfNotExistsOptions,\n ): Promise<PathCreateIfNotExistsResponse>;\n\n /**\n * Create a file if it doesn't already exists.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/create\n *\n * @param options - Optional. Options when creating file.\n */\n public async createIfNotExists(\n options?: FileCreateIfNotExistsOptions,\n ): Promise<FileCreateIfNotExistsResponse>;\n\n public async createIfNotExists(\n resourceTypeOrOptions?: PathResourceTypeModel | PathCreateOptions,\n options: PathCreateIfNotExistsOptions = {},\n ): Promise<PathCreateIfNotExistsResponse> {\n if (resourceTypeOrOptions === \"directory\") {\n throw TypeError(\n `DataLakeFileClient:createIfNotExists() resourceType cannot be ${resourceTypeOrOptions}. Refer to DataLakeDirectoryClient for directory creation.`,\n );\n }\n\n if (resourceTypeOrOptions !== \"file\") {\n options = resourceTypeOrOptions || {};\n }\n\n return tracingClient.withSpan(\n \"DataLakeFileClient-createIfNotExists\",\n options,\n async (updatedOptions) => {\n return super.createIfNotExists(\"file\", updatedOptions);\n },\n );\n }\n\n /**\n * Downloads a file from the service, including its metadata and properties.\n *\n * * In Node.js, data returns in a Readable stream readableStreamBody\n * * In browsers, data returns in a promise contentAsBlob\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob\n *\n * * Example usage (Node.js):\n *\n * ```js\n * // Download and convert a file to a string\n * const downloadResponse = await fileClient.read();\n * const downloaded = await streamToBuffer(downloadResponse.readableStreamBody);\n * console.log(\"Downloaded file content:\", downloaded.toString());\n *\n * async function streamToBuffer(readableStream) {\n * return new Promise((resolve, reject) => {\n * const chunks = [];\n * readableStream.on(\"data\", (data) => {\n * chunks.push(typeof data === \"string\" ? Buffer.from(data) : data);\n * });\n * readableStream.on(\"end\", () => {\n * resolve(Buffer.concat(chunks));\n * });\n * readableStream.on(\"error\", reject);\n * });\n * }\n * ```\n *\n * Example usage (browser):\n *\n * ```js\n * // Download and convert a file to a string\n * const downloadResponse = await fileClient.read();\n * const downloaded = await blobToString(await downloadResponse.contentAsBlob);\n * console.log(\"Downloaded file content\", downloaded);\n *\n * async function blobToString(blob: Blob): Promise<string> {\n * const fileReader = new FileReader();\n * return new Promise<string>((resolve, reject) => {\n * fileReader.onloadend = (ev: any) => {\n * resolve(ev.target!.result);\n * };\n * fileReader.onerror = reject;\n * fileReader.readAsText(blob);\n * });\n * }\n * ```\n *\n * @param offset - Optional. Offset to read file, default value is 0.\n * @param count - Optional. How many bytes to read, default will read from offset to the end.\n * @param options - Optional. Options when reading file.\n */\n public async read(\n offset: number = 0,\n count?: number,\n options: FileReadOptions = {},\n ): Promise<FileReadResponse> {\n return tracingClient.withSpan(\"DataLakeFileClient-read\", options, async (updatedOptions) => {\n const rawResponse = await this.blockBlobClientInternal.download(offset, count, {\n ...updatedOptions,\n customerProvidedKey: toBlobCpkInfo(updatedOptions.customerProvidedKey),\n });\n\n const response = ParsePathGetPropertiesExtraHeaderValues(\n rawResponse as FileReadResponse,\n ) as FileReadResponse;\n if (!isNode && !response.contentAsBlob) {\n response.contentAsBlob = rawResponse.blobBody;\n }\n response.fileContentMD5 = rawResponse.blobContentMD5;\n response._response.parsedHeaders.fileContentMD5 =\n rawResponse._response.parsedHeaders.blobContentMD5;\n delete rawResponse.blobContentMD5;\n delete rawResponse._response.parsedHeaders.blobContentMD5;\n\n return response;\n });\n }\n\n /**\n * Uploads data to be appended to a file. Data can only be appended to a file.\n * To apply perviously uploaded data to a file, call flush.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/update\n *\n * @param body - Content to be uploaded.\n * @param offset - Append offset in bytes.\n * @param length - Length of content to append in bytes.\n * @param options - Optional. Options when appending data.\n */\n public async append(\n body: HttpRequestBody,\n offset: number,\n length: number,\n options: FileAppendOptions = {},\n ): Promise<FileAppendResponse> {\n options.conditions = options.conditions || {};\n return tracingClient.withSpan(\"DataLakeFileClient-append\", options, async (updatedOptions) => {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return assertResponse<PathAppendDataHeaders, PathAppendDataHeaders>(\n await this.pathContextInternal.appendData(body, {\n ...updatedOptions,\n pathHttpHeaders: {\n contentMD5: options.transactionalContentMD5,\n },\n abortSignal: options.abortSignal,\n position: offset,\n contentLength: length,\n leaseAccessConditions: options.conditions,\n requestOptions: {\n onUploadProgress: options.onProgress,\n },\n cpkInfo: options.customerProvidedKey,\n flush: options.flush,\n proposedLeaseId: options.proposedLeaseId,\n leaseDuration: options.leaseDurationInSeconds,\n leaseAction: options.leaseAction,\n }),\n );\n });\n }\n\n /**\n * Flushes (writes) previously appended data to a file.\n *\n * @param position - File position to flush.\n * This parameter allows the caller to upload data in parallel and control the order in which it is appended to the file.\n * It is required when uploading data to be appended to the file and when flushing previously uploaded data to the file.\n * The value must be the position where the data is to be appended. Uploaded data is not immediately flushed, or written,\n * to the file. To flush, the previously uploaded data must be contiguous, the position parameter must be specified and\n * equal to the length of the file after all data has been written, and there must not be a request entity body included\n * with the request.\n * @param options - Optional. Options when flushing data.\n */\n public async flush(position: number, options: FileFlushOptions = {}): Promise<FileFlushResponse> {\n options.conditions = options.conditions || {};\n return tracingClient.withSpan(\"DataLakeFileClient-flush\", options, async (updatedOptions) => {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return assertResponse<PathFlushDataHeaders, PathFlushDataHeaders>(\n await this.pathContextInternal.flushData({\n ...updatedOptions,\n position,\n contentLength: 0,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: options.conditions,\n cpkInfo: options.customerProvidedKey,\n proposedLeaseId: options.proposedLeaseId,\n leaseDuration: options.leaseDurationInSeconds,\n leaseAction: options.leaseAction,\n }),\n );\n });\n }\n\n // high level functions\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Uploads a local file to a Data Lake file.\n *\n * @param filePath - Full path of the local file\n * @param options -\n */\n public async uploadFile(\n filePath: string,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options: FileParallelUploadOptions = {},\n ): Promise<FileUploadResponse> {\n return tracingClient.withSpan(\n \"DataLakeFileClient-uploadFile\",\n options,\n async (updatedOptions) => {\n const size = (await fsStat(filePath)).size;\n return this.uploadSeekableInternal(\n (offset: number, contentSize: number) => {\n return () =>\n fsCreateReadStream(filePath, {\n autoClose: true,\n end: offset + contentSize - 1,\n start: offset,\n });\n },\n size,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Uploads a Buffer(Node.js)/Blob/ArrayBuffer/ArrayBufferView to a File.\n *\n * @param data - Buffer(Node), Blob, ArrayBuffer or ArrayBufferView\n * @param options -\n */\n public async upload(\n data: Buffer | Blob | ArrayBuffer | ArrayBufferView,\n options: FileParallelUploadOptions = {},\n ): Promise<FileUploadResponse> {\n return tracingClient.withSpan(\"DataLakeFileClient-upload\", options, async (updatedOptions) => {\n if (isNode) {\n let buffer: Buffer;\n if (data instanceof Buffer) {\n buffer = data;\n } else if (data instanceof ArrayBuffer) {\n buffer = Buffer.from(data);\n } else {\n data = data as ArrayBufferView;\n buffer = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n }\n\n return this.uploadSeekableInternal(\n (offset: number, size: number): Buffer => buffer.slice(offset, offset + size),\n buffer.length,\n updatedOptions,\n );\n } else {\n const browserBlob = new Blob([data]);\n return this.uploadSeekableInternal(\n (offset: number, size: number): Blob => browserBlob.slice(offset, offset + size),\n browserBlob.size,\n updatedOptions,\n );\n }\n });\n }\n\n private async uploadSeekableInternal(\n bodyFactory: (offset: number, count: number) => HttpRequestBody,\n size: number,\n options: FileParallelUploadOptions = {},\n ): Promise<FileUploadResponse> {\n return tracingClient.withSpan(\n \"DataLakeFileClient-uploadData\",\n options,\n async (updatedOptions) => {\n if (size > FILE_MAX_SIZE_BYTES) {\n throw new RangeError(`size must be <= ${FILE_MAX_SIZE_BYTES}.`);\n }\n\n // Create the file.\n const createRes = this.create({\n abortSignal: options.abortSignal,\n metadata: options.metadata,\n permissions: options.permissions,\n umask: options.umask,\n conditions: options.conditions,\n pathHttpHeaders: options.pathHttpHeaders,\n customerProvidedKey: updatedOptions.customerProvidedKey,\n tracingOptions: updatedOptions.tracingOptions,\n encryptionContext: updatedOptions.encryptionContext,\n });\n // append() with empty data would return error, so do not continue\n if (size === 0) {\n return createRes;\n } else {\n await createRes;\n }\n\n // After the File is Create, Lease ID is the only valid request parameter.\n options.conditions = { leaseId: options.conditions?.leaseId };\n\n if (!options.chunkSize) {\n options.chunkSize = Math.ceil(size / BLOCK_BLOB_MAX_BLOCKS);\n if (options.chunkSize < FILE_UPLOAD_DEFAULT_CHUNK_SIZE) {\n options.chunkSize = FILE_UPLOAD_DEFAULT_CHUNK_SIZE;\n }\n }\n if (options.chunkSize < 1 || options.chunkSize > FILE_UPLOAD_MAX_CHUNK_SIZE) {\n throw new RangeError(\n `chunkSize option must be >= 1 and <= ${FILE_UPLOAD_MAX_CHUNK_SIZE}`,\n );\n }\n\n if (!options.maxConcurrency) {\n options.maxConcurrency = DEFAULT_HIGH_LEVEL_CONCURRENCY;\n }\n if (options.maxConcurrency <= 0) {\n throw new RangeError(`maxConcurrency must be > 0.`);\n }\n\n if (!options.singleUploadThreshold) {\n options.singleUploadThreshold = FILE_MAX_SINGLE_UPLOAD_THRESHOLD;\n }\n if (\n options.singleUploadThreshold < 1 ||\n options.singleUploadThreshold > FILE_MAX_SINGLE_UPLOAD_THRESHOLD\n ) {\n throw new RangeError(\n `singleUploadThreshold option must be >= 1 and <= ${FILE_MAX_SINGLE_UPLOAD_THRESHOLD}`,\n );\n }\n\n // When buffer length <= singleUploadThreshold, this method will use one append/flush call to finish the upload.\n if (size <= options.singleUploadThreshold) {\n await this.append(bodyFactory(0, size), 0, size, {\n abortSignal: options.abortSignal,\n conditions: options.conditions,\n customerProvidedKey: updatedOptions.customerProvidedKey,\n onProgress: options.onProgress,\n tracingOptions: updatedOptions.tracingOptions,\n });\n\n return this.flush(size, {\n abortSignal: options.abortSignal,\n conditions: options.conditions,\n close: options.close,\n pathHttpHeaders: options.pathHttpHeaders,\n customerProvidedKey: updatedOptions.customerProvidedKey,\n tracingOptions: updatedOptions.tracingOptions,\n });\n }\n\n const numBlocks: number = Math.floor((size - 1) / options.chunkSize) + 1;\n if (numBlocks > BLOCK_BLOB_MAX_BLOCKS) {\n throw new RangeError(\n `The data's size is too big or the chunkSize is too small;` +\n `the number of chunks must be <= ${BLOCK_BLOB_MAX_BLOCKS}`,\n );\n }\n\n let transferProgress: number = 0;\n const batch = new Batch(options.maxConcurrency);\n\n for (let i = 0; i < numBlocks; i++) {\n batch.addOperation(async (): Promise<any> => {\n const start = options.chunkSize! * i;\n const end = i === numBlocks - 1 ? size : start + options.chunkSize!;\n const contentLength = end - start;\n await this.append(bodyFactory(start, contentLength), start, contentLength, {\n abortSignal: options.abortSignal,\n conditions: options.conditions,\n customerProvidedKey: updatedOptions.customerProvidedKey,\n tracingOptions: updatedOptions.tracingOptions,\n });\n\n transferProgress += contentLength;\n if (options.onProgress) {\n options.onProgress({ loadedBytes: transferProgress });\n }\n });\n }\n await batch.do();\n\n return this.flush(size, {\n abortSignal: options.abortSignal,\n conditions: options.conditions,\n close: options.close,\n pathHttpHeaders: options.pathHttpHeaders,\n customerProvidedKey: updatedOptions.customerProvidedKey,\n tracingOptions: updatedOptions.tracingOptions,\n });\n },\n );\n }\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Uploads a Node.js Readable stream into a Data Lake file.\n * This method will try to create a file, then starts uploading chunk by chunk.\n * Please make sure potential size of stream doesn't exceed FILE_MAX_SIZE_BYTES and\n * potential number of chunks doesn't exceed BLOCK_BLOB_MAX_BLOCKS.\n *\n * PERFORMANCE IMPROVEMENT TIPS:\n * * Input stream highWaterMark is better to set a same value with options.chunkSize\n * parameter, which will avoid Buffer.concat() operations.\n *\n * @param stream - Node.js Readable stream.\n * @param options -\n */\n public async uploadStream(\n stream: Readable,\n options: FileParallelUploadOptions = {},\n ): Promise<FileUploadResponse> {\n return tracingClient.withSpan(\n \"DataLakeFileClient-uploadStream\",\n options,\n async (updatedOptions) => {\n // Create the file\n await this.create({\n abortSignal: options.abortSignal,\n metadata: options.metadata,\n permissions: options.permissions,\n umask: options.umask,\n conditions: options.conditions,\n pathHttpHeaders: options.pathHttpHeaders,\n customerProvidedKey: options.customerProvidedKey,\n tracingOptions: updatedOptions.tracingOptions,\n encryptionContext: updatedOptions.encryptionContext,\n });\n\n // After the File is Create, Lease ID is the only valid request parameter.\n options.conditions = { leaseId: options.conditions?.leaseId };\n\n if (!options.chunkSize) {\n options.chunkSize = FILE_UPLOAD_DEFAULT_CHUNK_SIZE;\n }\n if (options.chunkSize < 1 || options.chunkSize > FILE_UPLOAD_MAX_CHUNK_SIZE) {\n throw new RangeError(\n `chunkSize option must be >= 1 and <= ${FILE_UPLOAD_MAX_CHUNK_SIZE}`,\n );\n }\n if (!options.maxConcurrency) {\n options.maxConcurrency = DEFAULT_HIGH_LEVEL_CONCURRENCY;\n }\n if (options.maxConcurrency <= 0) {\n throw new RangeError(`maxConcurrency must be > 0.`);\n }\n\n let transferProgress: number = 0;\n const scheduler = new BufferScheduler(\n stream,\n options.chunkSize,\n options.maxConcurrency,\n async (body, length, offset) => {\n await this.append(body, offset!, length, {\n abortSignal: options.abortSignal,\n conditions: options.conditions,\n customerProvidedKey: options.customerProvidedKey,\n tracingOptions: updatedOptions.tracingOptions,\n });\n\n // Update progress after block is successfully uploaded to server, in case of block trying\n transferProgress += length;\n if (options.onProgress) {\n options.onProgress({ loadedBytes: transferProgress });\n }\n },\n // concurrency should set a smaller value than maxConcurrency, which is helpful to\n // reduce the possibility when a outgoing handler waits for stream data, in\n // this situation, outgoing handlers are blocked.\n // Outgoing queue shouldn't be empty.\n Math.ceil((options.maxConcurrency / 4) * 3),\n );\n await scheduler.do();\n\n return this.flush(transferProgress, {\n abortSignal: options.abortSignal,\n conditions: options.conditions,\n close: options.close,\n pathHttpHeaders: options.pathHttpHeaders,\n customerProvidedKey: options.customerProvidedKey,\n tracingOptions: updatedOptions.tracingOptions,\n });\n },\n );\n }\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Reads a Data Lake file in parallel to a buffer.\n * Offset and count are optional, pass 0 for both to read the entire file.\n *\n * Warning: Buffers can only support files up to about one gigabyte on 32-bit systems or about two\n * gigabytes on 64-bit systems due to limitations of Node.js/V8. For files larger than this size,\n * consider {@link readToFile}.\n *\n * @param buffer - Buffer to be fill, must have length larger than count\n * @param offset - From which position of the Data Lake file to read\n * @param count - How much data to be read. Will read to the end when passing undefined\n * @param options -\n */\n public async readToBuffer(\n buffer: Buffer,\n offset?: number,\n count?: number,\n options?: FileReadToBufferOptions,\n ): Promise<Buffer>;\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME\n *\n * Reads a Data Lake file in parallel to a buffer.\n * Offset and count are optional, pass 0 for both to read the entire file\n *\n * Warning: Buffers can only support files up to about one gigabyte on 32-bit systems or about two\n * gigabytes on 64-bit systems due to limitations of Node.js/V8. For files larger than this size,\n * consider {@link readToFile}.\n *\n * @param offset - From which position of the Data Lake file to read(in bytes)\n * @param count - How much data(in bytes) to be read. Will read to the end when passing undefined\n * @param options -\n */\n public async readToBuffer(\n offset?: number,\n count?: number,\n options?: FileReadToBufferOptions,\n ): Promise<Buffer>;\n\n public async readToBuffer(\n bufferOrOffset?: Buffer | number,\n offsetOrCount?: number,\n countOrOptions?: FileReadToBufferOptions | number,\n optOptions: FileReadToBufferOptions = {},\n ): Promise<Buffer> {\n let buffer: Buffer | undefined = undefined;\n let offset = 0;\n let count = 0;\n let options = optOptions;\n if (bufferOrOffset instanceof Buffer) {\n buffer = bufferOrOffset;\n offset = offsetOrCount || 0;\n count = typeof countOrOptions === \"number\" ? countOrOptions : 0;\n } else {\n offset = typeof bufferOrOffset === \"number\" ? bufferOrOffset : 0;\n count = typeof offsetOrCount === \"number\" ? offsetOrCount : 0;\n options = (countOrOptions as FileReadToBufferOptions) || {};\n }\n return tracingClient.withSpan(\n \"DataLakeFileClient-readToBuffer\",\n options,\n async (updatedOptions) => {\n if (buffer) {\n return this.blockBlobClientInternal.downloadToBuffer(buffer, offset, count, {\n ...options,\n maxRetryRequestsPerBlock: options.maxRetryRequestsPerChunk,\n blockSize: options.chunkSize,\n customerProvidedKey: toBlobCpkInfo(options.customerProvidedKey),\n tracingOptions: updatedOptions.tracingOptions,\n });\n } else {\n return this.blockBlobClientInternal.downloadToBuffer(offset, count, {\n ...options,\n maxRetryRequestsPerBlock: options.maxRetryRequestsPerChunk,\n blockSize: options.chunkSize,\n customerProvidedKey: toBlobCpkInfo(options.customerProvidedKey),\n tracingOptions: updatedOptions.tracingOptions,\n });\n }\n },\n );\n }\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Downloads a Data Lake file to a local file.\n * Fails if the the given file path already exits.\n * Offset and count are optional, pass 0 and undefined respectively to download the entire file.\n *\n * @param filePath -\n * @param offset - From which position of the file to download.\n * @param count - How much data to be downloaded. Will download to the end when passing undefined.\n * @param options - Options to read Data Lake file.\n * @returns The response data for file read operation,\n * but with readableStreamBody set to undefined since its\n * content is already read and written into a local file\n * at the specified path.\n */\n public async readToFile(\n filePath: string,\n offset: number = 0,\n count?: number,\n options: FileReadOptions = {},\n ): Promise<FileReadResponse> {\n return tracingClient.withSpan(\n \"DataLakeFileClient-readToFile\",\n options,\n async (updatedOptions) => {\n const rawResposne = await this.blockBlobClientInternal.downloadToFile(\n filePath,\n offset,\n count,\n {\n ...updatedOptions,\n customerProvidedKey: toBlobCpkInfo(options.customerProvidedKey),\n },\n );\n\n const response = ParsePathGetPropertiesExtraHeaderValues(\n rawResposne as FileReadResponse,\n ) as FileReadResponse;\n return response;\n },\n );\n }\n\n /**\n * Quick query for a JSON or CSV formatted file.\n *\n * Example usage (Node.js):\n *\n * ```js\n * // Query and convert a file to a string\n * const queryResponse = await fileClient.query(\"select * from BlobStorage\");\n * const downloaded = (await streamToBuffer(queryResponse.readableStreamBody)).toString();\n * console.log(\"Query file content:\", downloaded);\n *\n * async function streamToBuffer(readableStream) {\n * return new Promise((resolve, reject) => {\n * const chunks = [];\n * readableStream.on(\"data\", (data) => {\n * chunks.push(typeof data === \"string\" ? Buffer.from(data) : data);\n * });\n * readableStream.on(\"end\", () => {\n * resolve(Buffer.concat(chunks));\n * });\n * readableStream.on(\"error\", reject);\n * });\n * }\n * ```\n *\n * @param query -\n * @param options -\n */\n public async query(query: string, options: FileQueryOptions = {}): Promise<FileReadResponse> {\n return tracingClient.withSpan(\"DataLakeFileClient-query\", options, async (updatedOptions) => {\n const rawResponse = await this.blockBlobClientInternal.query(query, {\n ...updatedOptions,\n customerProvidedKey: toBlobCpkInfo(options.customerProvidedKey),\n });\n const response = rawResponse as FileReadResponse;\n if (!isNode && !response.contentAsBlob) {\n response.contentAsBlob = rawResponse.blobBody;\n }\n response.fileContentMD5 = rawResponse.blobContentMD5;\n response._response.parsedHeaders.fileContentMD5 =\n rawResponse._response.parsedHeaders.blobContentMD5;\n delete rawResponse.blobContentMD5;\n delete rawResponse._response.parsedHeaders.blobContentMD5;\n return response;\n });\n }\n\n /**\n * Sets an expiry time on a file, once that time is met the file is deleted.\n *\n * @param mode -\n * @param options -\n */\n public async setExpiry(\n mode: FileExpiryMode,\n options: FileSetExpiryOptions = {},\n ): Promise<FileSetExpiryResponse> {\n return tracingClient.withSpan(\n \"DataLakeFileClient-setExpiry\",\n options,\n async (updatedOptions) => {\n let expiresOn: string | undefined = undefined;\n if (mode === \"RelativeToNow\" || mode === \"RelativeToCreation\") {\n if (!options.timeToExpireInMs) {\n throw new Error(`Should specify options.timeToExpireInMs when using mode ${mode}.`);\n }\n // MINOR: need check against <= 2**64, but JS number has the precision problem.\n expiresOn = Math.round(options.timeToExpireInMs).toString();\n }\n\n if (mode === \"Absolute\") {\n if (!options.expiresOn) {\n throw new Error(`Should specify options.expiresOn when using mode ${mode}.`);\n }\n const now = new Date();\n if (!(options.expiresOn!.getTime() > now.getTime())) {\n throw new Error(\n `options.expiresOn should be later than now: ${now.toUTCString()} when using mode ${mode}, but is ${options.expiresOn?.toUTCString()}`,\n );\n }\n expiresOn = options.expiresOn!.toUTCString();\n }\n\n const adaptedOptions = { ...options, expiresOn };\n return assertResponse<PathSetExpiryHeaders, PathSetExpiryHeaders>(\n await this.pathContextInternalToBlobEndpoint.setExpiry(mode, {\n ...adaptedOptions,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n },\n );\n }\n\n /**\n * Only available for clients constructed with a shared key credential.\n *\n * Generates a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n public generateSasUrl(options: FileGenerateSasUrlOptions): Promise<string> {\n return new Promise((resolve) => {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw RangeError(\n \"Can only generate the SAS when the client is initialized with a shared key credential\",\n );\n }\n\n const sas = generateDataLakeSASQueryParameters(\n {\n fileSystemName: this.fileSystemName,\n pathName: this.name,\n ...options,\n },\n this.credential,\n ).toString();\n\n resolve(appendToURLQuery(this.url, sas));\n });\n }\n\n /**\n * Only available for clients constructed with a shared key credential.\n *\n * Generates string to sign for a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n public generateSasStringToSign(options: FileGenerateSasUrlOptions): string {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw RangeError(\n \"Can only generate the SAS when the client is initialized with a shared key credential\",\n );\n }\n\n return generateDataLakeSASQueryParametersInternal(\n {\n fileSystemName: this.fileSystemName,\n pathName: this.name,\n ...options,\n },\n this.credential,\n ).stringToSign;\n }\n\n /**\n * Generates a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the input user delegation key.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @param userDelegationKey - Return value of `blobServiceClient.getUserDelegationKey()`\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n public generateUserDelegationSasUrl(\n options: FileGenerateSasUrlOptions,\n userDelegationKey: UserDelegationKey,\n ): Promise<string> {\n return new Promise((resolve) => {\n const sas = generateDataLakeSASQueryParameters(\n {\n fileSystemName: this.fileSystemName,\n pathName: this.name,\n ...options,\n },\n userDelegationKey,\n this.accountName,\n ).toString();\n\n resolve(appendToURLQuery(this.url, sas));\n });\n }\n\n /**\n * Generates string to sign for a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the input user delegation key.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @param userDelegationKey - Return value of `blobServiceClient.getUserDelegationKey()`\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n\n public generateUserDelegationSasStringToSign(\n options: FileGenerateSasUrlOptions,\n userDelegationKey: UserDelegationKey,\n ): string {\n return generateDataLakeSASQueryParametersInternal(\n {\n fileSystemName: this.fileSystemName,\n pathName: this.name,\n ...options,\n },\n userDelegationKey,\n this.accountName,\n ).stringToSign;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { DataLakePathClient } from \"../clients\";\nimport { PathOperationsImpl as Path } from \"../generated/src/operations\";\nimport type { Pipeline } from \"@azure/storage-blob\";\n\n/**\n * A PathClientInternal represents a URL to the Azure Storage path (directory or file) to\n * help to construct a path client to expose Path context with blob endpoint.\n */\nexport class PathClientInternal extends DataLakePathClient {\n /**\n * Path context with blob endpoint.\n */\n public blobPathContext: Path;\n\n /**\n * Creates an instance of DataLakePathClient from url and pipeline.\n *\n * @param url - A Client string pointing to Azure Storage data lake path (directory or file), such as\n * \"https://myaccount.dfs.core.windows.net/filesystem/directory\" or \"https://myaccount.dfs.core.windows.net/filesystem/file\".\n * You can append a SAS if using AnonymousCredential, such as \"https://myaccount.dfs.core.windows.net/filesystem/directory?sasString\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n public constructor(url: string, pipeline: Pipeline) {\n super(url, pipeline);\n this.blobPathContext = new Path(this.storageClientContextToBlobEndpoint);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport type { PagedAsyncIterableIterator, PageSettings } from \"@azure/core-paging\";\nimport { ContainerClient } from \"@azure/storage-blob\";\nimport type { Pipeline, StoragePipelineOptions } from \"./Pipeline\";\nimport { isPipelineLike, newPipeline } from \"./Pipeline\";\nimport { StorageSharedKeyCredential } from \"./credentials/StorageSharedKeyCredential\";\nimport { AnonymousCredential } from \"@azure/storage-blob\";\n\nimport { DataLakeLeaseClient } from \"./DataLakeLeaseClient\";\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nimport { FileSystemOperationsImpl as FileSystem } from \"./generated/src/operations\";\nimport type {\n AccessPolicy,\n FileSystemCreateOptions,\n FileSystemCreateResponse,\n FileSystemDeleteOptions,\n FileSystemDeleteResponse,\n FileSystemExistsOptions,\n FileSystemGetAccessPolicyOptions,\n FileSystemGetAccessPolicyResponse,\n FileSystemGetPropertiesOptions,\n FileSystemGetPropertiesResponse,\n FileSystemSetAccessPolicyOptions,\n FileSystemSetAccessPolicyResponse,\n FileSystemSetMetadataOptions,\n FileSystemSetMetadataResponse,\n ListPathsOptions,\n ListPathsSegmentOptions,\n Metadata,\n Path,\n PublicAccessType,\n SignedIdentifier,\n FileSystemListPathsResponse,\n FileSystemCreateIfNotExistsResponse,\n FileSystemDeleteIfExistsResponse,\n FileSystemGenerateSasUrlOptions,\n FileSystemListDeletedPathsResponse,\n ListDeletedPathsOptions,\n DeletedPath,\n FileSystemUndeletePathResponse,\n FileSystemUndeletePathOption,\n ListDeletedPathsSegmentOptions,\n PathUndeleteHeaders,\n UserDelegationKey,\n} from \"./models\";\nimport { StorageClient } from \"./StorageClient\";\nimport { toContainerPublicAccessType, toPublicAccessType, toPermissions } from \"./transforms\";\nimport { tracingClient } from \"./utils/tracing\";\nimport {\n appendToURLPath,\n appendToURLQuery,\n assertResponse,\n EscapePath,\n windowsFileTimeTicksToTime,\n} from \"./utils/utils.common\";\nimport { DataLakeFileClient, DataLakeDirectoryClient } from \"./clients\";\nimport {\n generateDataLakeSASQueryParameters,\n generateDataLakeSASQueryParametersInternal,\n} from \"./sas/DataLakeSASSignatureValues\";\nimport { DeletionIdKey, PathResultTypeConstants } from \"./utils/constants\";\nimport { PathClientInternal } from \"./utils/PathClientInternal\";\n\n/**\n * A DataLakeFileSystemClient represents a URL to the Azure Storage file system\n * allowing you to manipulate its directories and files.\n */\nexport class DataLakeFileSystemClient extends StorageClient {\n /**\n * fileSystemContext provided by protocol layer.\n */\n private fileSystemContext: FileSystem;\n\n /**\n * fileSystemContext provided by protocol layer.\n */\n private fileSystemContextToBlobEndpoint: FileSystem;\n\n /**\n * blobContainerClient provided by `@azure/storage-blob` package.\n */\n private blobContainerClient: ContainerClient;\n\n /**\n * Creates an instance of DataLakeFileSystemClient from url and credential.\n *\n * @param url - A Client string pointing to Azure Storage data lake file system, such as\n * \"https://myaccount.dfs.core.windows.net/filesystem\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.dfs.core.windows.net/filesystem?sasString\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n );\n\n /**\n * Creates an instance of DataLakeFileSystemClient from url and pipeline.\n *\n * @param url - A Client string pointing to Azure Storage data lake file system, such as\n * \"https://myaccount.dfs.core.windows.net/filesystem\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.dfs.core.windows.net/filesystem?sasString\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n constructor(url: string, pipeline: Pipeline);\n\n constructor(\n url: string,\n credentialOrPipeline?:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | Pipeline,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n ) {\n if (isPipelineLike(credentialOrPipeline)) {\n super(url, credentialOrPipeline);\n } else {\n let credential;\n if (credentialOrPipeline === undefined) {\n credential = new AnonymousCredential();\n } else {\n credential = credentialOrPipeline;\n }\n\n const pipeline = newPipeline(credential, options);\n super(url, pipeline);\n }\n\n this.fileSystemContext = new FileSystem(this.storageClientContext);\n this.fileSystemContextToBlobEndpoint = new FileSystem(this.storageClientContextToBlobEndpoint);\n this.blobContainerClient = new ContainerClient(this.blobEndpointUrl, this.pipeline);\n }\n\n /**\n * Name of current file system.\n *\n * @readonly\n */\n public get name(): string {\n return this.blobContainerClient.containerName;\n }\n\n /**\n * Creates a {@link DataLakeDirectoryClient} object under current file system.\n *\n * @param directoryName -\n */\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-subclients */\n public getDirectoryClient(directoryName: string): DataLakeDirectoryClient {\n return new DataLakeDirectoryClient(\n appendToURLPath(this.url, EscapePath(directoryName)),\n this.pipeline,\n );\n }\n\n /**\n * Creates a {@link DataLakeFileClient} object under current file system.\n *\n * @param fileName -\n */\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-subclients */\n public getFileClient(fileName: string): DataLakeFileClient {\n return new DataLakeFileClient(appendToURLPath(this.url, EscapePath(fileName)), this.pipeline);\n }\n\n /**\n * Get a {@link DataLakeLeaseClient} that manages leases on the file system.\n *\n * @param proposeLeaseId - Optional. Initial proposed lease Id.\n */\n public getDataLakeLeaseClient(proposeLeaseId?: string): DataLakeLeaseClient {\n return new DataLakeLeaseClient(this.blobContainerClient.getBlobLeaseClient(proposeLeaseId));\n }\n\n /**\n * Creates a new file system under the specified account. If the file system with\n * the same name already exists, the operation fails.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/create-container\n *\n * @param options - Optional. Options when creating file system.\n */\n public async create(options: FileSystemCreateOptions = {}): Promise<FileSystemCreateResponse> {\n return tracingClient.withSpan(\n \"DataLakeFileSystemClient-create\",\n options,\n async (updatedOptions) => {\n return this.blobContainerClient.create({\n ...options,\n access: toContainerPublicAccessType(options.access),\n tracingOptions: updatedOptions.tracingOptions,\n containerEncryptionScope: options.fileSystemEncryptionScope,\n });\n },\n );\n }\n\n /**\n * Creates a new file system under the specified account. If the file system with\n * the same name already exists, it is not changed.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/create-container\n *\n * @param options -\n */\n public async createIfNotExists(\n options: FileSystemCreateOptions = {},\n ): Promise<FileSystemCreateIfNotExistsResponse> {\n return tracingClient.withSpan(\n \"DataLakeFileSystemClient-createIfNotExists\",\n options,\n async (updatedOptions) => {\n return this.blobContainerClient.createIfNotExists({\n ...options,\n access: toContainerPublicAccessType(options.access),\n containerEncryptionScope: options.fileSystemEncryptionScope,\n tracingOptions: updatedOptions.tracingOptions,\n });\n },\n );\n }\n\n /**\n * Returns true if the File system represented by this client exists; false otherwise.\n *\n * NOTE: use this function with care since an existing file system might be deleted by other clients or\n * applications. Vice versa new file system with the same name might be added by other clients or\n * applications after this function completes.\n *\n * @param options -\n */\n public async exists(options: FileSystemExistsOptions = {}): Promise<boolean> {\n return tracingClient.withSpan(\n \"DataLakeFileSystemClient-exists\",\n options,\n async (updatedOptions) => {\n return this.blobContainerClient.exists(updatedOptions);\n },\n );\n }\n\n /**\n * Delete current file system.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/delete-container\n *\n * @param options - Optional. Options when deleting file system.\n */\n public async delete(options: FileSystemDeleteOptions = {}): Promise<FileSystemDeleteResponse> {\n return tracingClient.withSpan(\n \"DataLakeFileSystemClient-delete\",\n options,\n async (updatedOptions) => {\n return this.blobContainerClient.delete({\n ...options,\n tracingOptions: updatedOptions.tracingOptions,\n });\n },\n );\n }\n\n /**\n * Delete current file system if it exists.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/delete-container\n *\n * @param options -\n */\n public async deleteIfExists(\n options: FileSystemDeleteOptions = {},\n ): Promise<FileSystemDeleteIfExistsResponse> {\n return tracingClient.withSpan(\n \"DataLakeFileSystemClient-deleteIfExists\",\n options,\n async (updatedOptions) => {\n return this.blobContainerClient.deleteIfExists(updatedOptions);\n },\n );\n }\n\n /**\n * Returns all user-defined metadata and system properties for the specified\n * file system.\n *\n * WARNING: The `metadata` object returned in the response will have its keys in lowercase, even if\n * they originally contained uppercase characters. This differs from the metadata keys returned by\n * the `listFileSystems` method of {@link DataLakeServiceClient} using the `includeMetadata` option, which\n * will retain their original casing.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/get-container-properties\n *\n * @param options - Optional. Options when getting file system properties.\n */\n public async getProperties(\n options: FileSystemGetPropertiesOptions = {},\n ): Promise<FileSystemGetPropertiesResponse> {\n return tracingClient.withSpan(\n \"DataLakeFileSystemClient-getProperties\",\n options,\n async (updatedOptions) => {\n const rawResponse = await this.blobContainerClient.getProperties({\n ...options,\n tracingOptions: updatedOptions.tracingOptions,\n });\n\n // Transfer and rename blobPublicAccess to publicAccess\n const response = rawResponse as FileSystemGetPropertiesResponse;\n\n response.publicAccess = toPublicAccessType(rawResponse.blobPublicAccess);\n response._response.parsedHeaders.publicAccess = response.publicAccess;\n\n delete rawResponse.blobPublicAccess;\n delete rawResponse._response.parsedHeaders.blobPublicAccess;\n\n return response;\n },\n );\n }\n\n /**\n * Sets one or more user-defined name-value pairs for the specified file system.\n *\n * If no option provided, or no metadata defined in the parameter, the file system\n * metadata will be removed.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/set-container-metadata\n *\n * @param metadata - Replace existing metadata with this value.\n * If no value provided the existing metadata will be removed.\n * @param options - Optional. Options when setting file system metadata.\n */\n public async setMetadata(\n metadata?: Metadata,\n options: FileSystemSetMetadataOptions = {},\n ): Promise<FileSystemSetMetadataResponse> {\n return tracingClient.withSpan(\n \"DataLakeFileSystemClient-setMetadata\",\n options,\n async (updatedOptions) => {\n return this.blobContainerClient.setMetadata(metadata, {\n ...options,\n tracingOptions: updatedOptions.tracingOptions,\n });\n },\n );\n }\n\n /**\n * Gets the permissions for the specified file system. The permissions indicate\n * whether file system data may be accessed publicly.\n *\n * WARNING: JavaScript Date will potentially lose precision when parsing startsOn and expiresOn strings.\n * For example, new Date(\"2018-12-31T03:44:23.8827891Z\").toISOString() will get \"2018-12-31T03:44:23.882Z\".\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/get-container-acl\n *\n * @param options - Optional. Options when getting file system access policy.\n */\n public async getAccessPolicy(\n options: FileSystemGetAccessPolicyOptions = {},\n ): Promise<FileSystemGetAccessPolicyResponse> {\n return tracingClient.withSpan(\n \"DataLakeFileSystemClient-getAccessPolicy\",\n options,\n async (updatedOptions) => {\n const rawResponse = await this.blobContainerClient.getAccessPolicy({\n ...options,\n tracingOptions: updatedOptions.tracingOptions,\n });\n\n // Transfer and rename blobPublicAccess to publicAccess\n const response = rawResponse as unknown as FileSystemGetAccessPolicyResponse;\n\n response.publicAccess = toPublicAccessType(rawResponse.blobPublicAccess);\n response._response.parsedHeaders.publicAccess = response.publicAccess;\n\n delete rawResponse.blobPublicAccess;\n delete rawResponse._response.parsedHeaders.blobPublicAccess;\n\n return response;\n },\n );\n }\n\n /**\n * Sets the permissions for the specified file system. The permissions indicate\n * whether directories or files in a file system may be accessed publicly.\n *\n * When you set permissions for a file system, the existing permissions are replaced.\n * If no access or containerAcl provided, the existing file system ACL will be\n * removed.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/set-container-acl\n *\n * @param access - Optional. The level of public access to data in the file system.\n * @param fileSystemAcl - Optional. Array of elements each having a unique Id and details of the access policy.\n * @param options - Optional. Options when setting file system access policy.\n */\n public async setAccessPolicy(\n access?: PublicAccessType,\n fileSystemAcl?: SignedIdentifier<AccessPolicy>[],\n options: FileSystemSetAccessPolicyOptions = {},\n ): Promise<FileSystemSetAccessPolicyResponse> {\n return tracingClient.withSpan(\n \"DataLakeFileSystemClient-setAccessPolicy\",\n options,\n async (updatedOptions) => {\n return this.blobContainerClient.setAccessPolicy(\n toContainerPublicAccessType(access),\n fileSystemAcl,\n {\n ...options,\n tracingOptions: updatedOptions.tracingOptions,\n },\n );\n },\n );\n }\n\n /**\n * Returns an async iterable iterator to list all the paths (directories and files)\n * under the specified file system.\n *\n * .byPage() returns an async iterable iterator to list the paths in pages.\n *\n * Example using `for await` syntax:\n *\n * ```js\n * // Get the fileSystemClient before you run these snippets,\n * // Can be obtained from `serviceClient.getFileSystemClient(\"<your-filesystem-name>\");`\n * let i = 1;\n * for await (const path of fileSystemClient.listPaths()) {\n * console.log(`Path ${i++}: ${path.name}, isDirectory?: ${path.isDirectory}`);\n * }\n * ```\n *\n * Example using `iter.next()`:\n *\n * ```js\n * let i = 1;\n * let iter = fileSystemClient.listPaths();\n * let pathItem = await iter.next();\n * while (!pathItem.done) {\n * console.log(`Path ${i++}: ${pathItem.value.name}, isDirectory?: ${pathItem.value.isDirectory}`);\n * pathItem = await iter.next();\n * }\n * ```\n *\n * Example using `byPage()`:\n *\n * ```js\n * // passing optional maxPageSize in the page settings\n * let i = 1;\n * for await (const response of fileSystemClient.listPaths().byPage({ maxPageSize: 20 })) {\n * for (const path of response.pathItems) {\n * console.log(`Path ${i++}: ${path.name}, isDirectory?: ${path.isDirectory}`);\n * }\n * }\n * ```\n *\n * Example using paging with a marker:\n *\n * ```js\n * let i = 1;\n * let iterator = fileSystemClient.listPaths().byPage({ maxPageSize: 2 });\n * let response = (await iterator.next()).value;\n *\n * // Prints 2 path names\n * for (const path of response.pathItems) {\n * console.log(`Path ${i++}: ${path.name}, isDirectory?: ${path.isDirectory}`);\n * }\n *\n * // Gets next marker\n * let marker = response.continuationToken;\n *\n * // Passing next marker as continuationToken\n *\n * iterator = fileSystemClient.listPaths().byPage({ continuationToken: marker, maxPageSize: 10 });\n * response = (await iterator.next()).value;\n *\n * // Prints 10 path names\n * for (const path of response.pathItems) {\n * console.log(`Path ${i++}: ${path.name}, isDirectory?: ${path.isDirectory}`);\n * }\n * ```\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/list-blobs\n *\n * @param options - Optional. Options when listing paths.\n */\n public listPaths(\n options: ListPathsOptions = {},\n ): PagedAsyncIterableIterator<Path, FileSystemListPathsResponse> {\n options.path = options.path === \"\" ? undefined : options.path;\n\n const iter = this.listItems(options);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: PageSettings = {}) => {\n return this.listSegments(settings.continuationToken, {\n maxResults: settings.maxPageSize,\n ...options,\n });\n },\n };\n }\n\n private async *listItems(options: ListPathsSegmentOptions = {}): AsyncIterableIterator<Path> {\n for await (const response of this.listSegments(undefined, options)) {\n yield* response.pathItems || [];\n }\n }\n\n private async *listSegments(\n continuation?: string,\n options: ListPathsSegmentOptions = {},\n ): AsyncIterableIterator<FileSystemListPathsResponse> {\n let response;\n if (!!continuation || continuation === undefined) {\n do {\n response = await this.listPathsSegment(continuation, options);\n continuation = response.continuation;\n yield response;\n } while (continuation);\n }\n }\n\n private async listPathsSegment(\n continuation?: string,\n options: ListPathsSegmentOptions = {},\n ): Promise<FileSystemListPathsResponse> {\n return tracingClient.withSpan(\n \"DataLakeFileSystemClient-listPathsSegment\",\n options,\n async (updatedOptions) => {\n const rawResponse = await this.fileSystemContext.listPaths(options.recursive || false, {\n continuation,\n ...updatedOptions,\n upn: options.userPrincipalName,\n });\n\n const response = rawResponse as FileSystemListPathsResponse;\n response.pathItems = [];\n for (const path of rawResponse.paths || []) {\n response.pathItems.push({\n ...path,\n permissions: toPermissions(path.permissions),\n createdOn: windowsFileTimeTicksToTime(path.creationTime),\n expiresOn: windowsFileTimeTicksToTime(path.expiryTime),\n });\n }\n delete rawResponse.paths;\n\n return response;\n },\n );\n }\n\n /**\n * Returns an async iterable iterator to list all the paths (directories and files)\n * under the specified file system.\n *\n * .byPage() returns an async iterable iterator to list the paths in pages.\n *\n * Example using `for await` syntax:\n *\n * ```js\n * // Get the fileSystemClient before you run these snippets,\n * // Can be obtained from `serviceClient.getFileSystemClient(\"<your-filesystem-name>\");`\n * let i = 1;\n * for await (const deletePath of fileSystemClient.listDeletedPaths()) {\n * console.log(`Path ${i++}: ${deletePath.name}`);\n * }\n * ```\n *\n * Example using `iter.next()`:\n *\n * ```js\n * let i = 1;\n * let iter = fileSystemClient.listDeletedPaths();\n * let deletedPathItem = await iter.next();\n * while (!deletedPathItem.done) {\n * console.log(`Path ${i++}: ${deletedPathItem.value.name}`);\n * pathItem = await iter.next();\n * }\n * ```\n *\n * Example using `byPage()`:\n *\n * ```js\n * // passing optional maxPageSize in the page settings\n * let i = 1;\n * for await (const response of fileSystemClient.listDeletedPaths().byPage({ maxPageSize: 20 })) {\n * for (const deletePath of response.pathItems) {\n * console.log(`Path ${i++}: ${deletePath.name}`);\n * }\n * }\n * ```\n *\n * Example using paging with a marker:\n *\n * ```js\n * let i = 1;\n * let iterator = fileSystemClient.listDeletedPaths().byPage({ maxPageSize: 2 });\n * let response = (await iterator.next()).value;\n *\n * // Prints 2 path names\n * for (const path of response.pathItems) {\n * console.log(`Path ${i++}: ${path.name}}`);\n * }\n *\n * // Gets next marker\n * let marker = response.continuationToken;\n *\n * // Passing next marker as continuationToken\n *\n * iterator = fileSystemClient.listDeletedPaths().byPage({ continuationToken: marker, maxPageSize: 10 });\n * response = (await iterator.next()).value;\n *\n * // Prints 10 path names\n * for (const deletePath of response.deletedPathItems) {\n * console.log(`Path ${i++}: ${deletePath.name}`);\n * }\n * ```\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/list-blobs\n *\n * @param options - Optional. Options when listing deleted paths.\n */\n public listDeletedPaths(\n options: ListDeletedPathsOptions = {},\n ): PagedAsyncIterableIterator<DeletedPath, FileSystemListDeletedPathsResponse> {\n const iter = this.listDeletedItems(options);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: PageSettings = {}) => {\n return this.listDeletedSegments(settings.continuationToken, {\n maxResults: settings.maxPageSize,\n ...options,\n });\n },\n };\n }\n private async *listDeletedItems(\n options: ListDeletedPathsOptions = {},\n ): AsyncIterableIterator<DeletedPath> {\n for await (const response of this.listDeletedSegments(undefined, options)) {\n yield* response.pathItems || [];\n }\n }\n\n private async *listDeletedSegments(\n continuation?: string,\n options: ListDeletedPathsSegmentOptions = {},\n ): AsyncIterableIterator<FileSystemListDeletedPathsResponse> {\n let response;\n if (!!continuation || continuation === undefined) {\n do {\n response = await this.listDeletedPathsSegment(continuation, options);\n continuation = response.continuation;\n yield response;\n } while (continuation);\n }\n }\n\n private async listDeletedPathsSegment(\n continuation?: string,\n options: ListDeletedPathsSegmentOptions = {},\n ): Promise<FileSystemListDeletedPathsResponse> {\n return tracingClient.withSpan(\n \"DataLakeFileSystemClient-listDeletedPathsSegment\",\n options,\n async (updatedOptions) => {\n const rawResponse = await this.fileSystemContextToBlobEndpoint.listBlobHierarchySegment({\n marker: continuation,\n ...updatedOptions,\n prefix: options.prefix === \"\" ? undefined : options.prefix,\n });\n\n const response = rawResponse as FileSystemListDeletedPathsResponse;\n response.pathItems = [];\n for (const path of rawResponse.segment.blobItems || []) {\n response.pathItems.push({\n name: path.name,\n deletionId: path.deletionId,\n deletedOn: path.properties.deletedTime,\n remainingRetentionDays: path.properties.remainingRetentionDays,\n });\n }\n\n if (response.nextMarker) {\n response.continuation = response.nextMarker;\n }\n\n return response;\n },\n );\n }\n\n /**\n * Restores a soft deleted path.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/undelete-blob\n *\n * @param deletedPath - Required. The path of the deleted path.\n *\n * @param deletionId - Required. The deletion ID associated with the soft deleted path.\n *\n */\n\n public async undeletePath(\n deletedPath: string,\n deletionId: string,\n options: FileSystemUndeletePathOption = {},\n ): Promise<FileSystemUndeletePathResponse> {\n return tracingClient.withSpan(\n \"DataLakeFileSystemClient-undeletePath\",\n options,\n async (updatedOptions) => {\n const pathClient = new PathClientInternal(\n appendToURLPath(this.blobEndpointUrl, EscapePath(deletedPath)),\n this.pipeline,\n );\n\n const rawResponse = assertResponse<PathUndeleteHeaders, PathUndeleteHeaders>(\n await pathClient.blobPathContext.undelete({\n undeleteSource: \"?\" + DeletionIdKey + \"=\" + deletionId,\n ...options,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n\n if (rawResponse.resourceType === PathResultTypeConstants.DirectoryResourceType) {\n return {\n pathClient: this.getDirectoryClient(deletedPath),\n ...rawResponse,\n };\n } else {\n return {\n pathClient: this.getFileClient(deletedPath),\n ...rawResponse,\n };\n }\n },\n );\n }\n\n /**\n * Only available for DataLakeFileSystemClient constructed with a shared key credential.\n *\n * Generates a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n public generateSasUrl(options: FileSystemGenerateSasUrlOptions): Promise<string> {\n return new Promise((resolve) => {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw RangeError(\n \"Can only generate the SAS when the client is initialized with a shared key credential\",\n );\n }\n\n const sas = generateDataLakeSASQueryParameters(\n {\n fileSystemName: this.name,\n ...options,\n },\n this.credential,\n ).toString();\n\n resolve(appendToURLQuery(this.url, sas));\n });\n }\n\n /**\n * Only available for DataLakeFileSystemClient constructed with a shared key credential.\n *\n * Generates string to sign for a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n public generateSasStringToSign(options: FileSystemGenerateSasUrlOptions): string {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw RangeError(\n \"Can only generate the SAS when the client is initialized with a shared key credential\",\n );\n }\n\n return generateDataLakeSASQueryParametersInternal(\n {\n fileSystemName: this.name,\n ...options,\n },\n this.credential,\n ).stringToSign;\n }\n\n /**\n * Generates a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the input user delegation key.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @param userDelegationKey - Return value of `blobServiceClient.getUserDelegationKey()`\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n public generateUserDelegationSasUrl(\n options: FileSystemGenerateSasUrlOptions,\n userDelegationKey: UserDelegationKey,\n ): Promise<string> {\n return new Promise((resolve) => {\n const sas = generateDataLakeSASQueryParameters(\n {\n fileSystemName: this.name,\n ...options,\n },\n userDelegationKey,\n this.accountName,\n ).toString();\n\n resolve(appendToURLQuery(this.url, sas));\n });\n }\n\n /**\n * Generates string to sign for a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the input user delegation key.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @param userDelegationKey - Return value of `blobServiceClient.getUserDelegationKey()`\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n\n public generateUserDelegationSasStringToSign(\n options: FileSystemGenerateSasUrlOptions,\n userDelegationKey: UserDelegationKey,\n ): string {\n return generateDataLakeSASQueryParametersInternal(\n {\n fileSystemName: this.name,\n ...options,\n },\n userDelegationKey,\n this.accountName,\n ).stringToSign;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * This is a helper class to construct a string representing the permissions granted by an AccountSAS. Setting a value\n * to true means that any SAS which uses these permissions will grant permissions for that operation. Once all the\n * values are set, this should be serialized with toString and set as the permissions field on an\n * {@link AccountSASSignatureValues} object. It is possible to construct the permissions string without this class, but\n * the order of the permissions is particular and this class guarantees correctness.\n */\nexport class AccountSASPermissions {\n /**\n * Parse initializes the AccountSASPermissions fields from a string.\n *\n * @param permissions -\n */\n public static parse(permissions: string): AccountSASPermissions {\n const accountSASPermissions = new AccountSASPermissions();\n\n for (const c of permissions) {\n switch (c) {\n case \"r\":\n accountSASPermissions.read = true;\n break;\n case \"w\":\n accountSASPermissions.write = true;\n break;\n case \"d\":\n accountSASPermissions.delete = true;\n break;\n case \"l\":\n accountSASPermissions.list = true;\n break;\n case \"a\":\n accountSASPermissions.add = true;\n break;\n case \"c\":\n accountSASPermissions.create = true;\n break;\n case \"u\":\n accountSASPermissions.update = true;\n break;\n case \"p\":\n accountSASPermissions.process = true;\n break;\n default:\n throw new RangeError(`Invalid permission character: ${c}`);\n }\n }\n\n return accountSASPermissions;\n }\n\n /**\n * Permission to read resources and list queues and tables granted.\n */\n public read: boolean = false;\n\n /**\n * Permission to write resources granted.\n */\n public write: boolean = false;\n\n /**\n * Permission to delete blobs and files granted.\n */\n public delete: boolean = false;\n\n /**\n * Permission to list blob containers, blobs, shares, directories, and files granted.\n */\n public list: boolean = false;\n\n /**\n * Permission to add messages, table entities, and append to blobs granted.\n */\n public add: boolean = false;\n\n /**\n * Permission to create blobs and files granted.\n */\n public create: boolean = false;\n\n /**\n * Permissions to update messages and table entities granted.\n */\n public update: boolean = false;\n\n /**\n * Permission to get and delete messages granted.\n */\n public process: boolean = false;\n\n /**\n * Produces the SAS permissions string for an Azure Storage account.\n * Call this method to set AccountSASSignatureValues Permissions field.\n *\n * Using this method will guarantee the resource types are in\n * an order accepted by the service.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n *\n */\n public toString(): string {\n // The order of the characters should be as specified here to ensure correctness:\n // https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n // Use a string array instead of string concatenating += operator for performance\n const permissions: string[] = [];\n if (this.read) {\n permissions.push(\"r\");\n }\n if (this.write) {\n permissions.push(\"w\");\n }\n if (this.delete) {\n permissions.push(\"d\");\n }\n if (this.list) {\n permissions.push(\"l\");\n }\n if (this.add) {\n permissions.push(\"a\");\n }\n if (this.create) {\n permissions.push(\"c\");\n }\n if (this.update) {\n permissions.push(\"u\");\n }\n if (this.process) {\n permissions.push(\"p\");\n }\n return permissions.join(\"\");\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * This is a helper class to construct a string representing the resources accessible by an AccountSAS. Setting a value\n * to true means that any SAS which uses these permissions will grant access to that resource type. Once all the\n * values are set, this should be serialized with toString and set as the resources field on an\n * {@link AccountSASSignatureValues} object. It is possible to construct the resources string without this class, but\n * the order of the resources is particular and this class guarantees correctness.\n */\nexport class AccountSASResourceTypes {\n /**\n * Creates an {@link AccountSASResourceTypes} from the specified resource types string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid resource type.\n *\n * @param resourceTypes -\n */\n public static parse(resourceTypes: string): AccountSASResourceTypes {\n const accountSASResourceTypes = new AccountSASResourceTypes();\n\n for (const c of resourceTypes) {\n switch (c) {\n case \"s\":\n accountSASResourceTypes.service = true;\n break;\n case \"c\":\n accountSASResourceTypes.container = true;\n break;\n case \"o\":\n accountSASResourceTypes.object = true;\n break;\n default:\n throw new RangeError(`Invalid resource type: ${c}`);\n }\n }\n\n return accountSASResourceTypes;\n }\n\n /**\n * Permission to access service level APIs granted.\n */\n public service: boolean = false;\n\n /**\n * Permission to access container level APIs (Blob Containers, Tables, Queues, File Shares, File Systems) granted.\n */\n public container: boolean = false;\n\n /**\n * Permission to access object level APIs (Blobs, Table Entities, Queue Messages, Files, Directories) granted.\n */\n public object: boolean = false;\n\n /**\n * Converts the given resource types to a string.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n *\n */\n public toString(): string {\n const resourceTypes: string[] = [];\n if (this.service) {\n resourceTypes.push(\"s\");\n }\n if (this.container) {\n resourceTypes.push(\"c\");\n }\n if (this.object) {\n resourceTypes.push(\"o\");\n }\n return resourceTypes.join(\"\");\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * This is a helper class to construct a string representing the services accessible by an AccountSAS. Setting a value\n * to true means that any SAS which uses these permissions will grant access to that service. Once all the\n * values are set, this should be serialized with toString and set as the services field on an\n * {@link AccountSASSignatureValues} object. It is possible to construct the services string without this class, but\n * the order of the services is particular and this class guarantees correctness.\n */\nexport class AccountSASServices {\n /**\n * Creates an {@link AccountSASServices} from the specified services string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid service.\n *\n * @param services -\n */\n public static parse(services: string): AccountSASServices {\n const accountSASServices = new AccountSASServices();\n\n for (const c of services) {\n switch (c) {\n case \"b\":\n accountSASServices.blob = true;\n break;\n case \"f\":\n accountSASServices.file = true;\n break;\n case \"q\":\n accountSASServices.queue = true;\n break;\n case \"t\":\n accountSASServices.table = true;\n break;\n default:\n throw new RangeError(`Invalid service character: ${c}`);\n }\n }\n\n return accountSASServices;\n }\n\n /**\n * Permission to access blob and data lake resources granted.\n */\n public blob: boolean = false;\n\n /**\n * Permission to access file resources granted.\n */\n public file: boolean = false;\n\n /**\n * Permission to access queue resources granted.\n */\n public queue: boolean = false;\n\n /**\n * Permission to access table resources granted.\n */\n public table: boolean = false;\n\n /**\n * Converts the given services to a string.\n *\n */\n public toString(): string {\n const services: string[] = [];\n if (this.blob) {\n services.push(\"b\");\n }\n if (this.table) {\n services.push(\"t\");\n }\n if (this.queue) {\n services.push(\"q\");\n }\n if (this.file) {\n services.push(\"f\");\n }\n return services.join(\"\");\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { AccountSASPermissions } from \"./AccountSASPermissions\";\nimport { AccountSASResourceTypes } from \"./AccountSASResourceTypes\";\nimport { AccountSASServices } from \"./AccountSASServices\";\nimport type { StorageSharedKeyCredential } from \"../credentials/StorageSharedKeyCredential\";\nimport type { SasIPRange } from \"./SasIPRange\";\nimport { ipRangeToString } from \"./SasIPRange\";\nimport type { SASProtocol } from \"./SASQueryParameters\";\nimport { SASQueryParameters } from \"./SASQueryParameters\";\nimport { SERVICE_VERSION } from \"../utils/constants\";\nimport { truncatedISO8061Date } from \"../utils/utils.common\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * AccountSASSignatureValues is used to generate a Shared Access Signature (SAS) for an Azure Storage account. Once\n * all the values here are set appropriately, call {@link generateAccountSASQueryParameters} to obtain a representation\n * of the SAS which can actually be applied to data lake urls. Note: that both this class and {@link SASQueryParameters}\n * exist because the former is mutable and a logical representation while the latter is immutable and used to generate\n * actual REST requests.\n *\n * @see https://learn.microsoft.com/en-us/azure/storage/common/storage-dotnet-shared-access-signature-part-1\n * for more conceptual information on SAS\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n * for descriptions of the parameters, including which are required\n */\nexport interface AccountSASSignatureValues {\n /**\n * If not provided, this defaults to the service version targeted by this version of the library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols allowed.\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * The time after which the SAS will no longer work.\n */\n expiresOn: Date;\n\n /**\n * Specifies which operations the SAS user may perform. Please refer to {@link AccountSASPermissions} for help\n * constructing the permissions string.\n */\n permissions: AccountSASPermissions;\n\n /**\n * Optional. IP range allowed.\n */\n ipRange?: SasIPRange;\n\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n encryptionScope?: string;\n\n /**\n * The values that indicate the services accessible with this SAS. Please refer to {@link AccountSASServices} to\n * construct this value.\n */\n services: string;\n\n /**\n * The values that indicate the resource types accessible with this SAS. Please refer\n * to {@link AccountSASResourceTypes} to construct this value.\n */\n resourceTypes: string;\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Generates a {@link SASQueryParameters} object which contains all SAS query parameters needed to make an actual\n * REST request.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n *\n * @param accountSASSignatureValues -\n * @param sharedKeyCredential -\n */\nexport function generateAccountSASQueryParameters(\n accountSASSignatureValues: AccountSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): SASQueryParameters {\n return generateAccountSASQueryParametersInternal(accountSASSignatureValues, sharedKeyCredential)\n .sasQueryParameters;\n}\n\nexport function generateAccountSASQueryParametersInternal(\n accountSASSignatureValues: AccountSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): { sasQueryParameters: SASQueryParameters; stringToSign: string } {\n const version = accountSASSignatureValues.version\n ? accountSASSignatureValues.version\n : SERVICE_VERSION;\n\n const parsedPermissions = AccountSASPermissions.parse(\n accountSASSignatureValues.permissions.toString(),\n );\n const parsedServices = AccountSASServices.parse(accountSASSignatureValues.services).toString();\n const parsedResourceTypes = AccountSASResourceTypes.parse(\n accountSASSignatureValues.resourceTypes,\n ).toString();\n\n let stringToSign: string;\n\n if (version >= \"2020-12-06\") {\n stringToSign = [\n sharedKeyCredential.accountName,\n parsedPermissions,\n parsedServices,\n parsedResourceTypes,\n accountSASSignatureValues.startsOn\n ? truncatedISO8061Date(accountSASSignatureValues.startsOn, false)\n : \"\",\n truncatedISO8061Date(accountSASSignatureValues.expiresOn, false),\n accountSASSignatureValues.ipRange ? ipRangeToString(accountSASSignatureValues.ipRange) : \"\",\n accountSASSignatureValues.protocol ? accountSASSignatureValues.protocol : \"\",\n version,\n accountSASSignatureValues.encryptionScope ? accountSASSignatureValues.encryptionScope : \"\", // Reserve for encryption scope\n \"\", // Account SAS requires an additional newline character\n ].join(\"\\n\");\n } else {\n stringToSign = [\n sharedKeyCredential.accountName,\n parsedPermissions,\n parsedServices,\n parsedResourceTypes,\n accountSASSignatureValues.startsOn\n ? truncatedISO8061Date(accountSASSignatureValues.startsOn, false)\n : \"\",\n truncatedISO8061Date(accountSASSignatureValues.expiresOn, false),\n accountSASSignatureValues.ipRange ? ipRangeToString(accountSASSignatureValues.ipRange) : \"\",\n accountSASSignatureValues.protocol ? accountSASSignatureValues.protocol : \"\",\n version,\n \"\", // Account SAS requires an additional newline character\n ].join(\"\\n\");\n }\n\n const signature: string = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameters: new SASQueryParameters(\n version,\n signature,\n parsedPermissions.toString(),\n parsedServices,\n parsedResourceTypes,\n accountSASSignatureValues.protocol,\n accountSASSignatureValues.startsOn,\n accountSASSignatureValues.expiresOn,\n accountSASSignatureValues.ipRange,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n accountSASSignatureValues.encryptionScope,\n ),\n stringToSign: stringToSign,\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport type { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport { getDefaultProxySettings } from \"@azure/core-rest-pipeline\";\nimport { isNode } from \"@azure/core-util\";\nimport type {\n ServiceGetPropertiesOptions,\n ServiceSetPropertiesOptions,\n ServiceSetPropertiesResponse,\n} from \"@azure/storage-blob\";\nimport { BlobServiceClient } from \"@azure/storage-blob\";\nimport type { Pipeline, StoragePipelineOptions } from \"./Pipeline\";\nimport { isPipelineLike, newPipeline } from \"./Pipeline\";\nimport { AnonymousCredential } from \"@azure/storage-blob\";\nimport { StorageSharedKeyCredential } from \"./credentials/StorageSharedKeyCredential\";\n\nimport { DataLakeFileSystemClient } from \"./DataLakeFileSystemClient\";\nimport type {\n FileSystemItem,\n FileSystemRenameResponse,\n ServiceGenerateAccountSasUrlOptions,\n ServiceListFileSystemsOptions,\n ServiceListFileSystemsSegmentResponse,\n ServiceRenameFileSystemOptions,\n ServiceUndeleteFileSystemOptions,\n FileSystemUndeleteResponse,\n} from \"./models\";\nimport { StorageClient } from \"./StorageClient\";\nimport {\n appendToURLPath,\n appendToURLQuery,\n extractConnectionStringParts,\n} from \"./utils/utils.common\";\nimport { toDfsEndpointUrl, toFileSystemPagedAsyncIterableIterator } from \"./transforms\";\nimport type {\n ServiceGetUserDelegationKeyOptions,\n ServiceGetUserDelegationKeyResponse,\n} from \"./models\";\nimport { tracingClient } from \"./utils/tracing\";\nimport { AccountSASPermissions } from \"./sas/AccountSASPermissions\";\nimport {\n generateAccountSASQueryParameters,\n generateAccountSASQueryParametersInternal,\n} from \"./sas/AccountSASSignatureValues\";\nimport { AccountSASServices } from \"./sas/AccountSASServices\";\nimport type { DataLakeServiceGetPropertiesResponse, DataLakeServiceProperties } from \"./index\";\n\n/**\n * DataLakeServiceClient allows you to manipulate Azure\n * Data Lake service resources and file systems. The storage account provides\n * the top-level namespace for the Data Lake service.\n */\nexport class DataLakeServiceClient extends StorageClient {\n // private serviceContext: Service;\n\n /**\n * blobServiceClient provided by `@azure/storage-blob` package.\n */\n private blobServiceClient: BlobServiceClient;\n\n /**\n *\n * Creates an instance of DataLakeServiceClient from connection string.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n\n public static fromConnectionString(\n connectionString: string,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n ): DataLakeServiceClient {\n options = options || {};\n const extractedCreds = extractConnectionStringParts(connectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey,\n );\n if (!options.proxyOptions) {\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n }\n const pipeline = newPipeline(sharedKeyCredential, options);\n return new DataLakeServiceClient(toDfsEndpointUrl(extractedCreds.url), pipeline);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n const pipeline = newPipeline(new AnonymousCredential(), options);\n return new DataLakeServiceClient(\n toDfsEndpointUrl(extractedCreds.url) + \"?\" + extractedCreds.accountSas,\n pipeline,\n );\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\",\n );\n }\n }\n\n /**\n * Creates an instance of DataLakeServiceClient from url.\n *\n * @param url - A Client string pointing to Azure Storage data lake service, such as\n * \"https://myaccount.dfs.core.windows.net\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.dfs.core.windows.net?sasString\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n public constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n );\n\n /**\n * Creates an instance of DataLakeServiceClient from url and pipeline.\n *\n * @param url - A Client string pointing to Azure Storage data lake service, such as\n * \"https://myaccount.dfs.core.windows.net\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.dfs.core.windows.net?sasString\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n public constructor(url: string, pipeline: Pipeline);\n\n public constructor(\n url: string,\n credentialOrPipeline?:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | Pipeline,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n ) {\n if (isPipelineLike(credentialOrPipeline)) {\n super(url, credentialOrPipeline);\n } else {\n let credential;\n if (credentialOrPipeline === undefined) {\n credential = new AnonymousCredential();\n } else {\n credential = credentialOrPipeline;\n }\n\n const pipeline = newPipeline(credential, options);\n super(url, pipeline);\n }\n\n // this.serviceContext = new Service(this.storageClientContext);\n this.blobServiceClient = new BlobServiceClient(this.blobEndpointUrl, this.pipeline);\n }\n\n /**\n * Creates a {@link DataLakeFileSystemClient} object.\n *\n * @param fileSystemName - File system name.\n */\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-subclients */\n public getFileSystemClient(fileSystemName: string): DataLakeFileSystemClient {\n return new DataLakeFileSystemClient(\n appendToURLPath(this.url, encodeURIComponent(fileSystemName)),\n this.pipeline,\n );\n }\n\n /**\n * ONLY AVAILABLE WHEN USING BEARER TOKEN AUTHENTICATION (TokenCredential).\n *\n * Retrieves a user delegation key for the Data Lake service. This is only a valid operation when using\n * bearer token authentication.\n *\n * @example\n * ```js\n * // Generate user delegation SAS for a file system\n * const userDelegationKey = await dataLakeServiceClient.getUserDelegationKey(startsOn, expiresOn);\n * const fileSystemSAS = generateDataLakeSASQueryParameters({\n * fileSystemName, // Required\n * permissions: FileSystemSASPermissions.parse(\"racwdl\"), // Required\n * startsOn, // Required. Date type\n * expiresOn, // Optional. Date type\n * ipRange: { start: \"0.0.0.0\", end: \"255.255.255.255\" }, // Optional\n * protocol: SASProtocol.HttpsAndHttp, // Optional\n * version: \"2018-11-09\" // Must greater than or equal to 2018-11-09 to generate user delegation SAS\n * },\n * userDelegationKey, // UserDelegationKey\n * accountName\n * ).toString();\n * ```\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/get-user-delegation-key\n *\n * @param startsOn - The start time for the user delegation SAS. Must be within 7 days of the current time.\n * @param expiresOn - The end time for the user delegation SAS. Must be within 7 days of the current time.\n * @param options -\n */\n public async getUserDelegationKey(\n startsOn: Date,\n expiresOn: Date,\n options: ServiceGetUserDelegationKeyOptions = {},\n ): Promise<ServiceGetUserDelegationKeyResponse> {\n return tracingClient.withSpan(\n \"DataLakeServiceClient-getUserDelegationKey\",\n options,\n async (updatedOptions) => {\n return this.blobServiceClient.getUserDelegationKey(startsOn, expiresOn, updatedOptions);\n },\n );\n }\n\n /**\n * Returns an async iterable iterator to list all the file systems\n * under the specified account.\n *\n * .byPage() returns an async iterable iterator to list the file systems in pages.\n *\n * Example using `for await` syntax:\n *\n * ```js\n * let i = 1;\n * for await (const fileSystem of serviceClient.listFileSystems()) {\n * console.log(`FileSystem ${i++}: ${fileSystem.name}`);\n * }\n * ```\n *\n * Example using `iter.next()`:\n *\n * ```js\n * let i = 1;\n * const iter = serviceClient.listFileSystems();\n * let fileSystemItem = await iter.next();\n * while (!fileSystemItem.done) {\n * console.log(`FileSystem ${i++}: ${fileSystemItem.value.name}`);\n * fileSystemItem = await iter.next();\n * }\n * ```\n *\n * Example using `byPage()`:\n *\n * ```js\n * // passing optional maxPageSize in the page settings\n * let i = 1;\n * for await (const response of serviceClient.listFileSystems().byPage({ maxPageSize: 20 })) {\n * if (response.fileSystemItems) {\n * for (const fileSystem of response.fileSystemItems) {\n * console.log(`FileSystem ${i++}: ${fileSystem.name}`);\n * }\n * }\n * }\n * ```\n *\n * Example using paging with a marker:\n *\n * ```js\n * let i = 1;\n * let iterator = serviceClient.listFileSystems().byPage({ maxPageSize: 2 });\n * let response = (await iterator.next()).value;\n *\n * // Prints 2 file system names\n * if (response.fileSystemItems) {\n * for (const fileSystem of response.fileSystemItems) {\n * console.log(`FileSystem ${i++}: ${fileSystem.name}`);\n * }\n * }\n *\n * // Gets next marker\n * let marker = response.continuationToken;\n * // Passing next marker as continuationToken\n * iterator = serviceClient\n * .listContainers()\n * .byPage({ continuationToken: marker, maxPageSize: 10 });\n * response = (await iterator.next()).value;\n *\n * // Prints 10 file system names\n * if (response.fileSystemItems) {\n * for (const fileSystem of response.fileSystemItems) {\n * console.log(`FileSystem ${i++}: ${fileSystem.name}`);\n * }\n * }\n * ```\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/list-containers2\n *\n * @param options -\n */\n public listFileSystems(\n options: ServiceListFileSystemsOptions = {},\n ): PagedAsyncIterableIterator<FileSystemItem, ServiceListFileSystemsSegmentResponse> {\n return toFileSystemPagedAsyncIterableIterator(this.blobServiceClient.listContainers(options));\n }\n\n // public async createFileSystem(): Promise<DataLakeFileSystemClient> {\n // throw Error(\"NotImplemented\");\n // }\n\n // public async deleteFileSystem(fileSystem: string): Promise<ServiceDeleteFileSystemResponse> {\n // throw Error(\"NotImplemented\");\n // }\n\n /**\n * Only available for DataLakeServiceClient constructed with a shared key credential.\n *\n * Generates an account Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/create-account-sas\n *\n * @param expiresOn - Optional. The time at which the shared access signature becomes invalid. Default to an hour later if not specified.\n * @param permissions - Specifies the list of permissions to be associated with the SAS.\n * @param resourceTypes - Specifies the resource types associated with the shared access signature.\n * @param options - Optional parameters.\n * @returns An account SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n public generateAccountSasUrl(\n expiresOn?: Date,\n permissions: AccountSASPermissions = AccountSASPermissions.parse(\"r\"),\n resourceTypes: string = \"sco\",\n options: ServiceGenerateAccountSasUrlOptions = {},\n ): string {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw RangeError(\n \"Can only generate the account SAS when the client is initialized with a shared key credential\",\n );\n }\n\n if (expiresOn === undefined) {\n const now = new Date();\n expiresOn = new Date(now.getTime() + 3600 * 1000);\n }\n\n const sas = generateAccountSASQueryParameters(\n {\n permissions,\n expiresOn,\n resourceTypes,\n services: AccountSASServices.parse(\"b\").toString(),\n ...options,\n },\n this.credential,\n ).toString();\n\n return appendToURLQuery(this.url, sas);\n }\n\n /**\n * Only available for DataLakeServiceClient constructed with a shared key credential.\n *\n * Generates string to sign for an account Shared Access Signature (SAS) based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/create-account-sas\n *\n * @param expiresOn - Optional. The time at which the shared access signature becomes invalid. Default to an hour later if not specified.\n * @param permissions - Specifies the list of permissions to be associated with the SAS.\n * @param resourceTypes - Specifies the resource types associated with the shared access signature.\n * @param options - Optional parameters.\n * @returns An account SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n public generateSasStringToSign(\n expiresOn?: Date,\n permissions: AccountSASPermissions = AccountSASPermissions.parse(\"r\"),\n resourceTypes: string = \"sco\",\n options: ServiceGenerateAccountSasUrlOptions = {},\n ): string {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw RangeError(\n \"Can only generate the account SAS when the client is initialized with a shared key credential\",\n );\n }\n\n if (expiresOn === undefined) {\n const now = new Date();\n expiresOn = new Date(now.getTime() + 3600 * 1000);\n }\n\n return generateAccountSASQueryParametersInternal(\n {\n permissions,\n expiresOn,\n resourceTypes,\n services: AccountSASServices.parse(\"b\").toString(),\n ...options,\n },\n this.credential,\n ).stringToSign;\n }\n\n /**\n * Renames an existing File System.\n *\n * @param sourceFileSystemName - The name of the source File System.\n * @param destinationContainerName - The new name of the File System.\n * @param options - Options to configure File System Rename operation.\n */\n /* eslint-disable-next-line @typescript-eslint/ban-ts-comment */\n // @ts-ignore Need to hide this interface for now. Make it public and turn on the live tests for it when the service is ready.\n private async renameFileSystem(\n sourceFileSystemName: string,\n destinationFileSystemName: string,\n options: ServiceRenameFileSystemOptions = {},\n ): Promise<{\n fileSystemClient: DataLakeFileSystemClient;\n fileSystemRenameResponse: FileSystemRenameResponse;\n }> {\n return tracingClient.withSpan(\n \"DataLakeServiceClient-renameFileSystem\",\n options,\n async (updatedOptions) => {\n const res = await this.blobServiceClient[\"renameContainer\"](\n sourceFileSystemName,\n destinationFileSystemName,\n updatedOptions,\n );\n\n const fileSystemClient = this.getFileSystemClient(destinationFileSystemName);\n return {\n fileSystemClient,\n fileSystemRenameResponse: res.containerRenameResponse,\n };\n },\n );\n }\n\n /**\n * Restore a previously deleted File System.\n * This API is only functional if Container Soft Delete is enabled for the storage account.\n *\n * @param deletedFileSystemName - The name of the source File System.\n * @param deleteFileSystemVersion - The new name of the File System.\n * @param options - Options to configure File System Restore operation.\n */\n public async undeleteFileSystem(\n deletedFileSystemName: string,\n deleteFileSystemVersion: string,\n options: ServiceUndeleteFileSystemOptions = {},\n ): Promise<{\n fileSystemClient: DataLakeFileSystemClient;\n fileSystemUndeleteResponse: FileSystemUndeleteResponse;\n }> {\n return tracingClient.withSpan(\n \"DataLakeServiceClient-undeleteFileSystem\",\n options,\n async (updatedOptions) => {\n const res = await this.blobServiceClient.undeleteContainer(\n deletedFileSystemName,\n deleteFileSystemVersion,\n {\n ...options,\n destinationContainerName: options.destinationFileSystemName,\n tracingOptions: updatedOptions.tracingOptions,\n },\n );\n\n const fileSystemClient = this.getFileSystemClient(\n options.destinationFileSystemName || deletedFileSystemName,\n );\n return {\n fileSystemClient,\n fileSystemUndeleteResponse: res.containerUndeleteResponse,\n };\n },\n );\n }\n\n /**\n * Gets the properties of a storage account’s Blob service endpoint, including properties\n * for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob-service-properties\n *\n * @param options - Options to the Service Get Properties operation.\n * @returns Response data for the Service Get Properties operation.\n */\n public async getProperties(\n options: ServiceGetPropertiesOptions = {},\n ): Promise<DataLakeServiceGetPropertiesResponse> {\n return tracingClient.withSpan(\n \"DataLakeServiceClient-getProperties\",\n options,\n async (updatedOptions) => {\n return this.blobServiceClient.getProperties({\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n });\n },\n );\n }\n\n /**\n * Sets properties for a storage account’s Blob service endpoint, including properties\n * for Storage Analytics, CORS (Cross-Origin Resource Sharing) rules and soft delete settings.\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-service-properties\n *\n * @param properties -\n * @param options - Options to the Service Set Properties operation.\n * @returns Response data for the Service Set Properties operation.\n */\n public async setProperties(\n properties: DataLakeServiceProperties,\n options: ServiceSetPropertiesOptions = {},\n ): Promise<ServiceSetPropertiesResponse> {\n return tracingClient.withSpan(\n \"DataLakeServiceClient-setProperties\",\n options,\n async (updatedOptions) => {\n return this.blobServiceClient.setProperties(properties, {\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n });\n },\n );\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport type { TransferProgressEvent } from \"@azure/core-rest-pipeline\";\n\nimport type {\n LeaseAccessConditions,\n ModifiedAccessConditions as ModifiedAccessConditionsModel,\n UserDelegationKeyModel,\n BlobQueryArrowConfiguration,\n ServiceRenameContainerOptions,\n ContainerRenameResponse,\n ContainerUndeleteResponse,\n WithResponse,\n} from \"@azure/storage-blob\";\nimport type { DataLakePathClient } from \"./clients\";\nexport type ModifiedAccessConditions = Omit<ModifiedAccessConditionsModel, \"ifTags\">;\n\n/**\n * Options to query file with Apache Arrow format. Only valid for {@link FileQueryOptions.outputTextConfiguration}.\n */\nexport type FileQueryArrowConfiguration = BlobQueryArrowConfiguration;\n\n/**\n * Options to configure {@link DataLakeServiceClient.renameFileSystem}.\n */\nexport type ServiceRenameFileSystemOptions = ServiceRenameContainerOptions;\n\n/**\n * Contains response data for the {@link DataLakeServiceClient.renameFileSystem} operation.\n */\nexport type FileSystemRenameResponse = ContainerRenameResponse;\n\n/**\n * Contains response data for the {@link DataLakeServiceClient.undeleteFileSystem} operation.\n */\nexport type FileSystemUndeleteResponse = ContainerUndeleteResponse;\n\nimport type {\n CpkInfo,\n FileSystemListBlobHierarchySegmentHeaders,\n FileSystemListPathsHeaders,\n LeaseAction,\n ListBlobsHierarchySegmentResponse,\n PathAppendDataHeaders,\n PathCreateHeaders,\n PathDeleteHeaders,\n PathFlushDataHeaders,\n PathGetPropertiesHeaders as PathGetPropertiesHeadersModel,\n PathList as PathListModel,\n PathSetAccessControlHeaders,\n PathSetExpiryHeaders,\n PathUndeleteHeaders,\n} from \"./generated/src/models\";\nimport type { DataLakeSASPermissions } from \"./sas/DataLakeSASPermissions\";\nimport type { DirectorySASPermissions } from \"./sas/DirectorySASPermissions\";\nimport type { FileSystemSASPermissions } from \"./sas/FileSystemSASPermissions\";\nimport type { SasIPRange } from \"./sas/SasIPRange\";\nimport type { SASProtocol } from \"./sas/SASQueryParameters\";\nimport type { CommonOptions } from \"./StorageClient\";\n\nexport {\n LeaseAccessConditions,\n UserDelegationKeyModel,\n ServiceListContainersSegmentResponse,\n Lease,\n LeaseOperationOptions,\n LeaseOperationResponse,\n} from \"@azure/storage-blob\";\n\nexport {\n BlobHierarchyListSegment,\n BlobItemModel,\n BlobPrefix,\n BlobPropertiesModel,\n CpkInfo,\n EncryptionAlgorithmType,\n FileSystemListPathsHeaders,\n FileSystemListBlobHierarchySegmentHeaders,\n ListBlobsHierarchySegmentResponse,\n Path as PathModel,\n PathList as PathListModel,\n PathCreateHeaders,\n PathDeleteHeaders,\n PathGetPropertiesHeaders as PathGetPropertiesHeadersModel,\n PathSetAccessControlHeaders,\n PathResourceType as PathResourceTypeModel,\n PathUndeleteHeaders,\n PathUpdateHeaders,\n PathAppendDataHeaders,\n PathFlushDataHeaders,\n PathGetPropertiesAction as PathGetPropertiesActionModel,\n PathRenameMode as PathRenameModeModel,\n PathExpiryOptions as FileExpiryMode,\n PathSetExpiryHeaders as FileSetExpiryHeaders,\n} from \"./generated/src/models\";\n\nexport type PathCreateResponse = WithResponse<PathCreateHeaders, PathCreateHeaders>;\nexport type PathDeleteResponse = WithResponse<PathDeleteHeaders, PathDeleteHeaders>;\nexport type FileFlushResponse = WithResponse<PathFlushDataHeaders, PathFlushDataHeaders>;\nexport type FileUploadResponse = WithResponse<PathFlushDataHeaders, PathFlushDataHeaders>;\nexport type PathSetAccessControlResponse = WithResponse<\n PathSetAccessControlHeaders,\n PathSetAccessControlHeaders\n>;\nexport type PathSetPermissionsResponse = WithResponse<\n PathSetAccessControlHeaders,\n PathSetAccessControlHeaders\n>;\nexport type FileAppendResponse = WithResponse<PathAppendDataHeaders, PathAppendDataHeaders>;\nexport type FileSetExpiryResponse = WithResponse<PathSetExpiryHeaders, PathSetExpiryHeaders>;\n\n/**\n * Common options of the {@link FileSystemGenerateSasUrlOptions}, {@link DirectoryGenerateSasUrlOptions}\n * and {@link FileGenerateSasUrlOptions}.\n */\nexport interface CommonGenerateSasUrlOptions {\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols, HTTPS only or HTTPSandHTTP\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The time after which the SAS will no longer work.\n */\n expiresOn?: Date;\n\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n\n /**\n * Optional. The name of the access policy on the container this SAS references if any.\n *\n * @see https://learn.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n encryptionScope?: string;\n\n /**\n * Optional. The cache-control header for the SAS.\n */\n cacheControl?: string;\n\n /**\n * Optional. The content-disposition header for the SAS.\n */\n contentDisposition?: string;\n\n /**\n * Optional. The content-encoding header for the SAS.\n */\n contentEncoding?: string;\n\n /**\n * Optional. The content-language header for the SAS.\n */\n contentLanguage?: string;\n\n /**\n * Optional. The content-type header for the SAS.\n */\n contentType?: string;\n}\n\n/** ***********************************************************/\n/** DataLakeServiceClient option and response related models */\n/** ***********************************************************/\n\nexport interface ServiceGetUserDelegationKeyOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n}\n\n// TODO: Leverage interface definitions from blob package directly, or duplicate create a copy here which will not have generation benefits\nexport interface ServiceGetUserDelegationKeyHeaders {\n clientRequestId?: string;\n requestId?: string;\n version?: string;\n date?: Date;\n}\n\nexport interface UserDelegationKey {\n signedObjectId: string;\n signedTenantId: string;\n signedStartsOn: Date;\n signedExpiresOn: Date;\n signedService: string;\n signedVersion: string;\n value: string;\n}\n\nexport type ServiceGetUserDelegationKeyResponse = WithResponse<\n UserDelegationKey & ServiceGetUserDelegationKeyHeaders,\n ServiceGetUserDelegationKeyHeaders,\n UserDelegationKeyModel\n>;\n\nexport interface ServiceListFileSystemsOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n prefix?: string;\n includeMetadata?: boolean;\n\n /**\n * Specifies whether soft deleted File System should be included in the response.\n */\n includeDeleted?: boolean;\n}\n\nexport type LeaseStatusType = \"locked\" | \"unlocked\";\nexport type LeaseStateType = \"available\" | \"leased\" | \"expired\" | \"breaking\" | \"broken\";\nexport type LeaseDurationType = \"infinite\" | \"fixed\";\nexport type PublicAccessType = \"filesystem\" | \"file\";\n\nexport interface FileSystemProperties {\n lastModified: Date;\n etag: string;\n leaseStatus?: LeaseStatusType;\n leaseState?: LeaseStateType;\n leaseDuration?: LeaseDurationType;\n publicAccess?: PublicAccessType;\n hasImmutabilityPolicy?: boolean;\n hasLegalHold?: boolean;\n defaultEncryptionScope?: string;\n deletedOn?: Date;\n remainingRetentionDays?: number;\n}\n\nexport interface FileSystemItem {\n name: string;\n properties: FileSystemProperties;\n metadata?: Metadata;\n deleted?: boolean;\n versionId?: string;\n}\n\nexport interface ListFileSystemsSegmentResponse {\n serviceEndpoint: string;\n prefix?: string;\n marker?: string;\n maxPageSize?: number;\n fileSystemItems: FileSystemItem[];\n continuationToken?: string;\n}\n\nexport interface ServiceListFileSystemsSegmentHeaders {\n clientRequestId?: string;\n requestId?: string;\n version?: string;\n}\n\nexport type ServiceListFileSystemsSegmentResponse = WithResponse<\n ListFileSystemsSegmentResponse & ServiceListFileSystemsSegmentHeaders,\n ServiceListFileSystemsSegmentHeaders,\n ListFileSystemsSegmentResponse\n>;\n\n/**\n * Options to configure {@link DataLakeServiceClient.generateAccountSasUrl} operation.\n */\nexport interface ServiceGenerateAccountSasUrlOptions {\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols allowed.\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n /**\n * Optional. IP range allowed.\n */\n ipRange?: SasIPRange;\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure {@link DataLakeServiceClient.undeleteFileSystem}.\n */\nexport interface ServiceUndeleteFileSystemOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Optional. Specifies the new name of the restored File System.\n * Will use its original name if this is not specified.\n * @deprecated Restore FileSystem to a different name is not supported by service anymore.\n */\n destinationFileSystemName?: string;\n}\n\n/** **************************************************************/\n/** DataLakeFileSystemClient option and response related models */\n/** **************************************************************/\n\nexport interface FileSystemCreateOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n metadata?: Metadata;\n access?: PublicAccessType;\n /**\n * File System encryption scope info.\n */\n fileSystemEncryptionScope?: FileSystemEncryptionScope;\n}\n\nexport interface FileSystemCreateHeaders {\n etag?: string;\n lastModified?: Date;\n clientRequestId?: string;\n requestId?: string;\n version?: string;\n date?: Date;\n}\n\nexport type FileSystemCreateResponse = WithResponse<\n FileSystemCreateHeaders,\n FileSystemCreateHeaders\n>;\n\nexport interface FileSystemDeleteOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n conditions?: DataLakeRequestConditions;\n}\n\nexport interface FileSystemDeleteHeaders {\n clientRequestId?: string;\n requestId?: string;\n version?: string;\n date?: Date;\n}\n\nexport type FileSystemDeleteResponse = WithResponse<\n FileSystemDeleteHeaders,\n FileSystemDeleteHeaders\n>;\n\nexport interface FileSystemGetPropertiesOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n conditions?: LeaseAccessConditions;\n}\n\nexport interface FileSystemGetPropertiesHeaders {\n metadata?: Metadata;\n etag?: string;\n lastModified?: Date;\n leaseDuration?: LeaseDurationType;\n leaseState?: LeaseStateType;\n leaseStatus?: LeaseStatusType;\n clientRequestId?: string;\n requestId?: string;\n version?: string;\n date?: Date;\n publicAccess?: PublicAccessType;\n hasImmutabilityPolicy?: boolean;\n hasLegalHold?: boolean;\n /**\n * The default encryption scope for the file system.\n */\n defaultEncryptionScope?: string;\n}\n\nexport type FileSystemGetPropertiesResponse = WithResponse<\n FileSystemGetPropertiesHeaders,\n FileSystemGetPropertiesHeaders\n>;\n\nexport interface FileSystemSetMetadataOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n conditions?: DataLakeRequestConditions;\n}\n\nexport interface FileSystemSetMetadataHeaders {\n etag?: string;\n lastModified?: Date;\n clientRequestId?: string;\n requestId?: string;\n version?: string;\n date?: Date;\n}\n\nexport type FileSystemSetMetadataResponse = WithResponse<\n FileSystemSetMetadataHeaders,\n FileSystemSetMetadataHeaders\n>;\n\nexport interface FileSystemGetAccessPolicyOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n conditions?: LeaseAccessConditions;\n}\n\nexport interface FileSystemGetAccessPolicyHeaders {\n publicAccess?: PublicAccessType;\n etag?: string;\n lastModified?: Date;\n clientRequestId?: string;\n requestId?: string;\n version?: string;\n date?: Date;\n}\n\nexport interface RawAccessPolicy {\n startsOn?: string;\n expiresOn?: string;\n permissions: string;\n}\n\nexport interface AccessPolicy {\n startsOn?: Date;\n expiresOn?: Date;\n permissions: string;\n}\n\nexport interface SignedIdentifier<T> {\n id: string;\n accessPolicy: T;\n}\n\nexport type FileSystemGetAccessPolicyResponse = WithResponse<\n {\n signedIdentifiers: SignedIdentifier<AccessPolicy>[];\n } & FileSystemGetAccessPolicyHeaders,\n FileSystemGetAccessPolicyHeaders,\n SignedIdentifier<RawAccessPolicy>[]\n>;\n\nexport interface FileSystemSetAccessPolicyOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n conditions?: DataLakeRequestConditions;\n}\n\nexport interface FileSystemSetAccessPolicyHeaders {\n etag?: string;\n lastModified?: Date;\n clientRequestId?: string;\n requestId?: string;\n version?: string;\n date?: Date;\n}\n\nexport type FileSystemSetAccessPolicyResponse = WithResponse<\n FileSystemSetAccessPolicyHeaders,\n FileSystemSetAccessPolicyHeaders\n>;\n\nexport interface ListPathsOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n recursive?: boolean;\n path?: string;\n userPrincipalName?: boolean;\n}\n\nexport interface ListPathsSegmentOptions extends ListPathsOptions {\n maxResults?: number;\n}\n\nexport interface Path {\n name?: string;\n isDirectory?: boolean;\n lastModified?: Date;\n etag?: string;\n contentLength?: number;\n owner?: string;\n group?: string;\n permissions?: PathPermissions;\n /**\n * The name of the encryption scope under which the blob is encrypted.\n */\n encryptionScope?: string;\n /**\n * Creation time of the path.\n */\n createdOn?: Date;\n /**\n * Expiry time of the path.\n */\n expiresOn?: Date;\n /**\n * Specifies the encryption context to set on the file.\n */\n encryptionContext?: string;\n}\n\nexport interface PathList {\n pathItems?: Path[];\n}\n\nexport type FileSystemListPathsResponse = WithResponse<\n PathList & FileSystemListPathsHeaders,\n FileSystemListPathsHeaders,\n PathListModel\n>;\n\nexport interface ListDeletedPathsOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n /** Filters results to filesystems within the specified prefix. */\n prefix?: string;\n}\n\nexport interface ListDeletedPathsSegmentOptions extends ListDeletedPathsOptions {\n maxResults?: number;\n}\n\nexport interface DeletedPath {\n name: string;\n deletionId?: string;\n deletedOn?: Date;\n remainingRetentionDays?: number;\n}\n\nexport interface DeletedPathList {\n pathItems?: DeletedPath[];\n}\n\nexport type FileSystemListDeletedPathsResponse = WithResponse<\n DeletedPathList &\n FileSystemListBlobHierarchySegmentHeaders &\n ListBlobsHierarchySegmentResponse & { continuation?: string },\n FileSystemListBlobHierarchySegmentHeaders,\n ListBlobsHierarchySegmentResponse\n>;\n\nexport interface FileSystemUndeletePathOption extends CommonOptions {\n abortSignal?: AbortSignalLike;\n}\n\nexport type FileSystemUndeletePathResponse = WithResponse<\n PathUndeleteHeaders & { pathClient: DataLakePathClient },\n PathUndeleteHeaders\n>;\n\n/**\n * Option interface for Data Lake file system exists operations\n *\n * See:\n * - {@link DataLakeFileSystemClient.exists}\n */\nexport interface FileSystemExistsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Contains response data for the {@link DataLakeFileSystemClient.createIfNotExists} operation.\n */\nexport interface FileSystemCreateIfNotExistsResponse extends FileSystemCreateResponse {\n /**\n * Indicate whether the file system is successfully created. Is false when the file system is not changed as it already exists.\n */\n succeeded: boolean;\n}\n\n/**\n * Contains response data for the {@link DataLakeFileSystemClient.deleteIfExists} operation.\n */\nexport interface FileSystemDeleteIfExistsResponse extends FileSystemDeleteResponse {\n /**\n * Indicate whether the file system is successfully deleted. Is false if the file system doesn't exist in the first place.\n */\n succeeded: boolean;\n}\n\n/**\n * Options to configure {@link DataLakeFileSystemClient.generateSasUrl} operation.\n */\nexport interface FileSystemGenerateSasUrlOptions extends CommonGenerateSasUrlOptions {\n /**\n * Optional only when identifier is provided. Specifies the list of permissions to be associated with the SAS.\n */\n permissions?: FileSystemSASPermissions;\n}\n\n/** ********************************************************/\n/** DataLakePathClient option and response related models */\n/** ********************************************************/\n\nexport interface Metadata {\n [propertyName: string]: string;\n}\n\nexport interface DataLakeRequestConditions\n extends ModifiedAccessConditions,\n LeaseAccessConditions {}\n\nexport interface RolePermissions {\n read: boolean;\n write: boolean;\n execute: boolean;\n}\n\nexport interface PathPermissions {\n owner: RolePermissions;\n group: RolePermissions;\n other: RolePermissions;\n stickyBit: boolean;\n extendedAcls: boolean;\n}\n\nexport type AccessControlType = \"user\" | \"group\" | \"mask\" | \"other\";\n\nexport interface RemovePathAccessControlItem {\n /**\n * Indicates whether this is the default entry for the ACL.\n */\n defaultScope: boolean;\n /**\n * Specifies which role this entry targets.\n */\n accessControlType: AccessControlType;\n /**\n * Specifies the entity for which this entry applies.\n * Must be omitted for types mask or other. It must also be omitted when the user or group is the owner.\n */\n entityId?: string;\n}\n\nexport interface PathAccessControlItem {\n /**\n * Indicates whether this is the default entry for the ACL.\n */\n defaultScope: boolean;\n /**\n * Specifies which role this entry targets.\n */\n accessControlType: AccessControlType;\n /**\n * Specifies the entity for which this entry applies.\n */\n entityId: string;\n /**\n * Access control permissions.\n */\n permissions: RolePermissions;\n}\n\nexport interface PathCreateHttpHeaders {\n cacheControl?: string;\n contentEncoding?: string;\n contentLanguage?: string;\n contentDisposition?: string;\n contentType?: string;\n}\n\nexport interface PathCreateOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n metadata?: Metadata;\n permissions?: string; // TODO: model or string?\n umask?: string; // TODO: model or string?\n /**\n * Optional. The owner of the blob or directory.\n */\n owner?: string;\n /**\n * Optional. The owning group of the blob or directory.\n */\n group?: string;\n /**\n * Optional. POSIX access control rights on files and directories.\n */\n acl?: PathAccessControlItem[];\n conditions?: DataLakeRequestConditions;\n pathHttpHeaders?: PathCreateHttpHeaders;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor (String) for a list of valid GUID string formats.\n */\n proposedLeaseId?: string;\n /**\n * The lease duration is required to acquire a lease, and specifies the duration of the lease in seconds. The lease duration must be between 15 and 60 seconds or -1 for infinite lease.\n */\n leaseDuration?: number;\n /**\n * Optional. Options for scheduling the deletion of a path.\n * A number value indicates duration before file should be deleted in milliseconds.\n * A Date value indicates the time to set for when the path will be deleted.\n * Does not apply to directories.\n */\n expiresOn?: number | Date;\n /**\n * Optional. Specifies the encryption context to set on the file.\n */\n encryptionContext?: string;\n}\n\nexport interface PathCreateIfNotExistsOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n metadata?: Metadata;\n permissions?: string;\n umask?: string;\n /**\n * Optional. The owner of the blob or directory.\n */\n owner?: string;\n /**\n * Optional. The owning group of the blob or directory.\n */\n group?: string;\n /**\n * Optional. POSIX access control rights on files and directories.\n */\n acl?: PathAccessControlItem[];\n pathHttpHeaders?: PathCreateHttpHeaders;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor (String) for a list of valid GUID string formats.\n */\n proposedLeaseId?: string;\n /**\n * The lease duration is required to acquire a lease, and specifies the duration of the lease in seconds. The lease duration must be between 15 and 60 seconds or -1 for infinite lease.\n */\n leaseDuration?: number;\n /**\n * Optional. Options for scheduling the deletion of a path.\n * A number value indicates duration before file should be deleted in milliseconds.\n * A Date value indicates the time to set for when the path will be deleted.\n * Does not apply to directories.\n */\n expiresOn?: number | Date;\n /**\n * Optional. Specifies the encryption context to set on the file.\n */\n encryptionContext?: string;\n}\n\nexport interface PathDeleteOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n conditions?: DataLakeRequestConditions;\n}\n\nexport interface PathGetAccessControlOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n conditions?: DataLakeRequestConditions;\n userPrincipalName?: boolean;\n}\n\nexport interface PathGetAccessControlHeaders {\n date?: Date;\n etag?: string;\n lastModified?: Date;\n owner?: string;\n group?: string;\n requestId?: string;\n version?: string;\n}\n\nexport interface PathAccessControl {\n owner?: string;\n group?: string;\n permissions?: PathPermissions;\n /**\n * POSIX access control rights on files and directories.\n */\n acl: PathAccessControlItem[];\n}\n\nexport type PathGetAccessControlResponse = WithResponse<\n PathAccessControl & PathGetAccessControlHeaders,\n PathGetPropertiesHeadersModel\n>;\n\nexport interface PathSetAccessControlOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n conditions?: DataLakeRequestConditions;\n owner?: string;\n group?: string;\n}\n\n/**\n * Options type for `setAccessControlRecursive`, `updateAccessControlRecursive` and `removeAccessControlRecursive`.\n */\nexport interface PathChangeAccessControlRecursiveOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Optional. If data set size exceeds batch size then operation will be split into multiple requests so that progress can be tracked.\n * Batch size should be between 1 and 2000. The default when unspecified is 2000.\n */\n batchSize?: number;\n /**\n * Optional. Defines maximum number of batches that single change Access Control operation can execute.\n * If maximum is reached before all subpaths are processed then continuation token can be used to resume operation.\n * Empty value indicates that maximum number of batches in unbound and operation continues till end.\n */\n maxBatches?: number;\n /**\n * Optional. Default false. If set to false, the operation will terminate quickly on encountering user failures.\n * If true, the operation will ignore user failures and proceed with the operation on other sub-entities of the directory.\n */\n continueOnFailure?: boolean;\n /**\n * Continuation token to continue next batch of operations.\n */\n continuationToken?: string;\n /**\n * Callback where caller can track progress of the operation\n * as well as collect paths that failed to change Access Control.\n */\n onProgress?: (progress: AccessControlChanges) => void;\n}\n\n/**\n * Represents an entry that failed to update Access Control List during `setAccessControlRecursive`, `updateAccessControlRecursive` and `removeAccessControlRecursive`.\n */\nexport interface AccessControlChangeError {\n /**\n * Returns name of an entry.\n */\n name: string;\n /**\n * Returns whether entry is a directory.\n */\n isDirectory: boolean;\n /**\n * Returns error message that is the reason why entry failed to update.\n */\n message: string;\n}\n\n/**\n * AccessControlChanges contains batch and cumulative counts of operations that change Access Control Lists recursively.\n * Additionally it exposes path entries that failed to update while these operations progress.\n */\nexport interface AccessControlChanges {\n /**\n * Path entries that failed to update Access Control List within single batch.\n */\n batchFailures: AccessControlChangeError[];\n /**\n * Counts of paths changed within single batch.\n */\n batchCounters: AccessControlChangeCounters;\n /**\n * Counts of paths changed from start of the operation.\n */\n aggregateCounters: AccessControlChangeCounters;\n /**\n * Optional. Value is present when operation is split into multiple batches and can be used to resume progress.\n */\n continuationToken?: string;\n}\n\n/**\n * AccessControlChangeCounters contains counts of operations that change Access Control Lists recursively.\n */\nexport interface AccessControlChangeCounters {\n /**\n * Returns number of directories where Access Control List has been updated successfully.\n */\n changedDirectoriesCount: number;\n /**\n * Returns number of files where Access Control List has been updated successfully.\n */\n changedFilesCount: number;\n /**\n * Returns number of paths where Access Control List update has failed.\n */\n failedChangesCount: number;\n}\n\n/**\n * Response type for `setAccessControlRecursive`, `updateAccessControlRecursive` and `removeAccessControlRecursive`.\n */\nexport interface PathChangeAccessControlRecursiveResponse {\n /**\n * Contains counts of paths changed from start of the operation.\n */\n counters: AccessControlChangeCounters;\n /**\n * Optional. Value is present when operation is split into multiple batches and can be used to resume progress.\n */\n continuationToken?: string;\n}\n\nexport interface PathSetPermissionsOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n conditions?: DataLakeRequestConditions;\n owner?: string;\n group?: string;\n}\n\nexport interface PathGetPropertiesOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n conditions?: DataLakeRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\nexport type CopyStatusType = \"pending\" | \"success\" | \"aborted\" | \"failed\";\n\nexport interface PathGetPropertiesHeaders {\n lastModified?: Date;\n createdOn?: Date;\n metadata?: Metadata;\n copyCompletedOn?: Date;\n copyStatusDescription?: string;\n copyId?: string;\n copyProgress?: string;\n copySource?: string;\n copyStatus?: CopyStatusType;\n isIncrementalCopy?: boolean;\n destinationSnapshot?: string;\n leaseDuration?: LeaseDurationType;\n leaseState?: LeaseStateType;\n leaseStatus?: LeaseStatusType;\n contentLength?: number;\n contentType?: string;\n etag?: string;\n contentMD5?: Uint8Array;\n contentEncoding?: string;\n contentDisposition?: string;\n contentLanguage?: string;\n cacheControl?: string;\n // blobSequenceNumber?: number;\n clientRequestId?: string;\n requestId?: string;\n version?: string;\n date?: Date;\n acceptRanges?: string;\n // blobCommittedBlockCount?: number;\n isServerEncrypted?: boolean;\n encryptionKeySha256?: string;\n /**\n * Returns the name of the encryption scope used to encrypt the path contents and application metadata.\n * Note that the absence of this header implies use of the default account encryption scope.\n */\n encryptionScope?: string;\n accessTier?: string;\n accessTierInferred?: boolean;\n archiveStatus?: string;\n accessTierChangedOn?: Date;\n\n /**\n * The time the file will expire.\n */\n expiresOn?: Date;\n /**\n * Optional. Specifies the encryption context to set on the file.\n */\n encryptionContext?: string;\n owner?: string;\n group?: string;\n permissions?: PathPermissions;\n /**\n * POSIX access control rights on files and directories.\n */\n acl: PathAccessControlItem[];\n}\n\nexport type PathGetPropertiesResponse = WithResponse<\n PathGetPropertiesHeaders,\n PathGetPropertiesHeaders\n>;\n\nexport interface PathSetHttpHeadersOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n conditions?: DataLakeRequestConditions;\n}\n\nexport interface PathHttpHeaders {\n cacheControl?: string;\n contentEncoding?: string;\n contentLanguage?: string;\n contentDisposition?: string;\n contentType?: string;\n contentMD5?: Uint8Array;\n}\n\nexport interface PathSetHttpHeadersHeaders {\n etag?: string;\n lastModified?: Date;\n clientRequestId?: string;\n requestId?: string;\n version?: string;\n date?: Date;\n}\n\nexport type PathSetHttpHeadersResponse = WithResponse<\n PathSetHttpHeadersHeaders,\n PathSetHttpHeadersHeaders\n>;\n\nexport interface PathSetMetadataOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n conditions?: DataLakeRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\nexport interface PathSetMetadataHeaders {\n etag?: string;\n lastModified?: Date;\n clientRequestId?: string;\n requestId?: string;\n version?: string;\n date?: Date;\n isServerEncrypted?: boolean;\n encryptionKeySha256?: string;\n}\n\nexport type PathSetMetadataResponse = WithResponse<PathSetMetadataHeaders, PathSetMetadataHeaders>;\n\nexport interface PathMoveOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n conditions?: DataLakeRequestConditions;\n destinationConditions?: DataLakeRequestConditions;\n}\n\nexport interface PathRemoveHeaders {\n date?: Date;\n etag?: string;\n lastModified?: Date;\n requestId?: string;\n version?: string;\n contentLength?: number;\n}\n\nexport type PathMoveResponse = WithResponse<PathRemoveHeaders, PathRemoveHeaders>;\n\n/**\n * Option interface for Data Lake directory/file exists operations\n *\n * See:\n * - {@link DataLakePathClient.exists}\n */\nexport interface PathExistsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Contains response data for the {@link DataLakePathClient.createIfNotExists} operation.\n */\nexport interface PathCreateIfNotExistsResponse extends PathCreateResponse {\n /**\n * Indicate whether the directory/file is successfully created. Is false when the directory/file is not changed as it already exists.\n */\n succeeded: boolean;\n}\n\n/**\n * Contains response data for the {@link DataLakePathClient.deleteIfExists} operation.\n */\nexport interface PathDeleteIfExistsResponse extends PathDeleteResponse {\n /**\n * Indicate whether the directory/file is successfully deleted. Is false if the directory/file doesn't exist in the first place.\n */\n succeeded: boolean;\n}\n\n// Keeping these for backward compatibility when we changed to use string unions.\n/**\n * Defines values for PathGetPropertiesAction.\n * Possible values include: 'getAccessControl', 'getStatus'\n * @readonly\n */\nexport enum PathGetPropertiesAction {\n GetAccessControl = \"getAccessControl\",\n GetStatus = \"getStatus\",\n}\n/**\n * Defines values for PathRenameMode.\n * Possible values include: 'legacy', 'posix'\n * @readonly\n */\nexport enum PathRenameMode {\n Legacy = \"legacy\",\n Posix = \"posix\",\n}\n/**\n * Defines values for PathResourceType.\n * Possible values include: 'directory', 'file'\n * @readonly\n */\nexport enum PathResourceType {\n Directory = \"directory\",\n File = \"file\",\n}\n\n/** **************************************************************/\n/** DataLakeDirectoryClient option and response related models **/\n/** **************************************************************/\n\nexport interface DirectoryCreateOptions extends PathCreateOptions {}\n\nexport interface DirectoryCreateIfNotExistsOptions extends PathCreateIfNotExistsOptions {}\n\nexport interface DirectoryCreateResponse extends PathCreateResponse {}\n\nexport interface DirectoryCreateIfNotExistsResponse extends PathCreateIfNotExistsResponse {}\n\n/**\n * Options to configure {@link DataLakeDirectoryClient.generateSasUrl} operation.\n */\nexport interface DirectoryGenerateSasUrlOptions extends CommonGenerateSasUrlOptions {\n /**\n * Optional only when identifier is provided. Specifies the list of permissions to be associated with the SAS.\n */\n permissions?: DirectorySASPermissions;\n}\n\n/** *********************************************************/\n/** DataLakeFileClient option and response related models **/\n/** *********************************************************/\n\nexport interface FileReadOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n rangeGetContentMD5?: boolean;\n rangeGetContentCrc64?: boolean;\n conditions?: DataLakeRequestConditions;\n onProgress?: (progress: TransferProgressEvent) => void;\n maxRetryRequests?: number;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\nexport interface FileReadHeaders {\n lastModified?: Date;\n /**\n * Returns the date and time the file was created.\n */\n createdOn?: Date;\n metadata?: Metadata;\n contentLength?: number;\n contentType?: string;\n contentRange?: string;\n etag?: string;\n contentMD5?: Uint8Array;\n contentEncoding?: string;\n cacheControl?: string;\n contentDisposition?: string;\n contentLanguage?: string;\n // blobSequenceNumber?: number;\n copyCompletedOn?: Date;\n copyStatusDescription?: string;\n copyId?: string;\n copyProgress?: string;\n copySource?: string;\n copyStatus?: CopyStatusType;\n leaseDuration?: LeaseDurationType;\n leaseState?: LeaseStateType;\n leaseStatus?: LeaseStatusType;\n clientRequestId?: string;\n requestId?: string;\n version?: string;\n acceptRanges?: string;\n date?: Date;\n // blobCommittedBlockCount?: number;\n isServerEncrypted?: boolean;\n encryptionKeySha256?: string;\n fileContentMD5?: Uint8Array; // Content MD5 for whole file\n contentCrc64?: Uint8Array;\n /**\n * Specifies the encryption context to set on the file.\n */\n encryptionContext?: string;\n owner?: string;\n group?: string;\n permissions?: PathPermissions;\n /**\n * POSIX access control rights on files and directories.\n */\n acl: PathAccessControlItem[];\n}\n\nexport type FileReadResponse = WithResponse<\n FileReadHeaders & {\n contentAsBlob?: Promise<Blob>;\n readableStreamBody?: NodeJS.ReadableStream;\n },\n FileReadHeaders\n>;\n\nexport interface FileAppendOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n conditions?: LeaseAccessConditions;\n transactionalContentMD5?: Uint8Array;\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * If file should be flushed automatically after the append\n */\n flush?: boolean;\n /**\n * Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor (String) for a list of valid GUID string formats.\n * */\n proposedLeaseId?: string;\n /**\n * The lease duration is required to acquire a lease, and specifies the duration of the lease in seconds. The lease duration must be between 15 and 60 seconds or -1 for infinite lease.\n * */\n leaseDurationInSeconds?: number;\n /**\n * Optional. If \"acquire\" it will acquire the lease. If \"auto-renew\" it will renew the lease. If \"release\" it will release the lease only on flush. If \"acquire-release\" it will acquire & complete the operation & release the lease once operation is done.\n * */\n leaseAction?: LeaseAction;\n}\n\nexport interface FileFlushOptions extends CommonOptions {\n abortSignal?: AbortSignalLike;\n conditions?: DataLakeRequestConditions;\n retainUncommittedData?: boolean;\n close?: boolean;\n pathHttpHeaders?: PathHttpHeaders;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor (String) for a list of valid GUID string formats.\n */\n proposedLeaseId?: string;\n /**\n * The lease duration is required to acquire a lease, and specifies the duration of the lease in seconds. The lease duration must be between 15 and 60 seconds or -1 for infinite lease.\n */\n leaseDurationInSeconds?: number;\n /**\n * Optional. If \"acquire\" it will acquire the lease. If \"auto-renew\" it will renew the lease. If \"release\" it will release the lease only on flush. If \"acquire-release\" it will acquire & complete the operation & release the lease once operation is done.\n */\n leaseAction?: LeaseAction;\n}\n\nexport interface FileCreateOptions extends PathCreateOptions {}\n\nexport interface FileCreateIfNotExistsOptions extends PathCreateIfNotExistsOptions {}\n\nexport interface FileCreateResponse extends PathCreateResponse {}\n\nexport interface FileCreateIfNotExistsResponse extends PathCreateIfNotExistsResponse {}\n\n/**\n * Option interface for Data Lake file - Upload operations\n *\n * See:\n * - {@link DataLakeFileClient.upload}\n * - {@link DataLakeFileClient.uploadFile}\n * - {@link DataLakeFileClient.uploadStream}\n */\nexport interface FileParallelUploadOptions extends CommonOptions {\n // For all.\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Access conditions headers.\n */\n conditions?: DataLakeRequestConditions;\n\n // For create and flush.\n /**\n * Http headers.\n */\n pathHttpHeaders?: PathHttpHeaders;\n\n // For create.\n /**\n * A collection of key-value string pair to associate with the Data Lake file.\n */\n metadata?: Metadata;\n\n /**\n * Sets POSIX access permissions for the file owner, the file owning group, and others.\n * Each class may be granted read, write, or execute permission. The sticky bit is also supported.\n * Both symbolic (rwxrw-rw-) and 4-digit octal notation (e.g. 0766) are supported.\n */\n permissions?: string; // TODO: model or string?\n\n /**\n * The umask restricts the permissions of the file to be created.\n * The resulting permission is given by p & ^u, where p is the permission and u is the umask.\n * For example, if p is 0777 and u is 0057, then the resulting permission is 0720.\n * The default permission is 0666 for a file. The default umask is 0027.\n * The umask must be specified in 4-digit octal notation (e.g. 0766).\n */\n umask?: string; // TODO: model or string?\n\n // For append.\n /**\n * Progress updater.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n\n // For flush.\n /**\n * When Azure Storage Events are enabled, a file changed event is raised.\n * This event has a property indicating whether this is the final change\n * to distinguish the difference between an intermediate flush to a file stream (when close set to \"false\")\n * and the final close of a file stream (when close set to \"true\").\n */\n close?: boolean;\n\n // For parallel transfer control.\n\n /**\n * Data size threshold in bytes to use a single upload operation rather than parallel uploading.\n * Data of smaller size than this limit will be transferred in a single upload.\n * Data larger than this limit will be transferred in chunks in parallel.\n * Its default and max value is FILE_MAX_SINGLE_UPLOAD_THRESHOLD.\n * Note: {@link DataLakeFileClient.uploadStream} do not respect this field and always do parallel uploading.\n */\n singleUploadThreshold?: number;\n\n /**\n * The size of data in bytes that will be transferred in parallel.\n * If set to 0 or undefined, it will be automatically calculated according\n * to the data size. Its max value is FILE_UPLOAD_MAX_CHUNK_SIZE.\n */\n chunkSize?: number;\n /**\n * Max concurrency of parallel uploading. Must be greater than or equal to 0. Its default value is DEFAULT_HIGH_LEVEL_CONCURRENCY.\n */\n maxConcurrency?: number;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Specifies the encryption context to set on the file.\n */\n encryptionContext?: string;\n}\n\n/**\n * Option interface for Data Lake file - readToBuffer operations\n *\n * See:\n * - {@link DataLakeFileClient.readToBuffer}\n */\nexport interface FileReadToBufferOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Access conditions headers.\n */\n conditions?: DataLakeRequestConditions;\n\n /**\n * Progress updater.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * How many retries will perform for each read when the original chunk read stream ends unexpectedly.\n * Above kind of ends will not trigger retry policy defined in a pipeline,\n * because they doesn't emit network errors. Default value is 5.\n */\n maxRetryRequestsPerChunk?: number;\n\n /**\n * chunkSize is size of data every request trying to read.\n * Must be greater than or equal to 0, if set to 0 or undefined, it will automatically calculated according\n * to the file size.\n */\n chunkSize?: number;\n\n /**\n * Concurrency of parallel read.\n */\n concurrency?: number;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to query file with JSON format.\n */\nexport interface FileQueryJsonTextConfiguration {\n /**\n * Record separator.\n */\n recordSeparator: string;\n /**\n * Query for a JSON format file.\n */\n kind: \"json\";\n}\n\n/**\n * Options to query file with CSV format.\n */\nexport interface FileQueryCsvTextConfiguration {\n /**\n * Record separator.\n */\n recordSeparator: string;\n /**\n * Query for a CSV format file.\n */\n kind: \"csv\";\n /**\n * Column separator. Default is \",\".\n */\n columnSeparator?: string;\n /**\n * Field quote.\n */\n fieldQuote?: string;\n /**\n * Escape character.\n */\n escapeCharacter?: string;\n /**\n * Has headers. Default is false.\n */\n hasHeaders?: boolean;\n}\n\n/**\n * Options to query file with Parquet format.\n */\nexport interface FileQueryParquetConfiguration {\n /**\n * Kind.\n */\n kind: \"parquet\";\n}\n\n/**\n * File query error type.\n */\nexport interface FileQueryError {\n /**\n * Whether the error is fatal or not. A fatal error will stop the query.\n */\n isFatal: boolean;\n /**\n * Error name.\n */\n name: string;\n /**\n * Position in bytes of the query.\n */\n position: number;\n /**\n * Error description.\n */\n description: string;\n}\n\n/**\n * Option interface for Data Lake file - query operations\n *\n * See:\n * - {@link DataLakeFileClient.query}\n */\nexport interface FileQueryOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Configurations for the query input.\n */\n inputTextConfiguration?:\n | FileQueryJsonTextConfiguration\n | FileQueryCsvTextConfiguration\n | FileQueryParquetConfiguration;\n /**\n * Configurations for the query output.\n */\n outputTextConfiguration?:\n | FileQueryJsonTextConfiguration\n | FileQueryCsvTextConfiguration\n | FileQueryArrowConfiguration;\n /**\n * Callback to receive events on the progress of query operation.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * Callback to receive error events during the query operaiton.\n */\n onError?: (error: FileQueryError) => void;\n /**\n * Conditions to meet when uploading to the block file.\n */\n conditions?: DataLakeRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Option interface for the {@link DataLakeFileClient.setExpiry} operation.\n */\nexport interface FileSetExpiryOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * The time to set the file to expire on, used in combination with the \"Absolute\" {@link FileExpiryMode}.\n * A time in the past is not allowed and milliseconds will be dropped.\n */\n expiresOn?: Date;\n\n /**\n * The number of milliseconds to elapse before the file expires, used in combination with the \"RelativeToCreation\" or \"RelativeToNow\" {@link FileExpiryMode}.\n */\n timeToExpireInMs?: number;\n}\n\n/**\n * Options to configure {@link DataLakeFileClient.generateSasUrl} operation.\n */\nexport interface FileGenerateSasUrlOptions extends CommonGenerateSasUrlOptions {\n /**\n * Optional only when identifier is provided. Specifies the list of permissions to be associated with the SAS.\n */\n permissions?: DataLakeSASPermissions;\n}\n\n/**\n * Options to specify encryption scope on a file system.\n */\nexport declare interface FileSystemEncryptionScope {\n /** Optional. Version 2021-02-12 and later. Specifies the default encryption scope to set on the file system and use for all future writes. */\n defaultEncryptionScope?: string;\n\n /** Optional. Version 2021-02-12 and newer. If true, prevents any request from specifying a different encryption scope than the scope set on the container. */\n preventEncryptionScopeOverride?: boolean;\n}\n\n/**\n * Defines the known cloud audiences for Storage.\n */\nexport enum StorageDataLakeAudience {\n /**\n * The OAuth scope to use to retrieve an AAD token for Azure Storage.\n */\n StorageOAuthScopes = \"https://storage.azure.com/.default\",\n}\n\n/**\n * To get OAuth audience for a storage account for datalake service.\n */\nexport function getDataLakeServiceAccountAudience(storageAccountName: string): string {\n return `https://${storageAccountName}.dfs.core.windows.net/.default`;\n}\n\n/** *********************************************************/\n/** DataLakeLeaseClient option and response related models */\n/** *********************************************************/\n"],"names":["createClientLogger","AnonymousCredential","Pipeline","createTracingClient","serializer","coreClient","Mappers.FileSystemList","Mappers.ServiceListFileSystemsHeaders","Mappers.StorageError","Mappers.ServiceListFileSystemsExceptionHeaders","Parameters.resource","Parameters.prefix","Parameters.continuation","Parameters.maxResults","Parameters.timeout","Parameters.url","Parameters.accept","Parameters.requestId","Parameters.version","createOperationSpec","getPropertiesOperationSpec","deleteOperationSpec","Mappers.FileSystemCreateHeaders","Mappers.FileSystemCreateExceptionHeaders","Parameters.resource1","Parameters.properties","Mappers.FileSystemSetPropertiesHeaders","Mappers.FileSystemSetPropertiesExceptionHeaders","Parameters.ifModifiedSince","Parameters.ifUnmodifiedSince","Mappers.FileSystemGetPropertiesHeaders","Mappers.FileSystemGetPropertiesExceptionHeaders","Mappers.FileSystemDeleteHeaders","Mappers.FileSystemDeleteExceptionHeaders","Mappers.PathList","Mappers.FileSystemListPathsHeaders","Mappers.FileSystemListPathsExceptionHeaders","Parameters.path","Parameters.recursive","Parameters.upn","Mappers.ListBlobsHierarchySegmentResponse","Mappers.FileSystemListBlobHierarchySegmentHeaders","Mappers.FileSystemListBlobHierarchySegmentExceptionHeaders","Parameters.restype","Parameters.comp","Parameters.delimiter","Parameters.marker","Parameters.include","Parameters.showonly","Parameters.accept1","Mappers.PathCreateHeaders","Mappers.PathCreateExceptionHeaders","Parameters.resource2","Parameters.mode","Parameters.cacheControl","Parameters.contentEncoding","Parameters.contentLanguage","Parameters.contentDisposition","Parameters.contentType","Parameters.renameSource","Parameters.leaseId","Parameters.sourceLeaseId","Parameters.permissions","Parameters.umask","Parameters.ifMatch","Parameters.ifNoneMatch","Parameters.sourceIfMatch","Parameters.sourceIfNoneMatch","Parameters.sourceIfModifiedSince","Parameters.sourceIfUnmodifiedSince","Parameters.encryptionKey","Parameters.encryptionKeySha256","Parameters.encryptionAlgorithm","Parameters.owner","Parameters.group","Parameters.acl","Parameters.proposedLeaseId","Parameters.leaseDuration","Parameters.expiryOptions","Parameters.expiresOn","Parameters.encryptionContext","Mappers.SetAccessControlRecursiveResponse","Mappers.PathUpdateHeaders","Mappers.PathUpdateExceptionHeaders","Parameters.body","Parameters.action","Parameters.maxRecords","Parameters.mode1","Parameters.forceFlag","Parameters.position","Parameters.retainUncommittedData","Parameters.close","Parameters.contentType1","Parameters.accept2","Parameters.contentLength","Parameters.contentMD5","Mappers.PathLeaseHeaders","Mappers.PathLeaseExceptionHeaders","Parameters.xMsLeaseAction","Parameters.xMsLeaseDuration","Parameters.xMsLeaseBreakPeriod","Mappers.PathReadHeaders","Mappers.PathReadExceptionHeaders","Parameters.range","Parameters.xMsRangeGetContentMd5","Mappers.PathGetPropertiesHeaders","Mappers.PathGetPropertiesExceptionHeaders","Parameters.action1","Mappers.PathDeleteHeaders","Mappers.PathDeleteExceptionHeaders","Parameters.recursive1","Parameters.paginated","Mappers.PathSetAccessControlHeaders","Mappers.PathSetAccessControlExceptionHeaders","Parameters.action2","Mappers.PathSetAccessControlRecursiveHeaders","Mappers.PathSetAccessControlRecursiveExceptionHeaders","Parameters.action3","Mappers.PathFlushDataHeaders","Mappers.PathFlushDataExceptionHeaders","Parameters.action4","Parameters.leaseAction","Mappers.PathAppendDataHeaders","Mappers.PathAppendDataExceptionHeaders","Parameters.action5","Parameters.flush","Parameters.contentType2","Parameters.transactionalContentHash","Parameters.transactionalContentCrc64","Mappers.PathSetExpiryHeaders","Mappers.PathSetExpiryExceptionHeaders","Parameters.comp1","Parameters.expiryOptions1","Mappers.PathUndeleteHeaders","Mappers.PathUndeleteExceptionHeaders","Parameters.comp2","Parameters.undeleteSource","coreHttpCompat","StorageClient","isNode","__rest","BlobServiceClient","Readable","EventEmitter","createHmac","SASProtocol","StorageSharedKeyCredential","util","fs","isPipelineLike","Path","BlobClient","isTokenCredential","BlockBlobClient","FileSystem","ContainerClient","__asyncGenerator","__asyncValues","__await","__asyncDelegator","getDefaultProxySettings","PathGetPropertiesAction","PathRenameMode","PathResourceType","StorageDataLakeAudience"],"mappings":"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"}
|