first working types
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
function Get-Vlan {
|
||||
[CmdletBinding(DefaultParameterSetName="ByID")]
|
||||
[OutputType([PS.IPAM.Vlan])]
|
||||
param (
|
||||
[parameter(Mandatory=$false,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="ByID")]
|
||||
[ValidateScript({ $_ -match "^\d+$" })]
|
||||
@@ -15,31 +16,40 @@ function Get-Vlan {
|
||||
[ValidateScript({ $_ -match "^\d+$" })]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]
|
||||
$L2DomainId
|
||||
$L2DomainId,
|
||||
[parameter(Mandatory=$false,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="BySubnetObject")]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[PS.IPAM.Subnetwork]
|
||||
$SubnetObject
|
||||
)
|
||||
process {
|
||||
[string[]]$visiblePropertiesList = @('Id','Name','Description')
|
||||
$visibleProperties = [System.Management.Automation.PSPropertySet]::new('DefaultDisplayPropertySet',$visiblePropertiesList)
|
||||
|
||||
$_params = @{
|
||||
Controller = "vlan"
|
||||
Method = "GET"
|
||||
Controller = [PS.IPAM.controllers]::vlan
|
||||
Method = [PS.IPAM.methods]::GET
|
||||
Type = [PS.IPAM.types]::Vlan
|
||||
}
|
||||
switch ($PSCmdlet.ParameterSetName) {
|
||||
"ByID" { $_identifiers = @($Id) }
|
||||
"ByNumber" { $_identifiers = @("search",$Number) }
|
||||
"ByID" { $_identifiers = @($Id); break }
|
||||
"ByNumber" { $_identifiers = @("search",$Number); break }
|
||||
"ByL2Domain"{
|
||||
$_params.Item("Controller") = "l2domains"
|
||||
$_params.Item("Controller") = [PS.IPAM.controllers]::l2domains
|
||||
|
||||
$_l2domainId = $L2DomainId
|
||||
|
||||
$_identifiers = @($_l2domainId,"vlans")
|
||||
$_identifiers = @($_l2domainId,[PS.IPAM.subcontrollers]::vlans)
|
||||
break
|
||||
}
|
||||
"BySubnetObject" {
|
||||
if ($SubnetObject.VlanId) {
|
||||
$_identifiers = @($SubnetObject.VlanId); break
|
||||
} else {
|
||||
return $null
|
||||
}
|
||||
}
|
||||
}
|
||||
$_params.Add("Identifiers",$_identifiers)
|
||||
|
||||
Invoke-Request @_params | Select-Object @{n="id";e={$_.vlanId}},* | Select-Object -ExcludeProperty vlanId | `
|
||||
Add-Member -MemberType MemberSet -Name PSStandardMembers -Value $visibleProperties -PassThru
|
||||
Invoke-Request @_params
|
||||
}
|
||||
}
|
||||
Export-ModuleMember -Function Get-Vlan
|
||||
Reference in New Issue
Block a user