Functions/workflow-service/Get-vROWorkflow.psm1
function Get-vROWorkflow { <# .SYNOPSIS Get vRO Workflows .DESCRIPTION Get vRO Workflows .PARAMETER Category Retrieve workflow by Category .PARAMETER Id Retrieve workflow by Id .PARAMETER Name Retrieve workflow by Name .PARAMETER Wildcard Perform a wildcard search when using the Name parameter .INPUTS System.String System.Switch .OUTPUTS System.Management.Automation.PSObject. .EXAMPLE Get-vROWorkflow .EXAMPLE Get-vROWorkflow -Category Dev .EXAMPLE Get-vROWorkflow -Id '3f92d2dc-a9fa-4323-900b-ef97196184ea' .EXAMPLE Get-vROWorkflow -Name 'New-DRSRule' .EXAMPLE Get-vROWorkflow -Name 'New' -Wildcard #> [CmdletBinding(DefaultParametersetName="All")][OutputType('System.Management.Automation.PSObject')] Param ( [parameter(Mandatory=$false,ParameterSetName="Category")] [String]$Category, [parameter(Mandatory=$false,ParameterSetName="Id")] [String]$Id, [parameter(Mandatory=$false,ParameterSetName="Name")] [String]$Name, [parameter(Mandatory=$false,ParameterSetName="Name")] [Switch]$Wildcard ) try { # --- Send REST call and process results switch ($PsCmdlet.ParameterSetName) { "All" { $URI = "/vco/api/workflows" break } "Category" { $URI = "/vco/api/workflows/?conditions=categoryName=$($Category)" break } "Id" { $URI = "/vco/api/workflows/$($Id)" break } "Name" { if ($PSBoundParameters.ContainsKey('Wildcard')){ $URI = "/vco/api/workflows/?conditions=name~$($Name)" } else { $URI = "/vco/api/workflows/?conditions=name=$($Name)" } break } } if ($PsCmdlet.ParameterSetName -eq 'Id'){ $Workflow = Invoke-vRORestMethod -Method Get -Uri $URI -Verbose:$VerbosePreference [pscustomobject]@{ Name = $Workflow.name ID = $Workflow.id Description = $Workflow.description ItemHref = $Workflow.href Version = $Workflow.version CategoryName = $null CategoryHref = $null CustomIcon = $Workflow.'customized-icon' CanExecute = $null CanEdit = $null } } else { $Workflows = Invoke-vRORestMethod -Method Get -Uri $URI -Verbose:$VerbosePreference foreach ($Workflow in $Workflows.link){ [pscustomobject]@{ Name = ($Workflow.attributes | Where-Object {$_.name -eq 'name'}).value ID = ($Workflow.attributes | Where-Object {$_.name -eq 'id'}).value Description = ($Workflow.attributes | Where-Object {$_.name -eq 'description'}).value ItemHref = ($Workflow.attributes | Where-Object {$_.name -eq 'itemHref'}).value Version = ($Workflow.attributes | Where-Object {$_.name -eq 'version'}).value CategoryName = ($Workflow.attributes | Where-Object {$_.name -eq 'categoryName'}).value CategoryHref = ($Workflow.attributes | Where-Object {$_.name -eq 'categoryHref'}).value CustomIcon = ($Workflow.attributes | Where-Object {$_.name -eq 'customIcon'}).value CanExecute = ($Workflow.attributes | Where-Object {$_.name -eq 'canExecute'}).value CanEdit = ($Workflow.attributes | Where-Object {$_.name -eq 'canEdit'}).value } } } } catch [Exception]{ throw } } |