Compare commits

..

No commits in common. "dev" and "v1.7.2" have entirely different histories.
dev ... v1.7.2

77 changed files with 1391 additions and 66766 deletions

12
.vscode/settings.json vendored
View file

@ -4,18 +4,6 @@
"files.trimTrailingWhitespace": true,
"powershell.scriptAnalysis.settingsPath": ".vscode/PSScriptAnalyzerSettings.psd1",
"powershell.codeFormatting.newLineAfterCloseBrace": false,
"powershell.codeFormatting.useCorrectCasing": true,
"powershell.codeFormatting.preset": "OTBS",
"powershell.codeFormatting.addWhitespaceAroundPipe": true,
"powershell.codeFormatting.autoCorrectAliases": true,
"powershell.codeFormatting.newLineAfterCloseBrace": true,
"powershell.codeFormatting.newLineAfterOpenBrace": true,
"powershell.codeFormatting.openBraceOnSameLine": true,
"powershell.codeFormatting.whitespaceAfterSeparator": true,
"powershell.codeFormatting.whitespaceAroundOperator": true,
"powershell.codeFormatting.whitespaceBeforeOpenBrace": true,
"powershell.codeFormatting.whitespaceBeforeOpenParen": true,
"powershell.codeFormatting.trimWhitespaceAroundPipe": true,
"[markdown]": {
"files.trimTrailingWhitespace": false,
}

View file

