netbox-rest-module.psm1
#Region '.\Private\added-fields.ps1' -1 function createPostJson { [CmdletBinding()] param ( [Parameter(Mandatory = $True, Position = 0)][object]$Fields ) $CurrentObject=New-Object -TypeName System.Object $Fields | ForEach-Object { $_.key | Out-Host $_.value | Out-Host $CurrentObject | Add-Member -MemberType NoteProperty -Name $_.key -Value $_.value } createJson($CurrentObject) } function createJson ($Object) { $Object | ConvertTo-Json -Depth 50 } #EndRegion '.\Private\added-fields.ps1' 15 #Region '.\Private\api-items.ps1' -1 function Get-APIItemByQuery { [CmdletBinding()] Param( [parameter(Mandatory = $false)][object]$apiConnection = $Script:Connection, [parameter(Mandatory = $true)][string]$RelativePath, [parameter(Mandatory = $true)][string]$field, [parameter(Mandatory = $true)][string]$value ) $QueryArguments= @{ $field = $value } $ArgumentString= New-ArgumentString $QueryArguments $restParams = @{ Method = 'get' URI = "$($Connection.ApiBaseURL)/$RelativePath/?$ArgumentString" SkipCertificateCheck = $apiConnection.SkipCertificateCheck } Write-Verbose "[$($MyInvocation.MyCommand.Name)] Making API search call using '$field' looking for '$value'." Invoke-CustomRequest $restParams -Connection $Connection } function Find-ApiItemsContainingName { [CmdletBinding()] Param( [parameter(Mandatory = $false)][object]$apiConnection = $Script:Connection, [parameter(Mandatory = $true)][string]$RelativePath, [parameter(Mandatory = $true)][string]$Name ) Write-Verbose "[$($MyInvocation.MyCommand.Name)] Attempting to find items containing '$Name'." Get-APIItemByQuery -apiConnection $apiConnection -field 'name__ic' -value $Name -RelativePath $RelativePath } function Get-APIItemByName { [CmdletBinding()] Param( [parameter(Mandatory = $false)][object]$apiConnection = $Script:Connection, [parameter(Mandatory = $true)][string]$RelativePath, [parameter(Mandatory = $true)][string]$value ) Write-Verbose "[$($MyInvocation.MyCommand.Name)] Attempting to find item named '$Name'." (Get-APIItemByQuery -apiConnection $apiConnection -field 'name__ie' -value $value -RelativePath $RelativePath).results } function Get-ApiItemByID { [CmdletBinding()] Param( [parameter(Mandatory = $false)][object]$apiConnection = $Script:Connection, [parameter(Mandatory = $true)][string]$RelativePath, [parameter(Mandatory = $true)][string]$id ) $restParams = @{ Method = 'get' URI = "$($Connection.ApiBaseURL)/$RelativePath/$id/" SkipCertificateCheck = $apiConnection.SkipCertificateCheck } Invoke-CustomRequest $restParams -Connection $Connection } function Get-ApiItemByPath { [CmdletBinding()] Param( [parameter(Mandatory = $false)][object]$apiConnection = $Script:Connection, [parameter(Mandatory = $true)][string]$Path ) $restParams = @{ Method = 'get' URI = "$($Connection.ApiBaseURL)/$Path" SkipCertificateCheck = $apiConnection.SkipCertificateCheck } Invoke-CustomRequest $restParams -Connection $Connection } function Get-ApiItems { [CmdletBinding()] Param( [parameter(Mandatory = $false)][object]$apiConnection = $Script:Connection, [parameter(Mandatory = $true)][string]$RelativePath ) $arguments = @{ limit = 5000 } $argumentString=[System.Web.HttpUtility]::ParseQueryString('') $arguments.GetEnumerator() | ForEach-Object {$argumentString.Add($_.Key, $_.Value)} $argumentString=$argumentString.ToString() $restParams = @{ Method = 'get' URI = "$($Connection.ApiBaseURL)/$RelativePath/?$argumentString" SkipCertificateCheck = $apiConnection.SkipCertificateCheck } # # (Invoke-CustomRequest -restParams $restParams -Connection $Connection).results (Invoke-CustomRequest $restParams -Connection $apiConnection).results } #EndRegion '.\Private\api-items.ps1' 93 #Region '.\Private\apiPaths.ps1' -1 $DeviceRolesAPIPath="dcim/device-roles" $deviceTypesPath="dcim/device-types" $DevicesAPIPath="dcim/devices" $NBDeviceInterfaceAPIPath="dcim/interfaces" $LocationsAPIPath="dcim/locations" $ManufacturerAPIPath="dcim/manufacturers" $DevicePlatformAPIPath="dcim/platforms" $RacksAPIPath="dcim/racks" $RackReservationsAPIPath="dcim/rack-reservations" $RackRolesAPIPath="dcim/rack-roles" $RacksAPIPath="dcim/racks" $regionsAPIPath="dcim/regions" $SiteGroupsAPIPath="dcim/site-groups" $SitesAPIPath="dcim/sites" $NBVirtualChassisAPIPath="dcim/virtual-chassis" $NBAggregateAPIPath="ipam/aggregates" $ASNsAPIPath="ipam/asns" $IPAddressAPIPath="ipam/ip-addresses" $IPRangesAPIPath="ipam/ip-ranges" $PrefixesAPIPath="ipam/prefixes" $RIRsAPIPath="ipam/rirs" $IPAMRolesAPIPath="ipam/roles" $NBServiceAPIPath="ipam/services" $vlangroupsAPIPath="ipam/vlan-groups" $VLANsAPIPath="ipam/vlans" $VRFsApiPath="ipam/vrfs" $StatusAPIPath="status" $ContactGroupsAPIPath="tenancy/contact-groups" $ContactRolesAPIPath="tenancy/contact-roles" $ContactsAPIPath="tenancy/contacts" $TenantGroupsAPIPath="tenancy/tenant-groups" $TenantsAPIPath="tenancy/tenants" $UsersAPIPath="users/users" $VirtualizationClusterGroupsAPIPath="virtualization/cluster-groups" $VirtualizationClusterTypesAPIPath="virtualization/cluster-types" $VirtualizationClustersAPIPath="virtualization/clusters" $VirtualizationInterfaceAPIPath="virtualization/interfaces" $VirtualizationVMsAPIPath="virtualization/virtual-machines" $NBWirelessLanGroupAPIPath="wireless/wireless-lan-groups" $NBWirelessLanAPIPath="wireless/wireless-lans" $NBWirelessLinkAPIPath="wireless/wireless-links" # 0.0.5 $NBTagsAPIPath="extras/tags" $NBObjectTypesAPIPath="extras/object-types" $NBCircuitProvidersAPIPath="circuits/providers" $NBCircuitProviderNetworksAPIPath="circuits/provider-networks" $NBCircuitProviderAccountsAPIPath="circuits/provider-accounts" $NBCircuitTypesAPIPath="circuits/circuit-types" $NBCircuitsAPIPath="circuits/circuits" $NBCircuitTerminationsAPIPath="circuits/circuit-terminations" $NBServiceTemplatesAPIPath="ipam/service-templates" $NBPowerPanelsAPIPath="dcim/power-panels" $NBPowerFeedsAPIPath="dcim/power-feeds" # 0.0.8 $NBCircuitGroupAssignmentsAPIPath="circuits/circuit-group-assignments" $NBCircuitGroupsAPIPath="circuits/circuit-groups" $NBCablesAPIPath="dcim/cables" $NBCableTerminationsAPIPath="dcim/cable-terminations" $NBPowerOutletsAPIPath='dcim/power-outlets' $NBRackTypesAPIPath='dcim/rack-types' $NBVirtualDisksAPIPath='virtualization/virtual-disks' #EndRegion '.\Private\apiPaths.ps1' 64 #Region '.\Private\Invoke-CustomRequest.ps1' -1 function Invoke-CustomRequest { [CmdletBinding()] param ( [Parameter(Mandatory = $True, Position = 0)][System.Object]$restParams, [Parameter(Mandatory = $True, Position = 1)][System.Object]$Connection ) $Headers = @{ Authorization = "Token $($Connection.ApiKey)" "Content-Type" = 'application/json' } $callstack=Get-PSCallStack Write-Debug ("[$($Callstack[1].command) ⇒ $($MyInvocation.MyCommand.Name)] REST params:`n" + ($restParams|Out-String)) Write-Debug ("[$($Callstack[1].command) ⇒ $($MyInvocation.MyCommand.Name)] Headers:`n" + ($Headers|Out-String)) Write-Verbose "[$($Callstack[1].command) ⇒ $($MyInvocation.MyCommand.Name)] Making API $($restParams.Method) call to $($restParams.Uri)" try { $result = Invoke-RestMethod @restParams -Headers $headers -SkipCertificateCheck:$Connection.SkipCertificateCheck -ResponseHeadersVariable $ResponseHeaders -StatusCodeVariable $StatusCode } catch { Write-Error ("Response from API: $($_.ErrorDetails)") Write-Error ("[$($Callstack[1].command) ⇒ $($MyInvocation.MyCommand.Name)] Exception:`n" + ($_.Exception.Message|Out-String)) #$Global:foo = $_ } $result Write-Debug "[$($Callstack[1].command) ⇒ $($MyInvocation.MyCommand.Name)] Exiting function" } #EndRegion '.\Private\Invoke-CustomRequest.ps1' 26 #Region '.\Private\New-ArgumentString.ps1' -1 function New-ArgumentString { [CmdletBinding()] param ( [Parameter(Mandatory = $True, Position = 0)][hashtable]$QueryArguments ) $OutputString = [System.Web.HttpUtility]::ParseQueryString('') $QueryArguments.GetEnumerator() | ForEach-Object { $OutputString.Add($_.Key, $_.Value) } $OutputString.ToString() } #EndRegion '.\Private\New-ArgumentString.ps1' 10 #Region '.\Private\processFieldUpdates.ps1' -1 function processFieldUpdates($key,$value) { switch($key){ 'slug' {$value=makeSlug -name $value} 'tags' {[array]$value=$value.Split(',')} 'asns' {[array]$value=$value.Split(',')} 'install_date' {$value = $value|Get-Date -Format 'yyyy-MM-dd'} 'termination_date' {$value = $value|Get-Date -Format 'yyyy-MM-dd'} 'ipaddresses' {[array]$value=$value.Split(',')} default {} } $update=@{ $key = $value } $update } #EndRegion '.\Private\processFieldUpdates.ps1' 16 #Region '.\Private\slug.ps1' -1 function makeSlug ([string]$name) { $name.ToLower() -Replace("[^\w ]+","") -replace " +","-" -replace "^-",'' -replace "-$",'' } #EndRegion '.\Private\slug.ps1' 4 #Region '.\Public\endpoints\circuits\circuit-group-assignments\Get-NBCircuitGroupAssignmentByCircuitGroup.ps1' -1 function Get-NBCircuitGroupAssignmentByCircuitGroup { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) (Get-APIItemByQuery -apiConnection $Connection -RelativePath $NBCircuitGroupAssignmentsAPIPath -field 'group_id' -value $id).results } #EndRegion '.\Public\endpoints\circuits\circuit-group-assignments\Get-NBCircuitGroupAssignmentByCircuitGroup.ps1' 9 #Region '.\Public\endpoints\circuits\circuit-group-assignments\Get-NBCircuitGroupAssignmentByID.ps1' -1 function Get-NBCircuitGroupAssignmentByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBCircuitGroupAssignmentsAPIPath -id $id } #EndRegion '.\Public\endpoints\circuits\circuit-group-assignments\Get-NBCircuitGroupAssignmentByID.ps1' 10 #Region '.\Public\endpoints\circuits\circuit-group-assignments\Get-NBCircuitGroupAssignments.ps1' -1 function Get-NBCircuitGroupAssignments { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBCircuitGroupAssignmentsAPIPath } #EndRegion '.\Public\endpoints\circuits\circuit-group-assignments\Get-NBCircuitGroupAssignments.ps1' 8 #Region '.\Public\endpoints\circuits\circuit-group-assignments\New-NBCircuitGroupAssignment.ps1' -1 function New-NBCircuitGroupAssignment { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][int]$group, [Parameter(Mandatory=$true,Position=1)][int]$circuit, [Parameter(Mandatory=$false)][string][ValidateSet('primary','secondary','tertiary','inactive')]$priority, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBCircuitGroupAssignmentsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\circuits\circuit-group-assignments\New-NBCircuitGroupAssignment.ps1' 24 #Region '.\Public\endpoints\circuits\circuit-group-assignments\Remove-NBCircuitGroupAssignment.ps1' -1 function Remove-NBCircuitGroupAssignment { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBCircuitGroupAssignmentsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\circuits\circuit-group-assignments\Remove-NBCircuitGroupAssignment.ps1' 15 #Region '.\Public\endpoints\circuits\circuit-group-assignments\Set-NBCircuitGroupAssignment.ps1' -1 function Set-NBCircuitGroupAssignment { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, # ValidateSets updated as of Netbox v4.1.8 [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('group','circuit','priority','tags')] $key, [Parameter(Mandatory=$true,Position=2, HelpMessage="A valid value for the attribute you want to change. If the expected value is an array, like for tags, pass it as '1,2' or whatever the ids of the tags you wish to set are." )][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBCircuitGroupAssignmentsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\circuits\circuit-group-assignments\Set-NBCircuitGroupAssignment.ps1' 23 #Region '.\Public\endpoints\circuits\circuit-groups\Get-NBCircuitGroupByID.ps1' -1 function Get-NBCircuitGroupByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBCircuitGroupsAPIPath -id $id } #EndRegion '.\Public\endpoints\circuits\circuit-groups\Get-NBCircuitGroupByID.ps1' 10 #Region '.\Public\endpoints\circuits\circuit-groups\Get-NBCircuitGroups.ps1' -1 function Get-NBCircuitGroups { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBCircuitGroupsAPIPath } #EndRegion '.\Public\endpoints\circuits\circuit-groups\Get-NBCircuitGroups.ps1' 8 #Region '.\Public\endpoints\circuits\circuit-groups\New-NBCircuitGroup.ps1' -1 function New-NBCircuitGroup { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][int]$tenant, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBCircuitGroupsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\circuits\circuit-groups\New-NBCircuitGroup.ps1' 26 #Region '.\Public\endpoints\circuits\circuit-groups\Remove-NBCircuitGroup.ps1' -1 function Remove-NBCircuitGroup { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBCircuitGroupsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\circuits\circuit-groups\Remove-NBCircuitGroup.ps1' 15 #Region '.\Public\endpoints\circuits\circuit-groups\Set-NBCircuitGroup.ps1' -1 function Set-NBCircuitGroup { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, # ValidateSets updated as of Netbox v4.1.8 [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','description','tenant','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2, HelpMessage="A valid value for the attribute you want to change. If the expected value is an array, like for tags, pass it as '1,2' or whatever the ids of the tags you wish to set are." )][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBCircuitGroupsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\circuits\circuit-groups\Set-NBCircuitGroup.ps1' 23 #Region '.\Public\endpoints\circuits\circuit-terminations\Get-NBCircuitTerminationByID.ps1' -1 function Get-NBCircuitTerminationByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBCircuitTerminationsAPIPath -id $id } #EndRegion '.\Public\endpoints\circuits\circuit-terminations\Get-NBCircuitTerminationByID.ps1' 10 #Region '.\Public\endpoints\circuits\circuit-terminations\Get-NBCircuitTerminations.ps1' -1 function Get-NBCircuitTerminations { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBCircuitTerminationsAPIPath } #EndRegion '.\Public\endpoints\circuits\circuit-terminations\Get-NBCircuitTerminations.ps1' 8 #Region '.\Public\endpoints\circuits\circuit-terminations\New-NBCircuitTermination.ps1' -1 function New-NBCircuitTermination { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][int]$circuit, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('A','Z')] $term_side, [Parameter(Mandatory=$false)][int]$site, [Parameter(Mandatory=$false)][int]$provider_network, [Parameter(Mandatory=$false)][int]$port_speed, [Parameter(Mandatory=$false)][int]$upstream_speed, [Parameter(Mandatory=$false)][string]$xconnect_id, [Parameter(Mandatory=$false)][string]$pp_info, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][bool]$mark_connected, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBCircuitTerminationsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\circuits\circuit-terminations\New-NBCircuitTermination.ps1' 34 #Region '.\Public\endpoints\circuits\circuit-terminations\Remove-NBCircuitTermination.ps1' -1 function Remove-NBCircuitTermination { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBCircuitTerminationsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\circuits\circuit-terminations\Remove-NBCircuitTermination.ps1' 15 #Region '.\Public\endpoints\circuits\circuit-terminations\Set-NBCircuitTermination.ps1' -1 function Set-NBCircuitTermination { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('circuit','term_side','site','provider_network','port_speed','upstream_speed','xconnect_id','pp_info','description','mark_connected','custom_fields','tags')] $key, [Parameter(Mandatory=$true,Position=2, HelpMessage="A valid value for the attribute you want to change. If the expected value is an array, like for tags, pass it as '1,2' or whatever the ids of the tags you wish to set are." )][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBCircuitTerminationsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\circuits\circuit-terminations\Set-NBCircuitTermination.ps1' 22 #Region '.\Public\endpoints\circuits\circuit-types\Get-NBCircuitTypeByID.ps1' -1 function Get-NBCircuitTypeByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBCircuitTypesAPIPath -id $id } #EndRegion '.\Public\endpoints\circuits\circuit-types\Get-NBCircuitTypeByID.ps1' 10 #Region '.\Public\endpoints\circuits\circuit-types\Get-NBCircuitTypeByName.ps1' -1 function Get-NBCircuitTypeByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $NBCircuitTypesAPIPath -value $name } #EndRegion '.\Public\endpoints\circuits\circuit-types\Get-NBCircuitTypeByName.ps1' 10 #Region '.\Public\endpoints\circuits\circuit-types\Get-NBCircuitTypes.ps1' -1 function Get-NBCircuitTypes { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBCircuitTypesAPIPath } #EndRegion '.\Public\endpoints\circuits\circuit-types\Get-NBCircuitTypes.ps1' 9 #Region '.\Public\endpoints\circuits\circuit-types\New-NBCircuitType.ps1' -1 function New-NBCircuitType { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][string]$color, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBCircuitTypesAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\circuits\circuit-types\New-NBCircuitType.ps1' 26 #Region '.\Public\endpoints\circuits\circuit-types\Remove-NBCircuitType.ps1' -1 function Remove-NBCircuitType { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBCircuitTypesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\circuits\circuit-types\Remove-NBCircuitType.ps1' 15 #Region '.\Public\endpoints\circuits\circuit-types\Set-NBCircuitType.ps1' -1 function Set-NBCircuitType { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','color','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2, HelpMessage="A valid value for the attribute you want to change. If the expected value is an array, like for tags, pass it as '1,2' or whatever the ids of the tags you wish to set are." )][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBCircuitTypesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } $result = (Invoke-CustomRequest -restParams $restParams -Connection $Connection) if ($result.message) { $result.message } else { $result } } #EndRegion '.\Public\endpoints\circuits\circuit-types\Set-NBCircuitType.ps1' 24 #Region '.\Public\endpoints\circuits\circuits\Get-NBCircuitByCID.ps1' -1 function Get-NBCircuitByCID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$cid ) (Get-APIItemByQuery -apiConnection $Connection -RelativePath $NBCircuitsAPIPath -field cid -value $cid).results } #EndRegion '.\Public\endpoints\circuits\circuits\Get-NBCircuitByCID.ps1' 10 #Region '.\Public\endpoints\circuits\circuits\Get-NBCircuitByID.ps1' -1 function Get-NBCircuitByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBCircuitsAPIPath -id $id } #EndRegion '.\Public\endpoints\circuits\circuits\Get-NBCircuitByID.ps1' 10 #Region '.\Public\endpoints\circuits\circuits\Get-NBCircuits.ps1' -1 function Get-NBCircuits { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBCircuitsAPIPath } #EndRegion '.\Public\endpoints\circuits\circuits\Get-NBCircuits.ps1' 9 #Region '.\Public\endpoints\circuits\circuits\New-NBCircuit.ps1' -1 function New-NBCircuit { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$cid, [Parameter(Mandatory=$true,Position=1)][int]$provider, [Parameter(Mandatory=$false)][int]$provider_account, [Parameter(Mandatory=$true,Position=2)][int]$type, [Parameter(Mandatory=$false)][string] [ValidateSet('planned','provisioning','active','offline','deprovisioning','decommissioned')] $status, [Parameter(Mandatory=$false)][int]$tenant, [Parameter(Mandatory=$false)][datetime]$install_date, [Parameter(Mandatory=$false)][datetime]$termination_date, [Parameter(Mandatory=$false)][int]$commit_rate, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, # Not adding assignment support here, that's what those cmdlets are for [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name if($PSBoundParameters['install_date']) {$PSBoundParameters['install_date']=$PSBoundParameters['install_date']|Get-Date -Format 'yyyy-MM-dd'} if($PSBoundParameters['termination_date']) {$PSBoundParameters['termination_date']=$PSBoundParameters['termination_date']|Get-Date -Format 'yyyy-MM-dd'} $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBCircuitsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\circuits\circuits\New-NBCircuit.ps1' 39 #Region '.\Public\endpoints\circuits\circuits\Remove-NBCircuit.ps1' -1 function Remove-NBCircuit { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBCircuitsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\circuits\circuits\Remove-NBCircuit.ps1' 15 #Region '.\Public\endpoints\circuits\circuits\Set-NBCircuit.ps1' -1 function Set-NBCircuit { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('cid','provider','provider_account','type','status','tenant','install_date','termination_date','commit_rate','description','comments','tags')] $key, [Parameter(Mandatory=$true,Position=2, HelpMessage="A valid value for the attribute you want to change. If the expected value is an array, like for tags, pass it as '1,2' or whatever the ids of the tags you wish to set are." )][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBCircuitsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } $result = (Invoke-CustomRequest -restParams $restParams -Connection $Connection) if ($result.message) { $result.message } else { $result } } #EndRegion '.\Public\endpoints\circuits\circuits\Set-NBCircuit.ps1' 24 #Region '.\Public\endpoints\circuits\provider-accounts\Get-NBCircuitProviderAccountByAccount.ps1' -1 function Get-NBCircuitProviderAccountByAccount { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$account ) (Get-APIItemByQuery -apiConnection $Connection -RelativePath $NBCircuitProviderAccountsAPIPath -field account -value $account).results } #EndRegion '.\Public\endpoints\circuits\provider-accounts\Get-NBCircuitProviderAccountByAccount.ps1' 10 #Region '.\Public\endpoints\circuits\provider-accounts\Get-NBCircuitProviderAccountByID.ps1' -1 function Get-NBCircuitProviderAccountByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBCircuitProviderAccountsAPIPath -id $id } #EndRegion '.\Public\endpoints\circuits\provider-accounts\Get-NBCircuitProviderAccountByID.ps1' 10 #Region '.\Public\endpoints\circuits\provider-accounts\Get-NBCircuitProviderAccounts.ps1' -1 function Get-NBCircuitProviderAccounts { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBCircuitProviderAccountsAPIPath } #EndRegion '.\Public\endpoints\circuits\provider-accounts\Get-NBCircuitProviderAccounts.ps1' 9 #Region '.\Public\endpoints\circuits\provider-accounts\New-NBCircuitProviderAccount.ps1' -1 function New-NBCircuitProviderAccount { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=1)][int]$provider, [Parameter(Mandatory=$false)][string]$name, [Parameter(Mandatory=$true,Position=0)][string]$account, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBCircuitProviderAccountsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\circuits\provider-accounts\New-NBCircuitProviderAccount.ps1' 27 #Region '.\Public\endpoints\circuits\provider-accounts\Remove-NBCircuitProviderAccount.ps1' -1 function Remove-NBCircuitProviderAccount { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBCircuitProviderAccountsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\circuits\provider-accounts\Remove-NBCircuitProviderAccount.ps1' 15 #Region '.\Public\endpoints\circuits\provider-accounts\Set-NBCircuitProviderAccount.ps1' -1 function Set-NBCircuitProviderAccount { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('provider','name','account','description','comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2, HelpMessage="A valid value for the attribute you want to change. If the expected value is an array, like for tags, pass it as '1,2' or whatever the ids of the tags you wish to set are." )][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBCircuitProviderAccountsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\circuits\provider-accounts\Set-NBCircuitProviderAccount.ps1' 22 #Region '.\Public\endpoints\circuits\provider-networks\Get-NBCircuitProviderNetworkByID.ps1' -1 function Get-NBCircuitProviderNetworkByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBCircuitProviderNetworksAPIPath -id $id } #EndRegion '.\Public\endpoints\circuits\provider-networks\Get-NBCircuitProviderNetworkByID.ps1' 10 #Region '.\Public\endpoints\circuits\provider-networks\Get-NBCircuitProviderNetworkByName.ps1' -1 function Get-NBCircuitProviderNetworkByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $NBCircuitProviderNetworksAPIPath -value $name } #EndRegion '.\Public\endpoints\circuits\provider-networks\Get-NBCircuitProviderNetworkByName.ps1' 10 #Region '.\Public\endpoints\circuits\provider-networks\Get-NBCircuitProviderNetworks.ps1' -1 function Get-NBCircuitProviderNetworks { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBCircuitProviderNetworksAPIPath } #EndRegion '.\Public\endpoints\circuits\provider-networks\Get-NBCircuitProviderNetworks.ps1' 9 #Region '.\Public\endpoints\circuits\provider-networks\New-NBCircuitProviderNetwork.ps1' -1 function New-NBCircuitProviderNetwork { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=1)][int]$provider, [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][string]$service_id, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBCircuitProviderNetworksAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\circuits\provider-networks\New-NBCircuitProviderNetwork.ps1' 27 #Region '.\Public\endpoints\circuits\provider-networks\Remove-NBCircuitProviderNetwork.ps1' -1 function Remove-NBCircuitProviderNetwork { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBCircuitProviderNetworksAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\circuits\provider-networks\Remove-NBCircuitProviderNetwork.ps1' 15 #Region '.\Public\endpoints\circuits\provider-networks\Set-NBCircuitProviderNetwork.ps1' -1 function Set-NBCircuitProviderNetwork { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('provider','name','service_id','description','comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2, HelpMessage="A valid value for the attribute you want to change. If the expected value is an array, like for tags, pass it as '1,2' or whatever the ids of the tags you wish to set are." )][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBCircuitProviderNetworksAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\circuits\provider-networks\Set-NBCircuitProviderNetwork.ps1' 22 #Region '.\Public\endpoints\circuits\providers\Get-NBCircuitProviderByID.ps1' -1 function Get-NBCircuitProviderByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBCircuitProvidersAPIPath -id $id } #EndRegion '.\Public\endpoints\circuits\providers\Get-NBCircuitProviderByID.ps1' 10 #Region '.\Public\endpoints\circuits\providers\Get-NBCircuitProviderByName.ps1' -1 function Get-NBCircuitProviderByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $NBCircuitProvidersAPIPath -value $name } #EndRegion '.\Public\endpoints\circuits\providers\Get-NBCircuitProviderByName.ps1' 10 #Region '.\Public\endpoints\circuits\providers\Get-NBCircuitProviders.ps1' -1 function Get-NBCircuitProviders { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBCircuitProvidersAPIPath } #EndRegion '.\Public\endpoints\circuits\providers\Get-NBCircuitProviders.ps1' 9 #Region '.\Public\endpoints\circuits\providers\New-NBCircuitProvider.ps1' -1 function New-NBCircuitProvider { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, # Not adding support for accounts here, you can set those on the account [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$asns, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBCircuitProvidersAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\circuits\providers\New-NBCircuitProvider.ps1' 28 #Region '.\Public\endpoints\circuits\providers\Remove-NBCircuitProvider.ps1' -1 function Remove-NBCircuitProvider { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBCircuitProvidersAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\circuits\providers\Remove-NBCircuitProvider.ps1' 15 #Region '.\Public\endpoints\circuits\providers\Set-NBCircuitProvider.ps1' -1 function Set-NBCircuitProvider { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','description','comments','asns','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2, HelpMessage="A valid value for the attribute you want to change. If the expected value is an array, like for tags, pass it as '1,2' or whatever the ids of the tags you wish to set are." )][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBCircuitProvidersAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\circuits\providers\Set-NBCircuitProvider.ps1' 22 #Region '.\Public\endpoints\dcim\cable-terminations\Get-NBCableTerminationByID.ps1' -1 function Get-NBCableTerminationByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBCableTerminationsAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\cable-terminations\Get-NBCableTerminationByID.ps1' 10 #Region '.\Public\endpoints\dcim\cable-terminations\Get-NBCableTerminations.ps1' -1 function Get-NBCableTerminations { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBCableTerminationsAPIPath } #EndRegion '.\Public\endpoints\dcim\cable-terminations\Get-NBCableTerminations.ps1' 8 #Region '.\Public\endpoints\dcim\cable-terminations\New-NBCableTermination.ps1' -1 function New-NBCableTermination { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][int]$cable, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('A','B')] $cable_end, [Parameter(Mandatory=$false)][string]$termination_type, [Parameter(Mandatory=$false)][int]$termination_id, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBCableTerminationsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\cable-terminations\New-NBCableTermination.ps1' 26 #Region '.\Public\endpoints\dcim\cable-terminations\Remove-NBCableTermination.ps1' -1 function Remove-NBCableTermination { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBCableTerminationsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\cable-terminations\Remove-NBCableTermination.ps1' 15 #Region '.\Public\endpoints\dcim\cable-terminations\Set-NBCableTermination.ps1' -1 # There is almost certainly no point to this cmdlet since if you go from one termination type to another, you have to set both at the same time. # On the off chance it's useful I'll leave it in but if you have to switch types on one end of a termination, you're likely better off making a whole new termination. function Set-NBCableTermination { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('cable','cable_end','termination_type','termination_id')] $key, [Parameter(Mandatory=$true,Position=2, HelpMessage="A valid value for the attribute you want to change. If the expected value is an array, like for tags, pass it as '1,2' or whatever the ids of the tags you wish to set are." )][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBCableTerminationsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\cable-terminations\Set-NBCableTermination.ps1' 24 #Region '.\Public\endpoints\dcim\cables\Get-NBCableByID.ps1' -1 function Get-NBCableByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBCablesAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\cables\Get-NBCableByID.ps1' 10 #Region '.\Public\endpoints\dcim\cables\Get-NBCables.ps1' -1 function Get-NBCables { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBCablesAPIPath } #EndRegion '.\Public\endpoints\dcim\cables\Get-NBCables.ps1' 8 #Region '.\Public\endpoints\dcim\cables\New-NBCable.ps1' -1 function New-NBCable { [CmdletBinding()] param ( [Parameter(Mandatory=$false)] [ValidateSet( 'cat3','cat5','cat5e','cat6','cat6a','cat7','cat7a','cat8','dac-active','dac-passive','mrj21-trunk','coaxial','mmf', 'mmf-om1','mmf-om2','mmf-om3','mmf-om4','mmf-om5','smf','smf-os1','smf-os2','aoc','usb','power' )] [string]$type, [Parameter(Mandatory=$true,Position=0)][hashtable[]]$a_terminations, [Parameter(Mandatory=$true,Position=1)][hashtable[]]$b_terminations, [Parameter(Mandatory=$false)] [ValidateSet('connected','planned','decommissioning')] [string]$status, [Parameter(Mandatory=$false)][int]$tenant, [Parameter(Mandatory=$false)][string]$label, [Parameter(Mandatory=$false)][string]$color, [Parameter(Mandatory=$false)][int]$length, [Parameter(Mandatory=$false)] [ValidateSet('km','m','cm','mi','ft','in')] [string]$length_unit, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBCablesAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\cables\New-NBCable.ps1' 42 #Region '.\Public\endpoints\dcim\cables\Remove-NBCable.ps1' -1 function Remove-NBCable { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBCablesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\cables\Remove-NBCable.ps1' 15 #Region '.\Public\endpoints\dcim\cables\Set-NBCable.ps1' -1 function Set-NBCable { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('type','a_terminations','b_terminations','status','tenant','label','color','length','length_unit','description','comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2, HelpMessage="A valid value for the attribute you want to change. If the expected value is an array, like for tags, pass it as '1,2' or whatever the ids of the tags you wish to set are." )][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBCablesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\cables\Set-NBCable.ps1' 22 #Region '.\Public\endpoints\dcim\device-roles\Get-NBDeviceRoleByID.ps1' -1 function Get-NBDeviceRoleByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $DeviceRolesAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\device-roles\Get-NBDeviceRoleByID.ps1' 10 #Region '.\Public\endpoints\dcim\device-roles\Get-NBDeviceRoleByName.ps1' -1 function Get-NBDeviceRoleByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $DeviceRolesAPIPath -value $name } #EndRegion '.\Public\endpoints\dcim\device-roles\Get-NBDeviceRoleByName.ps1' 10 #Region '.\Public\endpoints\dcim\device-roles\Get-NBDeviceRoles.ps1' -1 function Get-NBDeviceRoles { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $DeviceRolesAPIPath } #EndRegion '.\Public\endpoints\dcim\device-roles\Get-NBDeviceRoles.ps1' 9 #Region '.\Public\endpoints\dcim\device-roles\New-NBDeviceRole.ps1' -1 function New-NBDeviceRole { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$true,Position=1)][string]$color, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$DeviceRolesAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\device-roles\New-NBDeviceRole.ps1' 23 #Region '.\Public\endpoints\dcim\device-roles\Remove-NBDeviceRole.ps1' -1 function Remove-NBDeviceRole { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$DeviceRolesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\device-roles\Remove-NBDeviceRole.ps1' 15 #Region '.\Public\endpoints\dcim\device-roles\Set-NBDeviceRole.ps1' -1 function Set-NBDeviceRole { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','color','vm_role','description','tags')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$DeviceRolesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\device-roles\Set-NBDeviceRole.ps1' 20 #Region '.\Public\endpoints\dcim\device-types\Find-NBDeviceTypesContainingModel.ps1' -1 function Find-NBDeviceTypesContainingModel { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$model ) Get-ApiItemByQuery -apiConnection $Connection -RelativePath $deviceTypesPath -field 'model__ic' -value $model } #EndRegion '.\Public\endpoints\dcim\device-types\Find-NBDeviceTypesContainingModel.ps1' 10 #Region '.\Public\endpoints\dcim\device-types\Get-NBDeviceTypeByID.ps1' -1 function Get-NBDeviceTypeByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $deviceTypesPath -id $id } #EndRegion '.\Public\endpoints\dcim\device-types\Get-NBDeviceTypeByID.ps1' 10 #Region '.\Public\endpoints\dcim\device-types\Get-NBDeviceTypeByModel.ps1' -1 function Get-NBDeviceTypeByModel { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$model ) (Get-ApiItemByQuery -apiConnection $Connection -RelativePath $deviceTypesPath -field 'model__ie' -value $model).results } #EndRegion '.\Public\endpoints\dcim\device-types\Get-NBDeviceTypeByModel.ps1' 10 #Region '.\Public\endpoints\dcim\device-types\Get-NBDeviceTypes.ps1' -1 function Get-NBDeviceTypes { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $deviceTypesPath } #EndRegion '.\Public\endpoints\dcim\device-types\Get-NBDeviceTypes.ps1' 9 #Region '.\Public\endpoints\dcim\device-types\New-NBDeviceType.ps1' -1 function New-NBDeviceType { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][int]$manufacturer, [Parameter(Mandatory=$false)][int]$default_platform, [Parameter(Mandatory=$true,Position=1)][string]$model, [Parameter(Mandatory=$false)][string]$part_number, [Parameter(Mandatory=$false)][int]$u_height, [Parameter(Mandatory=$false)][bool]$is_full_depth, [Parameter(Mandatory=$false)][string]$subdevice_role, [Parameter(Mandatory=$false)] [ValidateSet('front-to-rear','rear-to-front','left-to-right','right-to-left','side-to-rear','passive','mixed')] [string]$airflow, [Parameter(Mandatory=$false)][int]$weight, [Parameter(Mandatory=$false)] [ValidateSet('kg','g','lb','oz')] [string]$weight_unit, [Parameter(Mandatory=$false)][string]$front_image, [Parameter(Mandatory=$false)][string]$rear_image, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $model $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) Write-Verbose "[$($MyInvocation.MyCommand.Name)] Running" Write-Verbose $PostJson $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$deviceTypesPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\device-types\New-NBDeviceType.ps1' 41 #Region '.\Public\endpoints\dcim\device-types\Remove-NBDeviceType.ps1' -1 function Remove-NBDeviceType { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$deviceTypesPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\device-types\Remove-NBDeviceType.ps1' 15 #Region '.\Public\endpoints\dcim\device-types\Set-NBDeviceType.ps1' -1 function Set-NBDeviceType { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('manufacturer','model','slug','part_number','u_height','is_full_depth','subdevice_role','airflow', 'comments','tags')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$deviceTypesPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\device-types\Set-NBDeviceType.ps1' 21 #Region '.\Public\endpoints\dcim\devices\Find-NBDevicesContainingName.ps1' -1 function Find-NBDevicesContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $DevicesAPIPath -name $name } #EndRegion '.\Public\endpoints\dcim\devices\Find-NBDevicesContainingName.ps1' 10 #Region '.\Public\endpoints\dcim\devices\Get-NBDeviceByID.ps1' -1 function Get-NBDeviceByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $DevicesAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\devices\Get-NBDeviceByID.ps1' 10 #Region '.\Public\endpoints\dcim\devices\Get-NBDeviceByName.ps1' -1 function Get-NBDeviceByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $DevicesAPIPath -value $name } #EndRegion '.\Public\endpoints\dcim\devices\Get-NBDeviceByName.ps1' 10 #Region '.\Public\endpoints\dcim\devices\Get-NBDevices.ps1' -1 function Get-NBDevices { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $DevicesAPIPath } #EndRegion '.\Public\endpoints\dcim\devices\Get-NBDevices.ps1' 9 #Region '.\Public\endpoints\dcim\devices\New-NBDevice.ps1' -1 function New-NBDevice { <# .SYNOPSIS Adds a new device object to Netbox #> [CmdletBinding()] # ValidateSets updated as of Netbox v4.1.8 param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$true,Position=1)][int]$device_type, [Parameter(Mandatory=$true,Position=2)][int]$role, [Parameter(Mandatory=$false,Position=3)][int]$tenant, [Parameter(Mandatory=$false)][int]$platform, [Parameter(Mandatory=$false)][string]$serial, [Parameter(Mandatory=$false)][string]$asset_tag, [Parameter(Mandatory=$false)][int]$site, [Parameter(Mandatory=$false)][int]$location, [Parameter(Mandatory=$false)][int]$rack, [Parameter(Mandatory=$false)][int]$position, [Parameter(Mandatory=$false)] [ValidateSet('front','rear')] [string]$face, [Parameter(Mandatory=$false)][double]$latitude, [Parameter(Mandatory=$false)][double]$longitude, [Parameter(Mandatory=$false)] [ValidateSet('offline','active','planned','staged','failed','inventory','decommissioning')] [string]$status, [Parameter(Mandatory=$false)] [ValidateSet('front-to-rear','rear-to-front','left-to-right','right-to-left','side-to-rear','rear-to-side','bottom-to-top','top-to-bottom','passive','mixed')] [string]$airflow, [Parameter(Mandatory=$false)][int]$primary_ip4, [Parameter(Mandatory=$false)][int]$primary_ip6, [Parameter(Mandatory=$false)][int]$oob_ip, [Parameter(Mandatory=$false)][int]$cluster, [Parameter(Mandatory=$false)][int]$virtual_chassis, [Parameter(Mandatory=$false)][int]$vc_position, [Parameter(Mandatory=$false)][int]$vc_priority, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$DevicesAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\devices\New-NBDevice.ps1' 57 #Region '.\Public\endpoints\dcim\devices\Remove-NBDevice.ps1' -1 function Remove-NBDevice { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$DevicesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\devices\Remove-NBDevice.ps1' 15 #Region '.\Public\endpoints\dcim\devices\Set-NBDevice.ps1' -1 function Set-NBDevice { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, # ValidateSets updated as of Netbox v4.1.8 [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','device_type','role','tenant','platform','serial','asset_tag','site', 'location','rack','position','face','latitude','longitude','status','airflow','primary_ip4', 'primary_ip6','oob_ip','cluster','virtual_chassis','vc_position','vc_priority','description', 'comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$DevicesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } Write-Debug $restParams.body|Out-String (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\devices\Set-NBDevice.ps1' 25 #Region '.\Public\endpoints\dcim\interfaces\Find-NBDeviceInterfacesContainingName.ps1' -1 function Find-NBDeviceInterfacesContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) (Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $NBDeviceInterfaceAPIPath -name $name).results } #EndRegion '.\Public\endpoints\dcim\interfaces\Find-NBDeviceInterfacesContainingName.ps1' 10 #Region '.\Public\endpoints\dcim\interfaces\Get-NBDeviceInterfaceByID.ps1' -1 function Get-NBDeviceInterfaceByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBDeviceInterfaceAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\interfaces\Get-NBDeviceInterfaceByID.ps1' 10 #Region '.\Public\endpoints\dcim\interfaces\Get-NBDeviceInterfaceByName.ps1' -1 function Get-NBDeviceInterfaceByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $NBDeviceInterfaceAPIPath -value $name } #EndRegion '.\Public\endpoints\dcim\interfaces\Get-NBDeviceInterfaceByName.ps1' 10 #Region '.\Public\endpoints\dcim\interfaces\Get-NBDeviceInterfaceForDevice.ps1' -1 function Get-NBDeviceInterfaceForDevice { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) (Get-APIItemByQuery -apiConnection $Connection -RelativePath $NBDeviceInterfaceAPIPath -field 'device_id' $id).results } #EndRegion '.\Public\endpoints\dcim\interfaces\Get-NBDeviceInterfaceForDevice.ps1' 10 #Region '.\Public\endpoints\dcim\interfaces\Get-NBDeviceInterfaces.ps1' -1 function Get-NBDeviceInterfaces { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBDeviceInterfaceAPIPath } #EndRegion '.\Public\endpoints\dcim\interfaces\Get-NBDeviceInterfaces.ps1' 9 #Region '.\Public\endpoints\dcim\interfaces\New-NBDeviceInterface.ps1' -1 function New-NBDeviceInterface { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=2)][int]$device, [Parameter(Mandatory=$false)][int]$module, [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][string]$label, [Parameter(Mandatory=$true,Position=1)] [ValidateSet("virtual","bridge","lag","100base-fx","100base-lfx","100base-tx","100base-t1","1000base-t", "1000base-lx","1000base-tx","2.5gbase-t","5gbase-t","10gbase-t","10gbase-cx4","100base-x-sfp", "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","400gbase-x-cfp2","100gbase-x-cfp4","100gbase-x-cxp", "100gbase-x-cpak","100gbase-x-dsfp","100gbase-x-sfpdd","100gbase-x-qsfp28","100gbase-x-qsfpdd", "200gbase-x-qsfp56","200gbase-x-qsfpdd","400gbase-x-qsfp112","400gbase-x-qsfpdd","400gbase-x-osfp", "400gbase-x-osfp-rhs","400gbase-x-cdfp","400gbase-x-cfp8","800gbase-x-qsfpdd","800gbase-x-osfp", "1000base-kx","2.5gbase-kx","5gbase-kr","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.11be","ieee802.15.1", "ieee802.15.4","other-wireless","gsm","cdma","lte","4g","5g","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","32gfc-sfpp","64gfc-qsfpp","64gfc-sfpdd","64gfc-sfpp", "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", "bpon","epon","10g-epon","gpon","xg-pon","xgs-pon","ng-pon2","25g-pon","50g-pon","cisco-stackwise", "cisco-stackwise-plus","cisco-flexstack","cisco-flexstack-plus","cisco-stackwise-80","cisco-stackwise-160", "cisco-stackwise-320","cisco-stackwise-480","cisco-stackwise-1t","juniper-vcp","extreme-summitstack", "extreme-summitstack-128","extreme-summitstack-256","extreme-summitstack-512","other")] [string]$type, [Parameter(Mandatory=$false)][bool]$enabled, [Parameter(Mandatory=$false)][int]$parent, [Parameter(Mandatory=$false)][int]$bridge, [Parameter(Mandatory=$false)][int]$lag, [Parameter(Mandatory=$false)][int]$mtu, [Parameter(Mandatory=$false)][string]$mac_address, [Parameter(Mandatory=$false)][int]$speed, [Parameter(Mandatory=$false)][string]$duplex, [Parameter(Mandatory=$false)][string]$wwn, [Parameter(Mandatory=$false)][bool]$mgmt_only, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$mode, [Parameter(Mandatory=$false)][string]$rf_role, [Parameter(Mandatory=$false)][string]$rf_channel, [Parameter(Mandatory=$false)][string]$poe_mode, [Parameter(Mandatory=$false)][string]$poe_type, [Parameter(Mandatory=$false)][int]$rf_channel_frequency, [Parameter(Mandatory=$false)][int]$rf_channel_width, [Parameter(Mandatory=$false)][int]$tx_power, [Parameter(Mandatory=$false)][int]$untagged_vlan, [Parameter(Mandatory=$false)][int[]]$tagged_vlans, [Parameter(Mandatory=$false)][bool]$mark_connected, [Parameter(Mandatory=$false)][int[]]$wireless_lans, [Parameter(Mandatory=$false)][int]$vrf, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBDeviceInterfaceAPIPath/" body = $PostJson } Write-Verbose $PostJson $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\interfaces\New-NBDeviceInterface.ps1' 72 #Region '.\Public\endpoints\dcim\interfaces\Remove-NBDeviceInterface.ps1' -1 function Remove-NBDeviceInterface { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBDeviceInterfaceAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\interfaces\Remove-NBDeviceInterface.ps1' 15 #Region '.\Public\endpoints\dcim\interfaces\Set-NBDeviceInterface.ps1' -1 function Set-NBDeviceInterface { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('device','vdcs','module','name','label','type','enabled','parent','bridge','lag','mtu','mac_address','speed', 'duplex','wwn','mgmt_only','description','mode','rf_role','rf_channel','poe_mode','poe_type','rf_channel_frequency', 'rf_channel_width','tx_power','untagged_vlan','tagged_vlans','mark_connected','wireless_lans','vrf','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBDeviceInterfaceAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\interfaces\Set-NBDeviceInterface.ps1' 22 #Region '.\Public\endpoints\dcim\locations\Find-NBLocationsContainingName.ps1' -1 function Find-NBLocationsContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) (Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $LocationsAPIPath -name $name).results } #EndRegion '.\Public\endpoints\dcim\locations\Find-NBLocationsContainingName.ps1' 10 #Region '.\Public\endpoints\dcim\locations\Get-NBLocationByID.ps1' -1 function Get-NBLocationByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $LocationsAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\locations\Get-NBLocationByID.ps1' 10 #Region '.\Public\endpoints\dcim\locations\Get-NBLocationByName.ps1' -1 function Get-NBLocationByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $LocationsAPIPath -value $name } #EndRegion '.\Public\endpoints\dcim\locations\Get-NBLocationByName.ps1' 10 #Region '.\Public\endpoints\dcim\locations\Get-NBLocations.ps1' -1 function Get-NBLocations { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $LocationsAPIPath } #EndRegion '.\Public\endpoints\dcim\locations\Get-NBLocations.ps1' 9 #Region '.\Public\endpoints\dcim\locations\New-NBLocation.ps1' -1 function New-NBLocation { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$true,Position=1)][int]$site, [Parameter(Mandatory=$false)][int]$parent, [Parameter(Mandatory=$false)] [ValidateSet('planned','staging','active','decommissioning','retired')] [string]$status, [Parameter(Mandatory=$false)][int]$tenant, [Parameter(Mandatory=$false)][string]$facility, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$LocationsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\locations\New-NBLocation.ps1' 32 #Region '.\Public\endpoints\dcim\locations\Remove-NBLocation.ps1' -1 function Remove-NBLocation { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$LocationsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\locations\Remove-NBLocation.ps1' 15 #Region '.\Public\endpoints\dcim\locations\Set-NBLocation.ps1' -1 function Set-NBLocation { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','site','parent','status','tenant','facility','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$LocationsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\locations\Set-NBLocation.ps1' 20 #Region '.\Public\endpoints\dcim\manufacturers\Find-NBManufacturersContainingName.ps1' -1 function Find-NBManufacturersContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $ManufacturerAPIPath -name $name } #EndRegion '.\Public\endpoints\dcim\manufacturers\Find-NBManufacturersContainingName.ps1' 10 #Region '.\Public\endpoints\dcim\manufacturers\Get-NBManufacturerByID.ps1' -1 function Get-NBManufacturerByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $ManufacturerAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\manufacturers\Get-NBManufacturerByID.ps1' 10 #Region '.\Public\endpoints\dcim\manufacturers\Get-NBManufacturerByName.ps1' -1 function Get-NBManufacturerByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $ManufacturerAPIPath -value $name } #EndRegion '.\Public\endpoints\dcim\manufacturers\Get-NBManufacturerByName.ps1' 10 #Region '.\Public\endpoints\dcim\manufacturers\Get-NBManufacturers.ps1' -1 function Get-NBManufacturers { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $ManufacturerAPIPath } #EndRegion '.\Public\endpoints\dcim\manufacturers\Get-NBManufacturers.ps1' 9 #Region '.\Public\endpoints\dcim\manufacturers\New-NBManufacturer.ps1' -1 function New-NBManufacturer { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$ManufacturerAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\manufacturers\New-NBManufacturer.ps1' 25 #Region '.\Public\endpoints\dcim\manufacturers\Remove-NBManufacturer.ps1' -1 function Remove-NBManufacturer { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$ManufacturerAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\manufacturers\Remove-NBManufacturer.ps1' 15 #Region '.\Public\endpoints\dcim\manufacturers\Set-NBManufacturer.ps1' -1 function Set-NBManufacturer { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$ManufacturerAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\manufacturers\Set-NBManufacturer.ps1' 20 #Region '.\Public\endpoints\dcim\platforms\Find-NBDevicePlatformsContainingName.ps1' -1 function Find-NBDevicePlatformsContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $DevicePlatformAPIPath -name $name } #EndRegion '.\Public\endpoints\dcim\platforms\Find-NBDevicePlatformsContainingName.ps1' 10 #Region '.\Public\endpoints\dcim\platforms\Find-NBDeviceRolesContainingName.ps1' -1 function Find-NBDeviceRolesContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $DeviceRolesAPIPath -name $name } #EndRegion '.\Public\endpoints\dcim\platforms\Find-NBDeviceRolesContainingName.ps1' 10 #Region '.\Public\endpoints\dcim\platforms\Get-NBDevicePlatformByID.ps1' -1 function Get-NBDevicePlatformByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $DevicePlatformAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\platforms\Get-NBDevicePlatformByID.ps1' 10 #Region '.\Public\endpoints\dcim\platforms\Get-NBDevicePlatformByName.ps1' -1 function Get-NBDevicePlatformByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $DevicePlatformAPIPath -value $name } #EndRegion '.\Public\endpoints\dcim\platforms\Get-NBDevicePlatformByName.ps1' 10 #Region '.\Public\endpoints\dcim\platforms\Get-NBDevicePlatforms.ps1' -1 function Get-NBDevicePlatforms { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $DevicePlatformAPIPath } #EndRegion '.\Public\endpoints\dcim\platforms\Get-NBDevicePlatforms.ps1' 9 #Region '.\Public\endpoints\dcim\platforms\New-NBDevicePlatform.ps1' -1 function New-NBDevicePlatform { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][int]$manufacturer, [Parameter(Mandatory=$false)][int]$config_template, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$DevicePlatformAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\platforms\New-NBDevicePlatform.ps1' 27 #Region '.\Public\endpoints\dcim\platforms\Remove-NBDevicePlatform.ps1' -1 function Remove-NBDevicePlatform { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$DevicePlatformAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\platforms\Remove-NBDevicePlatform.ps1' 15 #Region '.\Public\endpoints\dcim\platforms\Set-NBDevicePlatform.ps1' -1 function Set-NBDevicePlatform { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','manufacturer','napalm_driver','napalm_args','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$DevicePlatformAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\platforms\Set-NBDevicePlatform.ps1' 20 #Region '.\Public\endpoints\dcim\power-feeds\Get-NBPowerFeedByID.ps1' -1 function Get-NBPowerFeedByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBPowerFeedsAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\power-feeds\Get-NBPowerFeedByID.ps1' 10 #Region '.\Public\endpoints\dcim\power-feeds\Get-NBPowerFeedByName.ps1' -1 function Get-NBPowerFeedByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $NBPowerFeedsAPIPath -value $name } #EndRegion '.\Public\endpoints\dcim\power-feeds\Get-NBPowerFeedByName.ps1' 10 #Region '.\Public\endpoints\dcim\power-feeds\Get-NBPowerFeeds.ps1' -1 function Get-NBPowerFeeds { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBPowerFeedsAPIPath } #EndRegion '.\Public\endpoints\dcim\power-feeds\Get-NBPowerFeeds.ps1' 9 #Region '.\Public\endpoints\dcim\power-feeds\New-NBPowerFeed.ps1' -1 function New-NBPowerFeed { <# .SYNOPSIS Adds a new device object to Netbox #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=1)][int]$power_panel, [Parameter(Mandatory=$false)][int]$rack, [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][string] [ValidateSet('offline','active','planned','failed')] $status, [Parameter(Mandatory=$false)][string] [ValidateSet('primary','redundant')] $type, [Parameter(Mandatory=$false)][string] [ValidateSet('ac','dc')] $supply, [Parameter(Mandatory=$false)][string] [ValidateSet('single-phase','three-phase')] $phase, [Parameter(Mandatory=$false)][int]$voltage, [Parameter(Mandatory=$false)][int]$amperage, [Parameter(Mandatory=$false)][int]$max_utilization, [Parameter(Mandatory=$false)][bool]$mark_connected, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][int]$tenant, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) if($PSBoundParameters['mark_connected']) {$PSBoundParameters['mark_connected']=[System.Boolean]$true} $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBPowerFeedsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\power-feeds\New-NBPowerFeed.ps1' 48 #Region '.\Public\endpoints\dcim\power-feeds\Remove-NBPowerFeed.ps1' -1 function Remove-NBPowerFeed { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBPowerFeedsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\power-feeds\Remove-NBPowerFeed.ps1' 15 #Region '.\Public\endpoints\dcim\power-feeds\Set-NBPowerFeed.ps1' -1 function Set-NBPowerFeed { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('power_panel','rack','name','status','type','supply','phase', 'voltage','amperage','max_utilization','mark_connected','description','tenant', 'comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBPowerFeedsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\power-feeds\Set-NBPowerFeed.ps1' 22 #Region '.\Public\endpoints\dcim\power-outlets\Get-NBPowerOutletByID.ps1' -1 function Get-NBPowerOutletByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBPowerOutletsAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\power-outlets\Get-NBPowerOutletByID.ps1' 10 #Region '.\Public\endpoints\dcim\power-outlets\Get-NBPowerOutletByName.ps1' -1 function Get-NBPowerOutletByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $NBPowerOutletsAPIPath -value $name } #EndRegion '.\Public\endpoints\dcim\power-outlets\Get-NBPowerOutletByName.ps1' 10 #Region '.\Public\endpoints\dcim\power-outlets\Get-NBPowerOutlets.ps1' -1 function Get-NBPowerOutlets { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBPowerOutletsAPIPath } #EndRegion '.\Public\endpoints\dcim\power-outlets\Get-NBPowerOutlets.ps1' 9 #Region '.\Public\endpoints\dcim\power-outlets\New-NBPowerOutlet.ps1' -1 function New-NBPowerOutlet { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][int]$device, [Parameter(Mandatory=$false)][int]$module, [Parameter(Mandatory=$true,Position=1)][string]$name, [Parameter(Mandatory=$false)][string]$label, [Parameter(Mandatory=$false)] [ValidateSet('iec-60320-c5','iec-60320-c7','iec-60320-c13','iec-60320-c15','iec-60320-c19','iec-60320-c21', 'iec-60309-p-n-e-4h','iec-60309-p-n-e-6h','iec-60309-p-n-e-9h','iec-60309-2p-e-4h','iec-60309-2p-e-6h', 'iec-60309-2p-e-9h','iec-60309-3p-e-4h','iec-60309-3p-e-6h','iec-60309-3p-e-9h','iec-60309-3p-n-e-4h', 'iec-60309-3p-n-e-6h','iec-60309-3p-n-e-9h','iec-60906-1','nbr-14136-10a','nbr-14136-20a','nema-1-15r', 'nema-5-15r','nema-5-20r','nema-5-30r','nema-5-50r','nema-6-15r','nema-6-20r','nema-6-30r','nema-6-50r', 'nema-10-30r','nema-10-50r','nema-14-20r','nema-14-30r','nema-14-50r','nema-14-60r','nema-15-15r', 'nema-15-20r','nema-15-30r','nema-15-50r','nema-15-60r','nema-l1-15r','nema-l5-15r','nema-l5-20r', 'nema-l5-30r','nema-l5-50r','nema-l6-15r','nema-l6-20r','nema-l6-30r','nema-l6-50r','nema-l10-30r', 'nema-l14-20r','nema-l14-30r','nema-l14-50r','nema-l14-60r','nema-l15-20r','nema-l15-30r','nema-l15-50r', 'nema-l15-60r','nema-l21-20r','nema-l21-30r','nema-l22-20r','nema-l22-30r','CS6360C','CS6364C','CS8164C', 'CS8264C','CS8364C','CS8464C','ita-e','ita-f','ita-g','ita-h','ita-i','ita-j','ita-k','ita-l','ita-m', 'ita-n','ita-o','ita-multistandard','usb-a','usb-micro-b','usb-c','molex-micro-fit-1x2', 'molex-micro-fit-2x2','molex-micro-fit-2x4','dc-terminal','eaton-c39','hdot-cx','saf-d-grid', 'neutrik-powercon-20a','neutrik-powercon-32a','neutrik-powercon-true1','neutrik-powercon-true1-top', 'ubiquiti-smartpower','hardwired','other')] [string]$type, [Parameter(Mandatory=$false)][hashtable]$power_port, [Parameter(Mandatory=$false)] [ValidateSet('A','B','C')] [string]$feed_leg, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][bool]$mark_connected, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBPowerOutletsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\power-outlets\New-NBPowerOutlet.ps1' 48 #Region '.\Public\endpoints\dcim\power-outlets\Remove-NBPowerOutlet.ps1' -1 function Remove-NBPowerOutlet { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBPowerOutletsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\power-outlets\Remove-NBPowerOutlet.ps1' 15 #Region '.\Public\endpoints\dcim\power-outlets\Set-NBPowerOutlet.ps1' -1 function Set-NBPowerOutlet { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('device','module','name','label','type','power_port','feed_leg','description','mark_connected','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBPowerOutletsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\power-outlets\Set-NBPowerOutlet.ps1' 20 #Region '.\Public\endpoints\dcim\power-panels\Get-NBPowerPanelByID.ps1' -1 function Get-NBPowerPanelByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBPowerPanelsAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\power-panels\Get-NBPowerPanelByID.ps1' 10 #Region '.\Public\endpoints\dcim\power-panels\Get-NBPowerPanelByName.ps1' -1 function Get-NBPowerPanelByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $NBPowerPanelsAPIPath -value $name } #EndRegion '.\Public\endpoints\dcim\power-panels\Get-NBPowerPanelByName.ps1' 10 #Region '.\Public\endpoints\dcim\power-panels\Get-NBPowerPanels.ps1' -1 function Get-NBPowerPanels { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBPowerPanelsAPIPath } #EndRegion '.\Public\endpoints\dcim\power-panels\Get-NBPowerPanels.ps1' 9 #Region '.\Public\endpoints\dcim\power-panels\New-NBPowerPanel.ps1' -1 function New-NBPowerPanel { <# .SYNOPSIS Adds a new device object to Netbox #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][int]$site, [Parameter(Mandatory=$true,Position=1)][string]$name, [Parameter(Mandatory=$false)][int]$location, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBPowerPanelsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\power-panels\New-NBPowerPanel.ps1' 28 #Region '.\Public\endpoints\dcim\power-panels\Remove-NBPowerPanel.ps1' -1 function Remove-NBPowerPanel { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBPowerPanelsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\power-panels\Remove-NBPowerPanel.ps1' 15 #Region '.\Public\endpoints\dcim\power-panels\Set-NBPowerPanel.ps1' -1 function Set-NBPowerPanel { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('site','location','name','description','tags')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBPowerPanelsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\power-panels\Set-NBPowerPanel.ps1' 20 #Region '.\Public\endpoints\dcim\rack-elevations\Get-NBRackElevation.ps1' -1 function Get-NBRackElevation { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Get' URI = "$($Connection.ApiBaseURL)/$RacksAPIPath/$id/elevation/" } (Invoke-CustomRequest -restParams $restParams -Connection $Connection).results } #EndRegion '.\Public\endpoints\dcim\rack-elevations\Get-NBRackElevation.ps1' 14 #Region '.\Public\endpoints\dcim\rack-reservations\Get-NBRackReservationByID.ps1' -1 function Get-NBRackReservationByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $RackReservationsAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\rack-reservations\Get-NBRackReservationByID.ps1' 10 #Region '.\Public\endpoints\dcim\rack-reservations\Get-NBRackReservations.ps1' -1 function Get-NBRackReservations { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $RackReservationsAPIPath } #EndRegion '.\Public\endpoints\dcim\rack-reservations\Get-NBRackReservations.ps1' 9 #Region '.\Public\endpoints\dcim\rack-reservations\New-NBRackReservation.ps1' -1 function New-NBRackReservation { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][int]$rack, [Parameter(Mandatory=$true,Position=1)] [ValidateRange(0,32767)] [int]$units, [Parameter(Mandatory=$true,Position=3)][int]$user, [Parameter(Mandatory=$false)][int]$tenant, [Parameter(Mandatory=$true,Position=4)][string]$description, [Parameter(Mandatory=$false)][int]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$RackReservationsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\rack-reservations\New-NBRackReservation.ps1' 29 #Region '.\Public\endpoints\dcim\rack-reservations\Remove-NBRackReservation.ps1' -1 function Remove-NBRackReservation { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$RackReservationsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\rack-reservations\Remove-NBRackReservation.ps1' 15 #Region '.\Public\endpoints\dcim\rack-reservations\Set-NBRackReservation.ps1' -1 function Set-NBRackReservation { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('rack','units','user','tenant','description','comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$RackReservationsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\rack-reservations\Set-NBRackReservation.ps1' 20 #Region '.\Public\endpoints\dcim\rack-roles\Find-NBRackRolesContainingName.ps1' -1 function Find-NBRackRolesContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $RackRolesAPIPath -name $name } #EndRegion '.\Public\endpoints\dcim\rack-roles\Find-NBRackRolesContainingName.ps1' 10 #Region '.\Public\endpoints\dcim\rack-roles\Get-NBRackRoleByID.ps1' -1 function Get-NBRackRoleByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $RackRolesAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\rack-roles\Get-NBRackRoleByID.ps1' 10 #Region '.\Public\endpoints\dcim\rack-roles\Get-NBRackRoleByName.ps1' -1 function Get-NBRackRoleByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $RackRolesAPIPath -value $name } #EndRegion '.\Public\endpoints\dcim\rack-roles\Get-NBRackRoleByName.ps1' 10 #Region '.\Public\endpoints\dcim\rack-roles\Get-NBRackRoles.ps1' -1 function Get-NBRackRoles { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $RackRolesAPIPath } #EndRegion '.\Public\endpoints\dcim\rack-roles\Get-NBRackRoles.ps1' 9 #Region '.\Public\endpoints\dcim\rack-roles\New-NBRackRole.ps1' -1 function New-NBRackRole { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][string]$color, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$RackRolesAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\rack-roles\New-NBRackRole.ps1' 26 #Region '.\Public\endpoints\dcim\rack-roles\Remove-NBRackRole.ps1' -1 function Remove-NBRackRole { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$RackRolesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\rack-roles\Remove-NBRackRole.ps1' 15 #Region '.\Public\endpoints\dcim\rack-roles\Set-NBRackRole.ps1' -1 function Set-NBRackRole { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','color','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$RackRolesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\rack-roles\Set-NBRackRole.ps1' 20 #Region '.\Public\endpoints\dcim\rack-types\Get-NBRackTypeByID.ps1' -1 function Get-NBRackTypeByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBRackTypesAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\rack-types\Get-NBRackTypeByID.ps1' 10 #Region '.\Public\endpoints\dcim\rack-types\Get-NBRackTypeByName.ps1' -1 function Get-NBRackTypeByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $NBRackTypesAPIPath -value $name } #EndRegion '.\Public\endpoints\dcim\rack-types\Get-NBRackTypeByName.ps1' 10 #Region '.\Public\endpoints\dcim\rack-types\Get-NBRackTypes.ps1' -1 function Get-NBRackTypes { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBRackTypesAPIPath } #EndRegion '.\Public\endpoints\dcim\rack-types\Get-NBRackTypes.ps1' 9 #Region '.\Public\endpoints\dcim\rack-types\New-NBRackType.ps1' -1 function New-NBRackType { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][int]$manufacturer, [Parameter(Mandatory=$true,Position=1)][string]$model, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$true,Position=2)] [ValidateSet('2-post-frame','4-post-frame','4-post-cabinet','wall-frame','wall-frame-vertical','wall-cabinet','wall-cabinet-vertical')] [string]$form_factor, [Parameter(Mandatory=$false)] [ValidateSet(10,19,21,23)] [int]$width, [Parameter(Mandatory=$false)][int]$u_height, [Parameter(Mandatory=$false)][int]$starting_unit, [Parameter(Mandatory=$false)][bool]$desc_units, [Parameter(Mandatory=$false)][int]$outer_width, [Parameter(Mandatory=$false)][int]$outer_depth, [Parameter(Mandatory=$false)] [ValidateSet('mm','in')] [string]$outer_unit, [Parameter(Mandatory=$false)][double]$weight, [Parameter(Mandatory=$false)][double]$max_weight, [Parameter(Mandatory=$false)] [ValidateSet('kg','g','lb','oz')] [string]$weight_unit, [Parameter(Mandatory=$false)][int]$mounting_depth, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $model $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBRackTypesAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\rack-types\New-NBRackType.ps1' 47 #Region '.\Public\endpoints\dcim\rack-types\Remove-NBRackType.ps1' -1 function Remove-NBRackType { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBRackTypesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\rack-types\Remove-NBRackType.ps1' 15 #Region '.\Public\endpoints\dcim\rack-types\Set-NBRackType.ps1' -1 function Set-NBRackType { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('manufacturer','model','slug','description','form_factor','width','u_height','starting_unit','desc_units','outer_width', 'outer_depth','outer_unit','weight','max_weight','weight_unit','mounting_depth','comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2, HelpMessage="A valid value for the attribute you want to change. If the expected value is an array, like for tags, pass it as '1,2' or whatever the ids of the tags you wish to set are." )][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBRackTypesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\rack-types\Set-NBRackType.ps1' 23 #Region '.\Public\endpoints\dcim\racks\Find-NBRacksContainingName.ps1' -1 function Find-NBRacksContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $RacksAPIPath -name $name } #EndRegion '.\Public\endpoints\dcim\racks\Find-NBRacksContainingName.ps1' 10 #Region '.\Public\endpoints\dcim\racks\Get-NBRackByID.ps1' -1 function Get-NBRackByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $RacksAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\racks\Get-NBRackByID.ps1' 10 #Region '.\Public\endpoints\dcim\racks\Get-NBRackByName.ps1' -1 function Get-NBRackByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $RacksAPIPath -value $name } #EndRegion '.\Public\endpoints\dcim\racks\Get-NBRackByName.ps1' 10 #Region '.\Public\endpoints\dcim\racks\Get-NBRacks.ps1' -1 function Get-NBRacks { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $RacksAPIPath } #EndRegion '.\Public\endpoints\dcim\racks\Get-NBRacks.ps1' 9 #Region '.\Public\endpoints\dcim\racks\New-NBRack.ps1' -1 function New-NBRack { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][string]$facility_id, [Parameter(Mandatory=$true,Position=1)][int]$site, [Parameter(Mandatory=$false)][int]$location, [Parameter(Mandatory=$true,Position=2)][int]$tenant, [Parameter(Mandatory=$false)] [ValidateSet('reserved','available','planned','active','deprecated')] [string]$status, [Parameter(Mandatory=$false)][int]$role, [Parameter(Mandatory=$false)][string]$serial, [Parameter(Mandatory=$false)][string]$asset_tag, [Parameter(Mandatory=$false)][int]$rack_type, [Parameter(Mandatory=$false)] [ValidateSet('2-post-frame','4-post-frame','4-post-cabinet','wall-frame','wall-frame-vertical','wall-cabinet','wall-cabinet-vertical')] [string]$form_factor, [Parameter(Mandatory=$false)][int]$width, [Parameter(Mandatory=$false)][int]$u_height, [Parameter(Mandatory=$false)][int]$starting_unit, [Parameter(Mandatory=$false)][int]$weight, [Parameter(Mandatory=$false)][int]$max_weight, [Parameter(Mandatory=$false)] [ValidateSet('kg','g','lb','oz')] [string]$weight_unit, [Parameter(Mandatory=$false)][bool]$desc_units, [Parameter(Mandatory=$false)][int]$outer_width, [Parameter(Mandatory=$false)][int]$outer_depth, [Parameter(Mandatory=$false)] [ValidateSet('mm','in')] [string]$outer_unit, [Parameter(Mandatory=$false)][int]$mounting_depth, [Parameter(Mandatory=$false)] [ValidateSet('front-to-rear','rear-to-front')] [string]$airflow, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$RacksAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\racks\New-NBRack.ps1' 57 #Region '.\Public\endpoints\dcim\racks\Remove-NBRack.ps1' -1 function Remove-NBRack { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$RacksAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\racks\Remove-NBRack.ps1' 15 #Region '.\Public\endpoints\dcim\racks\Set-NBRack.ps1' -1 function Set-NBRack { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','facility_id','site','location','tenant','status', 'role','serial','asset_tag','rack_type','form_factor','width','u_height','starting_unit', 'weight','max_weight','weight_unit','desc_units','outer_width','outer_depth', 'outer_unit','mounting_depth','airflow','description','comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$RacksAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\racks\Set-NBRack.ps1' 23 #Region '.\Public\endpoints\dcim\regions\Find-NBRegionsContainingName.ps1' -1 function Find-NBRegionsContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $regionsAPIPath -name $name } #EndRegion '.\Public\endpoints\dcim\regions\Find-NBRegionsContainingName.ps1' 10 #Region '.\Public\endpoints\dcim\regions\Get-NBRegionByID.ps1' -1 function Get-NBRegionByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $regionsAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\regions\Get-NBRegionByID.ps1' 10 #Region '.\Public\endpoints\dcim\regions\Get-NBRegionByName.ps1' -1 function Get-NBRegionByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $regionsAPIPath -value $name } #EndRegion '.\Public\endpoints\dcim\regions\Get-NBRegionByName.ps1' 10 #Region '.\Public\endpoints\dcim\regions\Get-NBRegions.ps1' -1 function Get-NBRegions { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $regionsAPIPath } #EndRegion '.\Public\endpoints\dcim\regions\Get-NBRegions.ps1' 9 #Region '.\Public\endpoints\dcim\regions\New-NBRegion.ps1' -1 function New-NBRegion { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][int]$parent, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$regionsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\regions\New-NBRegion.ps1' 26 #Region '.\Public\endpoints\dcim\regions\Remove-NBRegion.ps1' -1 function Remove-NBRegion { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$regionsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\regions\Remove-NBRegion.ps1' 15 #Region '.\Public\endpoints\dcim\regions\Set-NBRegion.ps1' -1 function Set-NBRegion { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','parent','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$regionsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\regions\Set-NBRegion.ps1' 20 #Region '.\Public\endpoints\dcim\site-groups\Find-NBSiteGroupsContainingName.ps1' -1 function Find-NBSiteGroupsContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $SiteGroupsAPIPath -name $name } #EndRegion '.\Public\endpoints\dcim\site-groups\Find-NBSiteGroupsContainingName.ps1' 10 #Region '.\Public\endpoints\dcim\site-groups\Get-NBSiteGroupByID.ps1' -1 function Get-NBSiteGroupByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $SiteGroupsAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\site-groups\Get-NBSiteGroupByID.ps1' 10 #Region '.\Public\endpoints\dcim\site-groups\Get-NBSiteGroupByName.ps1' -1 function Get-NBSiteGroupByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $SiteGroupsAPIPath -value $name } #EndRegion '.\Public\endpoints\dcim\site-groups\Get-NBSiteGroupByName.ps1' 10 #Region '.\Public\endpoints\dcim\site-groups\Get-NBSiteGroups.ps1' -1 function Get-NBSiteGroups { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $SiteGroupsAPIPath } #EndRegion '.\Public\endpoints\dcim\site-groups\Get-NBSiteGroups.ps1' 9 #Region '.\Public\endpoints\dcim\site-groups\New-NBSiteGroup.ps1' -1 function New-NBSiteGroup { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][int]$parent, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$SiteGroupsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\site-groups\New-NBSiteGroup.ps1' 25 #Region '.\Public\endpoints\dcim\site-groups\Remove-NBSiteGroup.ps1' -1 function Remove-NBSiteGroup { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$SiteGroupsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\site-groups\Remove-NBSiteGroup.ps1' 15 #Region '.\Public\endpoints\dcim\site-groups\Set-NBSiteGroup.ps1' -1 function Set-NBSiteGroup { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','description','parent','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$SiteGroupsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\site-groups\Set-NBSiteGroup.ps1' 20 #Region '.\Public\endpoints\dcim\sites\Find-NBSitesContainingName.ps1' -1 function Find-NBSitesContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $SitesAPIPath -name $name } #EndRegion '.\Public\endpoints\dcim\sites\Find-NBSitesContainingName.ps1' 10 #Region '.\Public\endpoints\dcim\sites\Get-NBSiteByID.ps1' -1 function Get-NBSiteByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $SitesAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\sites\Get-NBSiteByID.ps1' 10 #Region '.\Public\endpoints\dcim\sites\Get-NBSiteByName.ps1' -1 function Get-NBSiteByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $SitesAPIPath -value $name } #EndRegion '.\Public\endpoints\dcim\sites\Get-NBSiteByName.ps1' 10 #Region '.\Public\endpoints\dcim\sites\Get-NBSites.ps1' -1 function Get-NBSites { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $SitesAPIPath } #EndRegion '.\Public\endpoints\dcim\sites\Get-NBSites.ps1' 9 #Region '.\Public\endpoints\dcim\sites\New-NBSite.ps1' -1 function New-NBSite { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('planned','staging','active','decommissioning','retired')] $status, [Parameter(Mandatory=$false)][int]$region, [Parameter(Mandatory=$false)][int]$group, [Parameter(Mandatory=$false)][int]$tenant, [Parameter(Mandatory=$false)][string]$facility, [Parameter(Mandatory=$false)][string]$time_zone, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$physical_address, [Parameter(Mandatory=$false)][string]$shipping_address, [Parameter(Mandatory=$false)][double]$latitude, [Parameter(Mandatory=$false)][double]$longitude, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][int[]]$asns, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$SitesAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\sites\New-NBSite.ps1' 39 #Region '.\Public\endpoints\dcim\sites\Remove-NBSite.ps1' -1 function Remove-NBSite { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$SitesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\sites\Remove-NBSite.ps1' 15 #Region '.\Public\endpoints\dcim\sites\Set-NBSite.ps1' -1 function Set-NBSite { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','status','region','group','tenant','facility', 'time_zone','description','physical_address','shipping_address','latitude', 'longitude','comments','asns','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$SitesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\sites\Set-NBSite.ps1' 22 #Region '.\Public\endpoints\dcim\virtual-chassis\Find-NBVirtualChassisContainingName.ps1' -1 function Find-NBVirtualChassisContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $NBVirtualChassisAPIPath -name $name } #EndRegion '.\Public\endpoints\dcim\virtual-chassis\Find-NBVirtualChassisContainingName.ps1' 10 #Region '.\Public\endpoints\dcim\virtual-chassis\Get-NBVirtualChassis.ps1' -1 function Get-NBVirtualChassis { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBVirtualChassisAPIPath } #EndRegion '.\Public\endpoints\dcim\virtual-chassis\Get-NBVirtualChassis.ps1' 9 #Region '.\Public\endpoints\dcim\virtual-chassis\Get-NBVirtualChassisByID.ps1' -1 function Get-NBVirtualChassisByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBVirtualChassisAPIPath -id $id } #EndRegion '.\Public\endpoints\dcim\virtual-chassis\Get-NBVirtualChassisByID.ps1' 10 #Region '.\Public\endpoints\dcim\virtual-chassis\Get-NBVirtualChassisByName.ps1' -1 function Get-NBVirtualChassisByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $NBVirtualChassisAPIPath -value $name } #EndRegion '.\Public\endpoints\dcim\virtual-chassis\Get-NBVirtualChassisByName.ps1' 10 #Region '.\Public\endpoints\dcim\virtual-chassis\New-NBVirtualChassis.ps1' -1 function New-NBVirtualChassis { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][string]$domain, [Parameter(Mandatory=$false)][int]$master, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBVirtualChassisAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\dcim\virtual-chassis\New-NBVirtualChassis.ps1' 27 #Region '.\Public\endpoints\dcim\virtual-chassis\Remove-NBVirtualChassis.ps1' -1 function Remove-NBVirtualChassis { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBVirtualChassisAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\virtual-chassis\Remove-NBVirtualChassis.ps1' 15 #Region '.\Public\endpoints\dcim\virtual-chassis\Set-NBVirtualChassis.ps1' -1 function Set-NBVirtualChassis { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','domain','master','description','comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBVirtualChassisAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\dcim\virtual-chassis\Set-NBVirtualChassis.ps1' 19 #Region '.\Public\endpoints\extras\object-types\Get-NBObjectTypeByID.ps1' -1 function Get-NBObjectTypeByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBObjectTypesAPIPath -id $id } #EndRegion '.\Public\endpoints\extras\object-types\Get-NBObjectTypeByID.ps1' 10 #Region '.\Public\endpoints\extras\object-types\Get-NBObjectTypes.ps1' -1 function Get-NBObjectTypes { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBObjectTypesAPIPath } #EndRegion '.\Public\endpoints\extras\object-types\Get-NBObjectTypes.ps1' 9 #Region '.\Public\endpoints\extras\tags\Get-NBTagByID.ps1' -1 function Get-NBTagByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBTagsAPIPath -id $id } #EndRegion '.\Public\endpoints\extras\tags\Get-NBTagByID.ps1' 10 #Region '.\Public\endpoints\extras\tags\Get-NBTags.ps1' -1 function Get-NBTags { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBTagsAPIPath } #EndRegion '.\Public\endpoints\extras\tags\Get-NBTags.ps1' 9 #Region '.\Public\endpoints\extras\tags\New-NBTag.ps1' -1 function New-NBTag { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][string]$color, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false, HelpMessage="An array of strings in the format <applabel>.<model>, ex: 'vpn.tunnel','vpn.tunnelgroup' ")] [string[]]$object_types, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBTagsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\extras\tags\New-NBTag.ps1' 26 #Region '.\Public\endpoints\extras\tags\Remove-NBTag.ps1' -1 function Remove-NBTag { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBTagsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\extras\tags\Remove-NBTag.ps1' 15 #Region '.\Public\endpoints\extras\tags\Set-NBTag.ps1' -1 function Set-NBTag { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','color','description','object_types')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBTagsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\extras\tags\Set-NBTag.ps1' 20 #Region '.\Public\endpoints\ipam\aggregates\Get-NBAggregateByID.ps1' -1 function Get-NBAggregateByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBAggregateAPIPath -id $id } #EndRegion '.\Public\endpoints\ipam\aggregates\Get-NBAggregateByID.ps1' 10 #Region '.\Public\endpoints\ipam\aggregates\Get-NBAggregateByPrefix.ps1' -1 function Get-NBAggregateByPrefix { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$prefix ) Get-APIItemByQuery -apiConnection $Connection -RelativePath $NBAggregateAPIPath -field prefix -value $prefix } #EndRegion '.\Public\endpoints\ipam\aggregates\Get-NBAggregateByPrefix.ps1' 10 #Region '.\Public\endpoints\ipam\aggregates\Get-NBAggregates.ps1' -1 function Get-NBAggregates { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBAggregateAPIPath } #EndRegion '.\Public\endpoints\ipam\aggregates\Get-NBAggregates.ps1' 9 #Region '.\Public\endpoints\ipam\aggregates\New-NBAggregate.ps1' -1 function New-NBAggregate { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$prefix, [Parameter(Mandatory=$true,Position=1)][int]$rir, [Parameter(Mandatory=$false)][int]$tenant, [Parameter(Mandatory=$false)][string]$date_added, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBAggregateAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\ipam\aggregates\New-NBAggregate.ps1' 28 #Region '.\Public\endpoints\ipam\aggregates\Remove-NBAggregate.ps1' -1 function Remove-NBAggregate { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBAggregateAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\aggregates\Remove-NBAggregate.ps1' 15 #Region '.\Public\endpoints\ipam\aggregates\Set-NBAggregate.ps1' -1 function Set-NBAggregate { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('prefix','rir','tenant','date_added','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBAggregateAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\aggregates\Set-NBAggregate.ps1' 20 #Region '.\Public\endpoints\ipam\asns\Find-NBASNsContainingName.ps1' -1 function Find-NBASNsContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$asn ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $ASNsAPIPath -name $asn } #EndRegion '.\Public\endpoints\ipam\asns\Find-NBASNsContainingName.ps1' 10 #Region '.\Public\endpoints\ipam\asns\Get-NBASNByID.ps1' -1 function Get-NBASNByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $ASNsAPIPath -id $id } #EndRegion '.\Public\endpoints\ipam\asns\Get-NBASNByID.ps1' 10 #Region '.\Public\endpoints\ipam\asns\Get-NBASNByName.ps1' -1 function Get-NBASNByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$asn ) Get-ApiItemByName -apiConnection $Connection -RelativePath $ASNsAPIPath -value $asn } #EndRegion '.\Public\endpoints\ipam\asns\Get-NBASNByName.ps1' 10 #Region '.\Public\endpoints\ipam\asns\Get-NBASNs.ps1' -1 function Get-NBASNs { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $ASNsAPIPath } #EndRegion '.\Public\endpoints\ipam\asns\Get-NBASNs.ps1' 9 #Region '.\Public\endpoints\ipam\asns\New-NBASN.ps1' -1 function New-NBASN { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][int]$asn, [Parameter(Mandatory=$true,Position=0)][int]$rir, [Parameter(Mandatory=$true,Position=0)][int]$tenant, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$ASNsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\ipam\asns\New-NBASN.ps1' 27 #Region '.\Public\endpoints\ipam\asns\Remove-NBASN.ps1' -1 function Remove-NBASN { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$ASNsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\asns\Remove-NBASN.ps1' 15 #Region '.\Public\endpoints\ipam\asns\Set-NBASN.ps1' -1 function Set-NBASN { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('asn','rir','tenant','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$ASNsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\asns\Set-NBASN.ps1' 20 #Region '.\Public\endpoints\ipam\ip-addresses\Get-NBIPAddressByID.ps1' -1 function Get-NBIPAddressByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Write-Verbose "[$($MyInvocation.MyCommand.Name)]" Get-ApiItemByID -apiConnection $Connection -RelativePath $IPAddressAPIPath -id $id } #EndRegion '.\Public\endpoints\ipam\ip-addresses\Get-NBIPAddressByID.ps1' 11 #Region '.\Public\endpoints\ipam\ip-addresses\Get-NBIPAddressByName.ps1' -1 function Get-NBIPAddressByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Write-Verbose "[$($MyInvocation.MyCommand.Name)]" #Get-ApiItemByName -apiConnection $Connection -RelativePath $IPAddressAPIPath -value $name (Get-APIItemByQuery -apiConnection $Connection -RelativePath $IPAddressAPIPath -field 'address' -value $name).results } #EndRegion '.\Public\endpoints\ipam\ip-addresses\Get-NBIPAddressByName.ps1' 12 #Region '.\Public\endpoints\ipam\ip-addresses\Get-NBIPAddresses.ps1' -1 function Get-NBIPAddresses { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Write-Verbose "[$($MyInvocation.MyCommand.Name)]" Get-ApiItems -apiConnection $Connection -RelativePath $IPAddressAPIPath } #EndRegion '.\Public\endpoints\ipam\ip-addresses\Get-NBIPAddresses.ps1' 10 #Region '.\Public\endpoints\ipam\ip-addresses\Get-NBIPAddressForDeviceInterface.ps1' -1 function Get-NBIPAddressForDeviceInterface { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$vmintid ) Write-Verbose "[$($MyInvocation.MyCommand.Name)]" $intType=(Get-NBObjectTypes|Where-Object {$_.model -eq "interface"}).id $RelativePath = $IPAddressAPIPath $QueryArguments=@{ assigned_object_type = $intType assigned_object_id = $vmintid } $ArgumentString = New-ArgumentString $QueryArguments $restParams = @{ Method = 'get' URI = "$($Connection.ApiBaseURL)/$RelativePath/?$ArgumentString" SkipCertificateCheck = $apiConnection.SkipCertificateCheck } Write-Verbose "[$($MyInvocation.MyCommand.Name)] Making API search call using '$field' looking for '$value'." (Invoke-CustomRequest $restParams -Connection $Connection).results } #EndRegion '.\Public\endpoints\ipam\ip-addresses\Get-NBIPAddressForDeviceInterface.ps1' 24 #Region '.\Public\endpoints\ipam\ip-addresses\Get-NBIPAddressForVMInterface.ps1' -1 function Get-NBIPAddressForVMInterface { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$vmintid ) Write-Verbose "[$($MyInvocation.MyCommand.Name)]" $intType=(Get-NBObjectTypes|Where-Object {$_.model -eq "vminterface"}).id $RelativePath = $IPAddressAPIPath $QueryArguments=@{ assigned_object_type = $intType assigned_object_id = $vmintid } $ArgumentString = New-ArgumentString $QueryArguments $restParams = @{ Method = 'get' URI = "$($Connection.ApiBaseURL)/$RelativePath/?$ArgumentString" SkipCertificateCheck = $apiConnection.SkipCertificateCheck } Write-Verbose "[$($MyInvocation.MyCommand.Name)] Making API search call using '$field' looking for '$value'." (Invoke-CustomRequest $restParams -Connection $Connection).results } #EndRegion '.\Public\endpoints\ipam\ip-addresses\Get-NBIPAddressForVMInterface.ps1' 24 #Region '.\Public\endpoints\ipam\ip-addresses\New-NBIPAddress.ps1' -1 <# .SYNOPSIS Assigned Object Type could be any of several fields, but usually 'virtualization.vminterface' or 'dcim.interface' #> function New-NBIPAddress { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$address, [Parameter(Mandatory=$false)][int]$vrf, [Parameter(Mandatory=$false)][int]$tenant, [Parameter(Mandatory=$false)] [ValidateSet('active','reserved','deprecated','dhcp','slaac')] [string]$status, [Parameter(Mandatory=$false)] [ValidateSet('loopback','secondary','anycast','vip','vrrp','hsrp','glbp','carp')] [string]$role, [Parameter(Mandatory=$false)] [ValidateSet('virtualization.vminterface','dcim.interface')] [string]$assigned_object_type, [Parameter(Mandatory=$false)][int]$assigned_object_id, [Parameter(Mandatory=$false)][int]$nat_inside, [Parameter(Mandatory=$false)][string]$dns_name, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Write-Verbose "[$($MyInvocation.MyCommand.Name)]" $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$IPAddressAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\ipam\ip-addresses\New-NBIPAddress.ps1' 44 #Region '.\Public\endpoints\ipam\ip-addresses\Remove-NBIPAddress.ps1' -1 function Remove-NBIPAddress { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Write-Verbose "[$($MyInvocation.MyCommand.Name)]" $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$IPAddressAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\ip-addresses\Remove-NBIPAddress.ps1' 16 #Region '.\Public\endpoints\ipam\ip-addresses\Set-NBIPAddress.ps1' -1 function Set-NBIPAddress { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('address','vrf','tenant','status','role','nat_inside','dns_name','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$IPAddressAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\ip-addresses\Set-NBIPAddress.ps1' 20 #Region '.\Public\endpoints\ipam\ip-addresses\Set-NBIPAddressParent.ps1' -1 function Set-NBIPAddressParent { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('dcim.interface','virtualization.vminterface')] $InterFaceType, [Parameter(Mandatory=$true,Position=2)][string]$interface ) Write-Verbose "[$($MyInvocation.MyCommand.Name)]" $update=@{ assigned_object_type = "$InterFaceType" assigned_object_id = $interface } $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$IPAddressAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\ip-addresses\Set-NBIPAddressParent.ps1' 24 #Region '.\Public\endpoints\ipam\ip-ranges\Get-NBIPRangeByID.ps1' -1 function Get-NBIPRangeByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $IPRangesAPIPath -id $id } #EndRegion '.\Public\endpoints\ipam\ip-ranges\Get-NBIPRangeByID.ps1' 10 #Region '.\Public\endpoints\ipam\ip-ranges\Get-NBIPRangeByName.ps1' -1 function Get-NBIPRangeByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $IPRangesAPIPath -value $name } #EndRegion '.\Public\endpoints\ipam\ip-ranges\Get-NBIPRangeByName.ps1' 10 #Region '.\Public\endpoints\ipam\ip-ranges\Get-NBIPRanges.ps1' -1 function Get-NBIPRanges { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $IPRangesAPIPath } #EndRegion '.\Public\endpoints\ipam\ip-ranges\Get-NBIPRanges.ps1' 9 #Region '.\Public\endpoints\ipam\ip-ranges\New-NBIPRange.ps1' -1 function New-NBIPRange { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$start_address, [Parameter(Mandatory=$true,Position=1)][string]$end_address, [Parameter(Mandatory=$false)][int]$vrf, [Parameter(Mandatory=$false)][int]$tenant, [Parameter(Mandatory=$true,Position=2)][string][ValidateSet('active','reserved','deprecated')]$status, [Parameter(Mandatory=$false)][int]$role, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][bool]$mark_utilized, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$IPRangesAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\ipam\ip-ranges\New-NBIPRange.ps1' 31 #Region '.\Public\endpoints\ipam\ip-ranges\Remove-NBIPRange.ps1' -1 function Remove-NBIPRange { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$IPRangesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\ip-ranges\Remove-NBIPRange.ps1' 15 #Region '.\Public\endpoints\ipam\ip-ranges\Set-NBIPRange.ps1' -1 function Set-NBIPRange { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('start_address','end_address','vrf','tenant','status','role','description','comments','tags','custom_fields','mark_utilized')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$IPRangesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\ip-ranges\Set-NBIPRange.ps1' 20 #Region '.\Public\endpoints\ipam\prefixes\Get-NBPrefixAvailableIPs.ps1' -1 function Get-NBPrefixAvailablePrefixes { <# .SYNOPSIS A convenience method for returning available prefixes within a prefix .DESCRIPTION Will return any available prefixes within a prefix. .PARAMETER PrefixId Parent Netbox IP Prefix ID .EXAMPLE Get-NBPrefixAvailablePrefixes -PrefixId (Get-NBPrefixByCIDR -CIDR '10.0.0.0/14').id .NOTES Additional information about the function. #> param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$PrefixId ) Get-ApiItemByPath -apiConnection $Connection -Path $PrefixesAPIPath/$PrefixId/available-ips/ } #EndRegion '.\Public\endpoints\ipam\prefixes\Get-NBPrefixAvailableIPs.ps1' 25 #Region '.\Public\endpoints\ipam\prefixes\Get-NBPrefixAvailablePrefixes.ps1' -1 function Get-NBPrefixAvailablePrefixes { <# .SYNOPSIS A convenience method for returning available prefixes within a prefix .DESCRIPTION Will return any available prefixes within a prefix. .PARAMETER PrefixId Parent Netbox IP Prefix ID .EXAMPLE Get-NBPrefixAvailablePrefixes -PrefixId (Get-NBPrefixByCIDR -CIDR '10.0.0.0/14').id .NOTES Additional information about the function. #> param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$PrefixId ) Get-ApiItemByPath -apiConnection $Connection -Path $PrefixesAPIPath/$PrefixId/available-prefixes/ } #EndRegion '.\Public\endpoints\ipam\prefixes\Get-NBPrefixAvailablePrefixes.ps1' 25 #Region '.\Public\endpoints\ipam\prefixes\Get-NBPrefixByCIDR.ps1' -1 function Get-NBPrefixByCIDR { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$CIDR ) #(Get-ApiItemByQuery -apiConnection $Connection -RelativePath $deviceTypesPath -field 'model__ie' -value $model).results (Get-ApiItemByQuery -apiConnection $Connection -RelativePath $PrefixesAPIPath -field 'prefix' -value $CIDR).results } #EndRegion '.\Public\endpoints\ipam\prefixes\Get-NBPrefixByCIDR.ps1' 11 #Region '.\Public\endpoints\ipam\prefixes\Get-NBPrefixByID.ps1' -1 function Get-NBPrefixByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $PrefixesAPIPath -id $id } #EndRegion '.\Public\endpoints\ipam\prefixes\Get-NBPrefixByID.ps1' 10 #Region '.\Public\endpoints\ipam\prefixes\Get-NBPrefixes.ps1' -1 function Get-NBPrefixes { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $PrefixesAPIPath } #EndRegion '.\Public\endpoints\ipam\prefixes\Get-NBPrefixes.ps1' 9 #Region '.\Public\endpoints\ipam\prefixes\New-NBPrefix.ps1' -1 function New-NBPrefix { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$prefix, [Parameter(Mandatory=$false)][int]$site, [Parameter(Mandatory=$false)][int]$vrf, [Parameter(Mandatory=$false)][int]$tenant, [Parameter(Mandatory=$false)][int]$vlan, [Parameter(Mandatory=$false)] [ValidateSet('container','active','reserved','deprecated')] [int]$status, [Parameter(Mandatory=$false)][int]$role, [Parameter(Mandatory=$false)][bool]$is_pool, [Parameter(Mandatory=$false)][bool]$mark_utilized, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) if($PSBoundParameters['mark_utilized']) {$PSBoundParameters['mark_utilized']=[System.Boolean]$true} $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$PrefixesAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\ipam\prefixes\New-NBPrefix.ps1' 36 #Region '.\Public\endpoints\ipam\prefixes\Remove-NBPrefix.ps1' -1 function Remove-NBPrefix { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$PrefixesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\prefixes\Remove-NBPrefix.ps1' 15 #Region '.\Public\endpoints\ipam\prefixes\Set-NBPrefix.ps1' -1 function Set-NBPrefix { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('prefix','site','vrf','tenant','vlan','status','role','is_pool','mark_utilized', 'description','comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$PrefixesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\prefixes\Set-NBPrefix.ps1' 21 #Region '.\Public\endpoints\ipam\rirs\Find-NBRIRsContainingName.ps1' -1 function Find-NBRIRsContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $RIRsAPIPath -name $name } #EndRegion '.\Public\endpoints\ipam\rirs\Find-NBRIRsContainingName.ps1' 10 #Region '.\Public\endpoints\ipam\rirs\Get-NBRIRByID.ps1' -1 function Get-NBRIRByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $RIRsAPIPath -id $id } #EndRegion '.\Public\endpoints\ipam\rirs\Get-NBRIRByID.ps1' 10 #Region '.\Public\endpoints\ipam\rirs\Get-NBRIRByName.ps1' -1 function Get-NBRIRByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $RIRsAPIPath -value $name } #EndRegion '.\Public\endpoints\ipam\rirs\Get-NBRIRByName.ps1' 10 #Region '.\Public\endpoints\ipam\rirs\Get-NBRIRs.ps1' -1 function Get-NBRIRs { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $RIRsAPIPath } #EndRegion '.\Public\endpoints\ipam\rirs\Get-NBRIRs.ps1' 9 #Region '.\Public\endpoints\ipam\rirs\New-NBRIR.ps1' -1 function New-NBRIR { <# .SYNOPSIS Creates a new RIR .PARAMETER name RIR Name .PARAMETER Connection Connection object to use #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][bool]$is_private, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$RIRsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\ipam\rirs\New-NBRIR.ps1' 34 #Region '.\Public\endpoints\ipam\rirs\Remove-NBRIR.ps1' -1 function Remove-NBRIR { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$RIRsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\rirs\Remove-NBRIR.ps1' 15 #Region '.\Public\endpoints\ipam\rirs\Set-NBRIR.ps1' -1 function Set-NBRIR { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','is_private','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$RIRsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\rirs\Set-NBRIR.ps1' 20 #Region '.\Public\endpoints\ipam\roles\Find-NBIPAMRolesContainingName.ps1' -1 function Find-NBIPAMRolesContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $IPAMRolesAPIPath -name $name } #EndRegion '.\Public\endpoints\ipam\roles\Find-NBIPAMRolesContainingName.ps1' 10 #Region '.\Public\endpoints\ipam\roles\Get-NBIPAMRoleByID.ps1' -1 function Get-NBIPAMRoleByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $IPAMRolesAPIPath -id $id } #EndRegion '.\Public\endpoints\ipam\roles\Get-NBIPAMRoleByID.ps1' 10 #Region '.\Public\endpoints\ipam\roles\Get-NBIPAMRoleByName.ps1' -1 function Get-NBIPAMRoleByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $IPAMRolesAPIPath -value $name } #EndRegion '.\Public\endpoints\ipam\roles\Get-NBIPAMRoleByName.ps1' 10 #Region '.\Public\endpoints\ipam\roles\Get-NBIPAMRoles.ps1' -1 function Get-NBIPAMRoles { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $IPAMRolesAPIPath } #EndRegion '.\Public\endpoints\ipam\roles\Get-NBIPAMRoles.ps1' 9 #Region '.\Public\endpoints\ipam\roles\New-NBIPAMRole.ps1' -1 function New-NBIPAMRole { <# .SYNOPSIS Creates a new IPAM role .PARAMETER name Name of role .PARAMETER Connection Connection object to use #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][int]$weight, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$IPAMRolesAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\ipam\roles\New-NBIPAMRole.ps1' 34 #Region '.\Public\endpoints\ipam\roles\Remove-NBIPAMRole.ps1' -1 function Remove-NBIPAMRole { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$IPAMRolesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\roles\Remove-NBIPAMRole.ps1' 15 #Region '.\Public\endpoints\ipam\roles\Set-NBIPAMRole.ps1' -1 function Set-NBIPAMRole { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','weight','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$IPAMRolesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\roles\Set-NBIPAMRole.ps1' 20 #Region '.\Public\endpoints\ipam\service-templates\Get-NBServiceTemplateByID.ps1' -1 function Get-NBServiceTemplateByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBServiceTemplatesAPIPath -id $id } #EndRegion '.\Public\endpoints\ipam\service-templates\Get-NBServiceTemplateByID.ps1' 10 #Region '.\Public\endpoints\ipam\service-templates\Get-NBServiceTemplates.ps1' -1 function Get-NBServiceTemplates { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBServiceTemplatesAPIPath } #EndRegion '.\Public\endpoints\ipam\service-templates\Get-NBServiceTemplates.ps1' 8 #Region '.\Public\endpoints\ipam\service-templates\New-NBServiceTemplate.ps1' -1 function New-NBServiceTemplate { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('tcp','udp','sctp')] $protocol, [Parameter(Mandatory=$true,Position=2)][string[]]$ports, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBServiceTemplatesAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\ipam\service-templates\New-NBServiceTemplate.ps1' 28 #Region '.\Public\endpoints\ipam\service-templates\Remove-NBServiceTemplate.ps1' -1 function Remove-NBServiceTemplate { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBServiceTemplatesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\service-templates\Remove-NBServiceTemplate.ps1' 15 #Region '.\Public\endpoints\ipam\service-templates\Set-NBServiceTemplate.ps1' -1 function Set-NBServiceTemplate { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','protocol','ports','description','comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2, HelpMessage="A valid value for the attribute you want to change. If the expected value is an array, like for tags, pass it as '1,2' or whatever the ids of the tags you wish to set are." )][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBServiceTemplatesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\service-templates\Set-NBServiceTemplate.ps1' 22 #Region '.\Public\endpoints\ipam\services\Get-NBServiceByID.ps1' -1 function Get-NBServiceByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBServiceAPIPath -id $id } #EndRegion '.\Public\endpoints\ipam\services\Get-NBServiceByID.ps1' 10 #Region '.\Public\endpoints\ipam\services\Get-NBServices.ps1' -1 function Get-NBServices { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBServiceAPIPath } #EndRegion '.\Public\endpoints\ipam\services\Get-NBServices.ps1' 8 #Region '.\Public\endpoints\ipam\services\New-NBService.ps1' -1 function New-NBService { <# .SYNOPSIS Adds a new service object to Netbox .PARAMETER device The id of the device object, if any .PARAMETER virtual_machine The id of the vm object, if any .PARAMETER name The name of the object .PARAMETER ports A list of ports the service listens to .PARAMETER protocol The protocol the service uses .PARAMETER ipaddresses The specific IP address IDs the service is bound to .PARAMETER description A description of the object. .PARAMETER comments Any comments you would like to add .PARAMETER Connection Connection object to use #> [CmdletBinding()] param ( [Parameter(Mandatory=$false)][int]$device, [Parameter(Mandatory=$false)][int]$virtual_machine, [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$true,Position=1)][string[]]$ports, [Parameter(Mandatory=$true,Position=2)][string] [ValidateSet('tcp','udp','sctp')] $protocol, [Parameter(Mandatory=$false)][int[]]$ipaddresses, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBServiceAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\ipam\services\New-NBService.ps1' 52 #Region '.\Public\endpoints\ipam\services\Remove-NBService.ps1' -1 function Remove-NBService { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBServiceAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\services\Remove-NBService.ps1' 15 #Region '.\Public\endpoints\ipam\services\Set-NBService.ps1' -1 function Set-NBService { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('device','virtual_machine','name','protocol','ports','ipaddresses','description','comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2, HelpMessage="A valid value for the attribute you want to change. If the expected value is an array, like for tags, pass it as '1,2' or whatever the ids of the tags you wish to set are." )][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBServiceAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\services\Set-NBService.ps1' 22 #Region '.\Public\endpoints\ipam\vlan-groups\Find-NBVlanGroupsContainingName.ps1' -1 function Find-NBVlanGroupsContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) (Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $vlangroupsAPIPath -name $name).results } #EndRegion '.\Public\endpoints\ipam\vlan-groups\Find-NBVlanGroupsContainingName.ps1' 10 #Region '.\Public\endpoints\ipam\vlan-groups\Get-NBVlanGroupAvailableVLANs.ps1' -1 function Get-NBPrefixAvailablePrefixes { <# .SYNOPSIS A convenience method for returning available prefixes within a prefix .DESCRIPTION Will return any available prefixes within a prefix. .PARAMETER PrefixId Parent Netbox IP Prefix ID .EXAMPLE Get-NBPrefixAvailablePrefixes -PrefixId (Get-NBPrefixByCIDR -CIDR '10.0.0.0/14').id .NOTES Additional information about the function. #> param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$ID ) Get-ApiItemByPath -apiConnection $Connection -Path $vlangroupsAPIPath/$ID/available-vlans/ } #EndRegion '.\Public\endpoints\ipam\vlan-groups\Get-NBVlanGroupAvailableVLANs.ps1' 25 #Region '.\Public\endpoints\ipam\vlan-groups\Get-NBVlanGroupByID.ps1' -1 function Get-NBVlanGroupByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $vlangroupsAPIPath -id $id } #EndRegion '.\Public\endpoints\ipam\vlan-groups\Get-NBVlanGroupByID.ps1' 10 #Region '.\Public\endpoints\ipam\vlan-groups\Get-NBVlanGroupByName.ps1' -1 function Get-NBVlanGroupByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $vlangroupsAPIPath -value $name } #EndRegion '.\Public\endpoints\ipam\vlan-groups\Get-NBVlanGroupByName.ps1' 10 #Region '.\Public\endpoints\ipam\vlan-groups\Get-NBVlanGroups.ps1' -1 function Get-NBVlanGroups { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $vlangroupsAPIPath } #EndRegion '.\Public\endpoints\ipam\vlan-groups\Get-NBVlanGroups.ps1' 9 #Region '.\Public\endpoints\ipam\vlan-groups\New-NBVlanGroup.ps1' -1 function New-NBVlanGroup { <# .SYNOPSIS Add a new vlan group .PARAMETER name vlan group name .PARAMETER Connection Connection object #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][string]$scope_type, [Parameter(Mandatory=$false)][int]$scope_id, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$vlangroupsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\ipam\vlan-groups\New-NBVlanGroup.ps1' 35 #Region '.\Public\endpoints\ipam\vlan-groups\Remove-NBVlanGroup.ps1' -1 function Remove-NBVlanGroup { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$vlangroupsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\vlan-groups\Remove-NBVlanGroup.ps1' 15 #Region '.\Public\endpoints\ipam\vlan-groups\Set-NBVlanGroup.ps1' -1 function Set-NBVlanGroup { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','scope_type','scope_id','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$vlangroupsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\vlan-groups\Set-NBVlanGroup.ps1' 20 #Region '.\Public\endpoints\ipam\vlans\Find-NBVLANsContainingName.ps1' -1 function Find-NBVLANsContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $VLANsAPIPath -name $name } #EndRegion '.\Public\endpoints\ipam\vlans\Find-NBVLANsContainingName.ps1' 10 #Region '.\Public\endpoints\ipam\vlans\Get-NBVLANByID.ps1' -1 function Get-NBVLANByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $VLANsAPIPath -id $id } #EndRegion '.\Public\endpoints\ipam\vlans\Get-NBVLANByID.ps1' 10 #Region '.\Public\endpoints\ipam\vlans\Get-NBVLANByName.ps1' -1 function Get-NBVLANByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $VLANsAPIPath -value $name } #EndRegion '.\Public\endpoints\ipam\vlans\Get-NBVLANByName.ps1' 10 #Region '.\Public\endpoints\ipam\vlans\Get-NBVLANByVID.ps1' -1 function Get-NBVLANByVID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$vid ) (Get-APIItemByQuery -apiConnection $Connection -RelativePath $VLANsAPIPath -field vid -value $vid).results } #EndRegion '.\Public\endpoints\ipam\vlans\Get-NBVLANByVID.ps1' 10 #Region '.\Public\endpoints\ipam\vlans\Get-NBVLANs.ps1' -1 function Get-NBVLANs { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $VLANsAPIPath } #EndRegion '.\Public\endpoints\ipam\vlans\Get-NBVLANs.ps1' 9 #Region '.\Public\endpoints\ipam\vlans\New-NBVLAN.ps1' -1 function New-NBVLAN { <# .SYNOPSIS Creates a vlan object .PARAMETER name Name of the object .PARAMETER vid vlan id number .PARAMETER status status of the vlan .PARAMETER site site id .PARAMETER group group id .PARAMETER tenant tenant id .PARAMETER role role id .PARAMETER description vlan description .PARAMETER comments comments .PARAMETER Connection connection object #> [CmdletBinding()] param ( [Parameter(Mandatory=$false)][int]$site, [Parameter(Mandatory=$false)][int]$group, [Parameter(Mandatory=$true,Position=1)][int]$vid, [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][int]$tenant, [Parameter(Mandatory=$false,Position=2)] [ValidateSet('active','reserved','deprecated')] [string]$status="active", [Parameter(Mandatory=$false)][int]$role, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) if (!($PSBoundParameters.ContainsKey('status'))) {$PSBoundParameters.add('status', $status)} $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$VLANsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\ipam\vlans\New-NBVLAN.ps1' 57 #Region '.\Public\endpoints\ipam\vlans\Remove-NBVLAN.ps1' -1 function Remove-NBVLAN { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$VLANsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\vlans\Remove-NBVLAN.ps1' 15 #Region '.\Public\endpoints\ipam\vlans\Set-NBVLAN.ps1' -1 function Set-NBVLAN { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('site','group','vid','name','tenant','status', 'role','description','comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$VLANsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\vlans\Set-NBVLAN.ps1' 21 #Region '.\Public\endpoints\ipam\vrfs\Find-NBVRFsContainingName.ps1' -1 function Find-NBVRFsContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $VRFsApiPath -name $name } #EndRegion '.\Public\endpoints\ipam\vrfs\Find-NBVRFsContainingName.ps1' 10 #Region '.\Public\endpoints\ipam\vrfs\Get-NBVRFByID.ps1' -1 function Get-NBVRFByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $VRFsApiPath -id $id } #EndRegion '.\Public\endpoints\ipam\vrfs\Get-NBVRFByID.ps1' 10 #Region '.\Public\endpoints\ipam\vrfs\Get-NBVRFByName.ps1' -1 function Get-NBVRFByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $VRFsApiPath -value $name } #EndRegion '.\Public\endpoints\ipam\vrfs\Get-NBVRFByName.ps1' 10 #Region '.\Public\endpoints\ipam\vrfs\Get-NBVRFs.ps1' -1 function Get-NBVRFs { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $VRFsApiPath } #EndRegion '.\Public\endpoints\ipam\vrfs\Get-NBVRFs.ps1' 9 #Region '.\Public\endpoints\ipam\vrfs\New-NBVRF.ps1' -1 function New-NBVRF { <# .SYNOPSIS Creates a VRF object .PARAMETER name Name of the object .PARAMETER rd Route distinguisher .PARAMETER tenant Tenant id .PARAMETER enforce_unique Enforce unique IP addresses in this VRF .PARAMETER description Description .PARAMETER comments Comments .PARAMETER import_targets An array of IDs of route targets .PARAMETER export_targets An array of IDs of route targets .PARAMETER Connection Connection object #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][string]$rd, [Parameter(Mandatory=$false)][int]$tenant, [Parameter(Mandatory=$false)][bool]$enforce_unique, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][int[]]$import_targets, [Parameter(Mandatory=$false)][int[]]$export_targets, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$VRFsApiPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\ipam\vrfs\New-NBVRF.ps1' 52 #Region '.\Public\endpoints\ipam\vrfs\Remove-NBVRF.ps1' -1 function Remove-NBVRF { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$VRFsApiPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\ipam\vrfs\Remove-NBVRF.ps1' 15 #Region '.\Public\endpoints\ipam\vrfs\Set-NBVRF.ps1' -1 function Set-NBVRF { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','rd','tenant','enforce_unique','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$VRFsApiPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } # TODO: allow import/export targets to be set in new functions or parameter sets here #EndRegion '.\Public\endpoints\ipam\vrfs\Set-NBVRF.ps1' 22 #Region '.\Public\endpoints\schema\Get-NBSchema.ps1' -1 function Get-NBSchema { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) (Get-ApiItemByQuery -apiConnection $Connection -RelativePath 'schema' -field format -value 'json') } #EndRegion '.\Public\endpoints\schema\Get-NBSchema.ps1' 9 #Region '.\Public\endpoints\schema\Get-NBSchemaDefinitionForObjectType.ps1' -1 function Get-NBSchemaDefinitionForObjectType { [CmdletBinding()] param ( [Parameter(Mandatory,Position=0)][object]$SchemaObject, [Parameter(Mandatory,Position=1)][string]$ObjectType ) $SchemaObject.components.schemas.$ObjectType.properties|get-member -MemberType NoteProperty|select name,@{name='definition'; expression={$_.definition -replace 'System.Management.Automation.PSCustomObject ',''}} } #EndRegion '.\Public\endpoints\schema\Get-NBSchemaDefinitionForObjectType.ps1' 9 #Region '.\Public\endpoints\status\Get-NBStatus.ps1' -1 function Get-NBStatus { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $restParams=@{ Method = 'Get' Uri = "$($Connection.ApiBaseUrl)/$StatusAPIPath/" } Invoke-CustomRequest -restParams $restParams -Connection $Connection } #EndRegion '.\Public\endpoints\status\Get-NBStatus.ps1' 13 #Region '.\Public\endpoints\tenancy\contact-groups\Find-NBContactGroupsContainingName.ps1' -1 function Find-NBContactGroupsContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $ContactGroupsAPIPath -name $name } #EndRegion '.\Public\endpoints\tenancy\contact-groups\Find-NBContactGroupsContainingName.ps1' 10 #Region '.\Public\endpoints\tenancy\contact-groups\Get-NBContactGroupByID.ps1' -1 function Get-NBContactGroupByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $ContactGroupsAPIPath -id $id } #EndRegion '.\Public\endpoints\tenancy\contact-groups\Get-NBContactGroupByID.ps1' 10 #Region '.\Public\endpoints\tenancy\contact-groups\Get-NBContactGroupByName.ps1' -1 function Get-NBContactGroupByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $ContactGroupsAPIPath -value $name } #EndRegion '.\Public\endpoints\tenancy\contact-groups\Get-NBContactGroupByName.ps1' 10 #Region '.\Public\endpoints\tenancy\contact-groups\Get-NBContactGroups.ps1' -1 function Get-NBContactGroups { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $ContactGroupsAPIPath } #EndRegion '.\Public\endpoints\tenancy\contact-groups\Get-NBContactGroups.ps1' 9 #Region '.\Public\endpoints\tenancy\contact-groups\New-NBContactGroup.ps1' -1 function New-NBContactGroup { <# .SYNOPSIS Creates a contact group object .PARAMETER name The name of the object .PARAMETER parent The ID of the parent object .PARAMETER description A description of the object .PARAMETER Connection A connection object if you do not want to use the default connection #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][int]$parent, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$ContactGroupsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\tenancy\contact-groups\New-NBContactGroup.ps1' 37 #Region '.\Public\endpoints\tenancy\contact-groups\Remove-NBContactGroup.ps1' -1 function Remove-NBContactGroup { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$ContactGroupsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\tenancy\contact-groups\Remove-NBContactGroup.ps1' 15 #Region '.\Public\endpoints\tenancy\contact-groups\Set-NBContactGroup.ps1' -1 function Set-NBContactGroup { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','group','description','comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$ContactGroupsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\tenancy\contact-groups\Set-NBContactGroup.ps1' 20 #Region '.\Public\endpoints\tenancy\contact-roles\Find-NBContactRolesContainingName.ps1' -1 function Find-NBContactRolesContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $ContactRolesAPIPath -name $name } #EndRegion '.\Public\endpoints\tenancy\contact-roles\Find-NBContactRolesContainingName.ps1' 10 #Region '.\Public\endpoints\tenancy\contact-roles\Get-NBContactRoleByID.ps1' -1 function Get-NBContactRoleByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $ContactRolesAPIPath -id $id } #EndRegion '.\Public\endpoints\tenancy\contact-roles\Get-NBContactRoleByID.ps1' 10 #Region '.\Public\endpoints\tenancy\contact-roles\Get-NBContactRoleByName.ps1' -1 function Get-NBContactRoleByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $ContactRolesAPIPath -value $name } #EndRegion '.\Public\endpoints\tenancy\contact-roles\Get-NBContactRoleByName.ps1' 10 #Region '.\Public\endpoints\tenancy\contact-roles\Get-NBContactRoles.ps1' -1 function Get-NBContactRoles { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $ContactRolesAPIPath } #EndRegion '.\Public\endpoints\tenancy\contact-roles\Get-NBContactRoles.ps1' 9 #Region '.\Public\endpoints\tenancy\contact-roles\New-NBContactRole.ps1' -1 function New-NBContactRole { <# .SYNOPSIS Adds a new contact role to Netbox .PARAMETER name This parameter will be used both directly and to create an appropriate slug. .PARAMETER description Any description you'd like to add .PARAMETER Connection Connection object to use #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$ContactRolesAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\tenancy\contact-roles\New-NBContactRole.ps1' 35 #Region '.\Public\endpoints\tenancy\contact-roles\Remove-NBContactRole.ps1' -1 function Remove-NBContactRole { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$ContactRolesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\tenancy\contact-roles\Remove-NBContactRole.ps1' 15 #Region '.\Public\endpoints\tenancy\contact-roles\Set-NBContactRole.ps1' -1 function Set-NBContactRole { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$ContactRolesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\tenancy\contact-roles\Set-NBContactRole.ps1' 20 #Region '.\Public\endpoints\tenancy\contacts\Find-NBContactsContainingName.ps1' -1 function Find-NBContactsContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $ContactsAPIPath -name $name } #EndRegion '.\Public\endpoints\tenancy\contacts\Find-NBContactsContainingName.ps1' 10 #Region '.\Public\endpoints\tenancy\contacts\Get-NBContactByID.ps1' -1 function Get-NBContactByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $ContactsAPIPath -id $id } #EndRegion '.\Public\endpoints\tenancy\contacts\Get-NBContactByID.ps1' 10 #Region '.\Public\endpoints\tenancy\contacts\Get-NBContactByName.ps1' -1 function Get-NBContactByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $ContactsAPIPath -value $name } #EndRegion '.\Public\endpoints\tenancy\contacts\Get-NBContactByName.ps1' 10 #Region '.\Public\endpoints\tenancy\contacts\Get-NBContacts.ps1' -1 function Get-NBContacts { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $ContactsAPIPath } #EndRegion '.\Public\endpoints\tenancy\contacts\Get-NBContacts.ps1' 9 #Region '.\Public\endpoints\tenancy\contacts\New-NBContact.ps1' -1 function New-NBContact { <# .SYNOPSIS Add new contact .PARAMETER name This parameter will be used both directly and to create an appropriate slug. .PARAMETER group Group ID .PARAMETER title Title .PARAMETER phone Phone .PARAMETER email .PARAMETER address Address .PARAMETER link Link .PARAMETER description A description of the object. .PARAMETER comments Any comments you'd like to add .PARAMETER Connection Connection object to use #> [CmdletBinding()] param ( [Parameter(Mandatory=$false)][int]$group, [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][string]$title, [Parameter(Mandatory=$false)][string]$phone, [Parameter(Mandatory=$false)][string]$email, [Parameter(Mandatory=$false)][string]$address, [Parameter(Mandatory=$false)][string]$link, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$ContactsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\tenancy\contacts\New-NBContact.ps1' 55 #Region '.\Public\endpoints\tenancy\contacts\Remove-NBContact.ps1' -1 function Remove-NBContact { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$ContactsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\tenancy\contacts\Remove-NBContact.ps1' 15 #Region '.\Public\endpoints\tenancy\contacts\Set-NBContact.ps1' -1 function Set-NBContact { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('group','name','title','phone','email','address', 'link','description','comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$ContactsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\tenancy\contacts\Set-NBContact.ps1' 21 #Region '.\Public\endpoints\tenancy\tenant-groups\Find-NBTenantGroupsContainingName.ps1' -1 function Find-NBTenantGroupsContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $TenantGroupsAPIPath -name $name } #EndRegion '.\Public\endpoints\tenancy\tenant-groups\Find-NBTenantGroupsContainingName.ps1' 10 #Region '.\Public\endpoints\tenancy\tenant-groups\Get-NBTenantGroupByID.ps1' -1 function Get-NBTenantGroupByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $TenantGroupsAPIPath -id $id } #EndRegion '.\Public\endpoints\tenancy\tenant-groups\Get-NBTenantGroupByID.ps1' 10 #Region '.\Public\endpoints\tenancy\tenant-groups\Get-NBTenantGroupByName.ps1' -1 function Get-NBTenantGroupByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $TenantGroupsAPIPath -value $name } #EndRegion '.\Public\endpoints\tenancy\tenant-groups\Get-NBTenantGroupByName.ps1' 10 #Region '.\Public\endpoints\tenancy\tenant-groups\Get-NBTenantGroups.ps1' -1 function Get-NBTenantGroups { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $TenantGroupsAPIPath } #EndRegion '.\Public\endpoints\tenancy\tenant-groups\Get-NBTenantGroups.ps1' 9 #Region '.\Public\endpoints\tenancy\tenant-groups\New-NBTenantGroup.ps1' -1 function New-NBTenantGroup { <# .SYNOPSIS Adds a new tenant group to Netbox .PARAMETER name This parameter will be used both directly and to create an appropriate slug. .PARAMETER parent Parent object group ID .PARAMETER description Any description you'd like to add .PARAMETER Connection Connection object to use #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][int]$parent, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$TenantGroupsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\tenancy\tenant-groups\New-NBTenantGroup.ps1' 37 #Region '.\Public\endpoints\tenancy\tenant-groups\Remove-NBTenantGroup.ps1' -1 function Remove-NBTenantGroup { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$TenantGroupsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\tenancy\tenant-groups\Remove-NBTenantGroup.ps1' 15 #Region '.\Public\endpoints\tenancy\tenant-groups\Set-NBTenantGroups.ps1' -1 function Set-NBTenantGroups { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','parent','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$TenantGroupsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\tenancy\tenant-groups\Set-NBTenantGroups.ps1' 20 #Region '.\Public\endpoints\tenancy\tenants\Find-NBTenantsContainingName.ps1' -1 function Find-NBTenantsContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $TenantsAPIPath -name $name } #EndRegion '.\Public\endpoints\tenancy\tenants\Find-NBTenantsContainingName.ps1' 10 #Region '.\Public\endpoints\tenancy\tenants\Get-NBTenantByID.ps1' -1 function Get-NBTenantByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $TenantsAPIPath -id $id } #EndRegion '.\Public\endpoints\tenancy\tenants\Get-NBTenantByID.ps1' 10 #Region '.\Public\endpoints\tenancy\tenants\Get-NBTenantByName.ps1' -1 function Get-NBTenantByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $TenantsAPIPath -value $name } #EndRegion '.\Public\endpoints\tenancy\tenants\Get-NBTenantByName.ps1' 10 #Region '.\Public\endpoints\tenancy\tenants\Get-NBTenants.ps1' -1 function Get-NBTenants { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $TenantsAPIPath } #EndRegion '.\Public\endpoints\tenancy\tenants\Get-NBTenants.ps1' 9 #Region '.\Public\endpoints\tenancy\tenants\New-NBTenant.ps1' -1 function New-NBTenant { <# .SYNOPSIS Adds a new tenant to Netbox .PARAMETER name This parameter will be used both directly and to create an appropriate slug. .PARAMETER group Group object ID .PARAMETER description Any description you'd like to add .PARAMETER comments Any comments you'd like to add .PARAMETER Connection Connection object to use #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][int]$group, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$TenantsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\tenancy\tenants\New-NBTenant.ps1' 40 #Region '.\Public\endpoints\tenancy\tenants\Remove-NBTenant.ps1' -1 function Remove-NBTenant { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$TenantsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\tenancy\tenants\Remove-NBTenant.ps1' 15 #Region '.\Public\endpoints\tenancy\tenants\Set-NBTenant.ps1' -1 function Set-NBTenant { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','group','description','comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$TenantsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\tenancy\tenants\Set-NBTenant.ps1' 20 #Region '.\Public\endpoints\users\Get-NBUserByID.ps1' -1 function Get-NBUserByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $UsersAPIPath -id $id } #EndRegion '.\Public\endpoints\users\Get-NBUserByID.ps1' 10 #Region '.\Public\endpoints\users\Get-NBUserByName.ps1' -1 function Get-NBUserByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $UsersAPIPath -value $name } #EndRegion '.\Public\endpoints\users\Get-NBUserByName.ps1' 10 #Region '.\Public\endpoints\users\Get-NBUsers.ps1' -1 function Get-NBUsers { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $UsersAPIPath } #EndRegion '.\Public\endpoints\users\Get-NBUsers.ps1' 9 #Region '.\Public\endpoints\virtualization\cluster-groups\Find-NBVMClusterGroupsContainingName.ps1' -1 function Find-NBVMClusterGroupsContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $VirtualizationClusterGroupsAPIPath -name $name } #EndRegion '.\Public\endpoints\virtualization\cluster-groups\Find-NBVMClusterGroupsContainingName.ps1' 10 #Region '.\Public\endpoints\virtualization\cluster-groups\Get-NBVMClusterGroupByID.ps1' -1 function Get-NBVMClusterGroupByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $VirtualizationClusterGroupsAPIPath -id $id } #EndRegion '.\Public\endpoints\virtualization\cluster-groups\Get-NBVMClusterGroupByID.ps1' 10 #Region '.\Public\endpoints\virtualization\cluster-groups\Get-NBVMClusterGroupByName.ps1' -1 function Get-NBVMClusterGroupByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $VirtualizationClusterGroupsAPIPath -value $name } #EndRegion '.\Public\endpoints\virtualization\cluster-groups\Get-NBVMClusterGroupByName.ps1' 10 #Region '.\Public\endpoints\virtualization\cluster-groups\Get-NBVMClusterGroups.ps1' -1 function Get-NBVMClusterGroups { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $VirtualizationClusterGroupsAPIPath } #EndRegion '.\Public\endpoints\virtualization\cluster-groups\Get-NBVMClusterGroups.ps1' 9 #Region '.\Public\endpoints\virtualization\cluster-groups\New-NBVMClusterGroup.ps1' -1 function New-NBVMClusterGroup { <# .SYNOPSIS Add a new VM Cluster Group .PARAMETER name This parameter will be used both directly and to create an appropriate slug. .PARAMETER description Any description you'd like to add .PARAMETER Connection Connection object to use #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$VirtualizationClusterGroupsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\virtualization\cluster-groups\New-NBVMClusterGroup.ps1' 34 #Region '.\Public\endpoints\virtualization\cluster-groups\Remove-NBVMClusterGroup.ps1' -1 function Remove-NBVMClusterGroup { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$VirtualizationClusterGroupsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\virtualization\cluster-groups\Remove-NBVMClusterGroup.ps1' 15 #Region '.\Public\endpoints\virtualization\cluster-groups\Set-NBVMClusterGroup.ps1' -1 function Set-NBVMClusterGroup { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$VirtualizationClusterGroupsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\virtualization\cluster-groups\Set-NBVMClusterGroup.ps1' 20 #Region '.\Public\endpoints\virtualization\cluster-types\Find-NBVMClusterTypesContainingName.ps1' -1 function Find-NBVMClusterTypesContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $VirtualizationClusterTypesAPIPath -name $name } #EndRegion '.\Public\endpoints\virtualization\cluster-types\Find-NBVMClusterTypesContainingName.ps1' 10 #Region '.\Public\endpoints\virtualization\cluster-types\Get-NBVMClusterTypeByID.ps1' -1 function Get-NBVMClusterTypeByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $VirtualizationClusterTypesAPIPath -id $id } #EndRegion '.\Public\endpoints\virtualization\cluster-types\Get-NBVMClusterTypeByID.ps1' 10 #Region '.\Public\endpoints\virtualization\cluster-types\Get-NBVMClusterTypeByName.ps1' -1 function Get-NBVMClusterTypeByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $VirtualizationClusterTypesAPIPath -value $name } #EndRegion '.\Public\endpoints\virtualization\cluster-types\Get-NBVMClusterTypeByName.ps1' 10 #Region '.\Public\endpoints\virtualization\cluster-types\Get-NBVMClusterTypes.ps1' -1 function Get-NBVMClusterTypes { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $VirtualizationClusterTypesAPIPath } #EndRegion '.\Public\endpoints\virtualization\cluster-types\Get-NBVMClusterTypes.ps1' 9 #Region '.\Public\endpoints\virtualization\cluster-types\New-NBVMClusterType.ps1' -1 function New-NBVMClusterType { <# .SYNOPSIS Add a new VM Cluster type .PARAMETER name This parameter will be used both directly and to create an appropriate slug. .PARAMETER description Any description you'd like to add .PARAMETER Connection Connection object to use #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$VirtualizationClusterTypesAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\virtualization\cluster-types\New-NBVMClusterType.ps1' 35 #Region '.\Public\endpoints\virtualization\cluster-types\Remove-NBVMClusterType.ps1' -1 function Remove-NBVMClusterType { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$VirtualizationClusterTypesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\virtualization\cluster-types\Remove-NBVMClusterType.ps1' 15 #Region '.\Public\endpoints\virtualization\cluster-types\Set-NBVMClusterType.ps1' -1 function Set-NBVMClusterType { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$VirtualizationClusterTypesAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\virtualization\cluster-types\Set-NBVMClusterType.ps1' 20 #Region '.\Public\endpoints\virtualization\clusters\Find-NBVMClustersContainingName.ps1' -1 function Find-NBVMClustersContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $VirtualizationClustersAPIPath -name $name } #EndRegion '.\Public\endpoints\virtualization\clusters\Find-NBVMClustersContainingName.ps1' 10 #Region '.\Public\endpoints\virtualization\clusters\Get-NBVMClusterByID.ps1' -1 function Get-NBVMClusterByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $VirtualizationClustersAPIPath -id $id } #EndRegion '.\Public\endpoints\virtualization\clusters\Get-NBVMClusterByID.ps1' 10 #Region '.\Public\endpoints\virtualization\clusters\Get-NBVMClusterByName.ps1' -1 function Get-NBVMClusterByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Get-APIItemByName -apiConnection $Connection -RelativePath $VirtualizationClustersAPIPath -value $name } #EndRegion '.\Public\endpoints\virtualization\clusters\Get-NBVMClusterByName.ps1' 10 #Region '.\Public\endpoints\virtualization\clusters\Get-NBVMClusters.ps1' -1 function Get-NBVMClusters { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $VirtualizationClustersAPIPath } #EndRegion '.\Public\endpoints\virtualization\clusters\Get-NBVMClusters.ps1' 9 #Region '.\Public\endpoints\virtualization\clusters\New-NBVMCluster.ps1' -1 function New-NBVMCluster { <# .SYNOPSIS Creates a new virtual machine cluster object .PARAMETER name Name of the object .PARAMETER type ID of the type object .PARAMETER group ID of the group object .PARAMETER status Any of the allowed lifecycle status options for this object .PARAMETER tenant ID of the tenant object .PARAMETER site ID of the site object .PARAMETER description A description of the object .PARAMETER comments Any comments you would like to add .PARAMETER Connection Connection object to use #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$true,Position=1)][int]$type, [Parameter(Mandatory=$false)][int]$group, [Parameter(Mandatory=$false)][string] [ValidateSet('planned','staging','active','decommissioning','offline')] $status="active", [Parameter(Mandatory=$false)][int]$tenant, [Parameter(Mandatory=$false)][int]$site, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) if (!($PSBoundParameters.ContainsKey('status'))) {$PSBoundParameters.add('status', $status)} $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$VirtualizationClustersAPIPath/" body = $PostJson } $PostObject= Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\virtualization\clusters\New-NBVMCluster.ps1' 54 #Region '.\Public\endpoints\virtualization\clusters\Remove-NBVMCluster.ps1' -1 function Remove-NBVMCluster { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$VirtualizationClustersAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\virtualization\clusters\Remove-NBVMCluster.ps1' 15 #Region '.\Public\endpoints\virtualization\clusters\Set-NBVMCluster.ps1' -1 function Set-NBVMCluster { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','type','group','tenant','site','comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$VirtualizationClustersAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\virtualization\clusters\Set-NBVMCluster.ps1' 20 #Region '.\Public\endpoints\virtualization\interfaces\Find-NBVMInterfacesContainingName.ps1' -1 function Find-NBVMInterfacesContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $VirtualizationInterfaceAPIPath -name $name } #EndRegion '.\Public\endpoints\virtualization\interfaces\Find-NBVMInterfacesContainingName.ps1' 10 #Region '.\Public\endpoints\virtualization\interfaces\Get-NBVMInterfaceByID.ps1' -1 function Get-NBVMInterfaceByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $VirtualizationInterfaceAPIPath -id $id } #EndRegion '.\Public\endpoints\virtualization\interfaces\Get-NBVMInterfaceByID.ps1' 10 #Region '.\Public\endpoints\virtualization\interfaces\Get-NBVMInterfaceByName.ps1' -1 function Get-NBVMInterfaceByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $VirtualizationInterfaceAPIPath -value $name } #EndRegion '.\Public\endpoints\virtualization\interfaces\Get-NBVMInterfaceByName.ps1' 10 #Region '.\Public\endpoints\virtualization\interfaces\Get-NBVMInterfaceForVM.ps1' -1 function Get-NBVMInterfaceForVM { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) (Get-APIItemByQuery -apiConnection $Connection -RelativePath $VirtualizationInterfaceAPIPath -field 'virtual_machine_id' $id).results } #EndRegion '.\Public\endpoints\virtualization\interfaces\Get-NBVMInterfaceForVM.ps1' 10 #Region '.\Public\endpoints\virtualization\interfaces\Get-NBVMInterfaces.ps1' -1 function Get-NBVMInterfaces { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $VirtualizationInterfaceAPIPath } #EndRegion '.\Public\endpoints\virtualization\interfaces\Get-NBVMInterfaces.ps1' 9 #Region '.\Public\endpoints\virtualization\interfaces\New-NBVMInterface.ps1' -1 function New-NBVMInterface { <# .SYNOPSIS Adds a new interface object to a VM .PARAMETER virtual_machine Virtual Machine object ID .PARAMETER name Name .PARAMETER enabled Is this interface enabled? .PARAMETER parent Parent interface ID .PARAMETER bridge Bridge object ID of this interface. .PARAMETER mtu MTU of this interface .PARAMETER mac_address MAC address of this interface .PARAMETER description Any description you'd like to add .PARAMETER mode Tagging mode of this interface. .PARAMETER untagged_vlan VLAN object ID .PARAMETER vrf VRF object ID .PARAMETER Connection Connection object to use #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][int]$virtual_machine, [Parameter(Mandatory=$true,Position=1)][string]$name, [Parameter(Mandatory=$false)][bool]$enabled, [Parameter(Mandatory=$false)][int]$parent, [Parameter(Mandatory=$false)][int]$bridge, [Parameter(Mandatory=$false)][int]$mtu, [Parameter(Mandatory=$false)][string]$mac_address, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string] [ValidateSet('access','tagged','tagged-all')] $mode, [Parameter(Mandatory=$false)][int]$untagged_vlan, [Parameter(Mandatory=$false)][int[]]$tagged_vlans, [Parameter(Mandatory=$false)][int]$vrf, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$VirtualizationInterfaceAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\virtualization\interfaces\New-NBVMInterface.ps1' 63 #Region '.\Public\endpoints\virtualization\interfaces\Remove-NBVMInterface.ps1' -1 function Remove-NBVMInterface { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$VirtualizationInterfaceAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\virtualization\interfaces\Remove-NBVMInterface.ps1' 15 #Region '.\Public\endpoints\virtualization\interfaces\Set-NBVMInterface.ps1' -1 function Set-NBVMInterface { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('virtual_machine','name','enabled','parent','bridge','mtu','mac_address','description', 'mode','untagged_vlan','tagged_vlans','vrf','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$VirtualizationInterfaceAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\virtualization\interfaces\Set-NBVMInterface.ps1' 21 #Region '.\Public\endpoints\virtualization\interfaces\Set-NBVMInterfaceTaggedVLANs.ps1' -1 function Set-NBVMInterfaceTaggedVLANs { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][int[]]$tagged_vlans ) $update=@{ tagged_vlans = $tagged_vlans } $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$VirtualizationInterfaceAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\virtualization\interfaces\Set-NBVMInterfaceTaggedVLANs.ps1' 19 #Region '.\Public\endpoints\virtualization\virtual-disks\Get-NBVMVirtualDiskByID.ps1' -1 function Get-NBVMVirtualDiskByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBVirtualDisksAPIPath -id $id } #EndRegion '.\Public\endpoints\virtualization\virtual-disks\Get-NBVMVirtualDiskByID.ps1' 10 #Region '.\Public\endpoints\virtualization\virtual-disks\Get-NBVMVirtualDiskByName.ps1' -1 function Get-NBVMVirtualDiskByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Get-APIItemByName -apiConnection $Connection -RelativePath $NBVirtualDisksAPIPath -value $name } #EndRegion '.\Public\endpoints\virtualization\virtual-disks\Get-NBVMVirtualDiskByName.ps1' 10 #Region '.\Public\endpoints\virtualization\virtual-disks\Get-NBVMVirtualDiskForVM.ps1' -1 function Get-NBVMVirtualDiskForVM { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) (Get-APIItemByQuery -apiConnection $Connection -RelativePath $NBVirtualDisksAPIPath -field 'virtual_machine_id' $id).results } #EndRegion '.\Public\endpoints\virtualization\virtual-disks\Get-NBVMVirtualDiskForVM.ps1' 10 #Region '.\Public\endpoints\virtualization\virtual-disks\Get-NBVMVirtualDisks.ps1' -1 function Get-NBVMVirtualDisks { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBVirtualDisksAPIPath } #EndRegion '.\Public\endpoints\virtualization\virtual-disks\Get-NBVMVirtualDisks.ps1' 9 #Region '.\Public\endpoints\virtualization\virtual-disks\New-NBVMVirtualDisk.ps1' -1 function New-NBVMVirtualDisk { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][int]$virtual_machine, [Parameter(Mandatory=$true,Position=1)][string]$name, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$true,Position=2)][int]$size, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) if (!($PSBoundParameters.ContainsKey('status'))) {$PSBoundParameters.add('status', $status)} $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBVirtualDisksAPIPath/" body = $PostJson } $PostObject= Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\virtualization\virtual-disks\New-NBVMVirtualDisk.ps1' 26 #Region '.\Public\endpoints\virtualization\virtual-disks\Remove-NBVMVirtualDisk.ps1' -1 function Remove-NBVMVirtualDisk { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBVirtualDisksAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\virtualization\virtual-disks\Remove-NBVMVirtualDisk.ps1' 15 #Region '.\Public\endpoints\virtualization\virtual-disks\Set-NBVMVirtualDisk.ps1' -1 function Set-NBVMVirtualDisk { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('virtual_machine','name','description','size','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBVirtualDisksAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\virtualization\virtual-disks\Set-NBVMVirtualDisk.ps1' 20 #Region '.\Public\endpoints\virtualization\virtual-machines\Find-NBVMsContainingName.ps1' -1 function Find-NBVMsContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $VirtualizationVMsAPIPath -name $name } #EndRegion '.\Public\endpoints\virtualization\virtual-machines\Find-NBVMsContainingName.ps1' 10 #Region '.\Public\endpoints\virtualization\virtual-machines\Get-NBVMByID.ps1' -1 function Get-NBVMByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $VirtualizationVMsAPIPath -id $id } #EndRegion '.\Public\endpoints\virtualization\virtual-machines\Get-NBVMByID.ps1' 10 #Region '.\Public\endpoints\virtualization\virtual-machines\Get-NBVMByName.ps1' -1 function Get-NBVMByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-APIItemByName -apiConnection $Connection -RelativePath $VirtualizationVMsAPIPath -value $name } #EndRegion '.\Public\endpoints\virtualization\virtual-machines\Get-NBVMByName.ps1' 10 #Region '.\Public\endpoints\virtualization\virtual-machines\Get-NBVMs.ps1' -1 function Get-NBVMs { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $VirtualizationVMsAPIPath } #EndRegion '.\Public\endpoints\virtualization\virtual-machines\Get-NBVMs.ps1' 9 #Region '.\Public\endpoints\virtualization\virtual-machines\New-NBVM.ps1' -1 function New-NBVM { <# .SYNOPSIS Adds a new virtual machine object to Netbox .PARAMETER name The name of the virtual machine .PARAMETER cluster The ID of the vm cluster object .PARAMETER status The status of the new vm .PARAMETER site The ID of the site for the object .PARAMETER device The ID of a device in the cluster this object is pinned to .PARAMETER role Role object ID .PARAMETER tenant Tenant object ID .PARAMETER platform Platform object ID .PARAMETER primary_ip4 IPv4 object ID .PARAMETER primary_ip6 IPv6 object ID .PARAMETER vcpus Number of vCPUs assigned to this VM .PARAMETER memory Memory measured in MB .PARAMETER disk Disk space measured in GB .PARAMETER description A description of the object. .PARAMETER comments Any comments you would like to add .PARAMETER local_context_data A json string with local context data for the object. .PARAMETER Connection Connection object to use #> [CmdletBinding(DefaultParameterSetName = 'Cluster')] param ( [Parameter(Mandatory=$true,Position=0,ParameterSetName='Cluster')] [Parameter(Mandatory=$true,Position=0,ParameterSetName='Site')] [string]$name, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,ParameterSetName='Site')] [ValidateSet('offline','active','planned','staged','failed', 'decommissioning')] [string]$status, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$true,ParameterSetName='Site')] [int]$site, [Parameter(Mandatory=$true,Position=1,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,Position=1,ParameterSetName='Site')] [int]$cluster, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,ParameterSetName='Site')] [int]$device, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,ParameterSetName='Site')] [string]$serial, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,ParameterSetName='Site')] [int]$role, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,ParameterSetName='Site')] [int]$tenant, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,ParameterSetName='Site')] [int]$platform, # Genuinely don't understand why the form asks for this on a new vm, not like there's an IP already associated # that you could assign as primary # [Parameter(Mandatory=$false)][int]$primary_ip4, # [Parameter(Mandatory=$false)][int]$primary_ip6, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,ParameterSetName='Site')] [double]$vcpus, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,ParameterSetName='Site')] [int]$memory, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,ParameterSetName='Site')] [int]$disk, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,ParameterSetName='Site')] [string]$description, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,ParameterSetName='Site')] [string]$comments, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,ParameterSetName='Site')] [string]$config_template, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,ParameterSetName='Site')] [string]$local_context_data, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,ParameterSetName='Site')] [string[]]$tags, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,ParameterSetName='Site')] [hashtable]$custom_fields, [Parameter(Mandatory=$false,ParameterSetName='Cluster')] [Parameter(Mandatory=$false,ParameterSetName='Site')] [object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$VirtualizationVMsAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\virtualization\virtual-machines\New-NBVM.ps1' 118 #Region '.\Public\endpoints\virtualization\virtual-machines\Remove-NBVM.ps1' -1 function Remove-NBVM { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$VirtualizationVMsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\virtualization\virtual-machines\Remove-NBVM.ps1' 15 #Region '.\Public\endpoints\virtualization\virtual-machines\Set-NBVM.ps1' -1 function Set-NBVM { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','status','site','cluster','device','serial','role','tenant','platform','primary_ip4','primary_ip6', 'vcpus','memory','disk','comments','config_template','local_context_data','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$VirtualizationVMsAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } Write-Debug ($restParams.body|Out-String) (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\virtualization\virtual-machines\Set-NBVM.ps1' 22 #Region '.\Public\endpoints\wireless\wireless-lan-groups\Find-NBWirelessLanGroupsContainingName.ps1' -1 function Find-NBWirelessLanGroupsContainingName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=1)][string]$name ) Find-ApiItemsContainingName -apiConnection $Connection -RelativePath $NBWirelessLanGroupAPIPath -name $name } #EndRegion '.\Public\endpoints\wireless\wireless-lan-groups\Find-NBWirelessLanGroupsContainingName.ps1' 10 #Region '.\Public\endpoints\wireless\wireless-lan-groups\Get-NBWirelessLanGroupByID.ps1' -1 function Get-NBWirelessLanGroupByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBWirelessLanGroupAPIPath -id $id } #EndRegion '.\Public\endpoints\wireless\wireless-lan-groups\Get-NBWirelessLanGroupByID.ps1' 10 #Region '.\Public\endpoints\wireless\wireless-lan-groups\Get-NBWirelessLanGroupByName.ps1' -1 function Get-NBWirelessLanGroupByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $NBWirelessLanGroupAPIPath -value $name } #EndRegion '.\Public\endpoints\wireless\wireless-lan-groups\Get-NBWirelessLanGroupByName.ps1' 10 #Region '.\Public\endpoints\wireless\wireless-lan-groups\Get-NBWirelessLanGroups.ps1' -1 function Get-NBWirelessLanGroups { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBWirelessLanGroupAPIPath } #EndRegion '.\Public\endpoints\wireless\wireless-lan-groups\Get-NBWirelessLanGroups.ps1' 9 #Region '.\Public\endpoints\wireless\wireless-lan-groups\New-NBWirelessLanGroup.ps1' -1 function New-NBWirelessLanGroup { <# .SYNOPSIS Adds a new wireless lan group to Netbox .PARAMETER name This parameter will be used both directly and to create an appropriate slug. .PARAMETER parent Parent object group ID .PARAMETER description Any description you'd like to add .PARAMETER Connection Connection object to use #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$name, [Parameter(Mandatory=$false)][int]$parent, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PSBoundParameters['slug']=makeSlug -name $name $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBWirelessLanGroupAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\wireless\wireless-lan-groups\New-NBWirelessLanGroup.ps1' 37 #Region '.\Public\endpoints\wireless\wireless-lan-groups\Remove-NBWirelessLanGroup.ps1' -1 function Remove-NBWirelessLanGroup { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBWirelessLanGroupAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\wireless\wireless-lan-groups\Remove-NBWirelessLanGroup.ps1' 15 #Region '.\Public\endpoints\wireless\wireless-lan-groups\Set-NBWirelessLanGroup.ps1' -1 function Set-NBWirelessLanGroup { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('name','slug','parent','description','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBWirelessLanGroupAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\wireless\wireless-lan-groups\Set-NBWirelessLanGroup.ps1' 20 #Region '.\Public\endpoints\wireless\wireless-lans\Get-NBWirelessLanByID.ps1' -1 function Get-NBWirelessLanByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBWirelessLanAPIPath -id $id } #EndRegion '.\Public\endpoints\wireless\wireless-lans\Get-NBWirelessLanByID.ps1' 10 #Region '.\Public\endpoints\wireless\wireless-lans\Get-NBWirelessLanBySSID.ps1' -1 function Get-NBWirelessLanBySSID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$SSID ) Get-APIItemByQuery -apiConnection $Connection -RelativePath $NBWirelessLanAPIPath -field ssid -value $SSID } #EndRegion '.\Public\endpoints\wireless\wireless-lans\Get-NBWirelessLanBySSID.ps1' 10 #Region '.\Public\endpoints\wireless\wireless-lans\Get-NBWirelessLans.ps1' -1 function Get-NBWirelessLans { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBWirelessLanAPIPath } #EndRegion '.\Public\endpoints\wireless\wireless-lans\Get-NBWirelessLans.ps1' 9 #Region '.\Public\endpoints\wireless\wireless-lans\New-NBWirelessLan.ps1' -1 function New-NBWirelessLan { <# .SYNOPSIS Adds a new wireless lan object to Netbox .PARAMETER ssid The SSID of the wireless LAN .PARAMETER description Any description you'd like to add .PARAMETER group Group object ID .PARAMETER vlan VLAN object ID .PARAMETER auth_type Authentication type .PARAMETER auth_cipher Authentication cipher .PARAMETER auth_psk Authentication pre-shared key .PARAMETER Connection Connection object to use #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$ssid, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][int]$group, [Parameter(Mandatory=$false)][string] [ValidateSet('active','reserved','disabled','deprecated')] # Authentication Type $status, [Parameter(Mandatory=$false)][int]$vlan, [Parameter(Mandatory=$false)][int]$tenant, [Parameter(Mandatory=$false)][string] [ValidateSet('open','wep','wpa-personal','wpa-enterprise')] # Authentication Type $auth_type, [Parameter(Mandatory=$false)][string] [ValidateSet('auto','tkip','aes')] # Authentication Cipher $auth_cipher, [Parameter(Mandatory=$false)][string] # Authentication pre-shared key, if applicable. maxlength: 64 $auth_psk, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBWirelessLanAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\wireless\wireless-lans\New-NBWirelessLan.ps1' 62 #Region '.\Public\endpoints\wireless\wireless-lans\Remove-NBWirelessLan.ps1' -1 function Remove-NBWirelessLan { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBWirelessLanAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\wireless\wireless-lans\Remove-NBWirelessLan.ps1' 15 #Region '.\Public\endpoints\wireless\wireless-lans\Set-NBWirelessLan.ps1' -1 function Set-NBWirelessLan { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('ssid','description','group','status','vlan','tenant','auth_type','auth_cipher','auth_psk','comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBWirelessLanAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\wireless\wireless-lans\Set-NBWirelessLan.ps1' 20 #Region '.\Public\endpoints\wireless\wireless-links\Get-NBWirelessLinkByID.ps1' -1 function Get-NBWirelessLinkByID { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBWirelessLinkAPIPath -id $id } #EndRegion '.\Public\endpoints\wireless\wireless-links\Get-NBWirelessLinkByID.ps1' 9 #Region '.\Public\endpoints\wireless\wireless-links\Get-NBWirelessLinks.ps1' -1 function Get-NBWirelessLinks { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $NBWirelessLinkAPIPath } #EndRegion '.\Public\endpoints\wireless\wireless-links\Get-NBWirelessLinks.ps1' 8 #Region '.\Public\endpoints\wireless\wireless-links\New-NBWirelessLink.ps1' -1 function New-NBWirelessLink { <# .SYNOPSIS Adds a new virtual machine object to Netbox .PARAMETER interface_a The id of interface object A .PARAMETER interface_b The id of interface object B .PARAMETER ssid The SSID string of the connection .PARAMETER status The applicable lifecycle status of this object .PARAMETER tenant The id of the tenant object .PARAMETER auth_type The authentication type .PARAMETER auth_cipher The authentication cipher .PARAMETER auth_psk The pre-shared key .PARAMETER description A description of the objects .PARAMETER comments Any comments you have on the object .PARAMETER Connection Connection object to use #> [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][int]$interface_a, [Parameter(Mandatory=$true,Position=1)][int]$interface_b, [Parameter(Mandatory=$false)][string]$ssid, [Parameter(Mandatory=$false)][string] [ValidateSet('connected','planned','decommissioning')] $status, [Parameter(Mandatory=$false)][int]$tenant, [Parameter(Mandatory=$false)][string] [ValidateSet('open','wep','wpa-personal','wpa-enterprise')] $auth_type, [Parameter(Mandatory=$false)][string] [ValidateSet('auto','tkip','aes')] $auth_cipher, [Parameter(Mandatory=$false)][string]$auth_psk, [Parameter(Mandatory=$false)][double]$distance, [Parameter(Mandatory=$false)][ValidateSet('km','m','mi','ft')][string]$distance_unit, [Parameter(Mandatory=$false)][string]$description, [Parameter(Mandatory=$false)][string]$comments, [Parameter(Mandatory=$false)][string[]]$tags, [Parameter(Mandatory=$false)][hashtable]$custom_fields, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $PostJson = createPostJson -Fields ($PSBoundParameters.GetEnumerator()) $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$NBWirelessLinkAPIPath/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\endpoints\wireless\wireless-links\New-NBWirelessLink.ps1' 65 #Region '.\Public\endpoints\wireless\wireless-links\Remove-NBWirelessLink.ps1' -1 function Remove-NBRack { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id ) $restParams=@{ Method = 'Delete' URI = "$($Connection.ApiBaseURL)/$NBWirelessLinkAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\wireless\wireless-links\Remove-NBWirelessLink.ps1' 14 #Region '.\Public\endpoints\wireless\wireless-links\Set-NBWirelessLink.ps1' -1 function Set-NBRack { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][int]$id, [Parameter(Mandatory=$true,Position=1)][string] [ValidateSet('interface_a','interface_b','ssid','status','tenant','auth_type', 'auth_cipher','auth_psk','distance','distance_unit','description', 'comments','tags','custom_fields')] $key, [Parameter(Mandatory=$true,Position=2)][string]$value ) $update=processFieldUpdates $key $value $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$NBWirelessLinkAPIPath/$id/" body = $update | ConvertTo-Json -Depth 50 } (Invoke-CustomRequest -restParams $restParams -Connection $Connection) } #EndRegion '.\Public\endpoints\wireless\wireless-links\Set-NBWirelessLink.ps1' 21 #Region '.\Public\generic\Get-NBGenericItemByID.ps1' -1 function Get-NBGenericItemByID { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$Path, [Parameter(Mandatory=$true,Position=1)][int]$id ) Get-ApiItemByID -apiConnection $Connection -RelativePath $NBCablesAPIPath -id $id } #EndRegion '.\Public\generic\Get-NBGenericItemByID.ps1' 11 #Region '.\Public\generic\Get-NBGenericItemByName.ps1' -1 function Get-NBGenericItemByName { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$Path, [Parameter(Mandatory=$true,Position=1)][string]$name ) Get-ApiItemByName -apiConnection $Connection -RelativePath $Path -value $name } #EndRegion '.\Public\generic\Get-NBGenericItemByName.ps1' 11 #Region '.\Public\generic\Get-NBGenericItems.ps1' -1 function Get-NBGenericItems { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$Path, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) Get-ApiItems -apiConnection $Connection -RelativePath $Path } #EndRegion '.\Public\generic\Get-NBGenericItems.ps1' 9 #Region '.\Public\generic\Get-NBGenericItemsForParentItemByField.ps1' -1 function Get-NBGenericItemsForParentItemByField { [CmdletBinding()] param ( [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection, [Parameter(Mandatory=$true,Position=0)][string]$Path, [Parameter(Mandatory=$true,Position=0)][string]$Field, [Parameter(Mandatory=$true,Position=0)][string]$value ) (Get-APIItemByQuery -apiConnection $Connection -RelativePath $Path -field $Field -value $value).results } #EndRegion '.\Public\generic\Get-NBGenericItemsForParentItemByField.ps1' 13 #Region '.\Public\generic\New-NBGenericObject.ps1' -1 function New-NBGenericObject { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$Path, [Parameter(Mandatory=$true,Position=1)][Object]$NewItem, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) #$NewItem|Get-Member|Out-Host $NewItem.PSObject.Properties.Remove('id') $NewItem.PSObject.Properties.Remove('url') $NewItem.PSObject.Properties.Remove('display_url') #$NewItem.PSObject.Properties.Remove('custom_fields') $NewItem.PSObject.Properties.Remove('primary_ip') $NewItem.PSObject.Properties.Remove('primary_ip4') $NewItem.PSObject.Properties.Remove('primary_ip6') $NewItem.PSObject.Properties.Remove('oob_ip') if ($NewItem.name){ if(!($NewItem.slug)){$NewItem|Add-Member -MemberType NoteProperty -Name 'slug' -Value (makeSlug $NewItem.name)} else{$NewItem.slug =(makeSlug $NewItem.name)} } $NewItem.status.gettype() if($NewItem.status){ [string]$stat=$NewItem.status.value.ToString() $NewItem.PSObject.Properties.Remove('status') $NewItem|Add-Member -MemberType NoteProperty -Name 'status' -Value $stat } $NewItem|Get-Member -Type NoteProperty|Select-Object -ExpandProperty Name|ForEach-Object { if($deviceObj.$_.id){ $NewItem.$_ = $NewItem.$_.id } } $PostJson = createJson($NewItem) Write-Debug $PostJson.ToString() #Read-Host -Prompt 'press enter' $restParams=@{ Method = 'Post' URI = "$($Connection.ApiBaseURL)/$Path/" body = $PostJson } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\generic\New-NBGenericObject.ps1' 49 #Region '.\Public\generic\Set-NBGenericObject.ps1' -1 function Set-NBGenericObject { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$Path, [Parameter(Mandatory=$true,Position=1)][Object]$InputObject, [Parameter(Mandatory=$false)][object]$Connection=$Script:Connection ) $InputObject.PSObject.Properties.Remove('url') $InputObject.PSObject.Properties.Remove('display_url') $InputObject.PSObject.Properties.Remove('primary_ip') if ($InputObject.name){ if(!($InputObject.slug)){$InputObject|Add-Member -MemberType NoteProperty -Name 'slug' -Value (makeSlug $InputObject.name)} else{$InputObject.slug =(makeSlug $InputObject.name)} } if($InputObject.status){ [string]$stat=$InputObject.status.value.ToString() $InputObject.PSObject.Properties.Remove('status') $InputObject|Add-Member -MemberType NoteProperty -Name 'status' -Value $stat } $InputObject|Get-Member -Type NoteProperty|Select-Object -ExpandProperty Name|ForEach-Object { if($deviceObj.$_.id){ $InputObject.$_ = $InputObject.$_.id } } [PSCustomObject]$PatchObj=@{} [array]$keys=$InputObject|Get-Member -MemberType NoteProperty|select -ExpandProperty Name $keys|%{ $PatchObj|Add-Member -MemberType NoteProperty -Name $_ -Value $InputObject.$_} $PostJson = createJson($PatchObj) Write-Debug "[$($PostJson.ToString())]" $restParams=@{ Method = 'Patch' URI = "$($Connection.ApiBaseURL)/$Path/$($InputObject.id)/" body = "$PostJson" } $PostObject=Invoke-CustomRequest -restParams $restParams -Connection $Connection if ($PostObject.message) { throw $PostObject.message } $PostObject } #EndRegion '.\Public\generic\Set-NBGenericObject.ps1' 46 #Region '.\Public\Get-NBCurrentConnection.ps1' -1 function Get-NBCurrentConnection { "Default Netbox Connection:" $Script:Connection } #EndRegion '.\Public\Get-NBCurrentConnection.ps1' 5 #Region '.\Public\New-NBConnection.ps1' -1 function New-NBConnection { [CmdletBinding()] param ( [Parameter(Mandatory=$true,Position=0)][string]$DeviceAddress, [Parameter(Mandatory=$true,Position=1)][string]$ApiKey, [Parameter(Mandatory=$false)][switch]$SkipCertificateCheck, [Parameter(Mandatory=$false)][switch]$Passthru ) $ConnectionProperties = @{ Address = "$DeviceAddress" ApiKey = $ApiKey ApiBaseUrl = "https://$($DeviceAddress)/api" SkipCertificateCheck = $SkipCertificateCheck } $Connection = New-Object psobject -Property $ConnectionProperties Write-Verbose "[$($MyInvocation.MyCommand.Name)] Host '$($Connection.Address)' is now the default connection." $Script:Connection = $Connection if ($Passthru) { $Connection } } #EndRegion '.\Public\New-NBConnection.ps1' 22 #Region '.\Public\Test-NBConnection.ps1' -1 function Test-NBConnection { [CmdletBinding()] param ( [Parameter(ValueFromPipeline=$true,Mandatory=$false,Position=0)][object]$NBConnection=$Script:Connection ) Write-Verbose "[$($MyInvocation.MyCommand.Name)] Trying to connect" try { "Connection OK`nNetbox Version: "+(Get-NBStatus -Connection $NBConnection)."netbox-version" } catch { write-error "failed" $NBConnection } } #EndRegion '.\Public\Test-NBConnection.ps1' 15 |