Private/Get-GCPDiskData.ps1
|
function Get-GCPDiskData { [CmdletBinding()] param( [string]$Project ) $null = Assert-GCloudAuthenticated $resolvedProject = Get-GCloudProject -Project $Project $disks = Invoke-GCloudJson -Arguments @('compute', 'disks', 'list', "--project=$resolvedProject") foreach ($disk in $disks) { $zoneName = if ($disk.zone) { ($disk.zone -split '/')[-1] } else { $null } $diskType = if ($disk.type) { ($disk.type -split '/')[-1] } else { $null } $status = if ($disk.status) { (Get-Culture).TextInfo.ToTitleCase($disk.status.ToLower()) } else { $null } $params = @{ Name = $disk.name Provider = 'GCP' Region = $zoneName Size = "$($disk.sizeGb) GB" Metadata = @{ Project = $resolvedProject Zone = $zoneName DiskType = $diskType SizeGb = $disk.sizeGb } } if ($status) { $params.Status = $status } if (-not [string]::IsNullOrWhiteSpace($disk.creationTimestamp)) { $params.CreatedAt = [datetime]::Parse($disk.creationTimestamp) } ConvertTo-CloudRecord @params } } |