add NetboxDCIMVirtualDeviceContext

This commit is contained in:
Pascal Liehne 2024-10-06 18:24:08 +02:00
parent 3abf2264d9
commit 03f1271781
7 changed files with 364 additions and 32 deletions

View file

@ -0,0 +1,36 @@
function Add-NetboxDCIMVirtualDeviceContext {
[CmdletBinding()]
[OutputType([pscustomobject])]
param
(
[Parameter(Mandatory = $true)]
[uint64]$Device,
[Parameter(Mandatory = $true)]
[string]$Name,
[object]$Status = 'active',
[uint16]$Identifier,
[uint64]$Primary_IP4,
[uint64]$Primary_IP6,
[uint64]$Tenant,
[string]$Comments
)
if (-not $PSBoundParameters.ContainsKey('Status')) {
$PSBoundParameters['Status'] = $Status
}
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'virtual-device-contexts'))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters
$URI = BuildNewURI -Segments $URIComponents.Segments
InvokeNetboxRequest -URI $URI -Body $URIComponents.Parameters -Method POST
}

View file

@ -0,0 +1,39 @@
function Get-NetboxDCIMVirtualDeviceContext {
[CmdletBinding()]
[OutputType([pscustomobject])]
param
(
[Parameter(ValueFromPipelineByPropertyName = $true)]
[uint64]$Id,
[string]$Name,
[object]$Status,
[uint16]$Identifier,
[string]$Device,
[uint64]$Device_Id,
[uint64]$Tenant_Id,
[string]$Tenant,
[uint16]$Limit,
[uint16]$Offset,
[switch]$Raw
)
process {
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'virtual-device-contexts'))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters
$URI = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters
InvokeNetboxRequest -URI $URI -Raw:$Raw
}
}

View file

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

View file

@ -0,0 +1,45 @@
function Set-NetboxDCIMVirtualDeviceContext {
[CmdletBinding(ConfirmImpact = 'Medium',
SupportsShouldProcess = $true)]
[OutputType([pscustomobject])]
param
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[string]$Name,
[object]$Status,
[uint16]$Identifier,
[uint64]$Device,
[uint64]$Primary_IP4,
[uint64]$Primary_IP6,
[uint64]$Tenant,
[string]$Comments,
[switch]$Force
)
process {
foreach ($VirtualDeviceContextId in $Id) {
$CurrentVirtualDeviceContext = Get-NetboxDCIMVirtualDeviceContext -Id $VirtualDeviceContextId -ErrorAction Stop
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'virtual-device-contexts', $CurrentVirtualDeviceContext.Id))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters -SkipParameterByName 'Id'
$URI = BuildNewURI -Segments $Segments
if ($Force -or $pscmdlet.ShouldProcess("Virtual Device Context ID $($CurrentVirtualDeviceContext.Id)", "Set")) {
InvokeNetboxRequest -URI $URI -Body $URIComponents.Parameters -Method PATCH
}
}
}
}

View file

