Functions/packages-service/Get-vROPackagePermission.psm1

function Get-vROPackagePermission {
<#
    .SYNOPSIS
    Get vRO Package Permissions

    .DESCRIPTION
    Get vRO Package Permissions

    .PARAMETER Name
    Package Name

    .INPUTS
    System.String

    .OUTPUTS
    System.Management.Automation.PSObject.

    .EXAMPLE
    Get-vROPackagePermission -Name "net.powervro.tests"

    .EXAMPLE
    Get-vROPackage -Name "net.powervro.tests" | Get-vROPackagePermission
#>

[CmdletBinding()][OutputType('System.Management.Automation.PSObject')]

    Param
    (   
    
    [parameter(Mandatory=$true,ValueFromPipeline,ValueFromPipelinebyPropertyName=$true)]
    [String[]]$Name

    )

    begin {

    }

    process {

        try {

            foreach ($PackageName in $Name){

                # --- Send REST call and process results
                $URI = "/vco/api/packages/$($PackageName)/permissions"

                $Package= Invoke-vRORestMethod -Method Get -Uri $URI -Verbose:$VerbosePreference

                foreach ($Permission in $Package.permissions){

                    $Rights = @()

                    switch -regex ($Permission.permission.rights)
                    {
                        "[r]" {$Rights += "View"}
                        "[i]" {$Rights += "Inspect"}
                        "[c]" {$Rights += "Edit"}
                        "[a]" {$Rights += "Admin"}

                        Default {}
                    }

                    [pscustomobject]@{                
                    
                        Principal = $Permission.permission.principal
                        Rights = $Rights
                        Package = $PackageName
                        PackageHref = $Permission.permission.href
                    }
                }
            }
        }
        catch [Exception]{
        
            throw
        }
    }

    end {

    }
}