From 44dcb252b81826114f27095308557cd2ad1054df Mon Sep 17 00:00:00 2001 From: Ben Claussen Date: Tue, 7 Nov 2023 10:30:05 -0500 Subject: [PATCH] v1.8.4 (#50) * Fixing Interface Type parameter (#42) * Fixing #41 * Update `deploy.ps1` to remove trailing whitespaces from psd1 * Increase version to 1.7.3 * Fix location of whitespace cleanup in `deploy.ps1` * Device port support (#44) * Fixing #41 * Correct for OTBS * Start work on Front and Rear ports * Revert "Start work on Front and Rear ports" This reverts commit 257709fe2af5af5fbe4496b2d5b68481d80bf101. * Fixing #41 * Add-NetboxDCIMRearPort function * Revert "Revert "Start work on Front and Rear ports"" This reverts commit 4f6625af2dd95a5797da0efcff40774095ad2e95. * Fix incorrect parameter variable types * Parameter type adjustments * Create function to get tag information * Added Mark_Connected parameter * Add Set-NetboxDCIMRearPort function * Added Remove-NetboxDCIMRearPort function * Added validate pattern for Color parameter * Added Add-NetboxDCIMFrontPort function * Fixed param list missing Force parameter * Added Set-NetboxDCIMFrontPort function * Added Remove-NetboxDCIMFrontPort function * Init. functions for cables and cable terminations * Reformatting using OTBS Also working on defining tags by slug as an extra parameter, which appears only in Add-NetboxDCIMRearPort currently * Remove Tags_Slug parameter In hindsight implementing would create extra work that could be hard to maintain. Can be easily achieved outside of the function. * Update psproj * Fix braces * Update Postman for Netbox v3.4.5 * Update vscode settings * Update version 1.8.0 * Update psproj * Update `uint16` to `uint64` where applicable for #49 * dev v1.8.1 * More `uint64` updates for #49 * `[uint64]` updates * Add IPAMAddressRange functions * Move limit/offset parameters to end of list * Update psproj with IPAMAddressRange files * Remove whitespaces * Update version to 1.8.3 * Add Set-NetboxIPAMAddressRange * Remove incorrect parameter * Update version to 1.8.4 --------- Co-authored-by: SheffSix Co-authored-by: James Beck --- .../Circuits/Circuits/Get-NetboxCircuit.ps1 | 12 +- .../Circuits/Circuits/New-NetboxCircuit.ps1 | 8 +- .../Providers/Get-NetboxCircuitProvider.ps1 | 2 +- .../Get-NetboxCircuitTermination.ps1 | 4 +- .../Circuits/Types/Get-NetboxCircuitType.ps1 | 2 +- .../Get-NetboxDCIMCableTermination.ps1 | 6 +- Functions/DCIM/Cables/Get-NetboxDCIMCable.ps1 | 12 +- .../DCIM/Devices/Get-NetboxDCIMDevice.ps1 | 24 +- .../DCIM/Devices/Get-NetboxDCIMDeviceRole.ps1 | 2 +- .../DCIM/Devices/Get-NetboxDCIMDeviceType.ps1 | 4 +- .../DCIM/Devices/New-NetboxDCIMDevice.ps1 | 20 +- .../DCIM/Devices/Remove-NetboxDCIMDevice.ps1 | 2 +- .../DCIM/Devices/Set-NetboxDCIMDevice.ps1 | 22 +- .../FrontPorts/Add-NetboxDCIMFrontPort.ps1 | 8 +- .../FrontPorts/Get-NetboxDCIMFrontPort.ps1 | 4 +- .../FrontPorts/Remove-NetboxDCIMFrontPort.ps1 | 2 +- .../FrontPorts/Set-NetboxDCIMFrontPort.ps1 | 6 +- Functions/DCIM/Get-NetboxDCIMPlatform.ps1 | 4 +- .../Interfaces/Add-NetboxDCIMInterface.ps1 | 4 +- .../Add-NetboxDCIMInterfaceConnection.ps1 | 4 +- .../Interfaces/Get-NetboxDCIMInterface.ps1 | 8 +- .../Get-NetboxDCIMInterfaceConnection.ps1 | 6 +- .../Interfaces/Remove-NetboxDCIMInterface.ps1 | 2 +- .../Remove-NetboxDCIMInterfaceConnection.ps1 | 2 +- .../Interfaces/Set-NetboxDCIMInterface.ps1 | 6 +- .../Set-NetboxDCIMInterfaceConnection.ps1 | 6 +- .../DCIM/RearPorts/Add-NetboxDCIMRearPort.ps1 | 4 +- .../DCIM/RearPorts/Get-NetboxDCIMRearPort.ps1 | 4 +- .../RearPorts/Remove-NetboxDCIMRearPort.ps1 | 2 +- .../DCIM/RearPorts/Set-NetboxDCIMRearPort.ps1 | 6 +- Functions/DCIM/Sites/Get-NetboxDCIMSite.ps1 | 10 +- Functions/DCIM/Sites/New-NetboxDCIMSite.ps1 | 8 +- Functions/Extras/Get-NetboxTag.ps1 | 10 +- .../IPAM/Address/Get-NetboxIPAMAddress.ps1 | 12 +- .../Address/Get-NetboxIPAMAvailableIP.ps1 | 4 +- .../IPAM/Address/New-NetboxIPAMAddress.ps1 | 10 +- .../IPAM/Address/Remove-NetboxIPAMAddress.ps1 | 2 +- .../IPAM/Address/Set-NetboxIPAMAddress.ps1 | 10 +- .../Aggregate/Get-NetboxIPAMAggregate.ps1 | 4 +- .../IPAM/Prefix/Get-NetboxIPAMPrefix.ps1 | 12 +- .../IPAM/Prefix/New-NetboxIPAMPrefix.ps1 | 8 +- .../IPAM/Prefix/Set-NetboxIPAMPrefix.ps1 | 10 +- .../IPAM/Range/Get-NetboxIPAMAddressRange.ps1 | 73 ++ .../IPAM/Range/New-NetboxIPAMAddressRange.ps1 | 106 +++ .../Range/Remove-NetboxIPAMAddressRange.ps1 | 47 ++ .../IPAM/Range/Set-NetboxIPAMAddressRange.ps1 | 58 ++ Functions/IPAM/Role/Get-NetboxIPAMRole.ps1 | 2 +- Functions/IPAM/VLAN/Get-NetboxIPAMVLAN.ps1 | 12 +- Functions/IPAM/VLAN/New-NetboxIPAMVLAN.ps1 | 2 +- .../Setup/Support/Get-NetboxContentType.ps1 | 2 +- .../Get-NetboxContactAssignment.ps1 | 10 +- .../New-NetboxContactAssignment.ps1 | 6 +- .../ContactRoles/Get-NetboxContactRole.ps1 | 2 +- .../Tenancy/Contacts/Get-NetboxContact.ps1 | 4 +- .../Tenancy/Contacts/Set-NetboxContact.ps1 | 4 +- .../Tenancy/Tenants/Get-NetboxTenant.ps1 | 4 +- .../Get-NetboxVirtualMachine.ps1 | 16 +- .../New-NetboxVirtualMachine.ps1 | 18 +- .../Remove-NetboxVirtualMachine.ps1 | 2 +- .../Set-NetboxVirtualMachine.ps1 | 18 +- .../Add-NetboxVirtualMachineInterface.ps1 | 2 +- .../Get-NetboxVirtualMachineInterface.ps1 | 4 +- .../Set-NetboxVirtualMachineInterface.ps1 | 4 +- .../Get-NetboxVirtualizationCluster.ps1 | 8 +- .../Get-NetboxVirtualizationClusterGroup.ps1 | 2 +- NetboxPS.psd1 | 34 +- NetboxPS.psproj | 7 + NetboxPS/NetboxPS.psd1 | 34 +- NetboxPS/NetboxPS.psm1 | 724 +++++++++++++----- 69 files changed, 1051 insertions(+), 452 deletions(-) create mode 100644 Functions/IPAM/Range/Get-NetboxIPAMAddressRange.ps1 create mode 100644 Functions/IPAM/Range/New-NetboxIPAMAddressRange.ps1 create mode 100644 Functions/IPAM/Range/Remove-NetboxIPAMAddressRange.ps1 create mode 100644 Functions/IPAM/Range/Set-NetboxIPAMAddressRange.ps1 diff --git a/Functions/Circuits/Circuits/Get-NetboxCircuit.ps1 b/Functions/Circuits/Circuits/Get-NetboxCircuit.ps1 index 6664395..e33c53e 100644 --- a/Functions/Circuits/Circuits/Get-NetboxCircuit.ps1 +++ b/Functions/Circuits/Circuits/Get-NetboxCircuit.ps1 @@ -23,16 +23,16 @@ function Get-NetboxCircuit { A raw search query... As if you were searching the web site .PARAMETER Provider - The name or ID of the provider. Provide either [string] or [int]. String will search provider names, integer will search database IDs + The name or ID of the provider. Provide either [string] or [uint64]. String will search provider names, integer will search database IDs .PARAMETER Type - Type of circuit. Provide either [string] or [int]. String will search provider type names, integer will search database IDs + Type of circuit. Provide either [string] or [uint64]. String will search provider type names, integer will search database IDs .PARAMETER Site - Location/site of circuit. Provide either [string] or [int]. String will search site names, integer will search database IDs + Location/site of circuit. Provide either [string] or [uint64]. String will search site names, integer will search database IDs .PARAMETER Tenant - Tenant assigned to circuit. Provide either [string] or [int]. String will search tenant names, integer will search database IDs + Tenant assigned to circuit. Provide either [string] or [uint64]. String will search tenant names, integer will search database IDs .PARAMETER Limit A description of the Limit parameter. @@ -57,7 +57,7 @@ function Get-NetboxCircuit { param ( [Parameter(ParameterSetName = 'ById')] - [uint16[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$CID, @@ -66,7 +66,7 @@ function Get-NetboxCircuit { [datetime]$InstallDate, [Parameter(ParameterSetName = 'Query')] - [uint32]$CommitRate, + [uint64]$CommitRate, [Parameter(ParameterSetName = 'Query')] [string]$Query, diff --git a/Functions/Circuits/Circuits/New-NetboxCircuit.ps1 b/Functions/Circuits/Circuits/New-NetboxCircuit.ps1 index 8198749..1e1d639 100644 --- a/Functions/Circuits/Circuits/New-NetboxCircuit.ps1 +++ b/Functions/Circuits/Circuits/New-NetboxCircuit.ps1 @@ -10,17 +10,17 @@ function New-NetboxCircuit { [string]$CID, [Parameter(Mandatory = $true)] - [uint32]$Provider, + [uint64]$Provider, [Parameter(Mandatory = $true)] - [uint32]$Type, + [uint64]$Type, #[ValidateSet('Active', 'Planned', 'Provisioning', 'Offline', 'Deprovisioning', 'Decommissioned ')] [uint16]$Status = 'Active', [string]$Description, - [uint32]$Tenant, + [uint64]$Tenant, [string]$Termination_A, @@ -29,7 +29,7 @@ function New-NetboxCircuit { [string]$Termination_Z, [ValidateRange(0, 2147483647)] - [uint32]$Commit_Rate, + [uint64]$Commit_Rate, [string]$Comments, diff --git a/Functions/Circuits/Providers/Get-NetboxCircuitProvider.ps1 b/Functions/Circuits/Providers/Get-NetboxCircuitProvider.ps1 index 8942e44..ce09f1b 100644 --- a/Functions/Circuits/Providers/Get-NetboxCircuitProvider.ps1 +++ b/Functions/Circuits/Providers/Get-NetboxCircuitProvider.ps1 @@ -5,7 +5,7 @@ function Get-NetboxCircuitProvider { ( [Parameter(ParameterSetName = 'ById', Mandatory = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query', Mandatory = $false)] diff --git a/Functions/Circuits/Terminations/Get-NetboxCircuitTermination.ps1 b/Functions/Circuits/Terminations/Get-NetboxCircuitTermination.ps1 index c8d46ba..0a5bb79 100644 --- a/Functions/Circuits/Terminations/Get-NetboxCircuitTermination.ps1 +++ b/Functions/Circuits/Terminations/Get-NetboxCircuitTermination.ps1 @@ -5,7 +5,7 @@ function Get-NetboxCircuitTermination { ( [Parameter(ParameterSetName = 'ById', ValueFromPipelineByPropertyName = $true)] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Circuit_ID, @@ -14,7 +14,7 @@ function Get-NetboxCircuitTermination { [string]$Term_Side, [Parameter(ParameterSetName = 'Query')] - [uint32]$Port_Speed, + [uint64]$Port_Speed, [Parameter(ParameterSetName = 'Query')] [string]$Query, diff --git a/Functions/Circuits/Types/Get-NetboxCircuitType.ps1 b/Functions/Circuits/Types/Get-NetboxCircuitType.ps1 index 4296cc7..8df5c3e 100644 --- a/Functions/Circuits/Types/Get-NetboxCircuitType.ps1 +++ b/Functions/Circuits/Types/Get-NetboxCircuitType.ps1 @@ -4,7 +4,7 @@ function Get-NetboxCircuitType { param ( [Parameter(ParameterSetName = 'ById')] - [uint16[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Name, diff --git a/Functions/DCIM/Cable Terminations/Get-NetboxDCIMCableTermination.ps1 b/Functions/DCIM/Cable Terminations/Get-NetboxDCIMCableTermination.ps1 index 0052a47..b52eedb 100644 --- a/Functions/DCIM/Cable Terminations/Get-NetboxDCIMCableTermination.ps1 +++ b/Functions/DCIM/Cable Terminations/Get-NetboxDCIMCableTermination.ps1 @@ -8,15 +8,15 @@ [uint16]$Offset, [Parameter(ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, - [uint16]$Cable, + [uint64]$Cable, [string]$Cable_End, [string]$Termination_Type, - [uint16]$Termination_ID, + [uint64]$Termination_ID, [switch]$Raw ) diff --git a/Functions/DCIM/Cables/Get-NetboxDCIMCable.ps1 b/Functions/DCIM/Cables/Get-NetboxDCIMCable.ps1 index b62fc87..153df21 100644 --- a/Functions/DCIM/Cables/Get-NetboxDCIMCable.ps1 +++ b/Functions/DCIM/Cables/Get-NetboxDCIMCable.ps1 @@ -8,17 +8,17 @@ [uint16]$Offset, [Parameter(ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [string]$Label, [string]$Termination_A_Type, - [uint16]$Termination_A_ID, + [uint64]$Termination_A_ID, [string]$Termination_B_Type, - [UInt16]$Termination_B_ID, + [uint64]$Termination_B_ID, [string]$Type, @@ -26,15 +26,15 @@ [string]$Color, - [UInt16]$Device_ID, + [uint64]$Device_ID, [string]$Device, - [uint16]$Rack_Id, + [uint64]$Rack_Id, [string]$Rack, - [uint16]$Location_ID, + [uint64]$Location_ID, [string]$Location, diff --git a/Functions/DCIM/Devices/Get-NetboxDCIMDevice.ps1 b/Functions/DCIM/Devices/Get-NetboxDCIMDevice.ps1 index aa61dd0..51b0cc6 100644 --- a/Functions/DCIM/Devices/Get-NetboxDCIMDevice.ps1 +++ b/Functions/DCIM/Devices/Get-NetboxDCIMDevice.ps1 @@ -9,43 +9,43 @@ function Get-NetboxDCIMDevice { [uint16]$Offset, [Parameter(ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [string]$Query, [string]$Name, - [uint16]$Manufacturer_Id, + [uint64]$Manufacturer_Id, [string]$Manufacturer, - [uint16]$Device_Type_Id, + [uint64]$Device_Type_Id, - [uint16]$Role_Id, + [uint64]$Role_Id, [string]$Role, - [uint16]$Tenant_Id, + [uint64]$Tenant_Id, [string]$Tenant, - [uint16]$Platform_Id, + [uint64]$Platform_Id, [string]$Platform, [string]$Asset_Tag, - [uint16]$Site_Id, + [uint64]$Site_Id, [string]$Site, - [uint16]$Rack_Group_Id, + [uint64]$Rack_Group_Id, - [uint16]$Rack_Id, + [uint64]$Rack_Id, - [uint16]$Cluster_Id, + [uint64]$Cluster_Id, - [uint16]$Model, + [uint64]$Model, [object]$Status, @@ -61,7 +61,7 @@ function Get-NetboxDCIMDevice { [bool]$Has_Primary_IP, - [uint16]$Virtual_Chassis_Id, + [uint64]$Virtual_Chassis_Id, [uint16]$Position, diff --git a/Functions/DCIM/Devices/Get-NetboxDCIMDeviceRole.ps1 b/Functions/DCIM/Devices/Get-NetboxDCIMDeviceRole.ps1 index a07f306..10b637a 100644 --- a/Functions/DCIM/Devices/Get-NetboxDCIMDeviceRole.ps1 +++ b/Functions/DCIM/Devices/Get-NetboxDCIMDeviceRole.ps1 @@ -8,7 +8,7 @@ function Get-NetboxDCIMDeviceRole { [uint16]$Offset, [Parameter(ParameterSetName = 'ById')] - [uint16[]]$Id, + [uint64[]]$Id, [string]$Name, diff --git a/Functions/DCIM/Devices/Get-NetboxDCIMDeviceType.ps1 b/Functions/DCIM/Devices/Get-NetboxDCIMDeviceType.ps1 index ee74128..5a295d9 100644 --- a/Functions/DCIM/Devices/Get-NetboxDCIMDeviceType.ps1 +++ b/Functions/DCIM/Devices/Get-NetboxDCIMDeviceType.ps1 @@ -8,7 +8,7 @@ function Get-NetboxDCIMDeviceType { [uint16]$Limit, - [uint16[]]$Id, + [uint64[]]$Id, [string]$Query, @@ -16,7 +16,7 @@ function Get-NetboxDCIMDeviceType { [string]$Manufacturer, - [uint16]$Manufacturer_Id, + [uint64]$Manufacturer_Id, [string]$Model, diff --git a/Functions/DCIM/Devices/New-NetboxDCIMDevice.ps1 b/Functions/DCIM/Devices/New-NetboxDCIMDevice.ps1 index 86ddbdd..d9bd90e 100644 --- a/Functions/DCIM/Devices/New-NetboxDCIMDevice.ps1 +++ b/Functions/DCIM/Devices/New-NetboxDCIMDevice.ps1 @@ -16,17 +16,17 @@ function New-NetboxDCIMDevice { [object]$Device_Type, [Parameter(Mandatory = $true)] - [uint16]$Site, + [uint64]$Site, [object]$Status = 'Active', - [uint16]$Platform, + [uint64]$Platform, - [uint16]$Tenant, + [uint64]$Tenant, - [uint16]$Cluster, + [uint64]$Cluster, - [uint16]$Rack, + [uint64]$Rack, [uint16]$Position, @@ -36,15 +36,15 @@ function New-NetboxDCIMDevice { [string]$Asset_Tag, - [uint16]$Virtual_Chassis, + [uint64]$Virtual_Chassis, - [uint16]$VC_Priority, + [uint64]$VC_Priority, - [uint16]$VC_Position, + [uint64]$VC_Position, - [uint16]$Primary_IP4, + [uint64]$Primary_IP4, - [uint16]$Primary_IP6, + [uint64]$Primary_IP6, [string]$Comments, diff --git a/Functions/DCIM/Devices/Remove-NetboxDCIMDevice.ps1 b/Functions/DCIM/Devices/Remove-NetboxDCIMDevice.ps1 index a2af469..e1f3e68 100644 --- a/Functions/DCIM/Devices/Remove-NetboxDCIMDevice.ps1 +++ b/Functions/DCIM/Devices/Remove-NetboxDCIMDevice.ps1 @@ -26,7 +26,7 @@ function Remove-NetboxDCIMDevice { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [switch]$Force ) diff --git a/Functions/DCIM/Devices/Set-NetboxDCIMDevice.ps1 b/Functions/DCIM/Devices/Set-NetboxDCIMDevice.ps1 index 84e9ac0..2929b99 100644 --- a/Functions/DCIM/Devices/Set-NetboxDCIMDevice.ps1 +++ b/Functions/DCIM/Devices/Set-NetboxDCIMDevice.ps1 @@ -5,7 +5,7 @@ function Set-NetboxDCIMDevice { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [string]$Name, @@ -13,17 +13,17 @@ function Set-NetboxDCIMDevice { [object]$Device_Type, - [uint16]$Site, + [uint64]$Site, [object]$Status, - [uint16]$Platform, + [uint64]$Platform, - [uint16]$Tenant, + [uint64]$Tenant, - [uint16]$Cluster, + [uint64]$Cluster, - [uint16]$Rack, + [uint64]$Rack, [uint16]$Position, @@ -33,15 +33,15 @@ function Set-NetboxDCIMDevice { [string]$Asset_Tag, - [uint16]$Virtual_Chassis, + [uint64]$Virtual_Chassis, - [uint16]$VC_Priority, + [uint64]$VC_Priority, - [uint16]$VC_Position, + [uint64]$VC_Position, - [uint16]$Primary_IP4, + [uint64]$Primary_IP4, - [uint16]$Primary_IP6, + [uint64]$Primary_IP6, [string]$Comments, diff --git a/Functions/DCIM/FrontPorts/Add-NetboxDCIMFrontPort.ps1 b/Functions/DCIM/FrontPorts/Add-NetboxDCIMFrontPort.ps1 index 27515e8..316ff05 100644 --- a/Functions/DCIM/FrontPorts/Add-NetboxDCIMFrontPort.ps1 +++ b/Functions/DCIM/FrontPorts/Add-NetboxDCIMFrontPort.ps1 @@ -4,9 +4,9 @@ param ( [Parameter(Mandatory = $true)] - [uint16]$Device, + [uint64]$Device, - [uint16]$Module, + [uint64]$Module, [Parameter(Mandatory = $true)] [string]$Name, @@ -20,9 +20,9 @@ [string]$Color, [Parameter(Mandatory = $true)] - [uint16]$Rear_Port, + [uint64]$Rear_Port, - [uint16]$Rear_Port_Position, + [uint64]$Rear_Port_Position, [string]$Description, diff --git a/Functions/DCIM/FrontPorts/Get-NetboxDCIMFrontPort.ps1 b/Functions/DCIM/FrontPorts/Get-NetboxDCIMFrontPort.ps1 index 7066d70..a9e3118 100644 --- a/Functions/DCIM/FrontPorts/Get-NetboxDCIMFrontPort.ps1 +++ b/Functions/DCIM/FrontPorts/Get-NetboxDCIMFrontPort.ps1 @@ -8,13 +8,13 @@ [uint16]$Offset, [Parameter(ValueFromPipelineByPropertyName = $true)] - [uint16]$Id, + [uint64]$Id, [string]$Name, [string]$Device, - [uint16]$Device_Id, + [uint64]$Device_Id, [string]$Type, diff --git a/Functions/DCIM/FrontPorts/Remove-NetboxDCIMFrontPort.ps1 b/Functions/DCIM/FrontPorts/Remove-NetboxDCIMFrontPort.ps1 index 53a68f7..578e314 100644 --- a/Functions/DCIM/FrontPorts/Remove-NetboxDCIMFrontPort.ps1 +++ b/Functions/DCIM/FrontPorts/Remove-NetboxDCIMFrontPort.ps1 @@ -6,7 +6,7 @@ ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [switch]$Force ) diff --git a/Functions/DCIM/FrontPorts/Set-NetboxDCIMFrontPort.ps1 b/Functions/DCIM/FrontPorts/Set-NetboxDCIMFrontPort.ps1 index c9812f8..e715787 100644 --- a/Functions/DCIM/FrontPorts/Set-NetboxDCIMFrontPort.ps1 +++ b/Functions/DCIM/FrontPorts/Set-NetboxDCIMFrontPort.ps1 @@ -6,7 +6,7 @@ ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [uint16]$Device, @@ -21,7 +21,7 @@ [ValidatePattern('^[0-9a-f]{6}$')] [string]$Color, - [uint16]$Rear_Port, + [uint64]$Rear_Port, [uint16]$Rear_Port_Position, @@ -29,7 +29,7 @@ [bool]$Mark_Connected, - [uint16[]]$Tags, + [uint64[]]$Tags, [switch]$Force ) diff --git a/Functions/DCIM/Get-NetboxDCIMPlatform.ps1 b/Functions/DCIM/Get-NetboxDCIMPlatform.ps1 index d6fe85f..8b60a9d 100644 --- a/Functions/DCIM/Get-NetboxDCIMPlatform.ps1 +++ b/Functions/DCIM/Get-NetboxDCIMPlatform.ps1 @@ -9,13 +9,13 @@ function Get-NetboxDCIMPlatform { [uint16]$Offset, [Parameter(ParameterSetName = 'ById')] - [uint16[]]$Id, + [uint64[]]$Id, [string]$Name, [string]$Slug, - [uint16]$Manufacturer_Id, + [uint64]$Manufacturer_Id, [string]$Manufacturer, diff --git a/Functions/DCIM/Interfaces/Add-NetboxDCIMInterface.ps1 b/Functions/DCIM/Interfaces/Add-NetboxDCIMInterface.ps1 index 4fa4f79..e1806e6 100644 --- a/Functions/DCIM/Interfaces/Add-NetboxDCIMInterface.ps1 +++ b/Functions/DCIM/Interfaces/Add-NetboxDCIMInterface.ps1 @@ -5,7 +5,7 @@ function Add-NetboxDCIMInterface { param ( [Parameter(Mandatory = $true)] - [uint16]$Device, + [uint64]$Device, [Parameter(Mandatory = $true)] [string]$Name, @@ -23,7 +23,7 @@ function Add-NetboxDCIMInterface { [bool]$MGMT_Only, - [uint16]$LAG, + [uint64]$LAG, [string]$Description, diff --git a/Functions/DCIM/Interfaces/Add-NetboxDCIMInterfaceConnection.ps1 b/Functions/DCIM/Interfaces/Add-NetboxDCIMInterfaceConnection.ps1 index a0c141d..1376727 100644 --- a/Functions/DCIM/Interfaces/Add-NetboxDCIMInterfaceConnection.ps1 +++ b/Functions/DCIM/Interfaces/Add-NetboxDCIMInterfaceConnection.ps1 @@ -30,10 +30,10 @@ function Add-NetboxDCIMInterfaceConnection { [object]$Connection_Status, [Parameter(Mandatory = $true)] - [uint16]$Interface_A, + [uint64]$Interface_A, [Parameter(Mandatory = $true)] - [uint16]$Interface_B + [uint64]$Interface_B ) # Verify if both Interfaces exist diff --git a/Functions/DCIM/Interfaces/Get-NetboxDCIMInterface.ps1 b/Functions/DCIM/Interfaces/Get-NetboxDCIMInterface.ps1 index de7de00..5db3996 100644 --- a/Functions/DCIM/Interfaces/Get-NetboxDCIMInterface.ps1 +++ b/Functions/DCIM/Interfaces/Get-NetboxDCIMInterface.ps1 @@ -8,9 +8,9 @@ [uint16]$Offset, [Parameter(ValueFromPipelineByPropertyName = $true)] - [uint16]$Id, + [uint64]$Id, - [uint16]$Name, + [uint64]$Name, [object]$Form_Factor, @@ -22,12 +22,12 @@ [string]$Device, - [uint16]$Device_Id, + [uint64]$Device_Id, [ValidateSet('virtual', 'bridge', 'lag', '100base-tx', '1000base-t', '2.5gbase-t', '5gbase-t', '10gbase-t', '10gbase-cx4', '1000base-x-gbic', '1000base-x-sfp', '10gbase-x-sfpp', '10gbase-x-xfp', '10gbase-x-xenpak', '10gbase-x-x2', '25gbase-x-sfp28', '50gbase-x-sfp56', '40gbase-x-qsfpp', '50gbase-x-sfp28', '100gbase-x-cfp', '100gbase-x-cfp2', '200gbase-x-cfp2', '100gbase-x-cfp4', '100gbase-x-cpak', '100gbase-x-qsfp28', '200gbase-x-qsfp56', '400gbase-x-qsfpdd', '400gbase-x-osfp', '1000base-kx', '10gbase-kr', '10gbase-kx4', '25gbase-kr', '40gbase-kr4', '50gbase-kr', '100gbase-kp4', '100gbase-kr2', '100gbase-kr4', 'ieee802.11a', 'ieee802.11g', 'ieee802.11n', 'ieee802.11ac', 'ieee802.11ad', 'ieee802.11ax', 'ieee802.11ay', 'ieee802.15.1', 'other-wireless', 'gsm', 'cdma', 'lte', 'sonet-oc3', 'sonet-oc12', 'sonet-oc48', 'sonet-oc192', 'sonet-oc768', 'sonet-oc1920', 'sonet-oc3840', '1gfc-sfp', '2gfc-sfp', '4gfc-sfp', '8gfc-sfpp', '16gfc-sfpp', '32gfc-sfp28', '64gfc-qsfpp', '128gfc-qsfp28', 'infiniband-sdr', 'infiniband-ddr', 'infiniband-qdr', 'infiniband-fdr10', 'infiniband-fdr', 'infiniband-edr', 'infiniband-hdr', 'infiniband-ndr', 'infiniband-xdr', 't1', 'e1', 't3', 'e3', 'xdsl', 'docsis', 'gpon', 'xg-pon', 'xgs-pon', 'ng-pon2', 'epon', '10g-epon', 'cisco-stackwise', 'cisco-stackwise-plus', 'cisco-flexstack', 'cisco-flexstack-plus', 'cisco-stackwise-80', 'cisco-stackwise-160', 'cisco-stackwise-320', 'cisco-stackwise-480', 'juniper-vcp', 'extreme-summitstack', 'extreme-summitstack-128', 'extreme-summitstack-256', 'extreme-summitstack-512', 'other', IgnoreCase = $true)] [string]$Type, - [uint16]$LAG_Id, + [uint64]$LAG_Id, [string]$MAC_Address, diff --git a/Functions/DCIM/Interfaces/Get-NetboxDCIMInterfaceConnection.ps1 b/Functions/DCIM/Interfaces/Get-NetboxDCIMInterfaceConnection.ps1 index 71513e0..cf34394 100644 --- a/Functions/DCIM/Interfaces/Get-NetboxDCIMInterfaceConnection.ps1 +++ b/Functions/DCIM/Interfaces/Get-NetboxDCIMInterfaceConnection.ps1 @@ -8,13 +8,13 @@ function Get-NetboxDCIMInterfaceConnection { [uint16]$Offset, - [uint16]$Id, + [uint64]$Id, [object]$Connection_Status, - [uint16]$Site, + [uint64]$Site, - [uint16]$Device, + [uint64]$Device, [switch]$Raw ) diff --git a/Functions/DCIM/Interfaces/Remove-NetboxDCIMInterface.ps1 b/Functions/DCIM/Interfaces/Remove-NetboxDCIMInterface.ps1 index 1eff61d..c550be0 100644 --- a/Functions/DCIM/Interfaces/Remove-NetboxDCIMInterface.ps1 +++ b/Functions/DCIM/Interfaces/Remove-NetboxDCIMInterface.ps1 @@ -25,7 +25,7 @@ ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [switch]$Force ) diff --git a/Functions/DCIM/Interfaces/Remove-NetboxDCIMInterfaceConnection.ps1 b/Functions/DCIM/Interfaces/Remove-NetboxDCIMInterfaceConnection.ps1 index 0d5eb5b..b094686 100644 --- a/Functions/DCIM/Interfaces/Remove-NetboxDCIMInterfaceConnection.ps1 +++ b/Functions/DCIM/Interfaces/Remove-NetboxDCIMInterfaceConnection.ps1 @@ -7,7 +7,7 @@ function Remove-NetboxDCIMInterfaceConnection { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [switch]$Force ) diff --git a/Functions/DCIM/Interfaces/Set-NetboxDCIMInterface.ps1 b/Functions/DCIM/Interfaces/Set-NetboxDCIMInterface.ps1 index 8d7c4c1..055a926 100644 --- a/Functions/DCIM/Interfaces/Set-NetboxDCIMInterface.ps1 +++ b/Functions/DCIM/Interfaces/Set-NetboxDCIMInterface.ps1 @@ -6,9 +6,9 @@ ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, - [uint16]$Device, + [uint64]$Device, [string]$Name, @@ -25,7 +25,7 @@ [bool]$MGMT_Only, - [uint16]$LAG, + [uint64]$LAG, [string]$Description, diff --git a/Functions/DCIM/Interfaces/Set-NetboxDCIMInterfaceConnection.ps1 b/Functions/DCIM/Interfaces/Set-NetboxDCIMInterfaceConnection.ps1 index d333560..1b713e3 100644 --- a/Functions/DCIM/Interfaces/Set-NetboxDCIMInterfaceConnection.ps1 +++ b/Functions/DCIM/Interfaces/Set-NetboxDCIMInterfaceConnection.ps1 @@ -35,13 +35,13 @@ function Set-NetboxDCIMInterfaceConnection { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [object]$Connection_Status, - [uint16]$Interface_A, + [uint64]$Interface_A, - [uint16]$Interface_B, + [uint64]$Interface_B, [switch]$Force ) diff --git a/Functions/DCIM/RearPorts/Add-NetboxDCIMRearPort.ps1 b/Functions/DCIM/RearPorts/Add-NetboxDCIMRearPort.ps1 index aed9896..e5b7b75 100644 --- a/Functions/DCIM/RearPorts/Add-NetboxDCIMRearPort.ps1 +++ b/Functions/DCIM/RearPorts/Add-NetboxDCIMRearPort.ps1 @@ -4,9 +4,9 @@ param ( [Parameter(Mandatory = $true)] - [uint16]$Device, + [uint64]$Device, - [uint16]$Module, + [uint64]$Module, [Parameter(Mandatory = $true)] [string]$Name, diff --git a/Functions/DCIM/RearPorts/Get-NetboxDCIMRearPort.ps1 b/Functions/DCIM/RearPorts/Get-NetboxDCIMRearPort.ps1 index b6ee23b..29769ee 100644 --- a/Functions/DCIM/RearPorts/Get-NetboxDCIMRearPort.ps1 +++ b/Functions/DCIM/RearPorts/Get-NetboxDCIMRearPort.ps1 @@ -8,13 +8,13 @@ [uint16]$Offset, [Parameter(ValueFromPipelineByPropertyName = $true)] - [uint16]$Id, + [uint64]$Id, [string]$Name, [string]$Device, - [uint16]$Device_Id, + [uint64]$Device_Id, [string]$Type, diff --git a/Functions/DCIM/RearPorts/Remove-NetboxDCIMRearPort.ps1 b/Functions/DCIM/RearPorts/Remove-NetboxDCIMRearPort.ps1 index 7a301ec..64cbb15 100644 --- a/Functions/DCIM/RearPorts/Remove-NetboxDCIMRearPort.ps1 +++ b/Functions/DCIM/RearPorts/Remove-NetboxDCIMRearPort.ps1 @@ -6,7 +6,7 @@ ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [switch]$Force ) diff --git a/Functions/DCIM/RearPorts/Set-NetboxDCIMRearPort.ps1 b/Functions/DCIM/RearPorts/Set-NetboxDCIMRearPort.ps1 index a206943..f6b75e4 100644 --- a/Functions/DCIM/RearPorts/Set-NetboxDCIMRearPort.ps1 +++ b/Functions/DCIM/RearPorts/Set-NetboxDCIMRearPort.ps1 @@ -7,11 +7,11 @@ function Set-NetboxDCIMRearPort { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, - [uint16]$Device, + [uint64]$Device, - [uint16]$Module, + [uint64]$Module, [string]$Name, diff --git a/Functions/DCIM/Sites/Get-NetboxDCIMSite.ps1 b/Functions/DCIM/Sites/Get-NetboxDCIMSite.ps1 index 932644c..97d199a 100644 --- a/Functions/DCIM/Sites/Get-NetboxDCIMSite.ps1 +++ b/Functions/DCIM/Sites/Get-NetboxDCIMSite.ps1 @@ -5,7 +5,7 @@ function Get-NetboxDCIMSite { param ( [Parameter(ParameterSetName = 'ByID', ValueFromPipelineByPropertyName = $true)] - [uint32]$Id, + [uint64]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Name, @@ -20,7 +20,7 @@ function Get-NetboxDCIMSite { [string]$Facility, [Parameter(ParameterSetName = 'Query')] - [uint32]$ASN, + [uint64]$ASN, [Parameter(ParameterSetName = 'Query')] [decimal]$Latitude, @@ -38,13 +38,13 @@ function Get-NetboxDCIMSite { [string]$Contact_Email, [Parameter(ParameterSetName = 'Query')] - [uint32]$Tenant_Group_ID, + [uint64]$Tenant_Group_ID, [Parameter(ParameterSetName = 'Query')] [string]$Tenant_Group, [Parameter(ParameterSetName = 'Query')] - [uint32]$Tenant_ID, + [uint64]$Tenant_ID, [Parameter(ParameterSetName = 'Query')] [string]$Tenant, @@ -53,7 +53,7 @@ function Get-NetboxDCIMSite { [string]$Status, [Parameter(ParameterSetName = 'Query')] - [uint32]$Region_ID, + [uint64]$Region_ID, [Parameter(ParameterSetName = 'Query')] [string]$Region, diff --git a/Functions/DCIM/Sites/New-NetboxDCIMSite.ps1 b/Functions/DCIM/Sites/New-NetboxDCIMSite.ps1 index 38e5ac3..59c45fa 100644 --- a/Functions/DCIM/Sites/New-NetboxDCIMSite.ps1 +++ b/Functions/DCIM/Sites/New-NetboxDCIMSite.ps1 @@ -40,7 +40,7 @@ function New-NetboxDCIMSite { [string]$Facility, - [uint32]$ASN, + [uint64]$ASN, [decimal]$Latitude, @@ -52,13 +52,13 @@ function New-NetboxDCIMSite { [string]$Contact_Email, - [int]$Tenant_Group, + [uint64]$Tenant_Group, - [int]$Tenant, + [uint64]$Tenant, [string]$Status, - [uint32]$Region, + [uint64]$Region, [string]$Description, diff --git a/Functions/Extras/Get-NetboxTag.ps1 b/Functions/Extras/Get-NetboxTag.ps1 index 5ea4225..fa4067f 100644 --- a/Functions/Extras/Get-NetboxTag.ps1 +++ b/Functions/Extras/Get-NetboxTag.ps1 @@ -4,17 +4,17 @@ function Get-NetboxTag { [OutputType([pscustomobject])] param ( - [uint16]$Limit, - - [uint16]$Offset, - [Parameter(ValueFromPipelineByPropertyName = $true)] - [uint16]$Id, + [uint64]$Id, [string]$Name, [string]$Slug, + [uint16]$Limit, + + [uint16]$Offset, + [switch]$Raw ) diff --git a/Functions/IPAM/Address/Get-NetboxIPAMAddress.ps1 b/Functions/IPAM/Address/Get-NetboxIPAMAddress.ps1 index fbc9994..eb3d6c8 100644 --- a/Functions/IPAM/Address/Get-NetboxIPAMAddress.ps1 +++ b/Functions/IPAM/Address/Get-NetboxIPAMAddress.ps1 @@ -7,7 +7,7 @@ [string]$Address, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Query, @@ -25,28 +25,28 @@ [string]$VRF, [Parameter(ParameterSetName = 'Query')] - [uint32]$VRF_Id, + [uint64]$VRF_Id, [Parameter(ParameterSetName = 'Query')] [string]$Tenant, [Parameter(ParameterSetName = 'Query')] - [uint32]$Tenant_Id, + [uint64]$Tenant_Id, [Parameter(ParameterSetName = 'Query')] [string]$Device, [Parameter(ParameterSetName = 'Query')] - [uint32]$Device_ID, + [uint64]$Device_ID, [Parameter(ParameterSetName = 'Query')] [string]$Virtual_Machine, [Parameter(ParameterSetName = 'Query')] - [uint32]$Virtual_Machine_Id, + [uint64]$Virtual_Machine_Id, [Parameter(ParameterSetName = 'Query')] - [uint32]$Interface_Id, + [uint64]$Interface_Id, [Parameter(ParameterSetName = 'Query')] [object]$Status, diff --git a/Functions/IPAM/Address/Get-NetboxIPAMAvailableIP.ps1 b/Functions/IPAM/Address/Get-NetboxIPAMAvailableIP.ps1 index d0699cb..db03995 100644 --- a/Functions/IPAM/Address/Get-NetboxIPAMAvailableIP.ps1 +++ b/Functions/IPAM/Address/Get-NetboxIPAMAvailableIP.ps1 @@ -40,10 +40,10 @@ function Get-NetboxIPAMAvailableIP { [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [Alias('Id')] - [int]$Prefix_ID, + [uint64]$Prefix_ID, [Alias('NumberOfIPs')] - [int]$Limit, + [uint64]$Limit, [switch]$Raw ) diff --git a/Functions/IPAM/Address/New-NetboxIPAMAddress.ps1 b/Functions/IPAM/Address/New-NetboxIPAMAddress.ps1 index bffe7ad..015eb03 100644 --- a/Functions/IPAM/Address/New-NetboxIPAMAddress.ps1 +++ b/Functions/IPAM/Address/New-NetboxIPAMAddress.ps1 @@ -66,17 +66,17 @@ function New-NetboxIPAMAddress { [object]$Status = 'Active', - [int]$Tenant, + [uint64]$Tenant, - [int]$VRF, + [uint64]$VRF, [object]$Role, - [int]$NAT_Inside, + [uint64]$NAT_Inside, [hashtable]$Custom_Fields, - [int]$Interface, + [uint64]$Interface, [string]$Description, @@ -85,7 +85,7 @@ function New-NetboxIPAMAddress { [ValidateSet('dcim.interface', 'virtualization.vminterface', IgnoreCase = $true)] [string]$Assigned_Object_Type, - [int]$Assigned_Object_Id, + [uint64]$Assigned_Object_Id, [switch]$Raw ) diff --git a/Functions/IPAM/Address/Remove-NetboxIPAMAddress.ps1 b/Functions/IPAM/Address/Remove-NetboxIPAMAddress.ps1 index 0ae5e42..30af892 100644 --- a/Functions/IPAM/Address/Remove-NetboxIPAMAddress.ps1 +++ b/Functions/IPAM/Address/Remove-NetboxIPAMAddress.ps1 @@ -26,7 +26,7 @@ function Remove-NetboxIPAMAddress { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [int[]]$Id, + [uint64[]]$Id, [switch]$Force ) diff --git a/Functions/IPAM/Address/Set-NetboxIPAMAddress.ps1 b/Functions/IPAM/Address/Set-NetboxIPAMAddress.ps1 index 7718a84..8c83b9f 100644 --- a/Functions/IPAM/Address/Set-NetboxIPAMAddress.ps1 +++ b/Functions/IPAM/Address/Set-NetboxIPAMAddress.ps1 @@ -6,26 +6,26 @@ function Set-NetboxIPAMAddress { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [int[]]$Id, + [uint64[]]$Id, [string]$Address, [string]$Status, - [int]$Tenant, + [uint64]$Tenant, - [int]$VRF, + [uint64]$VRF, [object]$Role, - [int]$NAT_Inside, + [uint64]$NAT_Inside, [hashtable]$Custom_Fields, [ValidateSet('dcim.interface', 'virtualization.vminterface', IgnoreCase = $true)] [string]$Assigned_Object_Type, - [uint16]$Assigned_Object_Id, + [uint64]$Assigned_Object_Id, [string]$Description, diff --git a/Functions/IPAM/Aggregate/Get-NetboxIPAMAggregate.ps1 b/Functions/IPAM/Aggregate/Get-NetboxIPAMAggregate.ps1 index 0e99585..aea62cd 100644 --- a/Functions/IPAM/Aggregate/Get-NetboxIPAMAggregate.ps1 +++ b/Functions/IPAM/Aggregate/Get-NetboxIPAMAggregate.ps1 @@ -7,7 +7,7 @@ function Get-NetboxIPAMAggregate { [string]$Query, [Parameter(ParameterSetName = 'ByID')] - [uint16[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Prefix, @@ -16,7 +16,7 @@ function Get-NetboxIPAMAggregate { [object]$Family, [Parameter(ParameterSetName = 'Query')] - [uint16]$RIR_Id, + [uint64]$RIR_Id, [Parameter(ParameterSetName = 'Query')] [string]$RIR, diff --git a/Functions/IPAM/Prefix/Get-NetboxIPAMPrefix.ps1 b/Functions/IPAM/Prefix/Get-NetboxIPAMPrefix.ps1 index a680369..4c6ddef 100644 --- a/Functions/IPAM/Prefix/Get-NetboxIPAMPrefix.ps1 +++ b/Functions/IPAM/Prefix/Get-NetboxIPAMPrefix.ps1 @@ -91,7 +91,7 @@ function Get-NetboxIPAMPrefix { [string]$Query, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [object]$Family, @@ -116,25 +116,25 @@ function Get-NetboxIPAMPrefix { [string]$VRF, [Parameter(ParameterSetName = 'Query')] - [uint32]$VRF_Id, + [uint64]$VRF_Id, [Parameter(ParameterSetName = 'Query')] [string]$Tenant, [Parameter(ParameterSetName = 'Query')] - [uint32]$Tenant_Id, + [uint64]$Tenant_Id, [Parameter(ParameterSetName = 'Query')] [string]$Site, [Parameter(ParameterSetName = 'Query')] - [uint32]$Site_Id, + [uint64]$Site_Id, [Parameter(ParameterSetName = 'Query')] [string]$Vlan_VId, [Parameter(ParameterSetName = 'Query')] - [uint32]$Vlan_Id, + [uint64]$Vlan_Id, [Parameter(ParameterSetName = 'Query')] [object]$Status, @@ -143,7 +143,7 @@ function Get-NetboxIPAMPrefix { [string]$Role, [Parameter(ParameterSetName = 'Query')] - [uint32]$Role_Id, + [uint64]$Role_Id, [Parameter(ParameterSetName = 'Query')] [uint16]$Limit, diff --git a/Functions/IPAM/Prefix/New-NetboxIPAMPrefix.ps1 b/Functions/IPAM/Prefix/New-NetboxIPAMPrefix.ps1 index 979cbdc..3097a2c 100644 --- a/Functions/IPAM/Prefix/New-NetboxIPAMPrefix.ps1 +++ b/Functions/IPAM/Prefix/New-NetboxIPAMPrefix.ps1 @@ -10,7 +10,7 @@ function New-NetboxIPAMPrefix { [object]$Status = 'Active', - [uint16]$Tenant, + [uint64]$Tenant, [object]$Role, @@ -18,11 +18,11 @@ function New-NetboxIPAMPrefix { [string]$Description, - [uint16]$Site, + [uint64]$Site, - [uint16]$VRF, + [uint64]$VRF, - [uint16]$VLAN, + [uint64]$VLAN, [hashtable]$Custom_Fields, diff --git a/Functions/IPAM/Prefix/Set-NetboxIPAMPrefix.ps1 b/Functions/IPAM/Prefix/Set-NetboxIPAMPrefix.ps1 index 025fdda..645f7d5 100644 --- a/Functions/IPAM/Prefix/Set-NetboxIPAMPrefix.ps1 +++ b/Functions/IPAM/Prefix/Set-NetboxIPAMPrefix.ps1 @@ -6,19 +6,19 @@ function Set-NetboxIPAMPrefix { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [string]$Prefix, [string]$Status, - [uint16]$Tenant, + [uint64]$Tenant, - [uint16]$Site, + [uint64]$Site, - [uint16]$VRF, + [uint64]$VRF, - [uint16]$VLAN, + [uint64]$VLAN, [object]$Role, diff --git a/Functions/IPAM/Range/Get-NetboxIPAMAddressRange.ps1 b/Functions/IPAM/Range/Get-NetboxIPAMAddressRange.ps1 new file mode 100644 index 0000000..e512a19 --- /dev/null +++ b/Functions/IPAM/Range/Get-NetboxIPAMAddressRange.ps1 @@ -0,0 +1,73 @@ + +function Get-NetboxIPAMAddressRange { + [CmdletBinding(DefaultParameterSetName = 'Query')] + param + ( + [Parameter(ParameterSetName = 'Query', + Position = 0)] + [string]$Range, + + [Parameter(ParameterSetName = 'ByID')] + [uint64[]]$Id, + + [Parameter(ParameterSetName = 'Query')] + [string]$Query, + + [Parameter(ParameterSetName = 'Query')] + [object]$Family, + + [Parameter(ParameterSetName = 'Query')] + [string]$VRF, + + [Parameter(ParameterSetName = 'Query')] + [uint32]$VRF_Id, + + [Parameter(ParameterSetName = 'Query')] + [string]$Tenant, + + [Parameter(ParameterSetName = 'Query')] + [uint32]$Tenant_Id, + + [Parameter(ParameterSetName = 'Query')] + [object]$Status, + + [Parameter(ParameterSetName = 'Query')] + [object]$Role, + + [Parameter(ParameterSetName = 'Query')] + [uint16]$Limit, + + [Parameter(ParameterSetName = 'Query')] + [uint16]$Offset, + + [switch]$Raw + ) + + switch ($PSCmdlet.ParameterSetName) { + 'ById' { + foreach ($Range_ID in $Id) { + $Segments = [System.Collections.ArrayList]::new(@('ipam', 'ip-ranges', $Range_ID)) + + $URIComponents = BuildURIComponents -URISegments $Segments -ParametersDictionary $PSBoundParameters -SkipParameterByName 'Id' + + $uri = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters + + InvokeNetboxRequest -URI $uri -Raw:$Raw + } + + break + } + + default { + $Segments = [System.Collections.ArrayList]::new(@('ipam', 'ip-ranges')) + + $URIComponents = BuildURIComponents -URISegments $Segments -ParametersDictionary $PSBoundParameters + + $uri = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters + + InvokeNetboxRequest -URI $uri -Raw:$Raw + + break + } + } +} \ No newline at end of file diff --git a/Functions/IPAM/Range/New-NetboxIPAMAddressRange.ps1 b/Functions/IPAM/Range/New-NetboxIPAMAddressRange.ps1 new file mode 100644 index 0000000..dec9a81 --- /dev/null +++ b/Functions/IPAM/Range/New-NetboxIPAMAddressRange.ps1 @@ -0,0 +1,106 @@ + + +function New-NetboxIPAMAddressRange { +<# + .SYNOPSIS + Create a new IP address range to Netbox + + .DESCRIPTION + Create a new IP address range to Netbox with a status of Active by default. The maximum supported + size of an IP range is 2^32 - 1. + + .PARAMETER Start_Address + Starting IPv4 or IPv6 address (with mask). The maximum supported size of an IP range is 2^32 - 1. + + .PARAMETER End_Address + Ending IPv4 or IPv6 address (with mask). The maximum supported size of an IP range is 2^32 - 1. + + .PARAMETER Status + Operational status of this range. Defaults to Active + + .PARAMETER Tenant + Tenant ID + + .PARAMETER VRF + VRF ID + + .PARAMETER Role + Role such as backup, customer, development, etc... Defaults to nothing + + .PARAMETER Custom_Fields + Custom field hash table. Will be validated by the API service + + .PARAMETER Description + Description of IP address range + + .PARAMETER Comments + Extra comments (markdown supported). + + .PARAMETER Tags + One or more tags. + + .PARAMETER Mark_Utilized + Treat as 100% utilized + + .PARAMETER Raw + Return raw results from API service + + .EXAMPLE + New-NetboxIPAMAddressRange -Start_Address 192.0.2.20/24 -End_Address 192.0.2.20/24 + + Add new IP Address range from 192.0.2.20/24 to 192.0.2.20/24 with status active + + .NOTES + https://netbox.neonet.org/static/docs/models/ipam/iprange/ +#> + + [CmdletBinding(ConfirmImpact = 'Low', + SupportsShouldProcess = $true)] + [OutputType([pscustomobject])] + param + ( + [Parameter(Mandatory = $true)] + [string]$Start_Address, + + [Parameter(Mandatory = $true)] + [string]$End_Address, + + [object]$Status = 'Active', + + [uint64]$Tenant, + + [uint64]$VRF, + + [object]$Role, + + [hashtable]$Custom_Fields, + + [string]$Description, + + [string]$Comments, + + [object[]]$Tags, + + [switch]$Mark_Utilized, + + [switch]$Raw + ) + + process { + $Segments = [System.Collections.ArrayList]::new(@('ipam', 'ip-ranges')) + $Method = 'POST' + + $URIComponents = BuildURIComponents -URISegments $Segments -ParametersDictionary $PSBoundParameters + + $URI = BuildNewURI -Segments $URIComponents.Segments + + if ($PSCmdlet.ShouldProcess($Start_Address, 'Create new IP address range')) { + InvokeNetboxRequest -URI $URI -Method $Method -Body $URIComponents.Parameters -Raw:$Raw + } + } +} + + + + + diff --git a/Functions/IPAM/Range/Remove-NetboxIPAMAddressRange.ps1 b/Functions/IPAM/Range/Remove-NetboxIPAMAddressRange.ps1 new file mode 100644 index 0000000..5161a37 --- /dev/null +++ b/Functions/IPAM/Range/Remove-NetboxIPAMAddressRange.ps1 @@ -0,0 +1,47 @@ + +function Remove-NetboxIPAMAddressRange { + <# + .SYNOPSIS + Remove an IP address range from Netbox + + .DESCRIPTION + Removes/deletes an IP address range from Netbox by ID + + .PARAMETER Id + Database ID of the IP address range object. + + .PARAMETER Force + Do not confirm. + + .EXAMPLE + PS C:\> Remove-NetboxIPAMAddressRange -Id 1234 + + .NOTES + Additional information about the function. +#> + + [CmdletBinding(ConfirmImpact = 'High', + SupportsShouldProcess = $true)] + param + ( + [Parameter(Mandatory = $true, + ValueFromPipelineByPropertyName = $true)] + [uint64[]]$Id, + + [switch]$Force + ) + + process { + foreach ($Range_Id in $Id) { + $CurrentRange = Get-NetboxIPAMAddressRange -Id $Range_Id -ErrorAction Stop + + $Segments = [System.Collections.ArrayList]::new(@('ipam', 'ip-ranges', $Range_Id)) + + if ($Force -or $pscmdlet.ShouldProcess($CurrentRange.start_address, "Delete")) { + $URI = BuildNewURI -Segments $Segments + + InvokeNetboxRequest -URI $URI -Method DELETE + } + } + } +} \ No newline at end of file diff --git a/Functions/IPAM/Range/Set-NetboxIPAMAddressRange.ps1 b/Functions/IPAM/Range/Set-NetboxIPAMAddressRange.ps1 new file mode 100644 index 0000000..d74d0b3 --- /dev/null +++ b/Functions/IPAM/Range/Set-NetboxIPAMAddressRange.ps1 @@ -0,0 +1,58 @@ + +function Set-NetboxIPAMAddressRange { + [CmdletBinding(ConfirmImpact = 'Medium', + SupportsShouldProcess = $true)] + param + ( + [Parameter(Mandatory = $true, + ValueFromPipelineByPropertyName = $true)] + [uint64[]]$Id, + + [string]$Start_Address, + + [string]$End_Address, + + [object]$Status, + + [uint64]$Tenant, + + [uint64]$VRF, + + [object]$Role, + + [hashtable]$Custom_Fields, + + [string]$Description, + + [string]$Comments, + + [object[]]$Tags, + + [switch]$Mark_Utilized, + + [switch]$Force, + + [switch]$Raw + ) + + begin { + $Method = 'PATCH' + } + + process { + foreach ($RangeID in $Id) { + $Segments = [System.Collections.ArrayList]::new(@('ipam', 'ip-ranges', $RangeID)) + + Write-Verbose "Obtaining IP range from ID $RangeID" + $CurrentRange = Get-NetboxIPAMAddressRange -Id $RangeID -ErrorAction Stop + + if ($Force -or $PSCmdlet.ShouldProcess("$($CurrentRange.Start_Address) - $($CurrentRange.End_Address)", 'Set')) { + $URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters -SkipParameterByName 'Id', 'Force' + + $URI = BuildNewURI -Segments $URIComponents.Segments + + InvokeNetboxRequest -URI $URI -Body $URIComponents.Parameters -Method $Method + } + } + } +} diff --git a/Functions/IPAM/Role/Get-NetboxIPAMRole.ps1 b/Functions/IPAM/Role/Get-NetboxIPAMRole.ps1 index 13a0861..e87cb0c 100644 --- a/Functions/IPAM/Role/Get-NetboxIPAMRole.ps1 +++ b/Functions/IPAM/Role/Get-NetboxIPAMRole.ps1 @@ -49,7 +49,7 @@ function Get-NetboxIPAMRole { [string]$Query, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Slug, diff --git a/Functions/IPAM/VLAN/Get-NetboxIPAMVLAN.ps1 b/Functions/IPAM/VLAN/Get-NetboxIPAMVLAN.ps1 index b384e3b..3c6e110 100644 --- a/Functions/IPAM/VLAN/Get-NetboxIPAMVLAN.ps1 +++ b/Functions/IPAM/VLAN/Get-NetboxIPAMVLAN.ps1 @@ -9,7 +9,7 @@ function Get-NetboxIPAMVLAN { [uint16]$VID, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Query, @@ -21,13 +21,13 @@ function Get-NetboxIPAMVLAN { [string]$Tenant, [Parameter(ParameterSetName = 'Query')] - [uint32]$Tenant_Id, + [uint64]$Tenant_Id, [Parameter(ParameterSetName = 'Query')] [string]$TenantGroup, [Parameter(ParameterSetName = 'Query')] - [uint32]$TenantGroup_Id, + [uint64]$TenantGroup_Id, [Parameter(ParameterSetName = 'Query')] [object]$Status, @@ -39,19 +39,19 @@ function Get-NetboxIPAMVLAN { [string]$Site, [Parameter(ParameterSetName = 'Query')] - [uint32]$Site_Id, + [uint64]$Site_Id, [Parameter(ParameterSetName = 'Query')] [string]$Group, [Parameter(ParameterSetName = 'Query')] - [uint32]$Group_Id, + [uint64]$Group_Id, [Parameter(ParameterSetName = 'Query')] [string]$Role, [Parameter(ParameterSetName = 'Query')] - [uint32]$Role_Id, + [uint64]$Role_Id, [Parameter(ParameterSetName = 'Query')] [uint16]$Limit, diff --git a/Functions/IPAM/VLAN/New-NetboxIPAMVLAN.ps1 b/Functions/IPAM/VLAN/New-NetboxIPAMVLAN.ps1 index 0af0499..9ab3ea4 100644 --- a/Functions/IPAM/VLAN/New-NetboxIPAMVLAN.ps1 +++ b/Functions/IPAM/VLAN/New-NetboxIPAMVLAN.ps1 @@ -53,7 +53,7 @@ [object]$Status = 'Active', - [uint16]$Tenant, + [uint64]$Tenant, [object]$Role, diff --git a/Functions/Setup/Support/Get-NetboxContentType.ps1 b/Functions/Setup/Support/Get-NetboxContentType.ps1 index 57f7951..84859fb 100644 --- a/Functions/Setup/Support/Get-NetboxContentType.ps1 +++ b/Functions/Setup/Support/Get-NetboxContentType.ps1 @@ -42,7 +42,7 @@ [string]$Model, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$App_Label, diff --git a/Functions/Tenancy/ContactAssignment/Get-NetboxContactAssignment.ps1 b/Functions/Tenancy/ContactAssignment/Get-NetboxContactAssignment.ps1 index e1f28c9..c6f25e6 100644 --- a/Functions/Tenancy/ContactAssignment/Get-NetboxContactAssignment.ps1 +++ b/Functions/Tenancy/ContactAssignment/Get-NetboxContactAssignment.ps1 @@ -52,22 +52,22 @@ function Get-NetboxContactAssignment { [string]$Name, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] - [uint32]$Content_Type_Id, + [uint64]$Content_Type_Id, [Parameter(ParameterSetName = 'Query')] [string]$Content_Type, [Parameter(ParameterSetName = 'Query')] - [uint32]$Object_Id, + [uint64]$Object_Id, [Parameter(ParameterSetName = 'Query')] - [uint32]$Contact_Id, + [uint64]$Contact_Id, [Parameter(ParameterSetName = 'Query')] - [uint32]$Role_Id, + [uint64]$Role_Id, [Parameter(ParameterSetName = 'Query')] [uint16]$Limit, diff --git a/Functions/Tenancy/ContactAssignment/New-NetboxContactAssignment.ps1 b/Functions/Tenancy/ContactAssignment/New-NetboxContactAssignment.ps1 index 28932c9..6e683b4 100644 --- a/Functions/Tenancy/ContactAssignment/New-NetboxContactAssignment.ps1 +++ b/Functions/Tenancy/ContactAssignment/New-NetboxContactAssignment.ps1 @@ -42,13 +42,13 @@ function New-NetboxContactRole { [object]$Content_Type, [Parameter(Mandatory = $true)] - [uint32]$Object_Id, + [uint64]$Object_Id, [Parameter(Mandatory = $true)] - [uint32]$Contact, + [uint64]$Contact, [Parameter(Mandatory = $true)] - [uint32]$Role, + [uint64]$Role, [ValidateSet('primary', 'secondary', 'tertiary', 'inactive', IgnoreCase = $true)] [string]$Priority, diff --git a/Functions/Tenancy/ContactRoles/Get-NetboxContactRole.ps1 b/Functions/Tenancy/ContactRoles/Get-NetboxContactRole.ps1 index bfe72aa..249c211 100644 --- a/Functions/Tenancy/ContactRoles/Get-NetboxContactRole.ps1 +++ b/Functions/Tenancy/ContactRoles/Get-NetboxContactRole.ps1 @@ -40,7 +40,7 @@ function Get-NetboxContactRole { [string]$Name, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Query, diff --git a/Functions/Tenancy/Contacts/Get-NetboxContact.ps1 b/Functions/Tenancy/Contacts/Get-NetboxContact.ps1 index c650a10..f005852 100644 --- a/Functions/Tenancy/Contacts/Get-NetboxContact.ps1 +++ b/Functions/Tenancy/Contacts/Get-NetboxContact.ps1 @@ -58,7 +58,7 @@ function Get-NetboxContact { [string]$Name, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Query, @@ -79,7 +79,7 @@ function Get-NetboxContact { [string]$Group, [Parameter(ParameterSetName = 'Query')] - [uint16]$GroupID, + [uint64]$GroupID, [Parameter(ParameterSetName = 'Query')] [uint16]$Limit, diff --git a/Functions/Tenancy/Contacts/Set-NetboxContact.ps1 b/Functions/Tenancy/Contacts/Set-NetboxContact.ps1 index cc7d285..b1d91b0 100644 --- a/Functions/Tenancy/Contacts/Set-NetboxContact.ps1 +++ b/Functions/Tenancy/Contacts/Set-NetboxContact.ps1 @@ -60,7 +60,7 @@ function Set-NetboxContact { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint32[]]$Id, + [uint64[]]$Id, [ValidateLength(1, 100)] [string]$Name, @@ -68,7 +68,7 @@ function Set-NetboxContact { [ValidateLength(0, 254)] [string]$Email, - [uint32]$Group, + [uint64]$Group, [ValidateLength(0, 100)] [string]$Title, diff --git a/Functions/Tenancy/Tenants/Get-NetboxTenant.ps1 b/Functions/Tenancy/Tenants/Get-NetboxTenant.ps1 index af5250e..4fc4ca5 100644 --- a/Functions/Tenancy/Tenants/Get-NetboxTenant.ps1 +++ b/Functions/Tenancy/Tenants/Get-NetboxTenant.ps1 @@ -52,7 +52,7 @@ function Get-NetboxTenant { [string]$Name, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Query, @@ -64,7 +64,7 @@ function Get-NetboxTenant { [string]$Group, [Parameter(ParameterSetName = 'Query')] - [uint16]$GroupID, + [uint64]$GroupID, [Parameter(ParameterSetName = 'Query')] [hashtable]$CustomFields, diff --git a/Functions/Virtualization/VirtualMachine/Get-NetboxVirtualMachine.ps1 b/Functions/Virtualization/VirtualMachine/Get-NetboxVirtualMachine.ps1 index 742b535..60ba589 100644 --- a/Functions/Virtualization/VirtualMachine/Get-NetboxVirtualMachine.ps1 +++ b/Functions/Virtualization/VirtualMachine/Get-NetboxVirtualMachine.ps1 @@ -91,35 +91,35 @@ function Get-NetboxVirtualMachine { [string]$Name, - [uint16[]]$Id, + [uint64[]]$Id, [object]$Status, [string]$Tenant, - [uint16]$Tenant_ID, + [uint64]$Tenant_ID, [string]$Platform, - [uint16]$Platform_ID, + [uint64]$Platform_ID, [string]$Cluster_Group, - [uint16]$Cluster_Group_Id, + [uint64]$Cluster_Group_Id, [string]$Cluster_Type, - [uint16]$Cluster_Type_Id, + [uint64]$Cluster_Type_Id, - [uint16]$Cluster_Id, + [uint64]$Cluster_Id, [string]$Site, - [uint16]$Site_Id, + [uint64]$Site_Id, [string]$Role, - [uint16]$Role_Id, + [uint64]$Role_Id, [uint16]$Limit, diff --git a/Functions/Virtualization/VirtualMachine/New-NetboxVirtualMachine.ps1 b/Functions/Virtualization/VirtualMachine/New-NetboxVirtualMachine.ps1 index 98d2038..f5eaebf 100644 --- a/Functions/Virtualization/VirtualMachine/New-NetboxVirtualMachine.ps1 +++ b/Functions/Virtualization/VirtualMachine/New-NetboxVirtualMachine.ps1 @@ -9,27 +9,27 @@ function New-NetboxVirtualMachine { [string]$Name, [Parameter(Mandatory = $true)] - [uint16]$Site, + [uint64]$Site, - [uint16]$Cluster, + [uint64]$Cluster, - [uint16]$Tenant, + [uint64]$Tenant, [object]$Status = 'Active', - [uint16]$Role, + [uint64]$Role, - [uint16]$Platform, + [uint64]$Platform, [uint16]$vCPUs, - [uint16]$Memory, + [uint64]$Memory, - [uint16]$Disk, + [uint64]$Disk, - [uint16]$Primary_IP4, + [uint64]$Primary_IP4, - [uint16]$Primary_IP6, + [uint64]$Primary_IP6, [hashtable]$Custom_Fields, diff --git a/Functions/Virtualization/VirtualMachine/Remove-NetboxVirtualMachine.ps1 b/Functions/Virtualization/VirtualMachine/Remove-NetboxVirtualMachine.ps1 index ebb733a..b3a5ed5 100644 --- a/Functions/Virtualization/VirtualMachine/Remove-NetboxVirtualMachine.ps1 +++ b/Functions/Virtualization/VirtualMachine/Remove-NetboxVirtualMachine.ps1 @@ -26,7 +26,7 @@ function Remove-NetboxVirtualMachine { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [switch]$Force ) diff --git a/Functions/Virtualization/VirtualMachine/Set-NetboxVirtualMachine.ps1 b/Functions/Virtualization/VirtualMachine/Set-NetboxVirtualMachine.ps1 index 8c8ae0e..3b722b4 100644 --- a/Functions/Virtualization/VirtualMachine/Set-NetboxVirtualMachine.ps1 +++ b/Functions/Virtualization/VirtualMachine/Set-NetboxVirtualMachine.ps1 @@ -6,29 +6,29 @@ function Set-NetboxVirtualMachine { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16]$Id, + [uint64]$Id, [string]$Name, - [uint16]$Role, + [uint64]$Role, - [uint16]$Cluster, + [uint64]$Cluster, [object]$Status, - [uint16]$Platform, + [uint64]$Platform, - [uint16]$Primary_IP4, + [uint64]$Primary_IP4, - [uint16]$Primary_IP6, + [uint64]$Primary_IP6, [byte]$VCPUs, - [uint16]$Memory, + [uint64]$Memory, - [uint16]$Disk, + [uint64]$Disk, - [uint16]$Tenant, + [uint64]$Tenant, [string]$Comments, diff --git a/Functions/Virtualization/VirtualMachineInterface/Add-NetboxVirtualMachineInterface.ps1 b/Functions/Virtualization/VirtualMachineInterface/Add-NetboxVirtualMachineInterface.ps1 index 47a04a9..9463703 100644 --- a/Functions/Virtualization/VirtualMachineInterface/Add-NetboxVirtualMachineInterface.ps1 +++ b/Functions/Virtualization/VirtualMachineInterface/Add-NetboxVirtualMachineInterface.ps1 @@ -7,7 +7,7 @@ function Add-NetboxVirtualMachineInterface { [string]$Name, [Parameter(Mandatory = $true)] - [uint16]$Virtual_Machine, + [uint64]$Virtual_Machine, [boolean]$Enabled = $true, diff --git a/Functions/Virtualization/VirtualMachineInterface/Get-NetboxVirtualMachineInterface.ps1 b/Functions/Virtualization/VirtualMachineInterface/Get-NetboxVirtualMachineInterface.ps1 index d20d019..1a17dad 100644 --- a/Functions/Virtualization/VirtualMachineInterface/Get-NetboxVirtualMachineInterface.ps1 +++ b/Functions/Virtualization/VirtualMachineInterface/Get-NetboxVirtualMachineInterface.ps1 @@ -48,7 +48,7 @@ function Get-NetboxVirtualMachineInterface { param ( [Parameter(ValueFromPipeline = $true)] - [uint16]$Id, + [uint64]$Id, [string]$Name, @@ -58,7 +58,7 @@ function Get-NetboxVirtualMachineInterface { [uint16]$MTU, - [uint16]$Virtual_Machine_Id, + [uint64]$Virtual_Machine_Id, [string]$Virtual_Machine, diff --git a/Functions/Virtualization/VirtualMachineInterface/Set-NetboxVirtualMachineInterface.ps1 b/Functions/Virtualization/VirtualMachineInterface/Set-NetboxVirtualMachineInterface.ps1 index 03604ed..4075cbd 100644 --- a/Functions/Virtualization/VirtualMachineInterface/Set-NetboxVirtualMachineInterface.ps1 +++ b/Functions/Virtualization/VirtualMachineInterface/Set-NetboxVirtualMachineInterface.ps1 @@ -7,7 +7,7 @@ function Set-NetboxVirtualMachineInterface { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [string]$Name, @@ -19,7 +19,7 @@ function Set-NetboxVirtualMachineInterface { [boolean]$Enabled, - [uint16]$Virtual_Machine, + [uint64]$Virtual_Machine, [switch]$Force ) diff --git a/Functions/Virtualization/VirtualizationCluster/Get-NetboxVirtualizationCluster.ps1 b/Functions/Virtualization/VirtualizationCluster/Get-NetboxVirtualizationCluster.ps1 index b151e62..3dc69af 100644 --- a/Functions/Virtualization/VirtualizationCluster/Get-NetboxVirtualizationCluster.ps1 +++ b/Functions/Virtualization/VirtualizationCluster/Get-NetboxVirtualizationCluster.ps1 @@ -58,19 +58,19 @@ function Get-NetboxVirtualizationCluster { [Alias('q')] [string]$Query, - [uint16[]]$Id, + [uint64[]]$Id, [string]$Group, - [uint16]$Group_Id, + [uint64]$Group_Id, [string]$Type, - [uint16]$Type_Id, + [uint64]$Type_Id, [string]$Site, - [uint16]$Site_Id, + [uint64]$Site_Id, [uint16]$Limit, diff --git a/Functions/Virtualization/VirtualizationCluster/Get-NetboxVirtualizationClusterGroup.ps1 b/Functions/Virtualization/VirtualizationCluster/Get-NetboxVirtualizationClusterGroup.ps1 index 71813f7..2ba695d 100644 --- a/Functions/Virtualization/VirtualizationCluster/Get-NetboxVirtualizationClusterGroup.ps1 +++ b/Functions/Virtualization/VirtualizationCluster/Get-NetboxVirtualizationClusterGroup.ps1 @@ -11,7 +11,7 @@ function Get-NetboxVirtualizationClusterGroup { [string]$Query, - [uint32[]]$Id, + [uint64[]]$Id, [uint16]$Limit, diff --git a/NetboxPS.psd1 b/NetboxPS.psd1 index b9c80d4..5f32e50 100644 --- a/NetboxPS.psd1 +++ b/NetboxPS.psd1 @@ -3,7 +3,7 @@ # # Generated by: Ben Claussen # -# Generated on: 2023-03-17 +# Generated on: 2023-11-07 # @{ @@ -12,7 +12,7 @@ RootModule = 'NetboxPS.psm1' # Version number of this module. -ModuleVersion = '1.8.0' +ModuleVersion = '1.8.4' # Supported PSEditions # CompatiblePSEditions = @() @@ -85,26 +85,28 @@ FunctionsToExport = 'Add-NetboxDCIMFrontPort', 'Add-NetboxDCIMInterface', 'Get-NetboxDCIMRearPort', 'Get-NetboxDCIMSite', 'Get-NetboxHostname', 'Get-NetboxHostPort', 'Get-NetboxHostScheme', 'Get-NetboxInvokeParams', 'Get-NetboxIPAMAddress', - 'Get-NetboxIPAMAggregate', 'Get-NetboxIPAMAvailableIP', - 'Get-NetboxIPAMPrefix', 'Get-NetboxIPAMRole', 'Get-NetboxIPAMVLAN', - 'Get-NetboxTag', 'Get-NetboxTenant', 'Get-NetboxTimeout', - 'Get-NetboxVersion', 'Get-NetboxVirtualizationCluster', + 'Get-NetboxIPAMAddressRange', 'Get-NetboxIPAMAggregate', + 'Get-NetboxIPAMAvailableIP', 'Get-NetboxIPAMPrefix', + 'Get-NetboxIPAMRole', 'Get-NetboxIPAMVLAN', 'Get-NetboxTag', + 'Get-NetboxTenant', 'Get-NetboxTimeout', 'Get-NetboxVersion', + 'Get-NetboxVirtualizationCluster', 'Get-NetboxVirtualizationClusterGroup', 'Get-NetboxVirtualMachine', 'Get-NetboxVirtualMachineInterface', 'New-NetboxCircuit', 'New-NetboxContact', 'New-NetboxContactAssignment', 'New-NetboxContactRole', 'New-NetboxDCIMDevice', 'New-NetboxDCIMSite', - 'New-NetboxIPAMAddress', 'New-NetboxIPAMPrefix', 'New-NetboxIPAMVLAN', - 'New-NetboxTenant', 'New-NetboxVirtualMachine', - 'Remove-NetboxDCIMDevice', 'Remove-NetboxDCIMFrontPort', - 'Remove-NetboxDCIMInterface', + 'New-NetboxIPAMAddress', 'New-NetboxIPAMAddressRange', + 'New-NetboxIPAMPrefix', 'New-NetboxIPAMVLAN', 'New-NetboxTenant', + 'New-NetboxVirtualMachine', 'Remove-NetboxDCIMDevice', + 'Remove-NetboxDCIMFrontPort', 'Remove-NetboxDCIMInterface', 'Remove-NetboxDCIMInterfaceConnection', 'Remove-NetboxDCIMRearPort', 'Remove-NetboxDCIMSite', 'Remove-NetboxIPAMAddress', - 'Remove-NetboxVirtualMachine', 'Set-NetboxCipherSSL', - 'Set-NetboxContact', 'Set-NetboxCredential', 'Set-NetboxDCIMDevice', - 'Set-NetboxDCIMFrontPort', 'Set-NetboxDCIMInterface', - 'Set-NetboxDCIMInterfaceConnection', 'Set-NetboxDCIMRearPort', - 'Set-NetboxHostName', 'Set-NetboxHostPort', 'Set-NetboxHostScheme', - 'Set-NetboxInvokeParams', 'Set-NetboxIPAMAddress', + 'Remove-NetboxIPAMAddressRange', 'Remove-NetboxVirtualMachine', + 'Set-NetboxCipherSSL', 'Set-NetboxContact', 'Set-NetboxCredential', + 'Set-NetboxDCIMDevice', 'Set-NetboxDCIMFrontPort', + 'Set-NetboxDCIMInterface', 'Set-NetboxDCIMInterfaceConnection', + 'Set-NetboxDCIMRearPort', 'Set-NetboxHostName', 'Set-NetboxHostPort', + 'Set-NetboxHostScheme', 'Set-NetboxInvokeParams', + 'Set-NetboxIPAMAddress', 'Set-NetboxIPAMAddressRange', 'Set-NetboxIPAMPrefix', 'Set-NetboxTimeout', 'Set-NetboxUnstrustedSSL', 'Set-NetboxVirtualMachine', 'Set-NetboxVirtualMachineInterface', 'Test-NetboxAPIConnected' diff --git a/NetboxPS.psproj b/NetboxPS.psproj index 6d988d1..2e7e6c3 100644 --- a/NetboxPS.psproj +++ b/NetboxPS.psproj @@ -38,6 +38,8 @@ Functions\DCIM\Cables Functions\DCIM\FrontPorts Functions\DCIM\RearPorts + Functions\Extras + Functions\IPAM\Range NetboxPS.psd1 @@ -146,6 +148,11 @@ Functions\DCIM\RearPorts\Set-NetboxDCIMRearPort.ps1 Functions\DCIM\Sites\New-NetboxDCIMSite.ps1 Functions\DCIM\Sites\Remove-NetboxDCIMSite.ps1 + Functions\Extras\Get-NetboxTag.ps1 + Functions\Setup\Clear-NetboxCredential.ps1 + Functions\IPAM\Range\Get-NetboxIPAMAddressRange.ps1 + Functions\IPAM\Range\New-NetboxIPAMAddressRange.ps1 + Functions\IPAM\Range\Remove-NetboxIPAMAddressRange.ps1 R:\Netbox\NetboxPS\Test-Module.ps1 \ No newline at end of file diff --git a/NetboxPS/NetboxPS.psd1 b/NetboxPS/NetboxPS.psd1 index b9c80d4..5f32e50 100644 --- a/NetboxPS/NetboxPS.psd1 +++ b/NetboxPS/NetboxPS.psd1 @@ -3,7 +3,7 @@ # # Generated by: Ben Claussen # -# Generated on: 2023-03-17 +# Generated on: 2023-11-07 # @{ @@ -12,7 +12,7 @@ RootModule = 'NetboxPS.psm1' # Version number of this module. -ModuleVersion = '1.8.0' +ModuleVersion = '1.8.4' # Supported PSEditions # CompatiblePSEditions = @() @@ -85,26 +85,28 @@ FunctionsToExport = 'Add-NetboxDCIMFrontPort', 'Add-NetboxDCIMInterface', 'Get-NetboxDCIMRearPort', 'Get-NetboxDCIMSite', 'Get-NetboxHostname', 'Get-NetboxHostPort', 'Get-NetboxHostScheme', 'Get-NetboxInvokeParams', 'Get-NetboxIPAMAddress', - 'Get-NetboxIPAMAggregate', 'Get-NetboxIPAMAvailableIP', - 'Get-NetboxIPAMPrefix', 'Get-NetboxIPAMRole', 'Get-NetboxIPAMVLAN', - 'Get-NetboxTag', 'Get-NetboxTenant', 'Get-NetboxTimeout', - 'Get-NetboxVersion', 'Get-NetboxVirtualizationCluster', + 'Get-NetboxIPAMAddressRange', 'Get-NetboxIPAMAggregate', + 'Get-NetboxIPAMAvailableIP', 'Get-NetboxIPAMPrefix', + 'Get-NetboxIPAMRole', 'Get-NetboxIPAMVLAN', 'Get-NetboxTag', + 'Get-NetboxTenant', 'Get-NetboxTimeout', 'Get-NetboxVersion', + 'Get-NetboxVirtualizationCluster', 'Get-NetboxVirtualizationClusterGroup', 'Get-NetboxVirtualMachine', 'Get-NetboxVirtualMachineInterface', 'New-NetboxCircuit', 'New-NetboxContact', 'New-NetboxContactAssignment', 'New-NetboxContactRole', 'New-NetboxDCIMDevice', 'New-NetboxDCIMSite', - 'New-NetboxIPAMAddress', 'New-NetboxIPAMPrefix', 'New-NetboxIPAMVLAN', - 'New-NetboxTenant', 'New-NetboxVirtualMachine', - 'Remove-NetboxDCIMDevice', 'Remove-NetboxDCIMFrontPort', - 'Remove-NetboxDCIMInterface', + 'New-NetboxIPAMAddress', 'New-NetboxIPAMAddressRange', + 'New-NetboxIPAMPrefix', 'New-NetboxIPAMVLAN', 'New-NetboxTenant', + 'New-NetboxVirtualMachine', 'Remove-NetboxDCIMDevice', + 'Remove-NetboxDCIMFrontPort', 'Remove-NetboxDCIMInterface', 'Remove-NetboxDCIMInterfaceConnection', 'Remove-NetboxDCIMRearPort', 'Remove-NetboxDCIMSite', 'Remove-NetboxIPAMAddress', - 'Remove-NetboxVirtualMachine', 'Set-NetboxCipherSSL', - 'Set-NetboxContact', 'Set-NetboxCredential', 'Set-NetboxDCIMDevice', - 'Set-NetboxDCIMFrontPort', 'Set-NetboxDCIMInterface', - 'Set-NetboxDCIMInterfaceConnection', 'Set-NetboxDCIMRearPort', - 'Set-NetboxHostName', 'Set-NetboxHostPort', 'Set-NetboxHostScheme', - 'Set-NetboxInvokeParams', 'Set-NetboxIPAMAddress', + 'Remove-NetboxIPAMAddressRange', 'Remove-NetboxVirtualMachine', + 'Set-NetboxCipherSSL', 'Set-NetboxContact', 'Set-NetboxCredential', + 'Set-NetboxDCIMDevice', 'Set-NetboxDCIMFrontPort', + 'Set-NetboxDCIMInterface', 'Set-NetboxDCIMInterfaceConnection', + 'Set-NetboxDCIMRearPort', 'Set-NetboxHostName', 'Set-NetboxHostPort', + 'Set-NetboxHostScheme', 'Set-NetboxInvokeParams', + 'Set-NetboxIPAMAddress', 'Set-NetboxIPAMAddressRange', 'Set-NetboxIPAMPrefix', 'Set-NetboxTimeout', 'Set-NetboxUnstrustedSSL', 'Set-NetboxVirtualMachine', 'Set-NetboxVirtualMachineInterface', 'Test-NetboxAPIConnected' diff --git a/NetboxPS/NetboxPS.psm1 b/NetboxPS/NetboxPS.psm1 index 87e5c9f..52d14cf 100644 --- a/NetboxPS/NetboxPS.psm1 +++ b/NetboxPS/NetboxPS.psm1 @@ -8,9 +8,9 @@ function Add-NetboxDCIMFrontPort { param ( [Parameter(Mandatory = $true)] - [uint16]$Device, + [uint64]$Device, - [uint16]$Module, + [uint64]$Module, [Parameter(Mandatory = $true)] [string]$Name, @@ -24,9 +24,9 @@ function Add-NetboxDCIMFrontPort { [string]$Color, [Parameter(Mandatory = $true)] - [uint16]$Rear_Port, + [uint64]$Rear_Port, - [uint16]$Rear_Port_Position, + [uint64]$Rear_Port_Position, [string]$Description, @@ -56,7 +56,7 @@ function Add-NetboxDCIMInterface { param ( [Parameter(Mandatory = $true)] - [uint16]$Device, + [uint64]$Device, [Parameter(Mandatory = $true)] [string]$Name, @@ -74,7 +74,7 @@ function Add-NetboxDCIMInterface { [bool]$MGMT_Only, - [uint16]$LAG, + [uint64]$LAG, [string]$Description, @@ -156,10 +156,10 @@ function Add-NetboxDCIMInterfaceConnection { [object]$Connection_Status, [Parameter(Mandatory = $true)] - [uint16]$Interface_A, + [uint64]$Interface_A, [Parameter(Mandatory = $true)] - [uint16]$Interface_B + [uint64]$Interface_B ) # Verify if both Interfaces exist @@ -185,9 +185,9 @@ function Add-NetboxDCIMRearPort { param ( [Parameter(Mandatory = $true)] - [uint16]$Device, + [uint64]$Device, - [uint16]$Module, + [uint64]$Module, [Parameter(Mandatory = $true)] [string]$Name, @@ -241,7 +241,7 @@ function Add-NetboxVirtualMachineInterface { [string]$Name, [Parameter(Mandatory = $true)] - [uint16]$Virtual_Machine, + [uint64]$Virtual_Machine, [boolean]$Enabled = $true, @@ -778,16 +778,16 @@ function Get-NetboxCircuit { A raw search query... As if you were searching the web site .PARAMETER Provider - The name or ID of the provider. Provide either [string] or [int]. String will search provider names, integer will search database IDs + The name or ID of the provider. Provide either [string] or [uint64]. String will search provider names, integer will search database IDs .PARAMETER Type - Type of circuit. Provide either [string] or [int]. String will search provider type names, integer will search database IDs + Type of circuit. Provide either [string] or [uint64]. String will search provider type names, integer will search database IDs .PARAMETER Site - Location/site of circuit. Provide either [string] or [int]. String will search site names, integer will search database IDs + Location/site of circuit. Provide either [string] or [uint64]. String will search site names, integer will search database IDs .PARAMETER Tenant - Tenant assigned to circuit. Provide either [string] or [int]. String will search tenant names, integer will search database IDs + Tenant assigned to circuit. Provide either [string] or [uint64]. String will search tenant names, integer will search database IDs .PARAMETER Limit A description of the Limit parameter. @@ -812,7 +812,7 @@ function Get-NetboxCircuit { param ( [Parameter(ParameterSetName = 'ById')] - [uint16[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$CID, @@ -821,7 +821,7 @@ function Get-NetboxCircuit { [datetime]$InstallDate, [Parameter(ParameterSetName = 'Query')] - [uint32]$CommitRate, + [uint64]$CommitRate, [Parameter(ParameterSetName = 'Query')] [string]$Query, @@ -885,7 +885,7 @@ function Get-NetboxCircuitProvider { ( [Parameter(ParameterSetName = 'ById', Mandatory = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query', Mandatory = $false)] @@ -948,7 +948,7 @@ function Get-NetboxCircuitTermination { ( [Parameter(ParameterSetName = 'ById', ValueFromPipelineByPropertyName = $true)] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Circuit_ID, @@ -957,7 +957,7 @@ function Get-NetboxCircuitTermination { [string]$Term_Side, [Parameter(ParameterSetName = 'Query')] - [uint32]$Port_Speed, + [uint64]$Port_Speed, [Parameter(ParameterSetName = 'Query')] [string]$Query, @@ -1017,7 +1017,7 @@ function Get-NetboxCircuitType { param ( [Parameter(ParameterSetName = 'ById')] - [uint16[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Name, @@ -1134,7 +1134,7 @@ function Get-NetboxContact { [string]$Name, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Query, @@ -1155,7 +1155,7 @@ function Get-NetboxContact { [string]$Group, [Parameter(ParameterSetName = 'Query')] - [uint16]$GroupID, + [uint64]$GroupID, [Parameter(ParameterSetName = 'Query')] [uint16]$Limit, @@ -1253,22 +1253,22 @@ function Get-NetboxContactAssignment { [string]$Name, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] - [uint32]$Content_Type_Id, + [uint64]$Content_Type_Id, [Parameter(ParameterSetName = 'Query')] [string]$Content_Type, [Parameter(ParameterSetName = 'Query')] - [uint32]$Object_Id, + [uint64]$Object_Id, [Parameter(ParameterSetName = 'Query')] - [uint32]$Contact_Id, + [uint64]$Contact_Id, [Parameter(ParameterSetName = 'Query')] - [uint32]$Role_Id, + [uint64]$Role_Id, [Parameter(ParameterSetName = 'Query')] [uint16]$Limit, @@ -1354,7 +1354,7 @@ function Get-NetboxContactRole { [string]$Name, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Query, @@ -1451,7 +1451,7 @@ function Get-NetboxContentType { [string]$Model, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$App_Label, @@ -1527,17 +1527,17 @@ function Get-NetboxDCIMCable { [uint16]$Offset, [Parameter(ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [string]$Label, [string]$Termination_A_Type, - [uint16]$Termination_A_ID, + [uint64]$Termination_A_ID, [string]$Termination_B_Type, - [UInt16]$Termination_B_ID, + [uint64]$Termination_B_ID, [string]$Type, @@ -1545,15 +1545,15 @@ function Get-NetboxDCIMCable { [string]$Color, - [UInt16]$Device_ID, + [uint64]$Device_ID, [string]$Device, - [uint16]$Rack_Id, + [uint64]$Rack_Id, [string]$Rack, - [uint16]$Location_ID, + [uint64]$Location_ID, [string]$Location, @@ -1587,15 +1587,15 @@ function Get-NetboxDCIMCableTermination { [uint16]$Offset, [Parameter(ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, - [uint16]$Cable, + [uint64]$Cable, [string]$Cable_End, [string]$Termination_Type, - [uint16]$Termination_ID, + [uint64]$Termination_ID, [switch]$Raw ) @@ -1628,43 +1628,43 @@ function Get-NetboxDCIMDevice { [uint16]$Offset, [Parameter(ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [string]$Query, [string]$Name, - [uint16]$Manufacturer_Id, + [uint64]$Manufacturer_Id, [string]$Manufacturer, - [uint16]$Device_Type_Id, + [uint64]$Device_Type_Id, - [uint16]$Role_Id, + [uint64]$Role_Id, [string]$Role, - [uint16]$Tenant_Id, + [uint64]$Tenant_Id, [string]$Tenant, - [uint16]$Platform_Id, + [uint64]$Platform_Id, [string]$Platform, [string]$Asset_Tag, - [uint16]$Site_Id, + [uint64]$Site_Id, [string]$Site, - [uint16]$Rack_Group_Id, + [uint64]$Rack_Group_Id, - [uint16]$Rack_Id, + [uint64]$Rack_Id, - [uint16]$Cluster_Id, + [uint64]$Cluster_Id, - [uint16]$Model, + [uint64]$Model, [object]$Status, @@ -1680,7 +1680,7 @@ function Get-NetboxDCIMDevice { [bool]$Has_Primary_IP, - [uint16]$Virtual_Chassis_Id, + [uint64]$Virtual_Chassis_Id, [uint16]$Position, @@ -1716,7 +1716,7 @@ function Get-NetboxDCIMDeviceRole { [uint16]$Offset, [Parameter(ParameterSetName = 'ById')] - [uint16[]]$Id, + [uint64[]]$Id, [string]$Name, @@ -1770,7 +1770,7 @@ function Get-NetboxDCIMDeviceType { [uint16]$Limit, - [uint16[]]$Id, + [uint64[]]$Id, [string]$Query, @@ -1778,7 +1778,7 @@ function Get-NetboxDCIMDeviceType { [string]$Manufacturer, - [uint16]$Manufacturer_Id, + [uint64]$Manufacturer_Id, [string]$Model, @@ -1823,13 +1823,13 @@ function Get-NetboxDCIMFrontPort { [uint16]$Offset, [Parameter(ValueFromPipelineByPropertyName = $true)] - [uint16]$Id, + [uint64]$Id, [string]$Name, [string]$Device, - [uint16]$Device_Id, + [uint64]$Device_Id, [string]$Type, @@ -1862,9 +1862,9 @@ function Get-NetboxDCIMInterface { [uint16]$Offset, [Parameter(ValueFromPipelineByPropertyName = $true)] - [uint16]$Id, + [uint64]$Id, - [uint16]$Name, + [uint64]$Name, [object]$Form_Factor, @@ -1876,12 +1876,12 @@ function Get-NetboxDCIMInterface { [string]$Device, - [uint16]$Device_Id, + [uint64]$Device_Id, [ValidateSet('virtual', 'bridge', 'lag', '100base-tx', '1000base-t', '2.5gbase-t', '5gbase-t', '10gbase-t', '10gbase-cx4', '1000base-x-gbic', '1000base-x-sfp', '10gbase-x-sfpp', '10gbase-x-xfp', '10gbase-x-xenpak', '10gbase-x-x2', '25gbase-x-sfp28', '50gbase-x-sfp56', '40gbase-x-qsfpp', '50gbase-x-sfp28', '100gbase-x-cfp', '100gbase-x-cfp2', '200gbase-x-cfp2', '100gbase-x-cfp4', '100gbase-x-cpak', '100gbase-x-qsfp28', '200gbase-x-qsfp56', '400gbase-x-qsfpdd', '400gbase-x-osfp', '1000base-kx', '10gbase-kr', '10gbase-kx4', '25gbase-kr', '40gbase-kr4', '50gbase-kr', '100gbase-kp4', '100gbase-kr2', '100gbase-kr4', 'ieee802.11a', 'ieee802.11g', 'ieee802.11n', 'ieee802.11ac', 'ieee802.11ad', 'ieee802.11ax', 'ieee802.11ay', 'ieee802.15.1', 'other-wireless', 'gsm', 'cdma', 'lte', 'sonet-oc3', 'sonet-oc12', 'sonet-oc48', 'sonet-oc192', 'sonet-oc768', 'sonet-oc1920', 'sonet-oc3840', '1gfc-sfp', '2gfc-sfp', '4gfc-sfp', '8gfc-sfpp', '16gfc-sfpp', '32gfc-sfp28', '64gfc-qsfpp', '128gfc-qsfp28', 'infiniband-sdr', 'infiniband-ddr', 'infiniband-qdr', 'infiniband-fdr10', 'infiniband-fdr', 'infiniband-edr', 'infiniband-hdr', 'infiniband-ndr', 'infiniband-xdr', 't1', 'e1', 't3', 'e3', 'xdsl', 'docsis', 'gpon', 'xg-pon', 'xgs-pon', 'ng-pon2', 'epon', '10g-epon', 'cisco-stackwise', 'cisco-stackwise-plus', 'cisco-flexstack', 'cisco-flexstack-plus', 'cisco-stackwise-80', 'cisco-stackwise-160', 'cisco-stackwise-320', 'cisco-stackwise-480', 'juniper-vcp', 'extreme-summitstack', 'extreme-summitstack-128', 'extreme-summitstack-256', 'extreme-summitstack-512', 'other', IgnoreCase = $true)] [string]$Type, - [uint16]$LAG_Id, + [uint64]$LAG_Id, [string]$MAC_Address, @@ -1913,13 +1913,13 @@ function Get-NetboxDCIMInterfaceConnection { [uint16]$Offset, - [uint16]$Id, + [uint64]$Id, [object]$Connection_Status, - [uint16]$Site, + [uint64]$Site, - [uint16]$Device, + [uint64]$Device, [switch]$Raw ) @@ -1948,13 +1948,13 @@ function Get-NetboxDCIMPlatform { [uint16]$Offset, [Parameter(ParameterSetName = 'ById')] - [uint16[]]$Id, + [uint64[]]$Id, [string]$Name, [string]$Slug, - [uint16]$Manufacturer_Id, + [uint64]$Manufacturer_Id, [string]$Manufacturer, @@ -2002,13 +2002,13 @@ function Get-NetboxDCIMRearPort { [uint16]$Offset, [Parameter(ValueFromPipelineByPropertyName = $true)] - [uint16]$Id, + [uint64]$Id, [string]$Name, [string]$Device, - [uint16]$Device_Id, + [uint64]$Device_Id, [string]$Type, @@ -2038,7 +2038,7 @@ function Get-NetboxDCIMSite { param ( [Parameter(ParameterSetName = 'ByID', ValueFromPipelineByPropertyName = $true)] - [uint32]$Id, + [uint64]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Name, @@ -2053,7 +2053,7 @@ function Get-NetboxDCIMSite { [string]$Facility, [Parameter(ParameterSetName = 'Query')] - [uint32]$ASN, + [uint64]$ASN, [Parameter(ParameterSetName = 'Query')] [decimal]$Latitude, @@ -2071,13 +2071,13 @@ function Get-NetboxDCIMSite { [string]$Contact_Email, [Parameter(ParameterSetName = 'Query')] - [uint32]$Tenant_Group_ID, + [uint64]$Tenant_Group_ID, [Parameter(ParameterSetName = 'Query')] [string]$Tenant_Group, [Parameter(ParameterSetName = 'Query')] - [uint32]$Tenant_ID, + [uint64]$Tenant_ID, [Parameter(ParameterSetName = 'Query')] [string]$Tenant, @@ -2086,7 +2086,7 @@ function Get-NetboxDCIMSite { [string]$Status, [Parameter(ParameterSetName = 'Query')] - [uint32]$Region_ID, + [uint64]$Region_ID, [Parameter(ParameterSetName = 'Query')] [string]$Region, @@ -2204,7 +2204,7 @@ function Get-NetboxIPAMAddress { [string]$Address, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Query, @@ -2222,28 +2222,28 @@ function Get-NetboxIPAMAddress { [string]$VRF, [Parameter(ParameterSetName = 'Query')] - [uint32]$VRF_Id, + [uint64]$VRF_Id, [Parameter(ParameterSetName = 'Query')] [string]$Tenant, [Parameter(ParameterSetName = 'Query')] - [uint32]$Tenant_Id, + [uint64]$Tenant_Id, [Parameter(ParameterSetName = 'Query')] [string]$Device, [Parameter(ParameterSetName = 'Query')] - [uint32]$Device_ID, + [uint64]$Device_ID, [Parameter(ParameterSetName = 'Query')] [string]$Virtual_Machine, [Parameter(ParameterSetName = 'Query')] - [uint32]$Virtual_Machine_Id, + [uint64]$Virtual_Machine_Id, [Parameter(ParameterSetName = 'Query')] - [uint32]$Interface_Id, + [uint64]$Interface_Id, [Parameter(ParameterSetName = 'Query')] [object]$Status, @@ -2291,6 +2291,84 @@ function Get-NetboxIPAMAddress { #endregion +#region File Get-NetboxIPAMAddressRange.ps1 + + +function Get-NetboxIPAMAddressRange { + [CmdletBinding(DefaultParameterSetName = 'Query')] + param + ( + [Parameter(ParameterSetName = 'Query', + Position = 0)] + [string]$Range, + + [Parameter(ParameterSetName = 'ByID')] + [uint64[]]$Id, + + [Parameter(ParameterSetName = 'Query')] + [string]$Query, + + [Parameter(ParameterSetName = 'Query')] + [object]$Family, + + [Parameter(ParameterSetName = 'Query')] + [string]$VRF, + + [Parameter(ParameterSetName = 'Query')] + [uint32]$VRF_Id, + + [Parameter(ParameterSetName = 'Query')] + [string]$Tenant, + + [Parameter(ParameterSetName = 'Query')] + [uint32]$Tenant_Id, + + [Parameter(ParameterSetName = 'Query')] + [object]$Status, + + [Parameter(ParameterSetName = 'Query')] + [object]$Role, + + [Parameter(ParameterSetName = 'Query')] + [uint16]$Limit, + + [Parameter(ParameterSetName = 'Query')] + [uint16]$Offset, + + [switch]$Raw + ) + + switch ($PSCmdlet.ParameterSetName) { + 'ById' { + foreach ($Range_ID in $Id) { + $Segments = [System.Collections.ArrayList]::new(@('ipam', 'ip-ranges', $Range_ID)) + + $URIComponents = BuildURIComponents -URISegments $Segments -ParametersDictionary $PSBoundParameters -SkipParameterByName 'Id' + + $uri = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters + + InvokeNetboxRequest -URI $uri -Raw:$Raw + } + + break + } + + default { + $Segments = [System.Collections.ArrayList]::new(@('ipam', 'ip-ranges')) + + $URIComponents = BuildURIComponents -URISegments $Segments -ParametersDictionary $PSBoundParameters + + $uri = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters + + InvokeNetboxRequest -URI $uri -Raw:$Raw + + break + } + } +} + +#endregion + #region File Get-NetboxIPAMAggregate.ps1 @@ -2302,7 +2380,7 @@ function Get-NetboxIPAMAggregate { [string]$Query, [Parameter(ParameterSetName = 'ByID')] - [uint16[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Prefix, @@ -2311,7 +2389,7 @@ function Get-NetboxIPAMAggregate { [object]$Family, [Parameter(ParameterSetName = 'Query')] - [uint16]$RIR_Id, + [uint64]$RIR_Id, [Parameter(ParameterSetName = 'Query')] [string]$RIR, @@ -2406,10 +2484,10 @@ function Get-NetboxIPAMAvailableIP { [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [Alias('Id')] - [int]$Prefix_ID, + [uint64]$Prefix_ID, [Alias('NumberOfIPs')] - [int]$Limit, + [uint64]$Limit, [switch]$Raw ) @@ -2522,7 +2600,7 @@ function Get-NetboxIPAMPrefix { [string]$Query, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [object]$Family, @@ -2547,25 +2625,25 @@ function Get-NetboxIPAMPrefix { [string]$VRF, [Parameter(ParameterSetName = 'Query')] - [uint32]$VRF_Id, + [uint64]$VRF_Id, [Parameter(ParameterSetName = 'Query')] [string]$Tenant, [Parameter(ParameterSetName = 'Query')] - [uint32]$Tenant_Id, + [uint64]$Tenant_Id, [Parameter(ParameterSetName = 'Query')] [string]$Site, [Parameter(ParameterSetName = 'Query')] - [uint32]$Site_Id, + [uint64]$Site_Id, [Parameter(ParameterSetName = 'Query')] [string]$Vlan_VId, [Parameter(ParameterSetName = 'Query')] - [uint32]$Vlan_Id, + [uint64]$Vlan_Id, [Parameter(ParameterSetName = 'Query')] [object]$Status, @@ -2574,7 +2652,7 @@ function Get-NetboxIPAMPrefix { [string]$Role, [Parameter(ParameterSetName = 'Query')] - [uint32]$Role_Id, + [uint64]$Role_Id, [Parameter(ParameterSetName = 'Query')] [uint16]$Limit, @@ -2677,7 +2755,7 @@ function Get-NetboxIPAMRole { [string]$Query, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Slug, @@ -2738,7 +2816,7 @@ function Get-NetboxIPAMVLAN { [uint16]$VID, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Query, @@ -2750,13 +2828,13 @@ function Get-NetboxIPAMVLAN { [string]$Tenant, [Parameter(ParameterSetName = 'Query')] - [uint32]$Tenant_Id, + [uint64]$Tenant_Id, [Parameter(ParameterSetName = 'Query')] [string]$TenantGroup, [Parameter(ParameterSetName = 'Query')] - [uint32]$TenantGroup_Id, + [uint64]$TenantGroup_Id, [Parameter(ParameterSetName = 'Query')] [object]$Status, @@ -2768,19 +2846,19 @@ function Get-NetboxIPAMVLAN { [string]$Site, [Parameter(ParameterSetName = 'Query')] - [uint32]$Site_Id, + [uint64]$Site_Id, [Parameter(ParameterSetName = 'Query')] [string]$Group, [Parameter(ParameterSetName = 'Query')] - [uint32]$Group_Id, + [uint64]$Group_Id, [Parameter(ParameterSetName = 'Query')] [string]$Role, [Parameter(ParameterSetName = 'Query')] - [uint32]$Role_Id, + [uint64]$Role_Id, [Parameter(ParameterSetName = 'Query')] [uint16]$Limit, @@ -2834,17 +2912,17 @@ function Get-NetboxTag { [OutputType([pscustomobject])] param ( - [uint16]$Limit, - - [uint16]$Offset, - [Parameter(ValueFromPipelineByPropertyName = $true)] - [uint16]$Id, + [uint64]$Id, [string]$Name, [string]$Slug, + [uint16]$Limit, + + [uint16]$Offset, + [switch]$Raw ) @@ -2918,7 +2996,7 @@ function Get-NetboxTenant { [string]$Name, [Parameter(ParameterSetName = 'ByID')] - [uint32[]]$Id, + [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Query, @@ -2930,7 +3008,7 @@ function Get-NetboxTenant { [string]$Group, [Parameter(ParameterSetName = 'Query')] - [uint16]$GroupID, + [uint64]$GroupID, [Parameter(ParameterSetName = 'Query')] [hashtable]$CustomFields, @@ -3075,19 +3153,19 @@ function Get-NetboxVirtualizationCluster { [Alias('q')] [string]$Query, - [uint16[]]$Id, + [uint64[]]$Id, [string]$Group, - [uint16]$Group_Id, + [uint64]$Group_Id, [string]$Type, - [uint16]$Type_Id, + [uint64]$Type_Id, [string]$Site, - [uint16]$Site_Id, + [uint64]$Site_Id, [uint16]$Limit, @@ -3122,7 +3200,7 @@ function Get-NetboxVirtualizationClusterGroup { [string]$Query, - [uint32[]]$Id, + [uint64[]]$Id, [uint16]$Limit, @@ -3237,35 +3315,35 @@ function Get-NetboxVirtualMachine { [string]$Name, - [uint16[]]$Id, + [uint64[]]$Id, [object]$Status, [string]$Tenant, - [uint16]$Tenant_ID, + [uint64]$Tenant_ID, [string]$Platform, - [uint16]$Platform_ID, + [uint64]$Platform_ID, [string]$Cluster_Group, - [uint16]$Cluster_Group_Id, + [uint64]$Cluster_Group_Id, [string]$Cluster_Type, - [uint16]$Cluster_Type_Id, + [uint64]$Cluster_Type_Id, - [uint16]$Cluster_Id, + [uint64]$Cluster_Id, [string]$Site, - [uint16]$Site_Id, + [uint64]$Site_Id, [string]$Role, - [uint16]$Role_Id, + [uint64]$Role_Id, [uint16]$Limit, @@ -3343,7 +3421,7 @@ function Get-NetboxVirtualMachineInterface { param ( [Parameter(ValueFromPipeline = $true)] - [uint16]$Id, + [uint64]$Id, [string]$Name, @@ -3353,7 +3431,7 @@ function Get-NetboxVirtualMachineInterface { [uint16]$MTU, - [uint16]$Virtual_Machine_Id, + [uint64]$Virtual_Machine_Id, [string]$Virtual_Machine, @@ -3492,17 +3570,17 @@ function New-NetboxCircuit { [string]$CID, [Parameter(Mandatory = $true)] - [uint32]$Provider, + [uint64]$Provider, [Parameter(Mandatory = $true)] - [uint32]$Type, + [uint64]$Type, #[ValidateSet('Active', 'Planned', 'Provisioning', 'Offline', 'Deprovisioning', 'Decommissioned ')] [uint16]$Status = 'Active', [string]$Description, - [uint32]$Tenant, + [uint64]$Tenant, [string]$Termination_A, @@ -3511,7 +3589,7 @@ function New-NetboxCircuit { [string]$Termination_Z, [ValidateRange(0, 2147483647)] - [uint32]$Commit_Rate, + [uint64]$Commit_Rate, [string]$Comments, @@ -3688,13 +3766,13 @@ function New-NetboxContactRole { [object]$Content_Type, [Parameter(Mandatory = $true)] - [uint32]$Object_Id, + [uint64]$Object_Id, [Parameter(Mandatory = $true)] - [uint32]$Contact, + [uint64]$Contact, [Parameter(Mandatory = $true)] - [uint32]$Role, + [uint64]$Role, [ValidateSet('primary', 'secondary', 'tertiary', 'inactive', IgnoreCase = $true)] [string]$Priority, @@ -3851,17 +3929,17 @@ function New-NetboxDCIMDevice { [object]$Device_Type, [Parameter(Mandatory = $true)] - [uint16]$Site, + [uint64]$Site, [object]$Status = 'Active', - [uint16]$Platform, + [uint64]$Platform, - [uint16]$Tenant, + [uint64]$Tenant, - [uint16]$Cluster, + [uint64]$Cluster, - [uint16]$Rack, + [uint64]$Rack, [uint16]$Position, @@ -3871,15 +3949,15 @@ function New-NetboxDCIMDevice { [string]$Asset_Tag, - [uint16]$Virtual_Chassis, + [uint64]$Virtual_Chassis, - [uint16]$VC_Priority, + [uint64]$VC_Priority, - [uint16]$VC_Position, + [uint64]$VC_Position, - [uint16]$Primary_IP4, + [uint64]$Primary_IP4, - [uint16]$Primary_IP6, + [uint64]$Primary_IP6, [string]$Comments, @@ -3944,7 +4022,7 @@ function New-NetboxDCIMSite { [string]$Facility, - [uint32]$ASN, + [uint64]$ASN, [decimal]$Latitude, @@ -3956,13 +4034,13 @@ function New-NetboxDCIMSite { [string]$Contact_Email, - [int]$Tenant_Group, + [uint64]$Tenant_Group, - [int]$Tenant, + [uint64]$Tenant, [string]$Status, - [uint32]$Region, + [uint64]$Region, [string]$Description, @@ -4061,17 +4139,17 @@ function New-NetboxIPAMAddress { [object]$Status = 'Active', - [int]$Tenant, + [uint64]$Tenant, - [int]$VRF, + [uint64]$VRF, [object]$Role, - [int]$NAT_Inside, + [uint64]$NAT_Inside, [hashtable]$Custom_Fields, - [int]$Interface, + [uint64]$Interface, [string]$Description, @@ -4080,7 +4158,7 @@ function New-NetboxIPAMAddress { [ValidateSet('dcim.interface', 'virtualization.vminterface', IgnoreCase = $true)] [string]$Assigned_Object_Type, - [int]$Assigned_Object_Id, + [uint64]$Assigned_Object_Id, [switch]$Raw ) @@ -4104,6 +4182,117 @@ function New-NetboxIPAMAddress { +#endregion + +#region File New-NetboxIPAMAddressRange.ps1 + + + +function New-NetboxIPAMAddressRange { +<# + .SYNOPSIS + Create a new IP address range to Netbox + + .DESCRIPTION + Create a new IP address range to Netbox with a status of Active by default. The maximum supported + size of an IP range is 2^32 - 1. + + .PARAMETER Start_Address + Starting IPv4 or IPv6 address (with mask). The maximum supported size of an IP range is 2^32 - 1. + + .PARAMETER End_Address + Ending IPv4 or IPv6 address (with mask). The maximum supported size of an IP range is 2^32 - 1. + + .PARAMETER Status + Operational status of this range. Defaults to Active + + .PARAMETER Tenant + Tenant ID + + .PARAMETER VRF + VRF ID + + .PARAMETER Role + Role such as backup, customer, development, etc... Defaults to nothing + + .PARAMETER Custom_Fields + Custom field hash table. Will be validated by the API service + + .PARAMETER Description + Description of IP address range + + .PARAMETER Comments + Extra comments (markdown supported). + + .PARAMETER Tags + One or more tags. + + .PARAMETER Mark_Utilized + Treat as 100% utilized + + .PARAMETER Raw + Return raw results from API service + + .EXAMPLE + New-NetboxIPAMAddressRange -Start_Address 192.0.2.20/24 -End_Address 192.0.2.20/24 + + Add new IP Address range from 192.0.2.20/24 to 192.0.2.20/24 with status active + + .NOTES + https://netbox.neonet.org/static/docs/models/ipam/iprange/ +#> + + [CmdletBinding(ConfirmImpact = 'Low', + SupportsShouldProcess = $true)] + [OutputType([pscustomobject])] + param + ( + [Parameter(Mandatory = $true)] + [string]$Start_Address, + + [Parameter(Mandatory = $true)] + [string]$End_Address, + + [object]$Status = 'Active', + + [uint64]$Tenant, + + [uint64]$VRF, + + [object]$Role, + + [hashtable]$Custom_Fields, + + [string]$Description, + + [string]$Comments, + + [object[]]$Tags, + + [switch]$Mark_Utilized, + + [switch]$Raw + ) + + process { + $Segments = [System.Collections.ArrayList]::new(@('ipam', 'ip-ranges')) + $Method = 'POST' + + $URIComponents = BuildURIComponents -URISegments $Segments -ParametersDictionary $PSBoundParameters + + $URI = BuildNewURI -Segments $URIComponents.Segments + + if ($PSCmdlet.ShouldProcess($Start_Address, 'Create new IP address range')) { + InvokeNetboxRequest -URI $URI -Method $Method -Body $URIComponents.Parameters -Raw:$Raw + } + } +} + + + + + + #endregion #region File New-NetboxIPAMPrefix.ps1 @@ -4120,7 +4309,7 @@ function New-NetboxIPAMPrefix { [object]$Status = 'Active', - [uint16]$Tenant, + [uint64]$Tenant, [object]$Role, @@ -4128,11 +4317,11 @@ function New-NetboxIPAMPrefix { [string]$Description, - [uint16]$Site, + [uint64]$Site, - [uint16]$VRF, + [uint64]$VRF, - [uint16]$VLAN, + [uint64]$VLAN, [hashtable]$Custom_Fields, @@ -4218,7 +4407,7 @@ function New-NetboxIPAMVLAN { [object]$Status = 'Active', - [uint16]$Tenant, + [uint64]$Tenant, [object]$Role, @@ -4337,27 +4526,27 @@ function New-NetboxVirtualMachine { [string]$Name, [Parameter(Mandatory = $true)] - [uint16]$Site, + [uint64]$Site, - [uint16]$Cluster, + [uint64]$Cluster, - [uint16]$Tenant, + [uint64]$Tenant, [object]$Status = 'Active', - [uint16]$Role, + [uint64]$Role, - [uint16]$Platform, + [uint64]$Platform, [uint16]$vCPUs, - [uint16]$Memory, + [uint64]$Memory, - [uint16]$Disk, + [uint64]$Disk, - [uint16]$Primary_IP4, + [uint64]$Primary_IP4, - [uint16]$Primary_IP6, + [uint64]$Primary_IP6, [hashtable]$Custom_Fields, @@ -4424,7 +4613,7 @@ function Remove-NetboxDCIMDevice { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [switch]$Force ) @@ -4464,7 +4653,7 @@ function Remove-NetboxDCIMFrontPort { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [switch]$Force ) @@ -4523,7 +4712,7 @@ function Remove-NetboxDCIMInterface { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [switch]$Force ) @@ -4564,7 +4753,7 @@ function Remove-NetboxDCIMInterfaceConnection { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [switch]$Force ) @@ -4606,7 +4795,7 @@ function Remove-NetboxDCIMRearPort { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [switch]$Force ) @@ -4735,7 +4924,7 @@ function Remove-NetboxIPAMAddress { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [int[]]$Id, + [uint64[]]$Id, [switch]$Force ) @@ -4757,6 +4946,58 @@ function Remove-NetboxIPAMAddress { #endregion +#region File Remove-NetboxIPAMAddressRange.ps1 + + +function Remove-NetboxIPAMAddressRange { + <# + .SYNOPSIS + Remove an IP address range from Netbox + + .DESCRIPTION + Removes/deletes an IP address range from Netbox by ID + + .PARAMETER Id + Database ID of the IP address range object. + + .PARAMETER Force + Do not confirm. + + .EXAMPLE + PS C:\> Remove-NetboxIPAMAddressRange -Id 1234 + + .NOTES + Additional information about the function. +#> + + [CmdletBinding(ConfirmImpact = 'High', + SupportsShouldProcess = $true)] + param + ( + [Parameter(Mandatory = $true, + ValueFromPipelineByPropertyName = $true)] + [uint64[]]$Id, + + [switch]$Force + ) + + process { + foreach ($Range_Id in $Id) { + $CurrentRange = Get-NetboxIPAMAddressRange -Id $Range_Id -ErrorAction Stop + + $Segments = [System.Collections.ArrayList]::new(@('ipam', 'ip-ranges', $Range_Id)) + + if ($Force -or $pscmdlet.ShouldProcess($CurrentRange.start_address, "Delete")) { + $URI = BuildNewURI -Segments $Segments + + InvokeNetboxRequest -URI $URI -Method DELETE + } + } + } +} + +#endregion + #region File Remove-NetboxVirtualMachine.ps1 @@ -4787,7 +5028,7 @@ function Remove-NetboxVirtualMachine { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [switch]$Force ) @@ -4894,7 +5135,7 @@ function Set-NetboxContact { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint32[]]$Id, + [uint64[]]$Id, [ValidateLength(1, 100)] [string]$Name, @@ -4902,7 +5143,7 @@ function Set-NetboxContact { [ValidateLength(0, 254)] [string]$Email, - [uint32]$Group, + [uint64]$Group, [ValidateLength(0, 100)] [string]$Title, @@ -5001,7 +5242,7 @@ function Set-NetboxDCIMDevice { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [string]$Name, @@ -5009,17 +5250,17 @@ function Set-NetboxDCIMDevice { [object]$Device_Type, - [uint16]$Site, + [uint64]$Site, [object]$Status, - [uint16]$Platform, + [uint64]$Platform, - [uint16]$Tenant, + [uint64]$Tenant, - [uint16]$Cluster, + [uint64]$Cluster, - [uint16]$Rack, + [uint64]$Rack, [uint16]$Position, @@ -5029,15 +5270,15 @@ function Set-NetboxDCIMDevice { [string]$Asset_Tag, - [uint16]$Virtual_Chassis, + [uint64]$Virtual_Chassis, - [uint16]$VC_Priority, + [uint64]$VC_Priority, - [uint16]$VC_Position, + [uint64]$VC_Position, - [uint16]$Primary_IP4, + [uint64]$Primary_IP4, - [uint16]$Primary_IP6, + [uint64]$Primary_IP6, [string]$Comments, @@ -5083,7 +5324,7 @@ function Set-NetboxDCIMFrontPort { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [uint16]$Device, @@ -5098,7 +5339,7 @@ function Set-NetboxDCIMFrontPort { [ValidatePattern('^[0-9a-f]{6}$')] [string]$Color, - [uint16]$Rear_Port, + [uint64]$Rear_Port, [uint16]$Rear_Port_Position, @@ -5106,7 +5347,7 @@ function Set-NetboxDCIMFrontPort { [bool]$Mark_Connected, - [uint16[]]$Tags, + [uint64[]]$Tags, [switch]$Force ) @@ -5148,9 +5389,9 @@ function Set-NetboxDCIMInterface { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, - [uint16]$Device, + [uint64]$Device, [string]$Name, @@ -5167,7 +5408,7 @@ function Set-NetboxDCIMInterface { [bool]$MGMT_Only, - [uint16]$LAG, + [uint64]$LAG, [string]$Description, @@ -5270,13 +5511,13 @@ function Set-NetboxDCIMInterfaceConnection { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [object]$Connection_Status, - [uint16]$Interface_A, + [uint64]$Interface_A, - [uint16]$Interface_B, + [uint64]$Interface_B, [switch]$Force ) @@ -5322,11 +5563,11 @@ function Set-NetboxDCIMRearPort { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, - [uint16]$Device, + [uint64]$Device, - [uint16]$Module, + [uint64]$Module, [string]$Name, @@ -5469,26 +5710,26 @@ function Set-NetboxIPAMAddress { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [int[]]$Id, + [uint64[]]$Id, [string]$Address, [string]$Status, - [int]$Tenant, + [uint64]$Tenant, - [int]$VRF, + [uint64]$VRF, [object]$Role, - [int]$NAT_Inside, + [uint64]$NAT_Inside, [hashtable]$Custom_Fields, [ValidateSet('dcim.interface', 'virtualization.vminterface', IgnoreCase = $true)] [string]$Assigned_Object_Type, - [uint16]$Assigned_Object_Id, + [uint64]$Assigned_Object_Id, [string]$Description, @@ -5547,6 +5788,69 @@ function Set-NetboxIPAMAddress { #endregion +#region File Set-NetboxIPAMAddressRange.ps1 + + +function Set-NetboxIPAMAddressRange { + [CmdletBinding(ConfirmImpact = 'Medium', + SupportsShouldProcess = $true)] + param + ( + [Parameter(Mandatory = $true, + ValueFromPipelineByPropertyName = $true)] + [uint64[]]$Id, + + [string]$Start_Address, + + [string]$End_Address, + + [object]$Status, + + [uint64]$Tenant, + + [uint64]$VRF, + + [object]$Role, + + [hashtable]$Custom_Fields, + + [string]$Description, + + [string]$Comments, + + [object[]]$Tags, + + [switch]$Mark_Utilized, + + [switch]$Force, + + [switch]$Raw + ) + + begin { + $Method = 'PATCH' + } + + process { + foreach ($RangeID in $Id) { + $Segments = [System.Collections.ArrayList]::new(@('ipam', 'ip-ranges', $RangeID)) + + Write-Verbose "Obtaining IP range from ID $RangeID" + $CurrentRange = Get-NetboxIPAMAddressRange -Id $RangeID -ErrorAction Stop + + if ($Force -or $PSCmdlet.ShouldProcess("$($CurrentRange.Start_Address) - $($CurrentRange.End_Address)", 'Set')) { + $URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters -SkipParameterByName 'Id', 'Force' + + $URI = BuildNewURI -Segments $URIComponents.Segments + + InvokeNetboxRequest -URI $URI -Body $URIComponents.Parameters -Method $Method + } + } + } +} + +#endregion + #region File Set-NetboxIPAMPrefix.ps1 @@ -5557,19 +5861,19 @@ function Set-NetboxIPAMPrefix { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [string]$Prefix, [string]$Status, - [uint16]$Tenant, + [uint64]$Tenant, - [uint16]$Site, + [uint64]$Site, - [uint16]$VRF, + [uint64]$VRF, - [uint16]$VLAN, + [uint64]$VLAN, [object]$Role, @@ -5687,29 +5991,29 @@ function Set-NetboxVirtualMachine { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16]$Id, + [uint64]$Id, [string]$Name, - [uint16]$Role, + [uint64]$Role, - [uint16]$Cluster, + [uint64]$Cluster, [object]$Status, - [uint16]$Platform, + [uint64]$Platform, - [uint16]$Primary_IP4, + [uint64]$Primary_IP4, - [uint16]$Primary_IP6, + [uint64]$Primary_IP6, [byte]$VCPUs, - [uint16]$Memory, + [uint64]$Memory, - [uint16]$Disk, + [uint64]$Disk, - [uint16]$Tenant, + [uint64]$Tenant, [string]$Comments, @@ -5754,7 +6058,7 @@ function Set-NetboxVirtualMachineInterface { ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] - [uint16[]]$Id, + [uint64[]]$Id, [string]$Name, @@ -5766,7 +6070,7 @@ function Set-NetboxVirtualMachineInterface { [boolean]$Enabled, - [uint16]$Virtual_Machine, + [uint64]$Virtual_Machine, [switch]$Force )