Private/Get-AzureDiskData.ps1

function Get-AzureDiskData {
    [CmdletBinding()]
    param(
        [string]$ResourceGroup
    )

    Assert-CommandAvailable `
        -CommandName 'Get-AzDisk' `
        -InstallHint "Install the Az.Compute module with: Install-Module Az.Compute -Scope CurrentUser"

    $disks = if ([string]::IsNullOrWhiteSpace($ResourceGroup)) {
        Get-AzDisk -ErrorAction Stop
    } else {
        Get-AzDisk -ResourceGroupName $ResourceGroup -ErrorAction Stop
    }

    foreach ($disk in $disks) {
        $status = if ($disk.DiskState) { $disk.DiskState.ToString() } else { $null }

        $params = @{
            Name     = $disk.Name
            Provider = 'Azure'
            Region   = $disk.Location
            Size     = "$($disk.DiskSizeGB) GB"
            Metadata = @{
                ResourceGroup = $disk.ResourceGroupName
                DiskSizeGB    = $disk.DiskSizeGB
                OsType        = if ($disk.OsType) { $disk.OsType.ToString() } else { $null }
                Sku           = $disk.Sku.Name
            }
        }

        if ($status) { $params.Status = $status }
        if ($disk.TimeCreated) { $params.CreatedAt = $disk.TimeCreated }

        ConvertTo-CloudRecord @params
    }
}