public/Get-Admin.ps1

function Get-Admin {
    [CmdletBinding(DefaultParameterSetName = "GetAllInfer")]
    param(
        [Parameter(
            Mandatory = $true,
            ParameterSetName = "GetAll",
            Position = 0,
            ValueFromPipelineByPropertyName = $true
        )]
        [Alias("Id")]
        [string]$OrganizationId
    )
    Begin {
        try {
            [string]$baseUri = "$endpoint/organizations"
            [string]$uri = $baseUri
            if ($PSCmdlet.ParameterSetName -eq "GetAllInfer") {
                if ($env:MerakiOrganizationId) {
                    $uri = "$baseUri/$env:MerakiOrganizationId/admins"
                }
                else {
                    Write-Error -Exception ([System.Management.Automation.PSArgumentNullException]::new()) `
                        -Message "Parameter OrganizationId was not specified, and attempt to infer from `env:MerakiOrganizationId failed." `
                        -ErrorAction Stop
                }
            }
        }
        catch {$PSCmdlet.ThrowTerminatingError($PSitem)}
    }
    Process {
        try {
            if ($PSCmdlet.ParameterSetName -eq "GetAll") {
                $uri = "$baseUri/$OrganizationId/admins"
                [PSCustomObject](Invoke-RestMethod -Method GET -Uri $uri -Headers $headers)
            }
        }
        catch {
            $PSCmdlet.ThrowTerminatingError($PSitem)
        }
    }
    End {
        try {
            if ($PSCmdlet.ParameterSetName -eq "GetAllInfer") {
                [PSCustomObject](Invoke-RestMethod -Method GET -Uri $uri -Headers $headers)
            }
        }
        catch {
            $PSCmdlet.ThrowTerminatingError($PSitem)
        }
    }
}