Private/Get-GCPStorageData.ps1

function Get-GCPStorageData {
    [CmdletBinding()]
    param(
        [string]$Project
    )

    $null = Assert-GCloudAuthenticated
    $resolvedProject = Get-GCloudProject -Project $Project
    $buckets = Invoke-GCloudJson -Arguments @('storage', 'buckets', 'list', "--project=$resolvedProject")

    foreach ($bucket in $buckets) {
        # Bucket names may be prefixed with "gs://" in some output formats
        $name = $bucket.name -replace '^gs://', ''

        $params = @{
            Name     = $name
            Provider = 'GCP'
            Region   = $bucket.location
            Status   = 'Available'
            Size     = $bucket.storageClass
            Metadata = @{
                Project      = $resolvedProject
                StorageClass = $bucket.storageClass
                Location     = $bucket.location
            }
        }

        if (-not [string]::IsNullOrWhiteSpace($bucket.timeCreated)) {
            $params.CreatedAt = [datetime]::Parse($bucket.timeCreated)
        }

        ConvertTo-CloudRecord @params
    }
}