Public/cloud-datacenter.ps1

function Get-CloudDatacenter {
    <#
    .SYNOPSIS
        Gets datacenters from the Cloud Server.
     
    .DESCRIPTION
        Retrieves a list of datacenters. Automatically handles token refresh.
         
    .PARAMETER Name
        Optional. Filter by datacenter name
    
    .PARAMETER ID
        Optional. Filter by datacenter ID
     
    .EXAMPLE
        Get-CloudDatacenter
         
    .EXAMPLE
        Get-CloudDatacenter -ID 5
    #>

    
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $false)]
        [string]$Name,
        [Parameter(Mandatory = $false)]
        [int]$ID
    )
    
    $uri = "$($script:CloudConnection.BaseUri)/manifold-api/v2/cloud/datacenter"

    $response = Invoke-CloudApiRequest -Uri $uri -Method Get
    
    $datacenters = $response.datacenters
    
    if ($PSBoundParameters.ContainsKey('ID')) {
        $datacenters = $datacenters | Where-Object {($_.id -eq $ID) -and ($null -ne $_.id)}
        return $datacenters
    }
    if ($Name) {
        $datacenters = $datacenters | Where-Object {($_.name -match $Name)}
        return $datacenters
    }
    else {
        return $datacenters
    }

}