SingleScripts/Export-Content.ps1

[CmdletBinding()]
Param(
  [Parameter(Mandatory=$true,Position=1)] [string] $DBAPIRootUrl,
  [Parameter(Mandatory=$True,Position=2)] [string] $DBAPIKey,
  [Parameter(Mandatory=$True,Position=3)] [string] $DBPathToExport,
  [Parameter(Mandatory=$True,Position=4)] [string] $TargetPath,
  [Parameter(Mandatory=$False,Position=5)] [string] $DBExportFormat = "DBC"
)

$DBPathToExport = "/" + $DBPathToExport.Replace('\', '/').Trim('/') + "/"

$DBAPIUrl = $DBAPIRootUrl.Trim('/') + "/api/2.0/workspace/export"

$headers = @{
  Authorization = "Bearer $DBAPIKey"
  "Content-Type" = "application/json"
}

$parameters = @{
  path = $DBPathToExport
  format = $DBExportFormat
} 

[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12
$result = Invoke-RestMethod -Uri $DBAPIUrl -Method GET -Headers $headers -Body $parameters

$exportFileName = $($DBPathToExport -replace "/", "__").Trim("__") + "." + $DBExportFormat.ToLower()
$exportFileNameFull = "$TargetPath\$exportFileName"

$exportBytes = [Convert]::FromBase64String($result.content)
[IO.File]::WriteAllBytes($exportFileNameFull, $exportBytes)

$exportFileNameFull