private/Get-AzureDatabricksWorkspace.ps1
function Get-AzureDatabricksWorkspace { <# .SYNOPSIS Returns an object that represents objects within a specificed Azure Databricks workspace/folder .DESCRIPTION This function returns a list of objects and directory for a target workspace folder (or default root) recursively. .PARAMETER Connection An object that contains your current connection context, which you can obtain by running New-AzureDatabricksConnection .PARAMETER Path The base path you want to return the file/directory listing for. .NOTES Author: Drew Furgiuele (@pittfurg), http://www.port1433.com Website: https://www.igs.com Copyright: (c) 2019 by IGS, licensed under MIT License: MIT https://opensource.org/licenses/MIT .LINK .EXAMPLE PS C:\> Get-AzureDatabricksWorkspace -Connection $AzureDatabricksConnection Returns a listing of all files/directories in the root of your Azure Databricks workspace #> [cmdletbinding()] param ( [Parameter(Mandatory=$true)] [object] $Connection, [Parameter(Mandatory=$false)] [string] $Path = "/" ) begin { $TargetURI = $Connection.BaseURI.AbsoluteUri + "api/2.0/workspace/list" } process { Write-Verbose "Querying workspace path $path..." $TargetURI += "?path=$path" $WorkSpace = New-AzureDatabricksRequest -Uri $TargetURI -AccessToken $Connection.AccessToken -UseBasicParsing $Connection.UseBasicParsing $WorkSpace.RequestBody = $RequestBody $Response = $WorkSpace.Submit() ForEach ($o in $Response.Objects) { $Object = New-Object AzureDataBricksWorkSpace($o.object_type, $o.path) $Object if ($o.object_type -eq "DIRECTORY") { Get-AzureDatabricksWorkspace -Connection $Connection -Path ($o.Path) } } } } |