Documentation

This commit is contained in:
2022-12-14 13:22:13 +03:00
parent 538d84305f
commit 9912656752
8 changed files with 153 additions and 30 deletions

View File

@@ -1,11 +1,27 @@
function Assign-Tag { function Assign-Tag {
<#
.SYNOPSIS
Assign tag to address.
.PARAMETER Tag
Tag object to assign.
#>
[CmdletBinding()] [CmdletBinding()]
param ( param (
[parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0)] [parameter(
Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
Position=0
)]
[ValidateNotNullOrEmpty()] [ValidateNotNullOrEmpty()]
[PS.IPAM.Address] [PS.IPAM.Address]
$AddressObject, $AddressObject,
[parameter(Mandatory=$true,Position=1)] [parameter(
Mandatory=$true,
Position=1
)]
[ValidateNotNullOrEmpty()] [ValidateNotNullOrEmpty()]
[PS.IPAM.Tag] [PS.IPAM.Tag]
$Tag $Tag

View File

@@ -2,28 +2,70 @@ function Get-Address {
[CmdletBinding(DefaultParameterSetName="ByID")] [CmdletBinding(DefaultParameterSetName="ByID")]
[OutputType([PS.IPAM.address])] [OutputType([PS.IPAM.address])]
param ( param (
[parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="ByID")] [parameter(
Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
Position=0,
ParameterSetName="ByID"
)]
[ValidateNotNullOrEmpty()] [ValidateNotNullOrEmpty()]
[int] [int]
$Id, $Id,
[parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="ByIP")] [parameter(
[parameter(Mandatory=$false,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=1,ParameterSetName="BySubnetId")] Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
Position=0,
ParameterSetName="ByIP"
)]
[parameter(
Mandatory=$false,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
Position=1,
ParameterSetName="BySubnetId"
)]
[ValidateNotNullOrEmpty()] [ValidateNotNullOrEmpty()]
[ipaddress] [ipaddress]
$IP, $IP,
[parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="ByHostName")] [parameter(
Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
Position=0,
ParameterSetName="ByHostName"
)]
[ValidateNotNullOrEmpty()] [ValidateNotNullOrEmpty()]
[string] [string]
$HostName, $HostName,
[parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="ByTag")] [parameter(
Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
Position=0,
ParameterSetName="ByTag"
)]
[ValidateNotNullOrEmpty()] [ValidateNotNullOrEmpty()]
[int] [int]
$TagId, $TagId,
[parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="BySubnetId")] [parameter(
Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
Position=0,
ParameterSetName="BySubnetId"
)]
[ValidateNotNullOrEmpty()] [ValidateNotNullOrEmpty()]
[int] [int]
$SubnetId, $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}"})] [ValidateScript({[ipaddress] $_.Split("/")[0] -and $_.Split("/")[1] -match "\d{1,2}"})]
[ValidateNotNullOrEmpty()] [ValidateNotNullOrEmpty()]
[string] [string]

View File

@@ -7,9 +7,6 @@ function Get-Nameserver {
$Id $Id
) )
process { process {
[string[]]$visiblePropertiesList = @('Id','Name','Address','Description')
$visibleProperties = [System.Management.Automation.PSPropertySet]::new('DefaultDisplayPropertySet',$visiblePropertiesList)
$_params = @{ $_params = @{
Controller = [PS.IPAM.controllers]::tools Controller = [PS.IPAM.controllers]::tools
SubController = [PS.IPAM.subcontrollers]::nameservers SubController = [PS.IPAM.subcontrollers]::nameservers
@@ -21,8 +18,7 @@ function Get-Nameserver {
$_identifiers = @($_nameserverId) $_identifiers = @($_nameserverId)
$_params.Add("Identifiers",$_identifiers) $_params.Add("Identifiers",$_identifiers)
Invoke-Request @_params | Select-Object @{n="address";e={$_.namesrv1}},* | Select-Object -ExcludeProperty namesrv1 | ` Invoke-Request @_params
Add-Member -MemberType MemberSet -Name PSStandardMembers -Value $visibleProperties -PassThru
} }
} }
Export-ModuleMember -Function Get-Nameserver Export-ModuleMember -Function Get-Nameserver

View File

@@ -1,4 +1,13 @@
function Get-Tag { 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")] [CmdletBinding(DefaultParameterSetName="NoParams")]
[OutputType([PS.IPAM.Tag])] [OutputType([PS.IPAM.Tag])]
param ( param (

View File

@@ -1,8 +1,20 @@
function Get-Vlan { 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])] [OutputType([PS.IPAM.Vlan])]
param ( param (
[parameter(Mandatory=$false,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="ByID")] [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="ByID")]
[ValidateNotNullOrEmpty()] [ValidateNotNullOrEmpty()]
[int] [int]
$Id, $Id,

View File

@@ -1,20 +1,72 @@
function New-Session { 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")] [CmdletBinding(DefaultParameterSetName="Credentials")]
param ( param (
[parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0)] [parameter(
Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
Position=0
)]
[ValidateNotNullOrEmpty()] [ValidateNotNullOrEmpty()]
[validatescript({$_.startswith("http")})] [validatescript({$_.startswith("http")})]
[string]$URL, [string]$URL,
[parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=1)] [parameter(
Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
Position=1
)]
[ValidateNotNullOrEmpty()] [ValidateNotNullOrEmpty()]
[string]$AppID, [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()] [ValidateNotNullOrEmpty()]
[pscredential]$Credentials, [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()] [ValidateNotNullOrEmpty()]
[string]$Token, [string]$Token,
[parameter(Mandatory=$false,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=3)] [parameter(
Mandatory=$false,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
Position=3
)]
[switch]$IgnoreSSL = $false [switch]$IgnoreSSL = $false
) )
switch ($PSCmdlet.ParameterSetName) { switch ($PSCmdlet.ParameterSetName) {

View File

@@ -1,12 +1,7 @@
function New-Subnet { function New-Subnet {
[CmdletBinding()] [CmdletBinding()]
param ( param (
[parameter( [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,HelpMessage="CIDR of subnet in dotted format (e.g 10.10.10.0/24)",Position=0)]
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}"})] [ValidateScript({[ipaddress] $_.Split("/")[0] -and $_.Split("/")[1] -match "\d{1,2}"})]
[ValidateNotNullOrEmpty()] [ValidateNotNullOrEmpty()]
[string] [string]

View File

@@ -154,9 +154,10 @@
<Name>DefaultDisplayPropertySet</Name> <Name>DefaultDisplayPropertySet</Name>
<ReferencedProperties> <ReferencedProperties>
<Name>Id</Name> <Name>Id</Name>
<Name>Name</Name> <Name>Subnet</Name>
<Name>DomainId</Name> <Name>Mask</Name>
<Name>Number</Name> <Name>SectionId</Name>
<Name>Description</Name>
</ReferencedProperties> </ReferencedProperties>
</PropertySet> </PropertySet>
<PropertySet> <PropertySet>