Public/Get-DuneResourceGroupSequence.ps1

function Get-DuneResourceGroupSequence {
    [CmdletBinding(DefaultParameterSetName = "Default")]
    param (
        [Parameter(Mandatory, ParameterSetName = "Id")]
        [guid]$Id,

        [Parameter(Mandatory, ParameterSetName = "ResourceGroup", ValueFromPipeline)]
        [DuneResourcegroup]$ResourceGroup,

        [Parameter()]
        [SequenceUsage]$Usage,

        [Parameter()]
        [switch]$Raw
    )

    begin {
        Write-Debug "$($MyInvocation.MyCommand)|begin"
        $ReturnObjects = @()
        $BaseUri = 'resourcegroups/{0}/sequences'
        $Method = 'GET'
    }

    process {
        Write-Debug "$($MyInvocation.MyCommand)|process|$($PSCmdlet.ParameterSetName)"

        if ($PSCmdlet.ParameterSetName -eq 'ResourceGroup') {
            $Id = $ResourceGroup.Id
        }

        # Build Uri
        $Uri = $BaseUri -f $Id

        $ResultItems = Invoke-DuneApiRequest -Method $Method -Uri $Uri -ExtractItems
        $ReturnObjects += $ResultItems | ForEach-Object {
            if ($Raw) {
                $_
            }
            else {
                ConvertTo-DuneClassObject -Class DuneSequence -InputObject $_
            }
        }

        # Filter for Usage
        if ($Usage) { $ReturnObjects = $ReturnObjects | Where-Object Usage -eq $Usage }

    }

    end {
        Write-Debug "$($MyInvocation.MyCommand)|end"
        return $ReturnObjects
    }
}