Classes/TransformerClasses.psm1
class ProjectTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $result = @() foreach ($item in $InputData) { if ($item -is [string] -and $item -like "Projects-*") { $item = Get-Project -ID $item } elseif ($item -is [string]) { $item = Get-Project -Name $item } $result += ($item) } return ($result) } } class ProjectSingleTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { if ($InputData -is [string] -and $InputData -like "Projects-*") { $item = Get-Project -ID "$InputData" } elseif ($InputData -is [string]) { $item = Get-Project -Name "$InputData" } elseif ($InputData -is [Octopus.Client.Model.ProjectResource]) { $item = $InputData } else { $item = $null } return ($item) } } class TenantTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $result = @() foreach ($item in $InputData) { if ($item -is [string] -and $item -like "Tenants-*") { $item = Get-Tenant -ID "$item" } elseif ($item -is [string]) { $item = Get-Tenant -Name "$item" } $result += ($item) } return ($result) } } class TenantSingleTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $item = $InputData if ($item -is [string] -and $item -like "Tenants-*") { $item = Get-Tenant -ID "$item" } elseif ($item -is [string]) { $item = Get-Tenant -Name "$item" } return ($item) } } class EnvironmentTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $result = @() foreach ($item in $InputData) { if ($item -is [string] -and $item -like "Environments-*") { $item = Get-Environment -ID $item } elseif ($item -is [string]) { $item = Get-Environment -Name $item } $result += ($item) } return ($result) } } class EnvironmentSingleTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $item = $InputData if ($item -is [string] -and $item -like "Environments-*") { $item = Get-Environment -ID $item } elseif ($item -is [string]) { $item = Get-Environment -Name $item } return $item } } class ChannelTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $item = $InputData if ($item -is [string] -and $item -like "Channels-*") { $item = Get-Channel -ID $item } elseif ($item -is [string]) { $item = Get-Channel -Name $item } return $item } } class MachineTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $result = @() foreach ($item in $InputData) { if ($item -is [string] -and $item -like "Machines-*") { $item = Get-Machine -ID "$item" } elseif ($item -is [string]) { $item = Get-Machine -Name "$item" } $result += ($item) } return ($result) } } class MachineSingleTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $item = $InputData if ($item -is [string] -and $item -like "Machines-*") { $item = Get-Machine -ID "$item" } elseif ($item -is [string]) { $item = Get-Machine -Name "$item" } return ($item) } } class RunbookTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $result = @() foreach ($item in $InputData) { if ($item -is [string] -and $item -like "Runbooks-*") { $item = Get-Runbook -ID "$item" } elseif ($item -is [string]) { $item = Get-Runbook -Name "$item" } $result += ($item) } return ($result) } } class RunbookSingleTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $item = $InputData if ($item -is [string] -and $item -like "Runbooks-*") { $item = Get-Runbook -ID "$item" } elseif ($item -is [string]) { $item = Get-Runbook -Name "$item" } return ($item) } } class RunbookSnapshotSingleTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $item = $InputData if ($item -is [string] -and $item -like "RunbookSnapshots-*") { $item = Get-RunbookSnapshot -ID "$item" } elseif ($item -is [string]) { $item = $null } return ($item) } } class ArtifactSingleTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $item = $InputData if ($item -is [string] -and $item -like "Artifacts-*") { $item = Get-Artifact -ID "$item" } elseif ($item -is [string]) { $item = $null } return ($item) } } class LibraryVariableSetSingleTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $item = $InputData if ($item -is [string] -and $item -like " LibraryVariableSets-*") { $item = Get-VariableSet -id "$item" } elseif ($item -is [string]) { $item = Get-VariableSet -Name "$item" } return ($item) } } class ProjectGroupSingleTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $item = $InputData if ($item -is [string] -and $item -like "ProjectGroups-*") { $item = Get-ProjectGroup -ID "$item" } elseif ($item -is [string]) { $item = Get-ProjectGroup -Name "$item" } return ($item) } } class LifecycleSingleTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $item = $InputData if ($item -is [string] -and $item -like "Lifecycles-*") { $item = Get-Lifecycle -ID "$item" } elseif ($item -is [string]) { $item = Get-Lifecycle -Name "$item" } return ($item) } } class ProjectTriggerSingleTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $item = $InputData if ($item -is [string] -and $item -like "ProjectTriggers-*") { $item = Get-ProjectTrigger -ID "$item" } elseif ($item -is [string]) { $item = Get-ProjectTrigger -Name "$item" } return ($item) } } class ProjectTriggerTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $result = @() foreach ($item in $InputData) { if ($item -is [string] -and $item -like "ProjectTriggers-*") { $item = Get-ProjectTrigger -ID "$item" } elseif ($item -is [string]) { $item = Get-ProjectTrigger -Name "$item" } $result += ($item) } return ($result) } } class TaskSingleTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { $item = $InputData if ($item -is [string] -and $item -like "ServerTasks-*") { $item = Get-Task -TaskID "$item" } elseif ($item -is [string]) { $item = $null } return ($item) } } class InterventionRegardingStringTransformation : System.Management.Automation.ArgumentTransformationAttribute { [object] Transform([System.Management.Automation.EngineIntrinsics]$EngineIntrinsics, [object] $InputData) { if ($InputData -is [Octopus.Client.Model.Resource]) { return $InputData.id } if ($InputData -is [string]) { # Already an ID string in expected format switch ($InputData) { { $_ -like "Deployments-*" } { return $InputData } { $_ -like "Tasks-*" } { return $InputData } { $_ -like "Projects-*" } { return $InputData } { $_ -like "Environments-*" } { return $InputData } { $_ -like "Tenants-*" } { return $InputData } default { return $null } } } return $null } } |