Documented new-subnet
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
function New-Address {
|
||||
[OutputType([PS.IPAM.address])]
|
||||
[CmdletBinding()]
|
||||
param (
|
||||
[parameter(
|
||||
|
||||
@@ -107,6 +107,5 @@ function New-Session {
|
||||
break
|
||||
}
|
||||
}
|
||||
return $script:psipamSession
|
||||
}
|
||||
Export-ModuleMember -Function New-Session
|
||||
@@ -1,78 +1,225 @@
|
||||
function New-Subnet {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
|
||||
Creates new subnetwork object.
|
||||
|
||||
.PARAMETER CIDR
|
||||
CIDR of subnet in dotted format (e.g 10.10.10.0/24).
|
||||
|
||||
.PARAMETER SectionId
|
||||
Section identifier.
|
||||
|
||||
.PARAMETER Description
|
||||
Subnet description.
|
||||
|
||||
.PARAMETER VlanId
|
||||
Assigns subnet to VLAN.
|
||||
|
||||
.PARAMETER VrfId
|
||||
Assigns subnet to VRF.
|
||||
|
||||
.PARAMETER MasterSubnetId
|
||||
Master subnet id for nested subnet.
|
||||
|
||||
.PARAMETER NameserverId
|
||||
Id of nameserver to attach to subnet.
|
||||
|
||||
.PARAMETER ShowName
|
||||
Controls weather subnet is displayed as IP address or Name in subnets menu.
|
||||
|
||||
.PARAMETER DNSRecursive
|
||||
Controls if PTR records should be created for subnet.
|
||||
|
||||
.PARAMETER DNSRecords
|
||||
Controls weather hostname DNS records are displayed.
|
||||
|
||||
.PARAMETER AllowRequests
|
||||
Controls if IP requests are allowed for subnet.
|
||||
|
||||
.PARAMETER ScanAgentId
|
||||
Controls which scanagent to use for subnet (default id 1).
|
||||
|
||||
.PARAMETER DiscoverSubnet
|
||||
Controls if new hosts should be discovered for new host scans.
|
||||
|
||||
.PARAMETER IsFull
|
||||
Marks subnet as used.
|
||||
|
||||
.PARAMETER TagId
|
||||
Assignes state (tag) to subnet (default: 1 Used).
|
||||
|
||||
.PARAMETER Threshold
|
||||
Subnet threshold.
|
||||
|
||||
.PARAMETER LocationId
|
||||
Location index.
|
||||
#>
|
||||
[OutputType([PS.IPAM.Subnetwork])]
|
||||
[CmdletBinding()]
|
||||
param (
|
||||
[parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,HelpMessage="CIDR of subnet in dotted format (e.g 10.10.10.0/24)",Position=0)]
|
||||
[parameter(
|
||||
Mandatory=$true,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=0
|
||||
)]
|
||||
[ValidateScript({[ipaddress] $_.Split("/")[0] -and $_.Split("/")[1] -match "\d{1,2}"})]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]
|
||||
$CIDR,
|
||||
[parameter(Mandatory=$true,HelpMessage="Section identifier",Position=1)]
|
||||
[parameter(
|
||||
Mandatory=$true,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=1
|
||||
)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[int]
|
||||
$SectionId,
|
||||
[parameter(Mandatory=$false,HelpMessage="Subnet description",Position=2)]
|
||||
[parameter(
|
||||
Mandatory=$false,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=2
|
||||
)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]
|
||||
$Description,
|
||||
[parameter(Mandatory=$false,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,HelpMessage="Assigns subnet to VLAN",Position=3)]
|
||||
[parameter(
|
||||
Mandatory=$false,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=3
|
||||
)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[int]
|
||||
$VlanId,
|
||||
[parameter(Mandatory=$false,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,HelpMessage="Assigns subnet to VRF",Position=4)]
|
||||
[parameter(
|
||||
Mandatory=$false,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=4
|
||||
)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[int]
|
||||
$VrfId,
|
||||
[parameter(Mandatory=$false,HelpMessage="Master subnet id for nested subnet",Position=5)]
|
||||
[parameter(
|
||||
Mandatory=$false,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=5
|
||||
)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[int]
|
||||
$MasterSubnetId,
|
||||
[parameter(Mandatory=$false,HelpMessage="Id of nameserver to attach to subnet",Position=6)]
|
||||
[parameter(
|
||||
Mandatory=$false,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=6
|
||||
)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[int]
|
||||
$NameserverId,
|
||||
[parameter(Mandatory=$false,HelpMessage="Controls weather subnet is displayed as IP address or Name in subnets menu",Position=7)]
|
||||
[parameter(
|
||||
Mandatory=$false,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=7
|
||||
)]
|
||||
[switch]
|
||||
$ShowName,
|
||||
[parameter(Mandatory=$false,HelpMessage="Controls if PTR records should be created for subnet",Position=8)]
|
||||
[parameter(
|
||||
Mandatory=$false,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=8
|
||||
)]
|
||||
[switch]
|
||||
$DNSRecursive,
|
||||
[parameter(Mandatory=$false,HelpMessage="Controls weather hostname DNS records are displayed",Position=9)]
|
||||
[parameter(
|
||||
Mandatory=$false,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=9
|
||||
)]
|
||||
[switch]
|
||||
$DNSRecords,
|
||||
[parameter(Mandatory=$false,HelpMessage="Controls if IP requests are allowed for subnet",Position=10)]
|
||||
[parameter(
|
||||
Mandatory=$false,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=10
|
||||
)]
|
||||
[switch]
|
||||
$AllowRequests,
|
||||
[parameter(Mandatory=$false,HelpMessage="Controls which scanagent to use for subnet (default id 1)",Position=11)]
|
||||
[parameter(
|
||||
Mandatory=$false,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=11
|
||||
)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[int]
|
||||
$ScanAgentId,
|
||||
[parameter(Mandatory=$false,HelpMessage="Controls if new hosts should be discovered for new host scans",Position=12)]
|
||||
[parameter(
|
||||
Mandatory=$false,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=12
|
||||
)]
|
||||
[switch]
|
||||
$DiscoverSubnet,
|
||||
[parameter(Mandatory=$false,HelpMessage="Marks subnet as used",Position=12)]
|
||||
[parameter(
|
||||
Mandatory=$false,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=12
|
||||
)]
|
||||
[switch]
|
||||
$IsFull,
|
||||
[parameter(Mandatory=$false,HelpMessage="Assignes state (tag) to subnet (default: 1 Used)",Position=12)]
|
||||
[parameter(
|
||||
Mandatory=$false,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=12
|
||||
)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[int]
|
||||
$TagId,
|
||||
[parameter(Mandatory=$false,HelpMessage="Subnet threshold",Position=13)]
|
||||
[parameter(
|
||||
Mandatory=$false,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=13
|
||||
)]
|
||||
[ValidateScript({ $_ -le 100 -and $_ -ge 1 })]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[int]
|
||||
$Threshold,
|
||||
[parameter(Mandatory=$false,HelpMessage="Location index",Position=14)]
|
||||
[parameter(
|
||||
Mandatory=$false,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=14
|
||||
)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[int]
|
||||
$LocationId,
|
||||
[parameter(Mandatory=$false,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
|
||||
[parameter(
|
||||
Mandatory=$false,
|
||||
ValueFromPipeline=$true,
|
||||
ValueFromPipelineByPropertyName=$true,
|
||||
Position=15
|
||||
)]
|
||||
[ValidateScript({ $_ -is [Hashtable] -or $_ -is [PSCustomObject] })]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
$CustomFields
|
||||
)
|
||||
process {
|
||||
$_params = @{
|
||||
Controller = "subnets"
|
||||
Controller = [PS.IPAM.controllers]::subnets
|
||||
Method = "POST"
|
||||
}
|
||||
|
||||
@@ -99,10 +246,7 @@ function New-Subnet {
|
||||
|
||||
if ($CustomFields) {
|
||||
if ($CustomFields -is [PSCustomObject]) {
|
||||
$_customFields = @{};
|
||||
$CustomFields | Get-Member -MemberType *Property | Where-Object {
|
||||
$_customFields.($_.name) = $CustomFields.($_.name)
|
||||
}
|
||||
$_customFields = ConvertTo-Hashtable -InputObject $CustomFields
|
||||
} else { $_customFields = $CustomFields }
|
||||
|
||||
$_body = $_body + $_customFields
|
||||
@@ -111,6 +255,7 @@ function New-Subnet {
|
||||
$_params.Add("Params",$_body)
|
||||
|
||||
$_result = Invoke-Request @_params
|
||||
|
||||
if ($_result) {
|
||||
return Get-Subnet -CIDR $_result
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user