Merge branch 'add-virtualdevicecontext'

This commit is contained in:
Pascal Liehne 2024-10-06 18:34:07 +02:00
commit 77789f756b
7 changed files with 388 additions and 54 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: 10/5/2024
# Generated on: 10/6/2024
#
@{
@ -71,9 +71,9 @@ 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-NetboxDCIMPlatform',
'Add-NetboxDCIMRearPort', 'Add-NetboxVirtualMachinedisk',
'Add-NetboxVirtualMachineInterface', 'BuildNewURI',
'BuildURIComponents', 'CheckNetboxIsConnected',
'Add-NetboxDCIMRearPort', 'Add-NetboxDCIMVirtualDeviceContext',
'Add-NetboxVirtualMachinedisk', 'Add-NetboxVirtualMachineInterface',
'BuildNewURI', 'BuildURIComponents', 'CheckNetboxIsConnected',
'Clear-NetboxCredential', 'Connect-NetboxAPI', 'CreateEnum',
'Get-ModelDefinition', 'Get-NetboxAPIDefinition',
'GetNetboxAPIErrorBody', 'Get-NetboxCircuit',
@ -86,14 +86,15 @@ 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-NetboxIPAMVRF', 'Get-NetboxObjectType', 'Get-NetboxSlug',
'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-NetboxIPAMVRF',
'Get-NetboxObjectType', 'Get-NetboxSlug', 'Get-NetboxTag',
'Get-NetboxTenant', 'Get-NetboxTimeout', 'Get-NetboxVersion',
'Get-NetboxVirtualizationCluster',
'Get-NetboxVirtualizationClusterGroup', 'Get-NetboxVirtualMachine',
'Get-NetboxVirtualMachinedisk', 'Get-NetboxVirtualMachineInterface',
'InvokeNetboxRequest', 'New-NetboxCircuit', 'New-NetboxContact',
@ -105,21 +106,23 @@ FunctionsToExport = 'Add-NetboxDCIMFrontPort', 'Add-NetboxDCIMInterface',
'Remove-NetboxDCIMFrontPort', 'Remove-NetboxDCIMInterface',
'Remove-NetboxDCIMInterfaceConnection', 'Remove-NetboxDCIMPlatform',
'Remove-NetboxDCIMRearPort', 'Remove-NetboxDCIMSite',
'Remove-NetboxIPAMAddress', 'Remove-NetboxIPAMAddressRange',
'Remove-NetboxVirtualMachine', 'Remove-NetboxVirtualMachinedisk',
'Set-NetboxCipherSSL', 'Set-NetboxContact',
'Set-NetboxContactAssignment', 'Set-NetboxContactRole',
'Set-NetboxCredential', 'Set-NetboxDCIMDevice',
'Set-NetboxDCIMFrontPort', 'Set-NetboxDCIMInterface',
'Set-NetboxDCIMInterfaceConnection', 'Set-NetboxDCIMPlatform',
'Set-NetboxDCIMRearPort', 'Set-NetboxHostName', 'Set-NetboxHostPort',
'Set-NetboxHostScheme', 'Set-NetboxInvokeParams',
'Set-NetboxIPAMAddress', 'Set-NetboxIPAMAddressRange',
'Set-NetboxIPAMPrefix', 'Set-NetboxTimeout',
'Set-NetboxUnstrustedSSL', 'Set-NetboxVirtualMachine',
'Set-NetboxVirtualMachinedisk', 'Set-NetboxVirtualMachineInterface',
'SetupNetboxConfigVariable', 'Test-NetboxAPIConnected',
'ThrowNetboxRESTError', 'VerifyAPIConnectivity'
'Remove-NetboxDCIMVirtualDeviceContext', 'Remove-NetboxIPAMAddress',
'Remove-NetboxIPAMAddressRange', 'Remove-NetboxVirtualMachine',
'Remove-NetboxVirtualMachinedisk', 'Set-NetboxCipherSSL',
'Set-NetboxContact', 'Set-NetboxContactAssignment',
'Set-NetboxContactRole', 'Set-NetboxCredential',
'Set-NetboxDCIMDevice', 'Set-NetboxDCIMFrontPort',
'Set-NetboxDCIMInterface', 'Set-NetboxDCIMInterfaceConnection',
'Set-NetboxDCIMPlatform', 'Set-NetboxDCIMRearPort',
'Set-NetboxDCIMVirtualDeviceContext', 'Set-NetboxHostName',
'Set-NetboxHostPort', 'Set-NetboxHostScheme',
'Set-NetboxInvokeParams', 'Set-NetboxIPAMAddress',
'Set-NetboxIPAMAddressRange', 'Set-NetboxIPAMPrefix',
'Set-NetboxTimeout', 'Set-NetboxUnstrustedSSL',
'Set-NetboxVirtualMachine', 'Set-NetboxVirtualMachinedisk',
'Set-NetboxVirtualMachineInterface', 'SetupNetboxConfigVariable',
'Test-NetboxAPIConnected', 'ThrowNetboxRESTError',
'VerifyAPIConnectivity'
# 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

@ -3,7 +3,7 @@
#
# Generated by: Ben Claussen
#
# Generated on: 10/5/2024
# Generated on: 10/6/2024
#
@{
@ -71,9 +71,9 @@ 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-NetboxDCIMPlatform',
'Add-NetboxDCIMRearPort', 'Add-NetboxVirtualMachinedisk',
'Add-NetboxVirtualMachineInterface', 'BuildNewURI',
'BuildURIComponents', 'CheckNetboxIsConnected',
'Add-NetboxDCIMRearPort', 'Add-NetboxDCIMVirtualDeviceContext',
'Add-NetboxVirtualMachinedisk', 'Add-NetboxVirtualMachineInterface',
'BuildNewURI', 'BuildURIComponents', 'CheckNetboxIsConnected',
'Clear-NetboxCredential', 'Connect-NetboxAPI', 'CreateEnum',
'Get-ModelDefinition', 'Get-NetboxAPIDefinition',
'GetNetboxAPIErrorBody', 'Get-NetboxCircuit',
@ -86,14 +86,15 @@ 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-NetboxIPAMVRF', 'Get-NetboxObjectType', 'Get-NetboxSlug',
'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-NetboxIPAMVRF',
'Get-NetboxObjectType', 'Get-NetboxSlug', 'Get-NetboxTag',
'Get-NetboxTenant', 'Get-NetboxTimeout', 'Get-NetboxVersion',
'Get-NetboxVirtualizationCluster',
'Get-NetboxVirtualizationClusterGroup', 'Get-NetboxVirtualMachine',
'Get-NetboxVirtualMachinedisk', 'Get-NetboxVirtualMachineInterface',
'InvokeNetboxRequest', 'New-NetboxCircuit', 'New-NetboxContact',
@ -105,21 +106,23 @@ FunctionsToExport = 'Add-NetboxDCIMFrontPort', 'Add-NetboxDCIMInterface',
'Remove-NetboxDCIMFrontPort', 'Remove-NetboxDCIMInterface',
'Remove-NetboxDCIMInterfaceConnection', 'Remove-NetboxDCIMPlatform',
'Remove-NetboxDCIMRearPort', 'Remove-NetboxDCIMSite',
'Remove-NetboxIPAMAddress', 'Remove-NetboxIPAMAddressRange',
'Remove-NetboxVirtualMachine', 'Remove-NetboxVirtualMachinedisk',
'Set-NetboxCipherSSL', 'Set-NetboxContact',
'Set-NetboxContactAssignment', 'Set-NetboxContactRole',
'Set-NetboxCredential', 'Set-NetboxDCIMDevice',
'Set-NetboxDCIMFrontPort', 'Set-NetboxDCIMInterface',
'Set-NetboxDCIMInterfaceConnection', 'Set-NetboxDCIMPlatform',
'Set-NetboxDCIMRearPort', 'Set-NetboxHostName', 'Set-NetboxHostPort',
'Set-NetboxHostScheme', 'Set-NetboxInvokeParams',
'Set-NetboxIPAMAddress', 'Set-NetboxIPAMAddressRange',
'Set-NetboxIPAMPrefix', 'Set-NetboxTimeout',
'Set-NetboxUnstrustedSSL', 'Set-NetboxVirtualMachine',
'Set-NetboxVirtualMachinedisk', 'Set-NetboxVirtualMachineInterface',
'SetupNetboxConfigVariable', 'Test-NetboxAPIConnected',
'ThrowNetboxRESTError', 'VerifyAPIConnectivity'
'Remove-NetboxDCIMVirtualDeviceContext', 'Remove-NetboxIPAMAddress',
'Remove-NetboxIPAMAddressRange', 'Remove-NetboxVirtualMachine',
'Remove-NetboxVirtualMachinedisk', 'Set-NetboxCipherSSL',
'Set-NetboxContact', 'Set-NetboxContactAssignment',
'Set-NetboxContactRole', 'Set-NetboxCredential',
'Set-NetboxDCIMDevice', 'Set-NetboxDCIMFrontPort',
'Set-NetboxDCIMInterface', 'Set-NetboxDCIMInterfaceConnection',
'Set-NetboxDCIMPlatform', 'Set-NetboxDCIMRearPort',
'Set-NetboxDCIMVirtualDeviceContext', 'Set-NetboxHostName',
'Set-NetboxHostPort', 'Set-NetboxHostScheme',
'Set-NetboxInvokeParams', 'Set-NetboxIPAMAddress',
'Set-NetboxIPAMAddressRange', 'Set-NetboxIPAMPrefix',
'Set-NetboxTimeout', 'Set-NetboxUnstrustedSSL',
'Set-NetboxVirtualMachine', 'Set-NetboxVirtualMachinedisk',
'Set-NetboxVirtualMachineInterface', 'SetupNetboxConfigVariable',
'Test-NetboxAPIConnected', 'ThrowNetboxRESTError',
'VerifyAPIConnectivity'
# 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

@ -269,6 +269,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-NetboxVirtualMachinedisk.ps1
@ -2119,6 +2160,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 {
@ -5249,6 +5334,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
@ -6261,6 +6385,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 {