@ -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 [uint64]. String will search provider names, integer will search database IDs
The name or ID of the provider. Provide either [string] or [int]. String will search provider names, integer will search database IDs
.PARAMETER Type
Type of circuit. Provide either [string] or [uint64]. String will search provider type names, integer will search database IDs
Type of circuit. Provide either [string] or [int]. String will search provider type names, integer will search database IDs
.PARAMETER Site
Location/site of circuit. Provide either [string] or [uint64]. String will search site names, integer will search database IDs
Location/site of circuit. Provide either [string] or [int]. String will search site names, integer will search database IDs
.PARAMETER Tenant
Tenant assigned to circuit. Provide either [string] or [uint64]. String will search tenant names, integer will search database IDs
Tenant assigned to circuit. Provide either [string] or [int]. 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')]
[uint64[]]$Id,
[uint16[]]$Id,
[Parameter(ParameterSetName = 'Query')]
[string]$CID,
@ -66,7 +66,7 @@ function Get-NetboxCircuit {
[datetime]$InstallDate,
[Parameter(ParameterSetName = 'Query')]
[uint64]$CommitRate,
[uint32]$CommitRate,
[Parameter(ParameterSetName = 'Query')]
[string]$Query,

View file

@ -10,17 +10,17 @@ function New-NetboxCircuit {
[string]$CID,
[Parameter(Mandatory = $true)]
[uint64]$Provider,
[uint32]$Provider,
[Parameter(Mandatory = $true)]
[uint64]$Type,
[uint32]$Type,
#[ValidateSet('Active', 'Planned', 'Provisioning', 'Offline', 'Deprovisioning', 'Decommissioned ')]
[uint16]$Status = 'Active',
[string]$Description,
[uint64]$Tenant,
[uint32]$Tenant,
[string]$Termination_A,
@ -29,7 +29,7 @@ function New-NetboxCircuit {
[string]$Termination_Z,
[ValidateRange(0, 2147483647)]
[uint64]$Commit_Rate,
[uint32]$Commit_Rate,
[string]$Comments,

View file

@ -5,7 +5,7 @@ function Get-NetboxCircuitProvider {
(
[Parameter(ParameterSetName = 'ById',
Mandatory = $true)]
[uint64[]]$Id,
[uint16[]]$Id,
[Parameter(ParameterSetName = 'Query',
Mandatory = $false)]

View file

@ -5,7 +5,7 @@ function Get-NetboxCircuitTermination {
(
[Parameter(ParameterSetName = 'ById',
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[uint32[]]$Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Circuit_ID,
@ -14,7 +14,7 @@ function Get-NetboxCircuitTermination {
[string]$Term_Side,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Port_Speed,
[uint32]$Port_Speed,
[Parameter(ParameterSetName = 'Query')]
[string]$Query,

View file

@ -4,7 +4,7 @@ function Get-NetboxCircuitType {
param
(
[Parameter(ParameterSetName = 'ById')]
[uint64[]]$Id,
[uint16[]]$Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Name,

View file

@ -1,35 +0,0 @@
function Get-NetboxDCIMCableTermination {
[CmdletBinding()]
#region Parameters
param
(
[uint16]$Limit,
[uint16]$Offset,
[Parameter(ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[uint64]$Cable,
[string]$Cable_End,
[string]$Termination_Type,
[uint64]$Termination_ID,
[switch]$Raw
)
#endregion Parameters
process {
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'cable-terminations'))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters -SkipParameterByName 'Raw'
$URI = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters
InvokeNetboxRequest -URI $URI -Raw:$Raw
}
}

View file

@ -1,55 +0,0 @@
function Get-NetboxDCIMCable {
[CmdletBinding()]
#region Parameters
param
(
[uint16]$Limit,
[uint16]$Offset,
[Parameter(ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[string]$Label,
[string]$Termination_A_Type,
[uint64]$Termination_A_ID,
[string]$Termination_B_Type,
[uint64]$Termination_B_ID,
[string]$Type,
[string]$Status,
[string]$Color,
[uint64]$Device_ID,
[string]$Device,
[uint64]$Rack_Id,
[string]$Rack,
[uint64]$Location_ID,
[string]$Location,
[switch]$Raw
)
#endregion Parameters
process {
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'cables'))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters -SkipParameterByName 'Raw'
$URI = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters
InvokeNetboxRequest -URI $URI -Raw:$Raw
}
}

View file

@ -9,43 +9,43 @@ function Get-NetboxDCIMDevice {
[uint16]$Offset,
[Parameter(ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[uint16[]]$Id,
[string]$Query,
[string]$Name,
[uint64]$Manufacturer_Id,
[uint16]$Manufacturer_Id,
[string]$Manufacturer,
[uint64]$Device_Type_Id,
[uint16]$Device_Type_Id,
[uint64]$Role_Id,
[uint16]$Role_Id,
[string]$Role,
[uint64]$Tenant_Id,
[uint16]$Tenant_Id,
[string]$Tenant,
[uint64]$Platform_Id,
[uint16]$Platform_Id,
[string]$Platform,
[string]$Asset_Tag,
[uint64]$Site_Id,
[uint16]$Site_Id,
[string]$Site,
[uint64]$Rack_Group_Id,
[uint16]$Rack_Group_Id,
[uint64]$Rack_Id,
[uint16]$Rack_Id,
[uint64]$Cluster_Id,
[uint16]$Cluster_Id,
[uint64]$Model,
[uint16]$Model,
[object]$Status,
@ -61,7 +61,7 @@ function Get-NetboxDCIMDevice {
[bool]$Has_Primary_IP,
[uint64]$Virtual_Chassis_Id,
[uint16]$Virtual_Chassis_Id,
[uint16]$Position,

View file

@ -8,7 +8,7 @@ function Get-NetboxDCIMDeviceRole {
[uint16]$Offset,
[Parameter(ParameterSetName = 'ById')]
[uint64[]]$Id,
[uint16[]]$Id,
[string]$Name,

View file

@ -8,7 +8,7 @@ function Get-NetboxDCIMDeviceType {
[uint16]$Limit,
[uint64[]]$Id,
[uint16[]]$Id,
[string]$Query,
@ -16,7 +16,7 @@ function Get-NetboxDCIMDeviceType {
[string]$Manufacturer,
[uint64]$Manufacturer_Id,
[uint16]$Manufacturer_Id,
[string]$Model,

View file

@ -16,17 +16,17 @@ function New-NetboxDCIMDevice {
[object]$Device_Type,
[Parameter(Mandatory = $true)]
[uint64]$Site,
[uint16]$Site,
[object]$Status = 'Active',
[uint64]$Platform,
[uint16]$Platform,
[uint64]$Tenant,
[uint16]$Tenant,
[uint64]$Cluster,
[uint16]$Cluster,
[uint64]$Rack,
[uint16]$Rack,
[uint16]$Position,
@ -36,15 +36,15 @@ function New-NetboxDCIMDevice {
[string]$Asset_Tag,
[uint64]$Virtual_Chassis,
[uint16]$Virtual_Chassis,
[uint64]$VC_Priority,
[uint16]$VC_Priority,
[uint64]$VC_Position,
[uint16]$VC_Position,
[uint64]$Primary_IP4,
[uint16]$Primary_IP4,
[uint64]$Primary_IP6,
[uint16]$Primary_IP6,
[string]$Comments,

View file

@ -26,7 +26,7 @@ function Remove-NetboxDCIMDevice {
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[uint16[]]$Id,
[switch]$Force
)

View file

@ -5,7 +5,7 @@ function Set-NetboxDCIMDevice {
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[uint16[]]$Id,
[string]$Name,
@ -13,17 +13,17 @@ function Set-NetboxDCIMDevice {
[object]$Device_Type,
[uint64]$Site,
[uint16]$Site,
[object]$Status,
[uint64]$Platform,
[uint16]$Platform,
[uint64]$Tenant,
[uint16]$Tenant,
[uint64]$Cluster,
[uint16]$Cluster,
[uint64]$Rack,
[uint16]$Rack,
[uint16]$Position,
@ -33,15 +33,15 @@ function Set-NetboxDCIMDevice {
[string]$Asset_Tag,
[uint64]$Virtual_Chassis,
[uint16]$Virtual_Chassis,
[uint64]$VC_Priority,
[uint16]$VC_Priority,
[uint64]$VC_Position,
[uint16]$VC_Position,
[uint64]$Primary_IP4,
[uint16]$Primary_IP4,
[uint64]$Primary_IP6,
[uint16]$Primary_IP6,
[string]$Comments,

View file

@ -1,42 +0,0 @@
function Add-NetboxDCIMFrontPort {
[CmdletBinding()]
[OutputType([pscustomobject])]
param
(
[Parameter(Mandatory = $true)]
[uint64]$Device,
[uint64]$Module,
[Parameter(Mandatory = $true)]
[string]$Name,
[string]$Label,
[Parameter(Mandatory = $true)]
[string]$Type,
[ValidatePattern('^[0-9a-f]{6}$')]
[string]$Color,
[Parameter(Mandatory = $true)]
[uint64]$Rear_Port,
[uint64]$Rear_Port_Position,
[string]$Description,
[bool]$Mark_Connected,
[uint16[]]$Tags
)
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'front-ports'))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters
$URI = BuildNewURI -Segments $URIComponents.Segments
InvokeNetboxRequest -URI $URI -Body $URIComponents.Parameters -Method POST
}

View file

@ -1,34 +0,0 @@
function Get-NetboxDCIMFrontPort {
[CmdletBinding()]
[OutputType([pscustomobject])]
param
(
[uint16]$Limit,
[uint16]$Offset,
[Parameter(ValueFromPipelineByPropertyName = $true)]
[uint64]$Id,
[string]$Name,
[string]$Device,
[uint64]$Device_Id,
[string]$Type,
[switch]$Raw
)
process {
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'front-ports'))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters
$URI = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters
InvokeNetboxRequest -URI $URI -Raw:$Raw
}
}

View file

@ -1,35 +0,0 @@
function Remove-NetboxDCIMFrontPort {
[CmdletBinding(ConfirmImpact = 'High',
SupportsShouldProcess = $true)]
param
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[switch]$Force
)
begin {
}
process {
foreach ($FrontPortID in $Id) {
$CurrentPort = Get-NetboxDCIMFrontPort -Id $FrontPortID -ErrorAction Stop
if ($Force -or $pscmdlet.ShouldProcess("Name: $($CurrentPort.Name) | ID: $($CurrentPort.Id)", "Remove")) {
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'front-ports', $CurrentPort.Id))
$URI = BuildNewURI -Segments $Segments
InvokeNetboxRequest -URI $URI -Method DELETE
}
}
}
end {
}
}

View file

@ -1,60 +0,0 @@
function Set-NetboxDCIMFrontPort {
[CmdletBinding(ConfirmImpact = 'Medium',
SupportsShouldProcess = $true)]
[OutputType([pscustomobject])]
param
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[uint16]$Device,
[uint16]$Module,
[string]$Name,
[string]$Label,
[string]$Type,
[ValidatePattern('^[0-9a-f]{6}$')]
[string]$Color,
[uint64]$Rear_Port,
[uint16]$Rear_Port_Position,
[string]$Description,
[bool]$Mark_Connected,
[uint64[]]$Tags,
[switch]$Force
)
begin {
}
process {
foreach ($FrontPortID in $Id) {
$CurrentPort = Get-NetboxDCIMFrontPort -Id $FrontPortID -ErrorAction Stop
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'front-ports', $CurrentPort.Id))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters -SkipParameterByName 'Id'
$URI = BuildNewURI -Segments $Segments
if ($Force -or $pscmdlet.ShouldProcess("Front Port ID $($CurrentPort.Id)", "Set")) {
InvokeNetboxRequest -URI $URI -Body $URIComponents.Parameters -Method PATCH
}
}
}
end {
}
}

View file

@ -9,13 +9,13 @@ function Get-NetboxDCIMPlatform {
[uint16]$Offset,
[Parameter(ParameterSetName = 'ById')]
[uint64[]]$Id,
[uint16[]]$Id,
[string]$Name,
[string]$Slug,
[uint64]$Manufacturer_Id,
[uint16]$Manufacturer_Id,
[string]$Manufacturer,

View file

@ -5,14 +5,11 @@ function Add-NetboxDCIMInterface {
param
(
[Parameter(Mandatory = $true)]
[uint64]$Device,
[uint16]$Device,
[Parameter(Mandatory = $true)]
[string]$Name,
[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,
[bool]$Enabled,
[object]$Form_Factor,
@ -23,7 +20,7 @@ function Add-NetboxDCIMInterface {
[bool]$MGMT_Only,
[uint64]$LAG,
[uint16]$LAG,
[string]$Description,

View file

@ -30,10 +30,10 @@ function Add-NetboxDCIMInterfaceConnection {
[object]$Connection_Status,
[Parameter(Mandatory = $true)]
[uint64]$Interface_A,
[uint16]$Interface_A,
[Parameter(Mandatory = $true)]
[uint64]$Interface_B
[uint16]$Interface_B
)
# Verify if both Interfaces exist

View file

@ -1,4 +1,5 @@
function Get-NetboxDCIMInterface {

function Get-NetboxDCIMInterface {
[CmdletBinding()]
[OutputType([pscustomobject])]
param
@ -8,9 +9,9 @@
[uint16]$Offset,
[Parameter(ValueFromPipelineByPropertyName = $true)]
[uint64]$Id,
[uint16]$Id,
[uint64]$Name,
[uint16]$Name,
[object]$Form_Factor,
@ -22,12 +23,11 @@
[string]$Device,
[uint64]$Device_Id,
[uint16]$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]$Type,
[uint64]$LAG_Id,
[uint16]$LAG_Id,
[string]$MAC_Address,

View file

@ -8,13 +8,13 @@ function Get-NetboxDCIMInterfaceConnection {
[uint16]$Offset,
[uint64]$Id,
[uint16]$Id,
[object]$Connection_Status,
[uint64]$Site,
[uint16]$Site,
[uint64]$Device,
[uint16]$Device,
[switch]$Raw
)

View file

@ -1,5 +1,6 @@
function Remove-NetboxDCIMInterface {
<#

function Remove-NetboxDCIMInterface {
<#
.SYNOPSIS
Removes an interface
@ -20,12 +21,12 @@
#>
[CmdletBinding(ConfirmImpact = 'High',
SupportsShouldProcess = $true)]
SupportsShouldProcess = $true)]
param
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
ValueFromPipelineByPropertyName = $true)]
[uint16[]]$Id,
[switch]$Force
)

View file

@ -7,7 +7,7 @@ function Remove-NetboxDCIMInterfaceConnection {
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[uint16[]]$Id,
[switch]$Force
)

View file

@ -1,4 +1,5 @@
function Set-NetboxDCIMInterface {

function Set-NetboxDCIMInterface {
[CmdletBinding(ConfirmImpact = 'Medium',
SupportsShouldProcess = $true)]
[OutputType([pscustomobject])]
@ -6,9 +7,9 @@
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[uint16[]]$Id,
[uint64]$Device,
[uint16]$Device,
[string]$Name,
@ -16,16 +17,13 @@
[object]$Form_Factor,
[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]$MTU,
[string]$MAC_Address,
[bool]$MGMT_Only,
[uint64]$LAG,
[uint16]$LAG,
[string]$Description,
@ -36,9 +34,7 @@
[uint16]$Untagged_VLAN,
[ValidateRange(1, 4094)]
[uint16[]]$Tagged_VLANs,
[switch]$Force
[uint16[]]$Tagged_VLANs
)
begin {

View file

@ -35,13 +35,13 @@ function Set-NetboxDCIMInterfaceConnection {
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[uint16[]]$Id,
[object]$Connection_Status,
[uint64]$Interface_A,
[uint16]$Interface_A,
[uint64]$Interface_B,
[uint16]$Interface_B,
[switch]$Force
)

View file

@ -1,48 +0,0 @@
function Add-NetboxDCIMRearPort {
[CmdletBinding()]
[OutputType([pscustomobject])]
param
(
[Parameter(Mandatory = $true)]
[uint64]$Device,
[uint64]$Module,
[Parameter(Mandatory = $true)]
[string]$Name,
[string]$Label,
[Parameter(Mandatory = $true)]
[string]$Type,
[ValidatePattern('^[0-9a-f]{6}$')]
[string]$Color,
[uint16]$Positions = 1,
[string]$Description,
[bool]$Mark_Connected,
[uint16[]]$Tags
)
begin {
}
process {
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'rear-ports'))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters
$URI = BuildNewURI -Segments $URIComponents.Segments
InvokeNetboxRequest -URI $URI -Body $URIComponents.Parameters -Method POST
}
end {
}
}

View file

@ -1,34 +0,0 @@
function Get-NetboxDCIMRearPort {
[CmdletBinding()]
[OutputType([pscustomobject])]
param
(
[uint16]$Limit,
[uint16]$Offset,
[Parameter(ValueFromPipelineByPropertyName = $true)]
[uint64]$Id,
[string]$Name,
[string]$Device,
[uint64]$Device_Id,
[string]$Type,
[switch]$Raw
)
process {
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'rear-ports'))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters
$URI = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters
InvokeNetboxRequest -URI $URI -Raw:$Raw
}
}

View file

@ -1,35 +0,0 @@
function Remove-NetboxDCIMRearPort {
[CmdletBinding(ConfirmImpact = 'High',
SupportsShouldProcess = $true)]
param
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[switch]$Force
)
begin {
}
process {
foreach ($RearPortID in $Id) {
$CurrentPort = Get-NetboxDCIMRearPort -Id $RearPortID -ErrorAction Stop
if ($Force -or $pscmdlet.ShouldProcess("Name: $($CurrentPort.Name) | ID: $($CurrentPort.Id)", "Remove")) {
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'rear-ports', $CurrentPort.Id))
$URI = BuildNewURI -Segments $Segments
InvokeNetboxRequest -URI $URI -Method DELETE
}
}
}
end {
}
}

View file

@ -1,59 +0,0 @@

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

View file

@ -5,7 +5,7 @@ function Get-NetboxDCIMSite {
param
(
[Parameter(ParameterSetName = 'ByID', ValueFromPipelineByPropertyName = $true)]
[uint64]$Id,
[uint32]$Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Name,
@ -20,7 +20,7 @@ function Get-NetboxDCIMSite {
[string]$Facility,
[Parameter(ParameterSetName = 'Query')]
[uint64]$ASN,
[uint32]$ASN,
[Parameter(ParameterSetName = 'Query')]
[decimal]$Latitude,
@ -38,13 +38,13 @@ function Get-NetboxDCIMSite {
[string]$Contact_Email,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Tenant_Group_ID,
[uint32]$Tenant_Group_ID,
[Parameter(ParameterSetName = 'Query')]
[string]$Tenant_Group,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Tenant_ID,
[uint32]$Tenant_ID,
[Parameter(ParameterSetName = 'Query')]
[string]$Tenant,
@ -53,7 +53,7 @@ function Get-NetboxDCIMSite {
[string]$Status,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Region_ID,
[uint32]$Region_ID,
[Parameter(ParameterSetName = 'Query')]
[string]$Region,

View file

@ -40,7 +40,7 @@ function New-NetboxDCIMSite {
[string]$Facility,
[uint64]$ASN,
[uint32]$ASN,
[decimal]$Latitude,
@ -52,13 +52,13 @@ function New-NetboxDCIMSite {
[string]$Contact_Email,
[uint64]$Tenant_Group,
[int]$Tenant_Group,
[uint64]$Tenant,
[int]$Tenant,
[string]$Status,
[uint64]$Region,
[uint32]$Region,
[string]$Description,

View file

@ -1,31 +0,0 @@

function Get-NetboxTag {
[CmdletBinding()]
[OutputType([pscustomobject])]
param
(
[Parameter(ValueFromPipelineByPropertyName = $true)]
[uint64]$Id,
[string]$Name,
[string]$Slug,
[uint16]$Limit,
[uint16]$Offset,
[switch]$Raw
)
process {
$Segments = [System.Collections.ArrayList]::new(@('extras', 'tags'))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters
$URI = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters
InvokeNetboxRequest -URI $URI -Raw:$Raw
}
}

View file

@ -7,7 +7,7 @@
[string]$Address,
[Parameter(ParameterSetName = 'ByID')]
[uint64[]]$Id,
[uint32[]]$Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Query,
@ -25,28 +25,28 @@
[string]$VRF,
[Parameter(ParameterSetName = 'Query')]
[uint64]$VRF_Id,
[uint32]$VRF_Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Tenant,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Tenant_Id,
[uint32]$Tenant_Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Device,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Device_ID,
[uint32]$Device_ID,
[Parameter(ParameterSetName = 'Query')]
[string]$Virtual_Machine,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Virtual_Machine_Id,
[uint32]$Virtual_Machine_Id,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Interface_Id,
[uint32]$Interface_Id,
[Parameter(ParameterSetName = 'Query')]
[object]$Status,

View file

@ -40,10 +40,10 @@ function Get-NetboxIPAMAvailableIP {
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[Alias('Id')]
[uint64]$Prefix_ID,
[int]$Prefix_ID,
[Alias('NumberOfIPs')]
[uint64]$Limit,
[int]$Limit,
[switch]$Raw
)

View file

@ -66,17 +66,17 @@ function New-NetboxIPAMAddress {
[object]$Status = 'Active',
[uint64]$Tenant,
[int]$Tenant,
[uint64]$VRF,
[int]$VRF,
[object]$Role,
[uint64]$NAT_Inside,
[int]$NAT_Inside,
[hashtable]$Custom_Fields,
[uint64]$Interface,
[int]$Interface,
[string]$Description,
@ -85,7 +85,7 @@ function New-NetboxIPAMAddress {
[ValidateSet('dcim.interface', 'virtualization.vminterface', IgnoreCase = $true)]
[string]$Assigned_Object_Type,
[uint64]$Assigned_Object_Id,
[int]$Assigned_Object_Id,
[switch]$Raw
)

View file

@ -26,7 +26,7 @@ function Remove-NetboxIPAMAddress {
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[int[]]$Id,
[switch]$Force
)

View file

@ -6,26 +6,26 @@ function Set-NetboxIPAMAddress {
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[int[]]$Id,
[string]$Address,
[string]$Status,
[uint64]$Tenant,
[int]$Tenant,
[uint64]$VRF,
[int]$VRF,
[object]$Role,
[uint64]$NAT_Inside,
[int]$NAT_Inside,
[hashtable]$Custom_Fields,
[ValidateSet('dcim.interface', 'virtualization.vminterface', IgnoreCase = $true)]
[string]$Assigned_Object_Type,
[uint64]$Assigned_Object_Id,
[uint16]$Assigned_Object_Id,
[string]$Description,

View file

@ -7,7 +7,7 @@ function Get-NetboxIPAMAggregate {
[string]$Query,
[Parameter(ParameterSetName = 'ByID')]
[uint64[]]$Id,
[uint16[]]$Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Prefix,
@ -16,7 +16,7 @@ function Get-NetboxIPAMAggregate {
[object]$Family,
[Parameter(ParameterSetName = 'Query')]
[uint64]$RIR_Id,
[uint16]$RIR_Id,
[Parameter(ParameterSetName = 'Query')]
[string]$RIR,

View file

@ -91,7 +91,7 @@ function Get-NetboxIPAMPrefix {
[string]$Query,
[Parameter(ParameterSetName = 'ByID')]
[uint64[]]$Id,
[uint32[]]$Id,
[Parameter(ParameterSetName = 'Query')]
[object]$Family,
@ -116,25 +116,25 @@ function Get-NetboxIPAMPrefix {
[string]$VRF,
[Parameter(ParameterSetName = 'Query')]
[uint64]$VRF_Id,
[uint32]$VRF_Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Tenant,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Tenant_Id,
[uint32]$Tenant_Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Site,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Site_Id,
[uint32]$Site_Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Vlan_VId,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Vlan_Id,
[uint32]$Vlan_Id,
[Parameter(ParameterSetName = 'Query')]
[object]$Status,
@ -143,7 +143,7 @@ function Get-NetboxIPAMPrefix {
[string]$Role,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Role_Id,
[uint32]$Role_Id,
[Parameter(ParameterSetName = 'Query')]
[uint16]$Limit,

View file

@ -10,7 +10,7 @@ function New-NetboxIPAMPrefix {
[object]$Status = 'Active',
[uint64]$Tenant,
[uint16]$Tenant,
[object]$Role,
@ -18,11 +18,11 @@ function New-NetboxIPAMPrefix {
[string]$Description,
[uint64]$Site,
[uint16]$Site,
[uint64]$VRF,
[uint16]$VRF,
[uint64]$VLAN,
[uint16]$VLAN,
[hashtable]$Custom_Fields,

View file

@ -6,19 +6,19 @@ function Set-NetboxIPAMPrefix {
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[uint16[]]$Id,
[string]$Prefix,
[string]$Status,
[uint64]$Tenant,
[uint16]$Tenant,
[uint64]$Site,
[uint16]$Site,
[uint64]$VRF,
[uint16]$VRF,
[uint64]$VLAN,
[uint16]$VLAN,
[object]$Role,

View file

@ -1,73 +0,0 @@

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
}
}
}

View file

@ -1,106 +0,0 @@

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
}
}
}

View file

@ -1,47 +0,0 @@

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
}
}
}
}

View file

@ -1,58 +0,0 @@

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
}
}
}
}

View file

@ -49,7 +49,7 @@ function Get-NetboxIPAMRole {
[string]$Query,
[Parameter(ParameterSetName = 'ByID')]
[uint64[]]$Id,
[uint32[]]$Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Slug,

View file

@ -9,7 +9,7 @@ function Get-NetboxIPAMVLAN {
[uint16]$VID,
[Parameter(ParameterSetName = 'ByID')]
[uint64[]]$Id,
[uint32[]]$Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Query,
@ -21,13 +21,13 @@ function Get-NetboxIPAMVLAN {
[string]$Tenant,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Tenant_Id,
[uint32]$Tenant_Id,
[Parameter(ParameterSetName = 'Query')]
[string]$TenantGroup,
[Parameter(ParameterSetName = 'Query')]
[uint64]$TenantGroup_Id,
[uint32]$TenantGroup_Id,
[Parameter(ParameterSetName = 'Query')]
[object]$Status,
@ -39,19 +39,19 @@ function Get-NetboxIPAMVLAN {
[string]$Site,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Site_Id,
[uint32]$Site_Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Group,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Group_Id,
[uint32]$Group_Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Role,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Role_Id,
[uint32]$Role_Id,
[Parameter(ParameterSetName = 'Query')]
[uint16]$Limit,

View file

@ -53,7 +53,7 @@
[object]$Status = 'Active',
[uint64]$Tenant,
[uint16]$Tenant,
[object]$Role,

View file

@ -1,19 +1,13 @@

function Get-NetboxAPIDefinition {
[CmdletBinding()]
param
(
[ValidateSet('json', 'yaml', IgnoreCase = $true)]
[string]$Format = 'json'
)
param ()
#$URI = "https://netbox.neonet.org/api/schema/?format=json"
#$URI = "https://netbox.neonet.org/api/docs/?format=openapi"
$Segments = [System.Collections.ArrayList]::new(@('schema'))
$Segments = [System.Collections.ArrayList]::new(@('docs'))
$URIComponents = BuildURIComponents -URISegments $Segments -ParametersDictionary @{
'format' = $Format.ToLower()
}
$URIComponents = BuildURIComponents -URISegments $Segments -ParametersDictionary @{'format' = 'openapi' }
$URI = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters -SkipConnectedCheck

View file

@ -42,7 +42,7 @@
[string]$Model,
[Parameter(ParameterSetName = 'ByID')]
[uint64[]]$Id,
[uint32[]]$Id,
[Parameter(ParameterSetName = 'Query')]
[string]$App_Label,

View file

@ -52,22 +52,22 @@ function Get-NetboxContactAssignment {
[string]$Name,
[Parameter(ParameterSetName = 'ByID')]
[uint64[]]$Id,
[uint32[]]$Id,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Content_Type_Id,
[uint32]$Content_Type_Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Content_Type,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Object_Id,
[uint32]$Object_Id,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Contact_Id,
[uint32]$Contact_Id,
[Parameter(ParameterSetName = 'Query')]
[uint64]$Role_Id,
[uint32]$Role_Id,
[Parameter(ParameterSetName = 'Query')]
[uint16]$Limit,

View file

@ -1,35 +1,35 @@

function New-NetboxContactAssignment {
function New-NetboxContactRole {
<#
.SYNOPSIS
Create a new contact role assignment in Netbox
Create a new contact role in Netbox
.DESCRIPTION
Creates a new contact role assignment in Netbox
Creates a new contact role object in Netbox
.PARAMETER Content_Type
The content type for this assignment.
A description of the Content_Type parameter.
.PARAMETER Object_Id
ID of the object to assign.
A description of the Object_Id parameter.
.PARAMETER Contact
ID of the contact to assign.
A description of the Contact parameter.
.PARAMETER Role
ID of the contact role to assign.
A description of the Role parameter.
.PARAMETER Priority
Piority of the contact assignment.
A description of the Priority parameter.
.PARAMETER Raw
Return the unparsed data from the HTTP request
.EXAMPLE
PS C:\> New-NetboxContactAssignment -Content_Type 'dcim.location' -Object_id 10 -Contact 15 -Role 10 -Priority 'Primary'
PS C:\> New-NetboxContactAssignment -Name 'Leroy Jenkins' -Email 'leroy.jenkins@example.com'
.NOTES
Valid content types: https://docs.netbox.dev/en/stable/features/contacts/#contacts_1
Additional information about the function.
#>
[CmdletBinding(ConfirmImpact = 'Low',
@ -39,17 +39,16 @@ function New-NetboxContactAssignment {
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[ValidateSet('circuits.circuit', 'circuits.provider', 'circuits.provideraccount', 'dcim.device', 'dcim.location', 'dcim.manufacturer', 'dcim.powerpanel', 'dcim.rack', 'dcim.region', 'dcim.site', 'dcim.sitegroup', 'tenancy.tenant', 'virtualization.cluster', 'virtualization.clustergroup', 'virtualization.virtualmachine', IgnoreCase = $true)]
[string]$Content_Type,
[object]$Content_Type,
[Parameter(Mandatory = $true)]
[uint64]$Object_Id,
[uint32]$Object_Id,
[Parameter(Mandatory = $true)]
[uint64]$Contact,
[uint32]$Contact,
[Parameter(Mandatory = $true)]
[uint64]$Role,
[uint32]$Role,
[ValidateSet('primary', 'secondary', 'tertiary', 'inactive', IgnoreCase = $true)]
[string]$Priority,
@ -58,17 +57,47 @@ function New-NetboxContactAssignment {
)
begin {
$Method = 'POST'
# https://docs.netbox.dev/en/stable/features/contacts/
$AllowedContentTypes = @{
10 = "circuits.circuit"
7 = "circuits.provider"
19 = "dcim.device"
25 = "dcim.location"
29 = "dcim.manufacturer"
77 = "dcim.powerpanel"
20 = "dcim.rack"
30 = "dcim.region"
18 = "dcim.site"
92 = "dcim.sitegroup"
58 = "tenancy.tenant"
63 = "virtualization.cluster"
64 = "virtualization.clustergroup"
61 = "virtualization.virtualmachine"
}
}
process {
$Segments = [System.Collections.ArrayList]::new(@('tenancy', 'contact-assignments'))
$Segments = [System.Collections.ArrayList]::new(@('tenancy', 'contact-assignment'))
$Method = 'POST'
if ($Content_Type -is [string]) {
# Need to convert this to an integer
$Content_Type = ($AllowedContentTypes.GetEnumerator() | Where-Object {
$_.Value -eq $Content_Type
}).Key
} elseif ($Content_Type -is [int]) {
if ($Content_Type -notin $($AllowedContentTypes).Keys) {
throw "Invalid content type defined"
}
} else {
throw "Invalid content type defined"
}
$URIComponents = BuildURIComponents -URISegments $Segments -ParametersDictionary $PSBoundParameters
$URI = BuildNewURI -Segments $URIComponents.Segments
if ($PSCmdlet.ShouldProcess($Content_Type, 'Create new contact assignment')) {
if ($PSCmdlet.ShouldProcess($Address, 'Create new contact assignment')) {
InvokeNetboxRequest -URI $URI -Method $Method -Body $URIComponents.Parameters -Raw:$Raw
}
}

View file

@ -1,84 +0,0 @@

function Set-NetboxContactAssignment {
<#
.SYNOPSIS
Update a contact role assignment in Netbox
.DESCRIPTION
Updates a contact role assignment in Netbox
.PARAMETER Content_Type
The content type for this assignment.
.PARAMETER Object_Id
ID of the object to assign.
.PARAMETER Contact
ID of the contact to assign.
.PARAMETER Role
ID of the contact role to assign.
.PARAMETER Priority
Priority of the contact assignment.
.PARAMETER Raw
Return the unparsed data from the HTTP request
.EXAMPLE
PS C:\> Set-NetboxContactAssignment -Id 11 -Content_Type 'dcim.location' -Object_id 10 -Contact 15 -Role 10 -Priority 'Primary'
.NOTES
Valid content types: https://docs.netbox.dev/en/stable/features/contacts/#contacts_1
#>
[CmdletBinding(ConfirmImpact = 'Low',
SupportsShouldProcess = $true)]
[OutputType([pscustomobject])]
param
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[Parameter(ValueFromPipelineByPropertyName = $true)]
[ValidateSet('circuits.circuit', 'circuits.provider', 'circuits.provideraccount', 'dcim.device', 'dcim.location', 'dcim.manufacturer', 'dcim.powerpanel', 'dcim.rack', 'dcim.region', 'dcim.site', 'dcim.sitegroup', 'tenancy.tenant', 'virtualization.cluster', 'virtualization.clustergroup', 'virtualization.virtualmachine', IgnoreCase = $true)]
[string]$Content_Type,
[uint64]$Object_Id,
[uint64]$Contact,
[uint64]$Role,
[ValidateSet('primary', 'secondary', 'tertiary', 'inactive', IgnoreCase = $true)]
[string]$Priority,
[switch]$Raw
)
begin {
$Method = 'Patch'
}
process {
foreach ($ContactAssignmentId in $Id) {
$Segments = [System.Collections.ArrayList]::new(@('tenancy', 'contact-assignments', $ContactAssignmentId))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters -SkipParameterByName 'Id', 'Force'
$URI = BuildNewURI -Segments $URIComponents.Segments
$CurrentContactAssignment = Get-NetboxContactAssignment -Id $ContactAssignmentId -ErrorAction Stop
if ($PSCmdlet.ShouldProcess($CurrentContactAssignment.Id, 'Update contact assignment')) {
InvokeNetboxRequest -URI $URI -Method $Method -Body $URIComponents.Parameters -Raw:$Raw
}
}
}
}

View file

@ -40,7 +40,7 @@ function Get-NetboxContactRole {
[string]$Name,
[Parameter(ParameterSetName = 'ByID')]
[uint64[]]$Id,
[uint32[]]$Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Query,

View file

@ -60,7 +60,7 @@ function New-NetboxContactRole {
$URI = BuildNewURI -Segments $URIComponents.Segments
if ($PSCmdlet.ShouldProcess($Name, 'Create new contact')) {
if ($PSCmdlet.ShouldProcess($Address, 'Create new contact')) {
InvokeNetboxRequest -URI $URI -Method $Method -Body $URIComponents.Parameters -Raw:$Raw
}
}

View file

@ -1,80 +0,0 @@
function Set-NetboxContactRole {
<#
.SYNOPSIS
Update a contact role in Netbox
.DESCRIPTION
Updates a contact role in Netbox
.PARAMETER Name
The contact role name, e.g "Network Support"
.PARAMETER Slug
The unique URL for the role. Can only contain hypens, A-Z, a-z, 0-9, and underscores
.PARAMETER Description
Short description of the contact role
.PARAMETER Custom_Fields
A description of the Custom_Fields parameter.
.PARAMETER Raw
Return the unparsed data from the HTTP request
.EXAMPLE
PS C:\> New-NetboxContact -Name 'Leroy Jenkins' -Email 'leroy.jenkins@example.com'
.NOTES
Additional information about the function.
#>
[CmdletBinding(ConfirmImpact = 'Low',
SupportsShouldProcess = $true)]
[OutputType([pscustomobject])]
param
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[Parameter(ValueFromPipelineByPropertyName = $true)]
[ValidateLength(1, 100)]
[string]$Name,
[ValidateLength(1, 100)]
[ValidatePattern('^[-a-zA-Z0-9_]+$')]
[string]$Slug,
[ValidateLength(0, 200)]
[string]$Description,
[hashtable]$Custom_Fields,
[switch]$Raw
)
begin {
$Method = 'PATCH'
}
process {
foreach ($ContactRoleId in $Id) {
$Segments = [System.Collections.ArrayList]::new(@('tenancy', 'contacts', $ContactRoleId))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters -SkipParameterByName 'Id', 'Force'
$URI = BuildNewURI -Segments $URIComponents.Segments
$CurrentContactRole = Get-NetboxContactRole -Id $ContactRoleId -ErrorAction Stop
if ($Force -or $PSCmdlet.ShouldProcess($CurrentContactRole.Name, 'Update contact role')) {
InvokeNetboxRequest -URI $URI -Method $Method -Body $URIComponents.Parameters -Raw:$Raw
}
}
}
}

View file

@ -58,7 +58,7 @@ function Get-NetboxContact {
[string]$Name,
[Parameter(ParameterSetName = 'ByID')]
[uint64[]]$Id,
[uint32[]]$Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Query,
@ -79,7 +79,7 @@ function Get-NetboxContact {
[string]$Group,
[Parameter(ParameterSetName = 'Query')]
[uint64]$GroupID,
[uint16]$GroupID,
[Parameter(ParameterSetName = 'Query')]
[uint16]$Limit,

View file

@ -88,7 +88,7 @@ function New-NetboxContact {
$URI = BuildNewURI -Segments $URIComponents.Segments
if ($PSCmdlet.ShouldProcess($Name, 'Create new contact')) {
if ($PSCmdlet.ShouldProcess($Address, 'Create new contact')) {
InvokeNetboxRequest -URI $URI -Method $Method -Body $URIComponents.Parameters -Raw:$Raw
}
}

View file

@ -60,7 +60,7 @@ function Set-NetboxContact {
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[uint32[]]$Id,
[ValidateLength(1, 100)]
[string]$Name,
@ -68,7 +68,7 @@ function Set-NetboxContact {
[ValidateLength(0, 254)]
[string]$Email,
[uint64]$Group,
[uint32]$Group,
[ValidateLength(0, 100)]
[string]$Title,
@ -106,7 +106,7 @@ function Set-NetboxContact {
$URI = BuildNewURI -Segments $URIComponents.Segments
$CurrentContact = Get-NetboxContact -Id $ContactId -ErrorAction Stop
$CurrentContact = Get-NetboxContact -Id $ContactId
if ($Force -or $PSCmdlet.ShouldProcess($CurrentContact.Name, 'Update contact')) {
InvokeNetboxRequest -URI $URI -Method $Method -Body $URIComponents.Parameters -Raw:$Raw

View file

@ -52,7 +52,7 @@ function Get-NetboxTenant {
[string]$Name,
[Parameter(ParameterSetName = 'ByID')]
[uint64[]]$Id,
[uint32[]]$Id,
[Parameter(ParameterSetName = 'Query')]
[string]$Query,
@ -64,7 +64,7 @@ function Get-NetboxTenant {
[string]$Group,
[Parameter(ParameterSetName = 'Query')]
[uint64]$GroupID,
[uint16]$GroupID,
[Parameter(ParameterSetName = 'Query')]
[hashtable]$CustomFields,

View file

@ -91,35 +91,35 @@ function Get-NetboxVirtualMachine {
[string]$Name,
[uint64[]]$Id,
[uint16[]]$Id,
[object]$Status,
[string]$Tenant,
[uint64]$Tenant_ID,
[uint16]$Tenant_ID,
[string]$Platform,
[uint64]$Platform_ID,
[uint16]$Platform_ID,
[string]$Cluster_Group,
[uint64]$Cluster_Group_Id,
[uint16]$Cluster_Group_Id,
[string]$Cluster_Type,
[uint64]$Cluster_Type_Id,
[uint16]$Cluster_Type_Id,
[uint64]$Cluster_Id,
[uint16]$Cluster_Id,
[string]$Site,
[uint64]$Site_Id,
[uint16]$Site_Id,
[string]$Role,
[uint64]$Role_Id,
[uint16]$Role_Id,
[uint16]$Limit,

View file

@ -9,27 +9,27 @@ function New-NetboxVirtualMachine {
[string]$Name,
[Parameter(Mandatory = $true)]
[uint64]$Site,
[uint16]$Site,
[uint64]$Cluster,
[uint16]$Cluster,
[uint64]$Tenant,
[uint16]$Tenant,
[object]$Status = 'Active',
[uint64]$Role,
[uint16]$Role,
[uint64]$Platform,
[uint16]$Platform,
[uint16]$vCPUs,
[uint64]$Memory,
[uint16]$Memory,
[uint64]$Disk,
[uint16]$Disk,
[uint64]$Primary_IP4,
[uint16]$Primary_IP4,
[uint64]$Primary_IP6,
[uint16]$Primary_IP6,
[hashtable]$Custom_Fields,

View file

@ -26,7 +26,7 @@ function Remove-NetboxVirtualMachine {
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[uint16[]]$Id,
[switch]$Force
)

View file

@ -6,29 +6,29 @@ function Set-NetboxVirtualMachine {
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64]$Id,
[uint16]$Id,
[string]$Name,
[uint64]$Role,
[uint16]$Role,
[uint64]$Cluster,
[uint16]$Cluster,
[object]$Status,
[uint64]$Platform,
[uint16]$Platform,
[uint64]$Primary_IP4,
[uint16]$Primary_IP4,
[uint64]$Primary_IP6,
[uint16]$Primary_IP6,
[byte]$VCPUs,
[uint64]$Memory,
[uint16]$Memory,
[uint64]$Disk,
[uint16]$Disk,
[uint64]$Tenant,
[uint16]$Tenant,
[string]$Comments,

View file

@ -7,7 +7,7 @@ function Add-NetboxVirtualMachineInterface {
[string]$Name,
[Parameter(Mandatory = $true)]
[uint64]$Virtual_Machine,
[uint16]$Virtual_Machine,
[boolean]$Enabled = $true,

View file

@ -48,7 +48,7 @@ function Get-NetboxVirtualMachineInterface {
param
(
[Parameter(ValueFromPipeline = $true)]
[uint64]$Id,
[uint16]$Id,
[string]$Name,
@ -58,7 +58,7 @@ function Get-NetboxVirtualMachineInterface {
[uint16]$MTU,
[uint64]$Virtual_Machine_Id,
[uint16]$Virtual_Machine_Id,
[string]$Virtual_Machine,

View file

@ -7,7 +7,7 @@ function Set-NetboxVirtualMachineInterface {
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[uint16[]]$Id,
[string]$Name,
@ -19,7 +19,7 @@ function Set-NetboxVirtualMachineInterface {
[boolean]$Enabled,
[uint64]$Virtual_Machine,
[uint16]$Virtual_Machine,
[switch]$Force
)

View file

@ -58,19 +58,19 @@ function Get-NetboxVirtualizationCluster {
[Alias('q')]
[string]$Query,
[uint64[]]$Id,
[uint16[]]$Id,
[string]$Group,
[uint64]$Group_Id,
[uint16]$Group_Id,
[string]$Type,
[uint64]$Type_Id,
[uint16]$Type_Id,
[string]$Site,
[uint64]$Site_Id,
[uint16]$Site_Id,
[uint16]$Limit,

View file

@ -11,7 +11,7 @@ function Get-NetboxVirtualizationClusterGroup {
[string]$Query,
[uint64[]]$Id,
[uint32[]]$Id,
[uint16]$Limit,

View file

@ -1,9 +1,9 @@
#
#
# Module manifest for module 'NetboxPS'
#
# Generated by: Ben Claussen
#
# Generated on: 2023-11-09
# Generated on: 2023-03-10
#
@{
@ -12,7 +12,7 @@
RootModule = 'NetboxPS.psm1'
# Version number of this module.
ModuleVersion = '1.8.5'
ModuleVersion = '1.7.2'
# Supported PSEditions
# CompatiblePSEditions = @()
@ -69,49 +69,40 @@ CLRVersion = '2.0.50727'
NestedModules = @()
# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = 'Add-NetboxDCIMFrontPort', 'Add-NetboxDCIMInterface',
'Add-NetboxDCIMInterfaceConnection', 'Add-NetboxDCIMRearPort',
'Add-NetboxVirtualMachineInterface', 'Clear-NetboxCredential',
'Connect-NetboxAPI', 'Get-ModelDefinition', 'Get-NetboxAPIDefinition',
'Get-NetboxCircuit', 'Get-NetboxCircuitProvider',
'Get-NetboxCircuitTermination', 'Get-NetboxCircuitType',
'Get-NetboxContact', 'Get-NetboxContactAssignment',
'Get-NetboxContactRole', 'Get-NetboxContentType',
'Get-NetboxCredential', 'Get-NetboxDCIMCable',
'Get-NetboxDCIMCableTermination', 'Get-NetboxDCIMDevice',
'Get-NetboxDCIMDeviceRole', 'Get-NetboxDCIMDeviceType',
'Get-NetboxDCIMFrontPort', 'Get-NetboxDCIMInterface',
'Get-NetboxDCIMInterfaceConnection', 'Get-NetboxDCIMPlatform',
'Get-NetboxDCIMRearPort', 'Get-NetboxDCIMSite', 'Get-NetboxHostname',
'Get-NetboxHostPort', 'Get-NetboxHostScheme',
'Get-NetboxInvokeParams', 'Get-NetboxIPAMAddress',
'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-NetboxIPAMAddressRange',
'New-NetboxIPAMPrefix', 'New-NetboxIPAMVLAN', 'New-NetboxTenant',
'New-NetboxVirtualMachine', 'Remove-NetboxDCIMDevice',
'Remove-NetboxDCIMFrontPort', 'Remove-NetboxDCIMInterface',
'Remove-NetboxDCIMInterfaceConnection', 'Remove-NetboxDCIMRearPort',
'Remove-NetboxDCIMSite', 'Remove-NetboxIPAMAddress',
'Remove-NetboxIPAMAddressRange', 'Remove-NetboxVirtualMachine',
'Set-NetboxCipherSSL', 'Set-NetboxContact',
'Set-NetboxContactAssignment', 'Set-NetboxContactRole',
'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'
FunctionsToExport = 'Add-NetboxDCIMInterface', 'Add-NetboxDCIMInterfaceConnection',
'Add-NetboxVirtualMachineInterface', 'Clear-NetboxCredential',
'Connect-NetboxAPI', 'Get-ModelDefinition', 'Get-NetboxAPIDefinition',
'Get-NetboxCircuit', 'Get-NetboxCircuitProvider',
'Get-NetboxCircuitTermination', 'Get-NetboxCircuitType',
'Get-NetboxContact', 'Get-NetboxContactAssignment',
'Get-NetboxContactRole', 'Get-NetboxContentType',
'Get-NetboxCredential', 'Get-NetboxDCIMDevice',
'Get-NetboxDCIMDeviceRole', 'Get-NetboxDCIMDeviceType',
'Get-NetboxDCIMInterface', 'Get-NetboxDCIMInterfaceConnection',
'Get-NetboxDCIMPlatform', 'Get-NetboxDCIMSite', 'Get-NetboxHostname',
'Get-NetboxHostPort', 'Get-NetboxHostScheme',
'Get-NetboxInvokeParams', 'Get-NetboxIPAMAddress',
'Get-NetboxIPAMAggregate', 'Get-NetboxIPAMAvailableIP',
'Get-NetboxIPAMPrefix', 'Get-NetboxIPAMRole', 'Get-NetboxIPAMVLAN',
'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-NetboxDCIMInterface',
'Remove-NetboxDCIMInterfaceConnection', 'Remove-NetboxDCIMSite',
'Remove-NetboxIPAMAddress', 'Remove-NetboxVirtualMachine',
'Set-NetboxCipherSSL', 'Set-NetboxContact', 'Set-NetboxCredential',
'Set-NetboxDCIMDevice', 'Set-NetboxDCIMInterface',
'Set-NetboxDCIMInterfaceConnection', 'Set-NetboxHostName',
'Set-NetboxHostPort', 'Set-NetboxHostScheme',
'Set-NetboxInvokeParams', 'Set-NetboxIPAMAddress',
'Set-NetboxIPAMPrefix', 'Set-NetboxTimeout',
'Set-NetboxUnstrustedSSL', 'Set-NetboxVirtualMachine',
'Set-NetboxVirtualMachineInterface', 'Test-NetboxAPIConnected'
# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = '*'

View file

@ -34,13 +34,6 @@
<Folder>Functions\Tenancy\Tenants</Folder>
<Folder>Functions\Tenancy\ContactRoles</Folder>
<Folder>Functions\Tenancy\ContactAssignment</Folder>
<Folder>Functions\DCIM\Cable Terminations</Folder>
<Folder>Functions\DCIM\Cables</Folder>
<Folder>Functions\DCIM\FrontPorts</Folder>
<Folder>Functions\DCIM\RearPorts</Folder>
<Folder>Functions\Extras</Folder>
<Folder>Functions\IPAM\Range</Folder>
<Folder>Functions\Extras\Tags</Folder>
</Folders>
<Files>
<File Build="2">NetboxPS.psd1</File>
@ -133,30 +126,10 @@
<File Build="0" Shared="True" ReferenceFunction="Invoke-New-NetboxContactRole_ps1" ExportFunctions="True">Functions\Tenancy\ContactRoles\New-NetboxContactRole.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-New-NetboxTenant_ps1" ExportFunctions="True">Functions\Tenancy\Tenants\New-NetboxTenant.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Get-NetboxContactAssignment_ps1" ExportFunctions="True">Functions\Tenancy\ContactAssignment\Get-NetboxContactAssignment.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Get-NetboxContentType_ps1" ExportFunctions="False">Functions\Setup\Support\Get-NetboxContentType.ps1</File>
<File Build="2" Shared="True" ReferenceFunction="Invoke-Get-NetboxContentType_ps1" ExportFunctions="False">Functions\Setup\Support\Get-NetboxContentType.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-New-NetboxContactAssignment_ps1" ExportFunctions="True">Functions\Tenancy\ContactAssignment\New-NetboxContactAssignment.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Set-NetboxContact_ps1" ExportFunctions="True">Functions\Tenancy\Contacts\Set-NetboxContact.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Test-NetboxAPIConnected_ps1" ExportFunctions="False">Functions\Setup\Support\Test-NetboxAPIConnected.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Get-NetboxDCIMCableTermination_ps1" ExportFunctions="False">Functions\DCIM\Cable Terminations\Get-NetboxDCIMCableTermination.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Get-NetboxDCIMCable_ps1" ExportFunctions="False">Functions\DCIM\Cables\Get-NetboxDCIMCable.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Add-NetboxDCIMFrontPort_ps1" ExportFunctions="False">Functions\DCIM\FrontPorts\Add-NetboxDCIMFrontPort.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Get-NetboxDCIMFrontPort_ps1" ExportFunctions="False">Functions\DCIM\FrontPorts\Get-NetboxDCIMFrontPort.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Remove-NetboxDCIMFrontPort_ps1" ExportFunctions="False">Functions\DCIM\FrontPorts\Remove-NetboxDCIMFrontPort.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Set-NetboxDCIMFrontPort_ps1" ExportFunctions="False">Functions\DCIM\FrontPorts\Set-NetboxDCIMFrontPort.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Add-NetboxDCIMRearPort_ps1" ExportFunctions="False">Functions\DCIM\RearPorts\Add-NetboxDCIMRearPort.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Get-NetboxDCIMRearPort_ps1" ExportFunctions="False">Functions\DCIM\RearPorts\Get-NetboxDCIMRearPort.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Remove-NetboxDCIMRearPort_ps1" ExportFunctions="False">Functions\DCIM\RearPorts\Remove-NetboxDCIMRearPort.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Set-NetboxDCIMRearPort_ps1" ExportFunctions="False">Functions\DCIM\RearPorts\Set-NetboxDCIMRearPort.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-New-NetboxDCIMSite_ps1" ExportFunctions="False">Functions\DCIM\Sites\New-NetboxDCIMSite.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Remove-NetboxDCIMSite_ps1" ExportFunctions="False">Functions\DCIM\Sites\Remove-NetboxDCIMSite.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Get-NetboxTag_ps1" ExportFunctions="True">Functions\Extras\Tags\Get-NetboxTag.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Clear-NetboxCredential_ps1" ExportFunctions="False">Functions\Setup\Clear-NetboxCredential.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Get-NetboxIPAMAddressRange_ps1" ExportFunctions="True">Functions\IPAM\Range\Get-NetboxIPAMAddressRange.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-New-NetboxIPAMAddressRange_ps1" ExportFunctions="True">Functions\IPAM\Range\New-NetboxIPAMAddressRange.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Remove-NetboxIPAMAddressRange_ps1" ExportFunctions="True">Functions\IPAM\Range\Remove-NetboxIPAMAddressRange.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Set-NetboxIPAMAddressRange_ps1" ExportFunctions="True">Functions\IPAM\Range\Set-NetboxIPAMAddressRange.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Set-NetboxContactRole_ps1" ExportFunctions="True">Functions\Tenancy\ContactRoles\Set-NetboxContactRole.ps1</File>
<File Build="0" Shared="True" ReferenceFunction="Invoke-Set-NetboxContactAssignment_ps1" ExportFunctions="True">Functions\Tenancy\ContactAssignment\Set-NetboxContactAssignment.ps1</File>
<File Build="0" Shared="False" ReferenceFunction="Invoke-Set-NetboxContact_ps1" ExportFunctions="False">Functions\Tenancy\Contacts\Set-NetboxContact.ps1</File>
<File Build="2" Shared="True" ReferenceFunction="Invoke-Test-NetboxAPIConnected_ps1" ExportFunctions="False">Functions\Setup\Support\Test-NetboxAPIConnected.ps1</File>
</Files>
<StartupScript>R:\Netbox\NetboxPS\Test-Module.ps1</StartupScript>
</Project>

View file

@ -1,9 +1,9 @@
#
#
# Module manifest for module 'NetboxPS'
#
# Generated by: Ben Claussen
#
# Generated on: 2023-11-09
# Generated on: 2023-03-10
#
@{
@ -12,7 +12,7 @@
RootModule = 'NetboxPS.psm1'
# Version number of this module.
ModuleVersion = '1.8.5'
ModuleVersion = '1.7.2'
# Supported PSEditions
# CompatiblePSEditions = @()
@ -69,49 +69,40 @@ CLRVersion = '2.0.50727'
NestedModules = @()
# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = 'Add-NetboxDCIMFrontPort', 'Add-NetboxDCIMInterface',
'Add-NetboxDCIMInterfaceConnection', 'Add-NetboxDCIMRearPort',
'Add-NetboxVirtualMachineInterface', 'Clear-NetboxCredential',
'Connect-NetboxAPI', 'Get-ModelDefinition', 'Get-NetboxAPIDefinition',
'Get-NetboxCircuit', 'Get-NetboxCircuitProvider',
'Get-NetboxCircuitTermination', 'Get-NetboxCircuitType',
'Get-NetboxContact', 'Get-NetboxContactAssignment',
'Get-NetboxContactRole', 'Get-NetboxContentType',
'Get-NetboxCredential', 'Get-NetboxDCIMCable',
'Get-NetboxDCIMCableTermination', 'Get-NetboxDCIMDevice',
'Get-NetboxDCIMDeviceRole', 'Get-NetboxDCIMDeviceType',
'Get-NetboxDCIMFrontPort', 'Get-NetboxDCIMInterface',
'Get-NetboxDCIMInterfaceConnection', 'Get-NetboxDCIMPlatform',
'Get-NetboxDCIMRearPort', 'Get-NetboxDCIMSite', 'Get-NetboxHostname',
'Get-NetboxHostPort', 'Get-NetboxHostScheme',
'Get-NetboxInvokeParams', 'Get-NetboxIPAMAddress',
'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-NetboxIPAMAddressRange',
'New-NetboxIPAMPrefix', 'New-NetboxIPAMVLAN', 'New-NetboxTenant',
'New-NetboxVirtualMachine', 'Remove-NetboxDCIMDevice',
'Remove-NetboxDCIMFrontPort', 'Remove-NetboxDCIMInterface',
'Remove-NetboxDCIMInterfaceConnection', 'Remove-NetboxDCIMRearPort',
'Remove-NetboxDCIMSite', 'Remove-NetboxIPAMAddress',
'Remove-NetboxIPAMAddressRange', 'Remove-NetboxVirtualMachine',
'Set-NetboxCipherSSL', 'Set-NetboxContact',
'Set-NetboxContactAssignment', 'Set-NetboxContactRole',
'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'
FunctionsToExport = 'Add-NetboxDCIMInterface', 'Add-NetboxDCIMInterfaceConnection',
'Add-NetboxVirtualMachineInterface', 'Clear-NetboxCredential',
'Connect-NetboxAPI', 'Get-ModelDefinition', 'Get-NetboxAPIDefinition',
'Get-NetboxCircuit', 'Get-NetboxCircuitProvider',
'Get-NetboxCircuitTermination', 'Get-NetboxCircuitType',
'Get-NetboxContact', 'Get-NetboxContactAssignment',
'Get-NetboxContactRole', 'Get-NetboxContentType',
'Get-NetboxCredential', 'Get-NetboxDCIMDevice',
'Get-NetboxDCIMDeviceRole', 'Get-NetboxDCIMDeviceType',
'Get-NetboxDCIMInterface', 'Get-NetboxDCIMInterfaceConnection',
'Get-NetboxDCIMPlatform', 'Get-NetboxDCIMSite', 'Get-NetboxHostname',
'Get-NetboxHostPort', 'Get-NetboxHostScheme',
'Get-NetboxInvokeParams', 'Get-NetboxIPAMAddress',
'Get-NetboxIPAMAggregate', 'Get-NetboxIPAMAvailableIP',
'Get-NetboxIPAMPrefix', 'Get-NetboxIPAMRole', 'Get-NetboxIPAMVLAN',
'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-NetboxDCIMInterface',
'Remove-NetboxDCIMInterfaceConnection', 'Remove-NetboxDCIMSite',
'Remove-NetboxIPAMAddress', 'Remove-NetboxVirtualMachine',
'Set-NetboxCipherSSL', 'Set-NetboxContact', 'Set-NetboxCredential',
'Set-NetboxDCIMDevice', 'Set-NetboxDCIMInterface',
'Set-NetboxDCIMInterfaceConnection', 'Set-NetboxHostName',
'Set-NetboxHostPort', 'Set-NetboxHostScheme',
'Set-NetboxInvokeParams', 'Set-NetboxIPAMAddress',
'Set-NetboxIPAMPrefix', 'Set-NetboxTimeout',
'Set-NetboxUnstrustedSSL', 'Set-NetboxVirtualMachine',
'Set-NetboxVirtualMachineInterface', 'Test-NetboxAPIConnected'
# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = '*'

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -64,7 +64,6 @@ $FunctionPath = "$PSScriptRoot\Functions"
$OutputDirectory = "$PSScriptRoot\$ModuleName"
$PSD1OutputPath = "$OutputDirectory\$ModuleName.psd1"
$PSM1OutputPath = "$OutputDirectory\$ModuleName.psm1"
$PS1FunctionFiles = Get-ChildItem $FunctionPath -Filter "*.ps1" -Recurse | Sort-Object Name
Write-Host "Removing whitespace from files" -ForegroundColor Green
@ -72,6 +71,7 @@ Invoke-ScriptAnalyzer -Path $FunctionPath -IncludeRule 'PSAvoidTrailingWhitespac
Write-Host "Concatenating [$($PS1FunctionFiles.Count)] PS1 files from $FunctionPath"
$PS1FunctionFiles = Get-ChildItem $FunctionPath -Filter "*.ps1" -Recurse | Sort-Object Name
"" | Out-File -FilePath $ConcatenatedFilePath -Encoding utf8
@ -152,10 +152,6 @@ switch ($PSCmdlet.ParameterSetName) {
Write-Host "Updating Module Manifest"
Update-ModuleManifest @UpdateModuleManifestSplat
Write-Host " Removing trailing whitespaces from psd1"
Invoke-ScriptAnalyzer -Path $UpdateModuleManifestSplat.Path -IncludeRule 'PSAvoidTrailingWhitespace' -Fix
if (-not (Test-Path $OutputDirectory)) {
try {
Write-Warning "Creating output directory [$OutputDirectory]"
@ -169,6 +165,7 @@ if (-not (Test-Path $OutputDirectory)) {
Write-Host " Copying psd1"
Copy-Item -Path "$PSScriptRoot\$ModuleName.psd1" -Destination $PSD1OutputPath -Force
Write-Host " Copying psm1"
Copy-Item -Path $ConcatenatedFilePath -Destination $PSM1OutputPath -Force