NetboxPS/Functions/DCIM/RearPorts/Set-NetboxDCIMRearPort.ps1

59 lines
1.5 KiB
PowerShell
Raw Normal View History


2023-03-17 15:37:09 -04:00
function Set-NetboxDCIMRearPort {
[CmdletBinding(ConfirmImpact = 'Medium',
2023-03-17 15:37:09 -04:00
SupportsShouldProcess = $true)]
[OutputType([pscustomobject])]
param
(
[Parameter(Mandatory = $true,
2023-03-17 15:37:09 -04:00
ValueFromPipelineByPropertyName = $true)]
[uint16[]]$Id,
2023-03-17 15:37:09 -04:00
[uint16]$Device,
2023-03-17 15:37:09 -04:00
[uint16]$Module,
2023-03-17 15:37:09 -04:00
[string]$Name,
2023-03-17 15:37:09 -04:00
[string]$Label,
2023-03-17 15:37:09 -04:00
[string]$Type,
2023-03-17 15:37:09 -04:00
[ValidatePattern('^[0-9a-f]{6}$')]
[string]$Color,
2023-03-17 15:37:09 -04:00
[uint16]$Positions,
2023-03-17 15:37:09 -04:00
[string]$Description,
2023-03-17 15:37:09 -04:00
[bool]$Mark_Connected,
2023-03-17 15:37:09 -04:00
[uint16[]]$Tags,
2023-03-17 15:37:09 -04:00
[switch]$Force
)
2023-03-17 15:37:09 -04:00
begin {
}
2023-03-17 15:37:09 -04:00
process {
foreach ($RearPortID in $Id) {
$CurrentPort = Get-NetboxDCIMRearPort -Id $RearPortID -ErrorAction Stop
2023-03-17 15:37:09 -04:00
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'rear-ports', $CurrentPort.Id))
2023-03-17 15:37:09 -04:00
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters -SkipParameterByName 'Id'
2023-03-17 15:37:09 -04:00
$URI = BuildNewURI -Segments $Segments
2023-03-17 15:37:09 -04:00
if ($Force -or $pscmdlet.ShouldProcess("Rear Port ID $($CurrentPort.Id)", "Set")) {
InvokeNetboxRequest -URI $URI -Body $URIComponents.Parameters -Method PATCH
}
}
}
2023-03-17 15:37:09 -04:00
end {
}
}