function ConvertTo-JiraTeam { <# .SYNOPSIS Convert the provided objects to Jira Team representation objects .OUTPUTS Returns a [object[]] of Jira Teams. #> [CmdletBinding()] [OutputType([string[]])] param ( [Parameter(Mandatory = $true, ValueFromPipeline = $true, Position = 0)] $Team ) begin { $logLead = (Get-LogLeadName) # Define the defaults for the JiraTeam response to add some custom display information $defaultTypeName = 'JiraTeam' $defaultKeys = @('Name') $defaultDisplaySet = @('Name', 'Department', 'Lead', 'Manager', 'ScrumMaster', 'Members') $defaultDisplayPropertySet = New-Object System.Management.Automation.PSPropertySet('DefaultDisplayPropertySet',[string[]]$defaultDisplaySet) $defaultKeyPropertySet = New-Object System.Management.Automation.PSPropertySet('DefaultKeyPropertySet',[string[]]$defaultKeys) $PSStandardMembers = [System.Management.Automation.PSMemberInfo[]]@($defaultDisplayPropertySet,$defaultKeyPropertySet) } process { try { $teamObject = New-Object PSCustomObject -Property @{ Name = $team.Name Summary = $team.Summary Department = $team.Department Mission = $team.Mission Lead = $team.Lead Members = $team.Members | ConvertTo-JiraTeamMember Manager = $team.Manager | ConvertTo-JiraTeamMember ScrumMaster = $team.ScrumMaster | ConvertTo-JiraTeamMember ProductOwner = $team.ProductOwner | ConvertTo-JiraTeamMember ProjectManager = $team.ProjectManager | ConvertTo-JiraTeamMember Links = $team.Links } #Give this object a unique typename $teamObject.PSObject.TypeNames.Insert(0,$defaultTypeName) $teamObject | Add-Member -MemberType MemberSet -Name PSStandardMembers -Value $PSStandardMembers return $teamObject } catch { Write-Warning "$logLead : Could not convert item to JiraTeam object. Check error below. Returning `$null" Write-ErrorObject -ErrorItem $PSItem return $null } } }