diff --git a/Functions/DCIM/Devices/New-NetboxDCIMDevice.ps1 b/Functions/DCIM/Devices/New-NetboxDCIMDevice.ps1 index 1e7a6c7..b99e237 100644 --- a/Functions/DCIM/Devices/New-NetboxDCIMDevice.ps1 +++ b/Functions/DCIM/Devices/New-NetboxDCIMDevice.ps1 @@ -13,7 +13,8 @@ function New-NetboxDCIMDevice { - [CmdletBinding()] + [CmdletBinding(ConfirmImpact = 'low', + SupportsShouldProcess = $true)] [OutputType([pscustomobject])] #region Parameters param @@ -64,21 +65,21 @@ function New-NetboxDCIMDevice { ) #endregion Parameters -# if ($null -ne $Device_Role) { -# # Validate device role? -# } + # if ($null -ne $Device_Role) { + # # Validate device role? + # } -# if ($null -ne $Device_Type) { -# # Validate device type? -# } + # if ($null -ne $Device_Type) { + # # Validate device type? + # } -# if ($null -ne $Status) { -# $PSBoundParameters.Status = ValidateDCIMChoice -ProvidedValue $Status -DeviceStatus -# } + # if ($null -ne $Status) { + # $PSBoundParameters.Status = ValidateDCIMChoice -ProvidedValue $Status -DeviceStatus + # } -# if ($null -ne $Face) { -# $PSBoundParameters.Face = ValidateDCIMChoice -ProvidedValue $Face -DeviceFace -# } + # if ($null -ne $Face) { + # $PSBoundParameters.Face = ValidateDCIMChoice -ProvidedValue $Face -DeviceFace + # } $Segments = [System.Collections.ArrayList]::new(@('dcim', 'devices')) @@ -86,5 +87,7 @@ function New-NetboxDCIMDevice { $URI = BuildNewURI -Segments $URIComponents.Segments - InvokeNetboxRequest -URI $URI -Body $URIComponents.Parameters -Method POST + if ($PSCmdlet.ShouldProcess($Name, 'Create new Device')) { + InvokeNetboxRequest -URI $URI -Body $URIComponents.Parameters -Method POST + } } \ No newline at end of file diff --git a/Functions/DCIM/Interfaces/Set-NetboxDCIMInterface.ps1 b/Functions/DCIM/Interfaces/Set-NetboxDCIMInterface.ps1 index 87277f8..d08ecd6 100644 --- a/Functions/DCIM/Interfaces/Set-NetboxDCIMInterface.ps1 +++ b/Functions/DCIM/Interfaces/Set-NetboxDCIMInterface.ps1 @@ -13,12 +13,13 @@ function Set-NetboxDCIMInterface { - [CmdletBinding()] + [CmdletBinding(ConfirmImpact = 'Medium', + SupportsShouldProcess = $true)] [OutputType([pscustomobject])] param ( [Parameter(Mandatory = $true, - ValueFromPipelineByPropertyName = $true)] + ValueFromPipelineByPropertyName = $true)] [uint16[]]$Id, [uint16]$Device, @@ -50,9 +51,9 @@ function Set-NetboxDCIMInterface { ) begin { -# if ($null -ne $Form_Factor) { -# $PSBoundParameters.Form_Factor = ValidateDCIMChoice -ProvidedValue $Form_Factor -InterfaceFormFactor -# } + # if ($null -ne $Form_Factor) { + # $PSBoundParameters.Form_Factor = ValidateDCIMChoice -ProvidedValue $Form_Factor -InterfaceFormFactor + # } if (-not [System.String]::IsNullOrWhiteSpace($Mode)) { $PSBoundParameters.Mode = switch ($Mode) { @@ -88,7 +89,9 @@ function Set-NetboxDCIMInterface { $URI = BuildNewURI -Segments $Segments - InvokeNetboxRequest -URI $URI -Body $URIComponents.Parameters -Method PATCH + if ($Force -or $pscmdlet.ShouldProcess("Interface ID $($CurrentInterface.Id)", "Set")) { + InvokeNetboxRequest -URI $URI -Body $URIComponents.Parameters -Method PATCH + } } } diff --git a/Functions/IPAM/Prefix/New-NetboxIPAMPrefix.ps1 b/Functions/IPAM/Prefix/New-NetboxIPAMPrefix.ps1 index 4b76e34..ea728b0 100644 --- a/Functions/IPAM/Prefix/New-NetboxIPAMPrefix.ps1 +++ b/Functions/IPAM/Prefix/New-NetboxIPAMPrefix.ps1 @@ -13,6 +13,8 @@ function New-NetboxIPAMPrefix { + [CmdletBinding(ConfirmImpact = 'low', + SupportsShouldProcess = $true)] [CmdletBinding()] param ( @@ -40,7 +42,7 @@ function New-NetboxIPAMPrefix { [switch]$Raw ) -# $PSBoundParameters.Status = ValidateIPAMChoice -ProvidedValue $Status -PrefixStatus + # $PSBoundParameters.Status = ValidateIPAMChoice -ProvidedValue $Status -PrefixStatus <# # As of 2018/10/18, this does not appear to be a validated IPAM choice @@ -55,5 +57,7 @@ function New-NetboxIPAMPrefix { $URI = BuildNewURI -Segments $URIComponents.Segments - InvokeNetboxRequest -URI $URI -Method POST -Body $URIComponents.Parameters -Raw:$Raw + if ($PSCmdlet.ShouldProcess($Prefix, 'Create new Prefix')) { + InvokeNetboxRequest -URI $URI -Method POST -Body $URIComponents.Parameters -Raw:$Raw + } } \ No newline at end of file diff --git a/Functions/IPAM/VLAN/New-NetboxIPAMVLAN.ps1 b/Functions/IPAM/VLAN/New-NetboxIPAMVLAN.ps1 index bbfba1b..0af0499 100644 --- a/Functions/IPAM/VLAN/New-NetboxIPAMVLAN.ps1 +++ b/Functions/IPAM/VLAN/New-NetboxIPAMVLAN.ps1 @@ -1,5 +1,5 @@ function New-NetboxIPAMVLAN { -<# + <# .SYNOPSIS Create a new VLAN @@ -40,7 +40,8 @@ Additional information about the function. #> - [CmdletBinding()] + [CmdletBinding(ConfirmImpact = 'low', + SupportsShouldProcess = $true)] [OutputType([pscustomobject])] param ( @@ -63,11 +64,11 @@ [switch]$Raw ) -# $PSBoundParameters.Status = ValidateIPAMChoice -ProvidedValue $Status -VLANStatus + # $PSBoundParameters.Status = ValidateIPAMChoice -ProvidedValue $Status -VLANStatus -# if ($null -ne $Role) { -# $PSBoundParameters.Role = ValidateIPAMChoice -ProvidedValue $Role -IPAddressRole -# } + # if ($null -ne $Role) { + # $PSBoundParameters.Role = ValidateIPAMChoice -ProvidedValue $Role -IPAddressRole + # } $segments = [System.Collections.ArrayList]::new(@('ipam', 'vlans')) @@ -75,5 +76,7 @@ $URI = BuildNewURI -Segments $URIComponents.Segments - InvokeNetboxRequest -URI $URI -Method POST -Body $URIComponents.Parameters -Raw:$Raw + if ($PSCmdlet.ShouldProcess($nae, 'Create new Vlan $($vid)')) { + InvokeNetboxRequest -URI $URI -Method POST -Body $URIComponents.Parameters -Raw:$Raw + } } \ No newline at end of file diff --git a/Functions/Virtualization/VirtualMachine/New-NetboxVirtualMachine.ps1 b/Functions/Virtualization/VirtualMachine/New-NetboxVirtualMachine.ps1 index e9418b9..dbab718 100644 --- a/Functions/Virtualization/VirtualMachine/New-NetboxVirtualMachine.ps1 +++ b/Functions/Virtualization/VirtualMachine/New-NetboxVirtualMachine.ps1 @@ -13,7 +13,8 @@ function New-NetboxVirtualMachine { - [CmdletBinding()] + [CmdletBinding(ConfirmImpact = 'low', + SupportsShouldProcess = $true)] [OutputType([pscustomobject])] param ( @@ -46,12 +47,12 @@ function New-NetboxVirtualMachine { [string]$Comments ) -# $ModelDefinition = $script:NetboxConfig.APIDefinition.definitions.WritableVirtualMachineWithConfigContext + # $ModelDefinition = $script:NetboxConfig.APIDefinition.definitions.WritableVirtualMachineWithConfigContext -# # Validate the status against the APIDefinition -# if ($ModelDefinition.properties.status.enum -inotcontains $Status) { -# throw ("Invalid value [] for Status. Must be one of []" -f $Status, ($ModelDefinition.properties.status.enum -join ', ')) -# } + # # Validate the status against the APIDefinition + # if ($ModelDefinition.properties.status.enum -inotcontains $Status) { + # throw ("Invalid value [] for Status. Must be one of []" -f $Status, ($ModelDefinition.properties.status.enum -join ', ')) + # } #$PSBoundParameters.Status = ValidateVirtualizationChoice -ProvidedValue $Status -VirtualMachineStatus @@ -61,7 +62,9 @@ function New-NetboxVirtualMachine { $URI = BuildNewURI -Segments $URIComponents.Segments - InvokeNetboxRequest -URI $URI -Method POST -Body $URIComponents.Parameters + if ($PSCmdlet.ShouldProcess($name, 'Create new Virtual Machine')) { + InvokeNetboxRequest -URI $URI -Method POST -Body $URIComponents.Parameters + } }