This commit is contained in:
SheffSix 2023-03-13 11:50:41 +00:00 committed by sheffsix
parent 4f6625af2d
commit 32a417fd2a
3 changed files with 42 additions and 21 deletions

View file

@ -1,5 +1,6 @@
 
function Add-NetboxDCIMInterface { function Add-NetboxDCIMInterface
{
[CmdletBinding()] [CmdletBinding()]
[OutputType([pscustomobject])] [OutputType([pscustomobject])]
param param
@ -37,24 +38,30 @@ function Add-NetboxDCIMInterface {
[uint16[]]$Tagged_VLANs [uint16[]]$Tagged_VLANs
) )
if (-not [System.String]::IsNullOrWhiteSpace($Mode)) { if (-not [System.String]::IsNullOrWhiteSpace($Mode))
$PSBoundParameters.Mode = switch ($Mode) { {
'Access' { $PSBoundParameters.Mode = switch ($Mode)
{
'Access'
{
100 100
break break
} }
'Tagged' { 'Tagged'
{
200 200
break break
} }
'Tagged All' { 'Tagged All'
{
300 300
break break
} }
default { default
{
$_ $_
} }
} }

View file

@ -1,5 +1,6 @@
 
function Get-NetboxDCIMInterface { function Get-NetboxDCIMInterface
{
[CmdletBinding()] [CmdletBinding()]
[OutputType([pscustomobject])] [OutputType([pscustomobject])]
param param
@ -35,7 +36,8 @@ function Get-NetboxDCIMInterface {
[switch]$Raw [switch]$Raw
) )
process { process
{
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'interfaces')) $Segments = [System.Collections.ArrayList]::new(@('dcim', 'interfaces'))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters $URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters

View file

@ -1,5 +1,6 @@
 
function Set-NetboxDCIMInterface { function Set-NetboxDCIMInterface
{
[CmdletBinding(ConfirmImpact = 'Medium', [CmdletBinding(ConfirmImpact = 'Medium',
SupportsShouldProcess = $true)] SupportsShouldProcess = $true)]
[OutputType([pscustomobject])] [OutputType([pscustomobject])]
@ -40,33 +41,42 @@ function Set-NetboxDCIMInterface {
[uint16[]]$Tagged_VLANs [uint16[]]$Tagged_VLANs
) )
begin { begin
if (-not [System.String]::IsNullOrWhiteSpace($Mode)) { {
$PSBoundParameters.Mode = switch ($Mode) { if (-not [System.String]::IsNullOrWhiteSpace($Mode))
'Access' { {
$PSBoundParameters.Mode = switch ($Mode)
{
'Access'
{
100 100
break break
} }
'Tagged' { 'Tagged'
{
200 200
break break
} }
'Tagged All' { 'Tagged All'
{
300 300
break break
} }
default { default
{
$_ $_
} }
} }
} }
} }
process { process
foreach ($InterfaceId in $Id) { {
foreach ($InterfaceId in $Id)
{
$CurrentInterface = Get-NetboxDCIMInterface -Id $InterfaceId -ErrorAction Stop $CurrentInterface = Get-NetboxDCIMInterface -Id $InterfaceId -ErrorAction Stop
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'interfaces', $CurrentInterface.Id)) $Segments = [System.Collections.ArrayList]::new(@('dcim', 'interfaces', $CurrentInterface.Id))
@ -75,13 +85,15 @@ function Set-NetboxDCIMInterface {
$URI = BuildNewURI -Segments $Segments $URI = BuildNewURI -Segments $Segments
if ($Force -or $pscmdlet.ShouldProcess("Interface ID $($CurrentInterface.Id)", "Set")) { if ($Force -or $pscmdlet.ShouldProcess("Interface ID $($CurrentInterface.Id)", "Set"))
{
InvokeNetboxRequest -URI $URI -Body $URIComponents.Parameters -Method PATCH InvokeNetboxRequest -URI $URI -Body $URIComponents.Parameters -Method PATCH
} }
} }
} }
end { end
{
} }
} }