public static AzureDataLakeStoreGen2BlobStorageProvider CreateByClientSecret(
            string accountName,
            string tenantId,
            string clientId,
            string clientSecret)
        {
            if (accountName is null)
            {
                throw new ArgumentNullException(nameof(accountName));
            }
            if (tenantId is null)
            {
                throw new ArgumentNullException(nameof(tenantId));
            }
            if (clientId is null)
            {
                throw new ArgumentNullException(nameof(clientId));
            }
            if (clientSecret is null)
            {
                throw new ArgumentNullException(nameof(clientSecret));
            }

            return(new AzureDataLakeStoreGen2BlobStorageProvider(
                       DataLakeApiFactory.CreateApiWithServicePrincipal(accountName, tenantId, clientId, clientSecret)));
        }
        public static AzureDataLakeStoreGen2BlobStorageProvider CreateByManagedIdentity(string accountName)
        {
            if (accountName == null)
            {
                throw new ArgumentNullException(nameof(accountName));
            }

            return(new AzureDataLakeStoreGen2BlobStorageProvider(
                       DataLakeApiFactory.CreateApiWithManagedIdentity(accountName)));
        }
        public static AzureDataLakeStoreGen2BlobStorageProvider CreateBySharedAccessKey(string accountName,
                                                                                        string sharedAccessKey)
        {
            if (accountName == null)
            {
                throw new ArgumentNullException(nameof(accountName));
            }

            if (sharedAccessKey == null)
            {
                throw new ArgumentNullException(nameof(sharedAccessKey));
            }

            return(new AzureDataLakeStoreGen2BlobStorageProvider(
                       DataLakeApiFactory.CreateApiWithSharedKey(accountName, sharedAccessKey)));
        }