@ -3,7 +3,7 @@
#
# Generated by: Ben Claussen
#
# Generated on: 01/09/2024
# Generated on: 10/6/2024
#
@{
@ -71,6 +71,7 @@ CLRVersion = '2.0.50727'
# 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-NetboxDCIMVirtualDeviceContext',
'Add-NetboxVirtualMachineInterface', 'BuildNewURI',
'BuildURIComponents', 'CheckNetboxIsConnected',
'Clear-NetboxCredential', 'Connect-NetboxAPI', 'CreateEnum',
@ -85,14 +86,14 @@ FunctionsToExport = 'Add-NetboxDCIMFrontPort', 'Add-NetboxDCIMInterface',
'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-NetboxObjectType', 'Get-NetboxTag', 'Get-NetboxTenant',
'Get-NetboxTimeout', 'Get-NetboxVersion',
'Get-NetboxVirtualizationCluster',
'Get-NetboxDCIMSite', 'Get-NetboxDCIMVirtualDeviceContext',
'Get-NetboxHostname', 'Get-NetboxHostPort', 'Get-NetboxHostScheme',
'Get-NetboxInvokeParams', 'Get-NetboxIPAMAddress',
'Get-NetboxIPAMAddressRange', 'Get-NetboxIPAMAggregate',
'Get-NetboxIPAMAvailableIP', 'Get-NetboxIPAMPrefix',
'Get-NetboxIPAMRole', 'Get-NetboxIPAMVLAN', 'Get-NetboxObjectType',
'Get-NetboxTag', 'Get-NetboxTenant', 'Get-NetboxTimeout',
'Get-NetboxVersion', 'Get-NetboxVirtualizationCluster',
'Get-NetboxVirtualizationClusterGroup', 'Get-NetboxVirtualMachine',
'Get-NetboxVirtualMachineInterface', 'InvokeNetboxRequest',
'New-NetboxCircuit', 'New-NetboxContact',
@ -103,13 +104,14 @@ FunctionsToExport = 'Add-NetboxDCIMFrontPort', 'Add-NetboxDCIMInterface',
'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',
'Remove-NetboxDCIMSite', 'Remove-NetboxDCIMVirtualDeviceContext',
'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-NetboxDCIMVirtualDeviceContext',
'Set-NetboxHostName', 'Set-NetboxHostPort', 'Set-NetboxHostScheme',
'Set-NetboxInvokeParams', 'Set-NetboxIPAMAddress',
'Set-NetboxIPAMAddressRange', 'Set-NetboxIPAMPrefix',

View file

@ -3,7 +3,7 @@
#
# Generated by: Ben Claussen
#
# Generated on: 01/09/2024
# Generated on: 10/6/2024
#
@{
@ -71,6 +71,7 @@ CLRVersion = '2.0.50727'
# 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-NetboxDCIMVirtualDeviceContext',
'Add-NetboxVirtualMachineInterface', 'BuildNewURI',
'BuildURIComponents', 'CheckNetboxIsConnected',
'Clear-NetboxCredential', 'Connect-NetboxAPI', 'CreateEnum',
@ -85,14 +86,14 @@ FunctionsToExport = 'Add-NetboxDCIMFrontPort', 'Add-NetboxDCIMInterface',
'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-NetboxObjectType', 'Get-NetboxTag', 'Get-NetboxTenant',
'Get-NetboxTimeout', 'Get-NetboxVersion',
'Get-NetboxVirtualizationCluster',
'Get-NetboxDCIMSite', 'Get-NetboxDCIMVirtualDeviceContext',
'Get-NetboxHostname', 'Get-NetboxHostPort', 'Get-NetboxHostScheme',
'Get-NetboxInvokeParams', 'Get-NetboxIPAMAddress',
'Get-NetboxIPAMAddressRange', 'Get-NetboxIPAMAggregate',
'Get-NetboxIPAMAvailableIP', 'Get-NetboxIPAMPrefix',
'Get-NetboxIPAMRole', 'Get-NetboxIPAMVLAN', 'Get-NetboxObjectType',
'Get-NetboxTag', 'Get-NetboxTenant', 'Get-NetboxTimeout',
'Get-NetboxVersion', 'Get-NetboxVirtualizationCluster',
'Get-NetboxVirtualizationClusterGroup', 'Get-NetboxVirtualMachine',
'Get-NetboxVirtualMachineInterface', 'InvokeNetboxRequest',
'New-NetboxCircuit', 'New-NetboxContact',
@ -103,13 +104,14 @@ FunctionsToExport = 'Add-NetboxDCIMFrontPort', 'Add-NetboxDCIMInterface',
'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',
'Remove-NetboxDCIMSite', 'Remove-NetboxDCIMVirtualDeviceContext',
'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-NetboxDCIMVirtualDeviceContext',
'Set-NetboxHostName', 'Set-NetboxHostPort', 'Set-NetboxHostScheme',
'Set-NetboxInvokeParams', 'Set-NetboxIPAMAddress',
'Set-NetboxIPAMAddressRange', 'Set-NetboxIPAMPrefix',

View file

@ -230,6 +230,47 @@ function Add-NetboxDCIMRearPort {
#endregion
#region File Add-NetboxDCIMVirtualDeviceContext.ps1
function Add-NetboxDCIMVirtualDeviceContext {
[CmdletBinding()]
[OutputType([pscustomobject])]
param
(
[Parameter(Mandatory = $true)]
[uint64]$Device,
[Parameter(Mandatory = $true)]
[string]$Name,
[object]$Status = 'active',
[uint16]$Identifier,
[uint64]$Primary_IP4,
[uint64]$Primary_IP6,
[uint64]$Tenant,
[string]$Comments
)
if (-not $PSBoundParameters.ContainsKey('Status')) {
$PSBoundParameters['Status'] = $Status
}
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'virtual-device-contexts'))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters
$URI = BuildNewURI -Segments $URIComponents.Segments
InvokeNetboxRequest -URI $URI -Body $URIComponents.Parameters -Method POST
}
#endregion
#region File Add-NetboxVirtualMachineInterface.ps1
@ -2041,6 +2082,50 @@ function Get-NetboxDCIMSite {
#endregion
#region File Get-NetboxDCIMVirtualDeviceContext.ps1
function Get-NetboxDCIMVirtualDeviceContext {
[CmdletBinding()]
[OutputType([pscustomobject])]
param
(
[Parameter(ValueFromPipelineByPropertyName = $true)]
[uint64]$Id,
[string]$Name,
[object]$Status,
[uint16]$Identifier,
[string]$Device,
[uint64]$Device_Id,
[uint64]$Tenant_Id,
[string]$Tenant,
[uint16]$Limit,
[uint16]$Offset,
[switch]$Raw
)
process {
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'virtual-device-contexts'))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters
$URI = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters
InvokeNetboxRequest -URI $URI -Raw:$Raw
}
}
#endregion
#region File Get-NetboxHostname.ps1
function Get-NetboxHostname {
@ -4871,6 +4956,45 @@ function Remove-NetboxDCIMSite {
#endregion
#region File Remove-NetboxDCIMVirtualDeviceContext.ps1
function Remove-NetboxDCIMVirtualDeviceContext {
[CmdletBinding(ConfirmImpact = 'High',
SupportsShouldProcess = $true)]
param
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[switch]$Force
)
begin {
}
process {
foreach ($VirtualDeviceContextId in $Id) {
$CurrentVirtualDeviceContext = Get-NetboxDCIMVirtualDeviceContext -Id $VirtualDeviceContextId -ErrorAction Stop
if ($Force -or $pscmdlet.ShouldProcess("Name: $($CurrentVirtualDeviceContext.Name) | ID: $($CurrentVirtualDeviceContext.Id)", "Remove")) {
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'virtual-device-contexts', $CurrentVirtualDeviceContext.Id))
$URI = BuildNewURI -Segments $Segments
InvokeNetboxRequest -URI $URI -Method DELETE
}
}
}
end {
}
}
#endregion
#region File Remove-NetboxIPAMAddress.ps1
@ -5767,6 +5891,56 @@ function Set-NetboxDCIMRearPort {
#endregion
#region File Set-NetboxDCIMVirtualDeviceContext.ps1
function Set-NetboxDCIMVirtualDeviceContext {
[CmdletBinding(ConfirmImpact = 'Medium',
SupportsShouldProcess = $true)]
[OutputType([pscustomobject])]
param
(
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true)]
[uint64[]]$Id,
[string]$Name,
[object]$Status,
[uint16]$Identifier,
[uint64]$Device,
[uint64]$Primary_IP4,
[uint64]$Primary_IP6,
[uint64]$Tenant,
[string]$Comments,
[switch]$Force
)
process {
foreach ($VirtualDeviceContextId in $Id) {
$CurrentVirtualDeviceContext = Get-NetboxDCIMVirtualDeviceContext -Id $VirtualDeviceContextId -ErrorAction Stop
$Segments = [System.Collections.ArrayList]::new(@('dcim', 'virtual-device-contexts', $CurrentVirtualDeviceContext.Id))
$URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters -SkipParameterByName 'Id'
$URI = BuildNewURI -Segments $Segments
if ($Force -or $pscmdlet.ShouldProcess("Virtual Device Context ID $($CurrentVirtualDeviceContext.Id)", "Set")) {
InvokeNetboxRequest -URI $URI -Body $URIComponents.Parameters -Method PATCH
}
}
}
}
#endregion
#region File Set-NetboxHostName.ps1
function Set-NetboxHostName {