From 99126567528d5ea24d1dfc841af16332132a8e89 Mon Sep 17 00:00:00 2001 From: Arnike Date: Wed, 14 Dec 2022 13:22:13 +0300 Subject: [PATCH] Documentation --- functions/public/Assign-Tag.ps1 | 20 +++++++++- functions/public/Get-Address.ps1 | 56 ++++++++++++++++++++++---- functions/public/Get-Nameserver.ps1 | 6 +-- functions/public/Get-Tag.ps1 | 9 +++++ functions/public/Get-Vlan.ps1 | 16 +++++++- functions/public/New-Session.ps1 | 62 ++++++++++++++++++++++++++--- functions/public/New-Subnet.ps1 | 7 +--- types/types.ps1xml | 7 ++-- 8 files changed, 153 insertions(+), 30 deletions(-) diff --git a/functions/public/Assign-Tag.ps1 b/functions/public/Assign-Tag.ps1 index 7b609ab..4b256b1 100644 --- a/functions/public/Assign-Tag.ps1 +++ b/functions/public/Assign-Tag.ps1 @@ -1,11 +1,27 @@ function Assign-Tag { + <# + .SYNOPSIS + + Assign tag to address. + + .PARAMETER Tag + Tag object to assign. + #> [CmdletBinding()] param ( - [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0)] + [parameter( + Mandatory=$true, + ValueFromPipeline=$true, + ValueFromPipelineByPropertyName=$true, + Position=0 + )] [ValidateNotNullOrEmpty()] [PS.IPAM.Address] $AddressObject, - [parameter(Mandatory=$true,Position=1)] + [parameter( + Mandatory=$true, + Position=1 + )] [ValidateNotNullOrEmpty()] [PS.IPAM.Tag] $Tag diff --git a/functions/public/Get-Address.ps1 b/functions/public/Get-Address.ps1 index ecaf22e..8d48e9c 100644 --- a/functions/public/Get-Address.ps1 +++ b/functions/public/Get-Address.ps1 @@ -2,28 +2,70 @@ function Get-Address { [CmdletBinding(DefaultParameterSetName="ByID")] [OutputType([PS.IPAM.address])] param ( - [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="ByID")] + [parameter( + Mandatory=$true, + ValueFromPipeline=$true, + ValueFromPipelineByPropertyName=$true, + Position=0, + ParameterSetName="ByID" + )] [ValidateNotNullOrEmpty()] [int] $Id, - [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="ByIP")] - [parameter(Mandatory=$false,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=1,ParameterSetName="BySubnetId")] + [parameter( + Mandatory=$true, + ValueFromPipeline=$true, + ValueFromPipelineByPropertyName=$true, + Position=0, + ParameterSetName="ByIP" + )] + [parameter( + Mandatory=$false, + ValueFromPipeline=$true, + ValueFromPipelineByPropertyName=$true, + Position=1, + ParameterSetName="BySubnetId" + )] [ValidateNotNullOrEmpty()] [ipaddress] $IP, - [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="ByHostName")] + [parameter( + Mandatory=$true, + ValueFromPipeline=$true, + ValueFromPipelineByPropertyName=$true, + Position=0, + ParameterSetName="ByHostName" + )] [ValidateNotNullOrEmpty()] [string] $HostName, - [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="ByTag")] + [parameter( + Mandatory=$true, + ValueFromPipeline=$true, + ValueFromPipelineByPropertyName=$true, + Position=0, + ParameterSetName="ByTag" + )] [ValidateNotNullOrEmpty()] [int] $TagId, - [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="BySubnetId")] + [parameter( + Mandatory=$true, + ValueFromPipeline=$true, + ValueFromPipelineByPropertyName=$true, + Position=0, + ParameterSetName="BySubnetId" + )] [ValidateNotNullOrEmpty()] [int] $SubnetId, - [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="BySubnetCIDR")] + [parameter( + Mandatory=$true, + ValueFromPipeline=$true, + ValueFromPipelineByPropertyName=$true, + Position=0, + ParameterSetName="BySubnetCIDR" + )] [ValidateScript({[ipaddress] $_.Split("/")[0] -and $_.Split("/")[1] -match "\d{1,2}"})] [ValidateNotNullOrEmpty()] [string] diff --git a/functions/public/Get-Nameserver.ps1 b/functions/public/Get-Nameserver.ps1 index 06fe325..dcbc7ed 100644 --- a/functions/public/Get-Nameserver.ps1 +++ b/functions/public/Get-Nameserver.ps1 @@ -7,9 +7,6 @@ function Get-Nameserver { $Id ) process { - [string[]]$visiblePropertiesList = @('Id','Name','Address','Description') - $visibleProperties = [System.Management.Automation.PSPropertySet]::new('DefaultDisplayPropertySet',$visiblePropertiesList) - $_params = @{ Controller = [PS.IPAM.controllers]::tools SubController = [PS.IPAM.subcontrollers]::nameservers @@ -21,8 +18,7 @@ function Get-Nameserver { $_identifiers = @($_nameserverId) $_params.Add("Identifiers",$_identifiers) - Invoke-Request @_params | Select-Object @{n="address";e={$_.namesrv1}},* | Select-Object -ExcludeProperty namesrv1 | ` - Add-Member -MemberType MemberSet -Name PSStandardMembers -Value $visibleProperties -PassThru + Invoke-Request @_params } } Export-ModuleMember -Function Get-Nameserver \ No newline at end of file diff --git a/functions/public/Get-Tag.ps1 b/functions/public/Get-Tag.ps1 index 31fa28f..8fdd5b5 100644 --- a/functions/public/Get-Tag.ps1 +++ b/functions/public/Get-Tag.ps1 @@ -1,4 +1,13 @@ function Get-Tag { + <# + .SYNOPSIS + + Return address tag. + + .DESCRIPTION + + Return address tag by id, address object or subnetwork object. Or leave it empty at take all tags at once. + #> [CmdletBinding(DefaultParameterSetName="NoParams")] [OutputType([PS.IPAM.Tag])] param ( diff --git a/functions/public/Get-Vlan.ps1 b/functions/public/Get-Vlan.ps1 index a6aa22f..154a28e 100644 --- a/functions/public/Get-Vlan.ps1 +++ b/functions/public/Get-Vlan.ps1 @@ -1,8 +1,20 @@ function Get-Vlan { - [CmdletBinding(DefaultParameterSetName="ByID")] + <# + .SYNOPSIS + + Return vlan object. + + .DESCRIPTION + + Return vlan object by vlanId, vlan number, l2domainId (return all vlans in domain), subnet object or l2domain object + + .PARAMETER Number + Vlan tag + #> + [CmdletBinding(DefaultParameterSetName="NoParams")] [OutputType([PS.IPAM.Vlan])] param ( - [parameter(Mandatory=$false,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="ByID")] + [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="ByID")] [ValidateNotNullOrEmpty()] [int] $Id, diff --git a/functions/public/New-Session.ps1 b/functions/public/New-Session.ps1 index 73fb82b..0c3d068 100644 --- a/functions/public/New-Session.ps1 +++ b/functions/public/New-Session.ps1 @@ -1,20 +1,72 @@ function New-Session { + <# + .SYNOPSIS + + Creates new session to phpIPAM instance. + + .DESCRIPTION + + Creates new session to phpIPAM instance by provided credentials or token. + + .PARAMETER URL + Base URL of phpIPAM instance. + Example - http://ipam.example.com + + .PARAMETER AppID + API id (specified in phpIPAM api settings) + + .PARAMETER Token + User token foor authorization + + .PARAMETER IgnoreSSL + Ignore SSL errors + + .OUTPUTS + None. New-Session does not generate any output. + #> [CmdletBinding(DefaultParameterSetName="Credentials")] param ( - [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0)] + [parameter( + Mandatory=$true, + ValueFromPipeline=$true, + ValueFromPipelineByPropertyName=$true, + Position=0 + )] [ValidateNotNullOrEmpty()] [validatescript({$_.startswith("http")})] [string]$URL, - [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=1)] + [parameter( + Mandatory=$true, + ValueFromPipeline=$true, + ValueFromPipelineByPropertyName=$true, + Position=1 + )] [ValidateNotNullOrEmpty()] [string]$AppID, - [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=2,ParameterSetName="Credentials")] + [parameter( + Mandatory=$true, + ValueFromPipeline=$true, + ValueFromPipelineByPropertyName=$true, + Position=2, + ParameterSetName="Credentials" + )] [ValidateNotNullOrEmpty()] [pscredential]$Credentials, - [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=2,ParameterSetName="Token")] + [parameter( + Mandatory=$true, + ValueFromPipeline=$true, + ValueFromPipelineByPropertyName=$true, + Position=2, + ParameterSetName="Token" + )] [ValidateNotNullOrEmpty()] [string]$Token, - [parameter(Mandatory=$false,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=3)] + [parameter( + Mandatory=$false, + ValueFromPipeline=$true, + ValueFromPipelineByPropertyName=$true, + Position=3 + )] [switch]$IgnoreSSL = $false ) switch ($PSCmdlet.ParameterSetName) { diff --git a/functions/public/New-Subnet.ps1 b/functions/public/New-Subnet.ps1 index 3987f74..115d703 100644 --- a/functions/public/New-Subnet.ps1 +++ b/functions/public/New-Subnet.ps1 @@ -1,12 +1,7 @@ function New-Subnet { [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,HelpMessage="CIDR of subnet in dotted format (e.g 10.10.10.0/24)",Position=0)] [ValidateScript({[ipaddress] $_.Split("/")[0] -and $_.Split("/")[1] -match "\d{1,2}"})] [ValidateNotNullOrEmpty()] [string] diff --git a/types/types.ps1xml b/types/types.ps1xml index affe0bf..7acac0f 100644 --- a/types/types.ps1xml +++ b/types/types.ps1xml @@ -154,9 +154,10 @@ DefaultDisplayPropertySet Id - Name - DomainId - Number + Subnet + Mask + SectionId + Description