PortHelpers.ps1
|
function Get-DevTunnelPort { <# .SYNOPSIS List tunnel ports or show a specified port. .EXAMPLE Get-DevTunnelPort -TunnelId my-tunnel -PortNumber 3000 #> [CmdletBinding()] param( [Parameter(ValueFromPipelineByPropertyName)][Alias('Id')] [ValidatePattern('\A[a-zA-Z0-9][a-zA-Z0-9.-]*\z')][string]$TunnelId, [ValidateRange(1, 65535)][int]$PortNumber ) process { $verb = if ($PSBoundParameters.ContainsKey('PortNumber')) { 'show' } else { 'list' } Invoke-DevTunnelCommand -Arguments (New-DevTunnelArguments -Command port, $verb -Parameters $PSBoundParameters -Json) } } function New-DevTunnelPort { <# .SYNOPSIS Add a port to a persistent or last-used tunnel. .EXAMPLE New-DevTunnelPort -TunnelId my-tunnel -PortNumber 3000 -Protocol http #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter(ValueFromPipelineByPropertyName)][Alias('Id')] [ValidatePattern('\A[a-zA-Z0-9][a-zA-Z0-9.-]*\z')][string]$TunnelId, [Parameter(Mandatory)][ValidateRange(1, 65535)][int]$PortNumber, [ValidateSet('http', 'https', 'auto')][string]$Protocol, [ValidateNotNullOrEmpty()][string]$Description, [ValidateNotNullOrEmpty()][string[]]$Label ) process { if ($PSCmdlet.ShouldProcess("$TunnelId port $PortNumber (omitted ID uses last-used tunnel)", 'Create port')) { Invoke-DevTunnelCommand -Arguments (New-DevTunnelArguments -Command port, create -Parameters $PSBoundParameters -Json) } } } function Set-DevTunnelPort { <# .SYNOPSIS Update a tunnel port's description or labels. .EXAMPLE Set-DevTunnelPort -TunnelId my-tunnel -PortNumber 3000 -Description 'Frontend' #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter(ValueFromPipelineByPropertyName)][Alias('Id')] [ValidatePattern('\A[a-zA-Z0-9][a-zA-Z0-9.-]*\z')][string]$TunnelId, [Parameter(Mandatory)][ValidateRange(1, 65535)][int]$PortNumber, [AllowEmptyString()][string]$Description, [ValidateNotNullOrEmpty()][string[]]$AddLabel, [ValidateNotNullOrEmpty()][string[]]$RemoveLabel ) process { if ($PSCmdlet.ShouldProcess("$TunnelId port $PortNumber (omitted ID uses last-used tunnel)", 'Update port')) { Invoke-DevTunnelCommand -Arguments (New-DevTunnelArguments -Command port, update -Parameters $PSBoundParameters -Json) } } } function Remove-DevTunnelPort { <# .SYNOPSIS Delete a tunnel port. .EXAMPLE Remove-DevTunnelPort -TunnelId my-tunnel -PortNumber 3000 #> [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')] param( [Parameter(ValueFromPipelineByPropertyName)][Alias('Id')] [ValidatePattern('\A[a-zA-Z0-9][a-zA-Z0-9.-]*\z')][string]$TunnelId, [Parameter(Mandatory)][ValidateRange(1, 65535)][int]$PortNumber ) process { if ($PSCmdlet.ShouldProcess("$TunnelId port $PortNumber (omitted ID uses last-used tunnel)", 'Delete port')) { Invoke-DevTunnelCommand -Arguments (New-DevTunnelArguments -Command port, delete -Parameters $PSBoundParameters -Json) } } } |