PSPathfinder.psm1
#Region '.\Private\Get-PFFunctionString.ps1' 0 function Get-PFFunctionString { [CmdletBinding()] param ( [Int] $Page, [int] $PageSize, [String] $Filter, [String] $Sort, [String] $Fields ) begin { } process { foreach ($item in $PSBoundParameters.GetEnumerator()) { if ($item.Value) { switch ($item) { { $_.Value -is [int] } { $Value = ($item.Value).toString() continue } default { $Value = $item.Value } } $FunctionString += ('&{0}={1}' -f $($item.Key).ToLower(), $Value) } } $FunctionString -replace ('^&', '?') } end { } } #EndRegion '.\Private\Get-PFFunctionString.ps1' 51 #Region '.\Private\Invoke-PFRestMethod.ps1' 0 function Invoke-PFRestMethod { [CmdletBinding()] param ( [Parameter(Mandatory)] [string] $Token, [Parameter(Mandatory)] [string] $Uri, [string] $Body, [string] $OutFile, [Parameter(Mandatory)] [ValidateSet('Get', 'Post', 'Delete', 'Patch', 'Put')] [string] $Method ) begin { } process { switch (Get-Variable -Name PSEdition -ValueOnly) { 'Desktop' { Invoke-PFTrustSelfSignedCertificate [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 } } $PSBoundParameters.Add('Headers', @{Authorization = $Token }) $Null = $PSBoundParameters.Remove('Token') $PSBoundParameters.Add('ContentType', 'application/json; charset=utf-8') Switch (Get-Variable -Name PSEdition -ValueOnly) { 'Desktop' { try { Invoke-RestMethod @PSBoundParameters -ErrorAction Stop } catch [System.Net.WebException] { switch ($($PSItem.Exception.Response.StatusCode.value__)) { 200 { Write-Warning -Message ('Success. Uri: {0} Method: {1}' -f $Uri, $Method) } 304 { Write-Warning -Message ('Not Modified. Uri: {0} Method: {1}' -f $Uri, $Method) } 400 { Write-Warning -Message ('Bad Request: The request does not match the API, e.g. it uses the wrong HTTP method. Uri: {0} Method: {1}' -f $Uri, $Method) } 401 { Write-Warning -Message ('Unauthorized. Uri: {0} Method: {1}' -f $Uri, $Method) } 404 { Write-Warning -Message ('Not Found. Uri: {0} Method: {1}' -f $Uri, $Method) } 422 { Write-Warning -Message ('Client Error. Uri: {0} Method: {1}' -f $Uri, $Method) } 500 { Write-Warning -Message ('Server Error. Uri: {0} Method: {1}' -f $Uri, $Method) } default { Write-Warning -Message ('Some error occured, see HTTP status code for further details. Uri: {0} Method: {1}' -f $Uri, $Method) } } } } 'Core' { try { $null = $PSBoundParameters.Add('SkipCertificateCheck', $true) Invoke-RestMethod @PSBoundParameters -ErrorAction Stop } catch [Microsoft.PowerShell.Commands.HttpResponseException] { switch ($($PSItem.Exception.Response.StatusCode.value__)) { 200 { Write-Warning -Message ('Success. Uri: {0} Method: {1}' -f $Uri, $Method) } 304 { Write-Warning -Message ('Not Modified. Uri: {0} Method: {1}' -f $Uri, $Method) } 400 { Write-Warning -Message ('Bad Request: The request does not match the API, e.g. it uses the wrong HTTP method. Uri: {0} Method: {1}' -f $Uri, $Method) } 401 { Write-Warning -Message ('Unauthorized. Uri: {0} Method: {1}' -f $Uri, $Method) } 404 { Write-Warning -Message ('Not Found. Uri: {0} Method: {1}' -f $Uri, $Method) } 422 { Write-Warning -Message ('Client Error. Uri: {0} Method: {1}' -f $Uri, $Method) } 500 { Write-Warning -Message ('Server Error. Uri: {0} Method: {1}' -f $Uri, $Method) } default { Write-Warning -Message ('Some error occured, see HTTP status code for further details. Uri: {0} Method: {1}' -f $Uri, $Method) } } } } } } end { } } #EndRegion '.\Private\Invoke-PFRestMethod.ps1' 142 #Region '.\Private\Invoke-PFTrustSelfSignedCertif.ps1' 0 function Invoke-PFTrustSelfSignedCertificate { [CmdletBinding()] param ( ) begin { } process { if (-not ([System.Management.Automation.PSTypeName]'ServerCertificateValidationCallback').Type) { $certCallback = @' using System; using System.Net; using System.Net.Security; using System.Security.Cryptography.X509Certificates; public class ServerCertificateValidationCallback { public static void Ignore() { if(ServicePointManager.ServerCertificateValidationCallback ==null) { ServicePointManager.ServerCertificateValidationCallback += delegate ( Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors ) { return true; }; } } } '@ Add-Type $certCallback } [ServerCertificateValidationCallback]::Ignore() } end { } } #EndRegion '.\Private\Invoke-PFTrustSelfSignedCertif.ps1' 49 #Region '.\Public\Get-PFBuilding.ps1' 0 function Get-PFBuilding { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Components')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Documents')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Floors')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'History')] [Int[]] $Id, [Parameter(Mandatory, ParameterSetName = 'Components')] [Switch] $Components, [Parameter(Mandatory, ParameterSetName = 'Documents')] [Switch] $Documents, [Parameter(Mandatory, ParameterSetName = 'Floors')] [Switch] $Floors, [Parameter(Mandatory, ParameterSetName = 'History')] [Switch] $History, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'Floors')] [Parameter(ParameterSetName = 'History')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'Floors')] [Parameter(ParameterSetName = 'History')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'Floors')] [Parameter(ParameterSetName = 'History')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'Floors')] [Parameter(ParameterSetName = 'History')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'Floors')] [Parameter(ParameterSetName = 'History')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/infrastructure/buildings' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } default { $params.Add('Uri', ('{0}/{1}/{2}{3}' -f $BaseURL, $item, $PsCmdlet.ParameterSetName.ToLower(), $FunctionString)) (Invoke-PFRestMethod @params).Items } } } } } $result } End { } } #EndRegion '.\Public\Get-PFBuilding.ps1' 149 #Region '.\Public\Get-PFCable.ps1' 0 function Get-PFCable { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Cabletrays')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Lines')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Phones')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Services')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Tags')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Vlans')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Wires')] [Int[]] $Id, [Parameter(Mandatory, ParameterSetName = 'Cabletrays')] [Switch] $Cabletrays, [Parameter(Mandatory, ParameterSetName = 'Lines')] [Switch] $Lines, [Parameter(Mandatory, ParameterSetName = 'Phones')] [Switch] $Phones, [Parameter(Mandatory, ParameterSetName = 'Services')] [Switch] $Services, [Parameter(Mandatory, ParameterSetName = 'Tags')] [Switch] $Tags, [Parameter(Mandatory, ParameterSetName = 'Vlans')] [Switch] $Vlans, [Parameter(Mandatory, ParameterSetName = 'Wires')] [Switch] $Wires, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Cabletrays')] [Parameter(ParameterSetName = 'Lines')] [Parameter(ParameterSetName = 'Phones')] [Parameter(ParameterSetName = 'Services')] [Parameter(ParameterSetName = 'Tags')] [Parameter(ParameterSetName = 'Vlans')] [Parameter(ParameterSetName = 'Wires')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Cabletrays')] [Parameter(ParameterSetName = 'Lines')] [Parameter(ParameterSetName = 'Phones')] [Parameter(ParameterSetName = 'Services')] [Parameter(ParameterSetName = 'Tags')] [Parameter(ParameterSetName = 'Vlans')] [Parameter(ParameterSetName = 'Wires')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Cabletrays')] [Parameter(ParameterSetName = 'Lines')] [Parameter(ParameterSetName = 'Phones')] [Parameter(ParameterSetName = 'Services')] [Parameter(ParameterSetName = 'Tags')] [Parameter(ParameterSetName = 'Vlans')] [Parameter(ParameterSetName = 'Wires')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Cabletrays')] [Parameter(ParameterSetName = 'Lines')] [Parameter(ParameterSetName = 'Phones')] [Parameter(ParameterSetName = 'Services')] [Parameter(ParameterSetName = 'Tags')] [Parameter(ParameterSetName = 'Vlans')] [Parameter(ParameterSetName = 'Wires')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Cabletrays')] [Parameter(ParameterSetName = 'Lines')] [Parameter(ParameterSetName = 'Phones')] [Parameter(ParameterSetName = 'Services')] [Parameter(ParameterSetName = 'Tags')] [Parameter(ParameterSetName = 'Vlans')] [Parameter(ParameterSetName = 'Wires')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/connectivity/cables' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } default { $params.Add('Uri', ('{0}/{1}/{2}{3}' -f $BaseURL, $item, $PsCmdlet.ParameterSetName.ToLower(), $FunctionString)) (Invoke-PFRestMethod @params).Items } } } } } $result } End { } } #EndRegion '.\Public\Get-PFCable.ps1' 179 #Region '.\Public\Get-PFCableTray.ps1' 0 function Get-PFCabletray { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Cables')] [Int[]] $Id, [Parameter(Mandatory, ParameterSetName = 'Cables')] [Switch] $Cables, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Cables')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Cables')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Cables')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Cables')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Cables')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/connectivity/cabletrays' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } default { $params.Add('Uri', ('{0}/{1}/{2}{3}' -f $BaseURL, $item, $PsCmdlet.ParameterSetName.ToLower(), $FunctionString)) (Invoke-PFRestMethod @params).Items } } } } } $result } End { } } #EndRegion '.\Public\Get-PFCableTray.ps1' 119 #Region '.\Public\Get-PFComponent.ps1' 0 function Get-PFComponent { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Children')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Containedslots')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Documents')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'History')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Ipaddresses')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Phones')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Ports')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Preview')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Previewback')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Previewfront')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Services')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Slots')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Tags')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Vlans')] [Int[]] $Id, [Parameter(Mandatory, ParameterSetName = 'Children')] [Switch] $Children, [Parameter(Mandatory, ParameterSetName = 'Containedslots')] [Switch] $Containedslots, [Parameter(Mandatory, ParameterSetName = 'Documents')] [Switch] $Documents, [Parameter(Mandatory, ParameterSetName = 'History')] [Switch] $History, [Parameter(Mandatory, ParameterSetName = 'Ipaddresses')] [Switch] $Ipaddresses, [Parameter(Mandatory, ParameterSetName = 'Phones')] [Switch] $Phones, [Parameter(Mandatory, ParameterSetName = 'Ports')] [Switch] $Ports, [Parameter(Mandatory, ParameterSetName = 'Preview')] [Switch] $Preview, [Parameter(Mandatory, ParameterSetName = 'Previewback')] [Switch] $Previewback, [Parameter(Mandatory, ParameterSetName = 'Previewfront')] [Switch] $Previewfront, [Parameter(Mandatory, ParameterSetName = 'Services')] [Switch] $Services, [Parameter(Mandatory, ParameterSetName = 'Slots')] [Switch] $Slots, [Parameter(Mandatory, ParameterSetName = 'Tags')] [Switch] $Tags, [Parameter(Mandatory, ParameterSetName = 'Vlans')] [Switch] $Vlans, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Children')] [Parameter(ParameterSetName = 'Containedslots')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [Parameter(ParameterSetName = 'Ipaddresses')] [Parameter(ParameterSetName = 'Phones')] [Parameter(ParameterSetName = 'Ports')] [Parameter(ParameterSetName = 'Preview')] [Parameter(ParameterSetName = 'Previewback')] [Parameter(ParameterSetName = 'Previewfront')] [Parameter(ParameterSetName = 'Services')] [Parameter(ParameterSetName = 'Slots')] [Parameter(ParameterSetName = 'Tags')] [Parameter(ParameterSetName = 'Vlans')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Children')] [Parameter(ParameterSetName = 'Containedslots')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [Parameter(ParameterSetName = 'Ipaddresses')] [Parameter(ParameterSetName = 'Phones')] [Parameter(ParameterSetName = 'Ports')] [Parameter(ParameterSetName = 'Preview')] [Parameter(ParameterSetName = 'Previewback')] [Parameter(ParameterSetName = 'Previewfront')] [Parameter(ParameterSetName = 'Services')] [Parameter(ParameterSetName = 'Slots')] [Parameter(ParameterSetName = 'Tags')] [Parameter(ParameterSetName = 'Vlans')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Children')] [Parameter(ParameterSetName = 'Containedslots')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [Parameter(ParameterSetName = 'Ipaddresses')] [Parameter(ParameterSetName = 'Phones')] [Parameter(ParameterSetName = 'Ports')] [Parameter(ParameterSetName = 'Preview')] [Parameter(ParameterSetName = 'Previewback')] [Parameter(ParameterSetName = 'Previewfront')] [Parameter(ParameterSetName = 'Services')] [Parameter(ParameterSetName = 'Slots')] [Parameter(ParameterSetName = 'Tags')] [Parameter(ParameterSetName = 'Vlans')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Children')] [Parameter(ParameterSetName = 'Containedslots')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [Parameter(ParameterSetName = 'Ipaddresses')] [Parameter(ParameterSetName = 'Phones')] [Parameter(ParameterSetName = 'Ports')] [Parameter(ParameterSetName = 'Preview')] [Parameter(ParameterSetName = 'Previewback')] [Parameter(ParameterSetName = 'Previewfront')] [Parameter(ParameterSetName = 'Services')] [Parameter(ParameterSetName = 'Slots')] [Parameter(ParameterSetName = 'Tags')] [Parameter(ParameterSetName = 'Vlans')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Children')] [Parameter(ParameterSetName = 'Containedslots')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [Parameter(ParameterSetName = 'Ipaddresses')] [Parameter(ParameterSetName = 'Phones')] [Parameter(ParameterSetName = 'Ports')] [Parameter(ParameterSetName = 'Preview')] [Parameter(ParameterSetName = 'Previewback')] [Parameter(ParameterSetName = 'Previewfront')] [Parameter(ParameterSetName = 'Services')] [Parameter(ParameterSetName = 'Slots')] [Parameter(ParameterSetName = 'Tags')] [Parameter(ParameterSetName = 'Vlans')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/infrastructure/components' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } default { $params.Add('Uri', ('{0}/{1}/{2}{3}' -f $BaseURL, $item, $PsCmdlet.ParameterSetName.ToLower(), $FunctionString)) (Invoke-PFRestMethod @params).Items } } } } } $result } End { } } #EndRegion '.\Public\Get-PFComponent.ps1' 249 #Region '.\Public\Get-PFComponentDefinition.ps1' 0 function Get-PFComponentdefinition { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Preview')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Previewback')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Previewfront')] [Int[]] $Id, [Parameter(Mandatory, ParameterSetName = 'Preview')] [Switch] $Preview, [Parameter(Mandatory, ParameterSetName = 'Previewback')] [Switch] $Previewback, [Parameter(Mandatory, ParameterSetName = 'Previewfront')] [Switch] $Previewfront, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Preview')] [Parameter(ParameterSetName = 'Previewback')] [Parameter(ParameterSetName = 'Previewfront')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Preview')] [Parameter(ParameterSetName = 'Previewback')] [Parameter(ParameterSetName = 'Previewfront')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Preview')] [Parameter(ParameterSetName = 'Previewback')] [Parameter(ParameterSetName = 'Previewfront')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Preview')] [Parameter(ParameterSetName = 'Previewback')] [Parameter(ParameterSetName = 'Previewfront')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Preview')] [Parameter(ParameterSetName = 'Previewback')] [Parameter(ParameterSetName = 'Previewfront')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/catalog/componentdefinitions' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } default { $params.Add('Uri', ('{0}/{1}/{2}{3}' -f $BaseURL, $item, $PsCmdlet.ParameterSetName.ToLower(), $FunctionString)) (Invoke-PFRestMethod @params).Items } } } } } $result } End { } } #EndRegion '.\Public\Get-PFComponentDefinition.ps1' 139 #Region '.\Public\Get-PFFloor.ps1' 0 function Get-PFFloor { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Components')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Documents')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'History')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Rooms')] [Int[]] $Id, [Parameter(Mandatory, ParameterSetName = 'Components')] [Switch] $Components, [Parameter(Mandatory, ParameterSetName = 'Documents')] [Switch] $Documents, [Parameter(Mandatory, ParameterSetName = 'History')] [Switch] $History, [Parameter(Mandatory, ParameterSetName = 'Rooms')] [Switch] $Rooms, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [Parameter(ParameterSetName = 'Rooms')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [Parameter(ParameterSetName = 'Rooms')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [Parameter(ParameterSetName = 'Rooms')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [Parameter(ParameterSetName = 'Rooms')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [Parameter(ParameterSetName = 'Rooms')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/infrastructure/floors' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } default { $params.Add('Uri', ('{0}/{1}/{2}{3}' -f $BaseURL, $item, $PsCmdlet.ParameterSetName.ToLower(), $FunctionString)) (Invoke-PFRestMethod @params).Items } } } } } $result } End { } } #EndRegion '.\Public\Get-PFFloor.ps1' 149 #Region '.\Public\Get-PFIPAddress.ps1' 0 function Get-PFIpaddress { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Int[]] $Id, [Parameter(ParameterSetName = 'Noparams')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/ipam/ipaddresses' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } } } } } $result } End { } } #EndRegion '.\Public\Get-PFIPAddress.ps1' 104 #Region '.\Public\Get-PFLocation.ps1' 0 function Get-PFLocation { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Buildings')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Components')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Documents')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'History')] [Int[]] $Id, [Parameter(Mandatory, ParameterSetName = 'Buildings')] [Switch] $Buildings, [Parameter(Mandatory, ParameterSetName = 'Components')] [Switch] $Components, [Parameter(Mandatory, ParameterSetName = 'Documents')] [Switch] $Documents, [Parameter(Mandatory, ParameterSetName = 'History')] [Switch] $History, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Buildings')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Buildings')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Buildings')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Buildings')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Buildings')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/infrastructure/locations' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } default { $params.Add('Uri', ('{0}/{1}/{2}{3}' -f $BaseURL, $item, $PsCmdlet.ParameterSetName.ToLower(), $FunctionString)) (Invoke-PFRestMethod @params).Items } } } } } $result } End { } } #EndRegion '.\Public\Get-PFLocation.ps1' 149 #Region '.\Public\Get-PFNetwork.ps1' 0 function Get-PFNetwork { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Int[]] $Id, [Parameter(ParameterSetName = 'Noparams')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/ipam/networks' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } } } } } $result } End { } } #EndRegion '.\Public\Get-PFNetwork.ps1' 104 #Region '.\Public\Get-PFPhone.ps1' 0 function Get-PFPhone { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Int[]] $Id, [Parameter(ParameterSetName = 'Noparams')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/tags/phones' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } } } } } $result } End { } } #EndRegion '.\Public\Get-PFPhone.ps1' 104 #Region '.\Public\Get-PFRack.ps1' 0 function Get-PFRack { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Int[]] $Id, [Parameter(ParameterSetName = 'Noparams')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/infrastructure/racks' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } } } } } $result } End { } } #EndRegion '.\Public\Get-PFRack.ps1' 104 #Region '.\Public\Get-PFRoom.ps1' 0 function Get-PFRoom { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Components')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Documents')] [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'History')] [Int[]] $Id, [Parameter(Mandatory, ParameterSetName = 'Components')] [Switch] $Components, [Parameter(Mandatory, ParameterSetName = 'Documents')] [Switch] $Documents, [Parameter(Mandatory, ParameterSetName = 'History')] [Switch] $History, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [Parameter(ParameterSetName = 'Components')] [Parameter(ParameterSetName = 'Documents')] [Parameter(ParameterSetName = 'History')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/infrastructure/rooms' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } default { $params.Add('Uri', ('{0}/{1}/{2}{3}' -f $BaseURL, $item, $PsCmdlet.ParameterSetName.ToLower(), $FunctionString)) (Invoke-PFRestMethod @params).Items } } } } } $result } End { } } #EndRegion '.\Public\Get-PFRoom.ps1' 139 #Region '.\Public\Get-PFRootgroup.ps1' 0 function Get-PFRootgroup { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Int[]] $Id, [Parameter(ParameterSetName = 'Noparams')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/tags/rootgroups' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } } } } } $result } End { } } #EndRegion '.\Public\Get-PFRootgroup.ps1' 104 #Region '.\Public\Get-PFService.ps1' 0 function Get-PFService { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Int[]] $Id, [Parameter(ParameterSetName = 'Noparams')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/tags/services' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } } } } } $result } End { } } #EndRegion '.\Public\Get-PFService.ps1' 104 #Region '.\Public\Get-PFStatus.ps1' 0 function Get-PFStatus { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ParameterSetName = 'Ping')] [switch] $Ping ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/info/status' -f $UriArray) } Process { $Params = @{ Token = $Token Method = 'Get' } $APIObjectColl = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) Invoke-PFRestMethod @Params } Default { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $PsCmdlet.ParameterSetName.ToLower())) Invoke-PFRestMethod @Params } } $APIObjectColl } End { } } #EndRegion '.\Public\Get-PFStatus.ps1' 52 #Region '.\Public\Get-PFSubnet.ps1' 0 function Get-PFSubnet { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Int[]] $Id, [Parameter(ParameterSetName = 'Noparams')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/ipam/subnets' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } } } } } $result } End { } } #EndRegion '.\Public\Get-PFSubnet.ps1' 104 #Region '.\Public\Get-PFTag.ps1' 0 function Get-PFTag { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Int[]] $Id, [Parameter(ParameterSetName = 'Noparams')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/tags/tags' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } } } } } $result } End { } } #EndRegion '.\Public\Get-PFTag.ps1' 104 #Region '.\Public\Get-PFTaggroup.ps1' 0 function Get-PFTaggroup { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Int[]] $Id, [Parameter(ParameterSetName = 'Noparams')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/tags/taggroups' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } } } } } $result } End { } } #EndRegion '.\Public\Get-PFTaggroup.ps1' 104 #Region '.\Public\Get-PFVlan.ps1' 0 function Get-PFVlan { [CmdletBinding(DefaultParameterSetName = 'Noparams')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'Id')] [Int[]] $Id, [Parameter(ParameterSetName = 'Noparams')] [Int] $Page, [Parameter(ParameterSetName = 'Noparams')] [Int] $Pagesize, [Parameter(ParameterSetName = 'Noparams')] [String] $Filter, [Parameter(ParameterSetName = 'Noparams')] [String] $Sort, [Parameter(ParameterSetName = 'Noparams')] [String] $Fields ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/ipam/vlans' -f $UriArray) switch ($PsCmdlet.ParameterSetName) { 'Id' { } default { $params = [ordered]@{ Page = $Page PageSize = $PageSize Filter = $Filter Sort = $Sort Fields = $Fields } $FunctionString = Get-PFFunctionString @params } } } Process { $result = switch ($PsCmdlet.ParameterSetName) { 'Noparams' { $params = @{ Token = $Token Method = 'Get' } $params.Add('Uri', ('{0}{1}' -f $BaseURL, $FunctionString)) (Invoke-PFRestMethod @params).Items } default { foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Get' } switch ($PsCmdlet.ParameterSetName) { 'Id' { $params.Add('Uri', ('{0}/{1}' -f $BaseURL, $item)) Invoke-PFRestMethod @params } } } } } $result } End { } } #EndRegion '.\Public\Get-PFVlan.ps1' 104 #Region '.\Public\New-PFBuilding.ps1' 0 function New-PFBuilding { [cmdletbinding(SupportsShouldProcess, ConfirmImpact = 'Low')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)] [Int[]] $Id, [Parameter(Mandatory, ParameterSetName = 'Floors')] [Switch] $Floor, [Parameter(Mandatory, ParameterSetName = 'Documents')] [Switch] $Document, [Parameter(Mandatory, ParameterSetName = 'Floors')] [Parameter(Mandatory, ParameterSetName = 'Documents')] [String] $Name, [Parameter(ParameterSetName = 'Floors')] [String] $Number, [Parameter(ParameterSetName = 'Floors')] [String] $Description, [Parameter(ParameterSetName = 'Floors')] [String] $Url, [Parameter(ParameterSetName = 'Floors')] [String] $ExternalRef, [Parameter(Mandatory, ParameterSetName = 'Documents')] [String] $Path, [Parameter(Mandatory, ParameterSetName = 'Documents')] [ValidateSet('stFolder', 'stBlob', 'stLink')] [String] $SaveType ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/infrastructure/buildings' -f $UriArray) } Process { foreach ($item in $Id) { Switch ($PsCmdlet.ParameterSetName) { 'Floors' { $BodyHashTable = @{ 'Name' = $Name 'Number' = $Number 'Description' = $Description 'Url' = $Url 'ExternalRef' = $ExternalRef } $Body = ConvertTo-Json $BodyHashTable $Params = @{ Token = $Token Uri = ('{0}/{1}/floors' -f $BaseURL, $Item) Body = $Body Method = 'Post' } } 'Documents' { $BodyHashTable = @{ 'Name' = $Name 'Path' = $Path 'SaveType' = $SaveType } $Body = ConvertTo-Json $BodyHashTable $Params = @{ Token = $Token Uri = ('{0}/{1}/documents' -f $BaseURL, $Item) Body = $Body Method = 'Post' } } default { } } if ($PSCmdlet.ShouldProcess(('{0} Id: {1}' -f $Method, $Item))) { $APIObjectColl = Invoke-PFRestMethod @Params } $Result = foreach ($APIObject in $APIObjectColl) { $Properties = [ordered]@{ 'Id' = [Int]$APIObject.Id } New-Object psobject -Property $Properties } $Result } } End { } } #EndRegion '.\Public\New-PFBuilding.ps1' 126 #Region '.\Public\New-PFComponent.ps1' 0 function New-PFComponent { [cmdletbinding(SupportsShouldProcess, ConfirmImpact = 'Low')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)] [Int[]] $Id, [Parameter(Mandatory, ParameterSetName = 'Documents')] [Switch] $Document, [Parameter(Mandatory, ParameterSetName = 'Documents')] [String] $Name, [Parameter(Mandatory, ParameterSetName = 'Documents')] [String] $Path, [Parameter(Mandatory, ParameterSetName = 'Documents')] [ValidateSet('stFolder', 'stBlob', 'stLink')] [String] $SaveType ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/infrastructure/components' -f $UriArray) } Process { foreach ($item in $Id) { Switch ($PsCmdlet.ParameterSetName) { 'Documents' { $BodyHashTable = @{ 'Name' = $Name 'Path' = $Path 'SaveType' = $SaveType } $Body = ConvertTo-Json $BodyHashTable $Params = @{ Token = $Token Uri = ('{0}/{1}/documents' -f $BaseURL, $Item) Body = $Body Method = 'Post' } } default { } } if ($PSCmdlet.ShouldProcess(('{0} Id: {1}' -f $Method, $Item))) { $APIObjectColl = Invoke-PFRestMethod @Params } $Result = foreach ($APIObject in $APIObjectColl) { $Properties = [ordered]@{ 'Id' = [Int]$APIObject.Id } New-Object psobject -Property $Properties } $Result } } End { } } #EndRegion '.\Public\New-PFComponent.ps1' 88 #Region '.\Public\New-PFFloor.ps1' 0 function New-PFFloor { [cmdletbinding(SupportsShouldProcess, ConfirmImpact = 'Low')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)] [Int[]] $Id, [Parameter(Mandatory, ParameterSetName = 'Rooms')] [Switch] $Room, [Parameter(Mandatory, ParameterSetName = 'Documents')] [Switch] $Document, [Parameter(Mandatory, ParameterSetName = 'Rooms')] [Parameter(Mandatory, ParameterSetName = 'Documents')] [String] $Name, [Parameter(ParameterSetName = 'Rooms')] [String] $Number, [Parameter(ParameterSetName = 'Rooms')] [String] $Description, [Parameter(ParameterSetName = 'Rooms')] [String] $Url, [Parameter(ParameterSetName = 'Rooms')] [String] $ExternalRef, [Parameter(ParameterSetName = 'Rooms')] [Single] $Area, [Parameter(ParameterSetName = 'Rooms')] [String] $RoomType = 'None', [Parameter(Mandatory, ParameterSetName = 'Documents')] [String] $Path, [Parameter(Mandatory, ParameterSetName = 'Documents')] [ValidateSet('stFolder', 'stBlob', 'stLink')] [String] $SaveType ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/infrastructure/floors' -f $UriArray) } Process { foreach ($item in $Id) { Switch ($PsCmdlet.ParameterSetName) { 'Rooms' { $BodyHashTable = @{ 'Name' = $Name 'Number' = $Number 'Description' = $Description 'Url' = $Url 'ExternalRef' = $ExternalRef 'Area' = $Area 'RoomType' = $RoomType } $Body = ConvertTo-Json $BodyHashTable $Params = @{ Token = $Token Uri = ('{0}/{1}/rooms' -f $BaseURL, $Item) Body = $Body Method = 'Post' } } 'Documents' { $BodyHashTable = @{ 'Name' = $Name 'Path' = $Path 'SaveType' = $SaveType } $Body = ConvertTo-Json $BodyHashTable $Params = @{ Token = $Token Uri = ('{0}/{1}/documents' -f $BaseURL, $Item) Body = $Body Method = 'Post' } } default { } } if ($PSCmdlet.ShouldProcess(('{0} Id: {1}' -f $Method, $Item))) { $APIObjectColl = Invoke-PFRestMethod @Params } $Result = foreach ($APIObject in $APIObjectColl) { $Properties = [ordered]@{ 'Id' = [Int]$APIObject.Id } New-Object psobject -Property $Properties } $Result } } End { } } #EndRegion '.\Public\New-PFFloor.ps1' 136 #Region '.\Public\New-PFRack.ps1' 0 function New-PFRack { [cmdletbinding(SupportsShouldProcess, ConfirmImpact = 'Low')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)] [Int[]] $Id, [Parameter(Mandatory, ParameterSetName = 'Components')] [Switch] $Component, [Parameter(Mandatory, ParameterSetName = 'Components')] [Int] $ComponentDefinitionId, [Parameter(ParameterSetName = 'Components')] [Int] $Layer = 1, [Parameter(ParameterSetName = 'Components')] [Int] $Bay = 1, [Parameter(ParameterSetName = 'Components')] [Single] $LeftOffset = 0.0, [Parameter(ParameterSetName = 'Components')] [Switch] $ReverseMounting, [Parameter(Mandatory, ParameterSetName = 'Components')] [ValidateScript({ If ( $_.ToString() -match '^(\d+|\d+(\.|,)5)$' ) { $true } Else { Throw 'Please specify a valid rack height' } })] [Single] $RackUnit ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/infrastructure/racks' -f $UriArray) } Process { foreach ($item in $Id) { Switch ($PsCmdlet.ParameterSetName) { 'Components' { $BodyHashTable = @{ 'ComponentDefinitionId' = $ComponentDefinitionId 'Layer' = $Layer 'Bay' = $Bay 'LeftOffset' = $LeftOffset 'ReverseMounting' = $ReverseMounting.IsPresent 'RackUnit' = $RackUnit } $Body = ConvertTo-Json $BodyHashTable $Params = @{ Token = $Token Uri = ('{0}/{1}/components' -f $BaseURL, $Item) Body = $Body Method = 'Post' } } default { } } if ($PSCmdlet.ShouldProcess(('{0} Id: {1}' -f $Method, $Item))) { $APIObjectColl = Invoke-PFRestMethod @Params } $Result = foreach ($APIObject in $APIObjectColl) { $Properties = [ordered]@{ 'Id' = [Int]$APIObject.Id } New-Object psobject -Property $Properties } $Result } } End { } } #EndRegion '.\Public\New-PFRack.ps1' 111 #Region '.\Public\New-PFRoom.ps1' 0 function New-PFRoom { [cmdletbinding(SupportsShouldProcess, ConfirmImpact = 'Low')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)] [Int[]] $Id, [Parameter(Mandatory, ParameterSetName = 'Components')] [Switch] $Component, [Parameter(Mandatory, ParameterSetName = 'Documents')] [Switch] $Document, [Parameter(Mandatory, ParameterSetName = 'Components')] [Int] $ComponentDefinitionId, [Parameter(ParameterSetName = 'Components')] [Int] $NumberOfCopies = 1, [Parameter(Mandatory, ParameterSetName = 'Documents')] [String] $Name, [Parameter(Mandatory, ParameterSetName = 'Documents')] [String] $Path, [Parameter(Mandatory, ParameterSetName = 'Documents')] [ValidateSet('stFolder', 'stBlob', 'stLink')] [String] $SaveType ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/infrastructure/rooms' -f $UriArray) } Process { foreach ($item in $Id) { Switch ($PsCmdlet.ParameterSetName) { 'Components' { $BodyHashTable = @{ 'ComponentDefinitionId' = $ComponentDefinitionId 'NumberOfCopies' = $NumberOfCopies } $Body = ConvertTo-Json $BodyHashTable $Params = @{ Token = $Token Uri = ('{0}/{1}/components' -f $BaseURL, $Item) Body = $Body Method = 'Post' } } 'Documents' { $BodyHashTable = @{ 'Name' = $Name 'Path' = $Path 'SaveType' = $SaveType } $Body = ConvertTo-Json $BodyHashTable $Params = @{ Token = $Token Uri = ('{0}/{1}/documents' -f $BaseURL, $Item) Body = $Body Method = 'Post' } } default { } } if ($PSCmdlet.ShouldProcess(('{0} Id: {1}' -f $Method, $Item))) { $APIObjectColl = Invoke-PFRestMethod @Params } $Result = foreach ($APIObject in $APIObjectColl) { Switch ($PsCmdlet.ParameterSetName) { 'Components' { foreach ($j in $APIObject.Items) { $Properties = [ordered]@{ 'Id' = [Int]$j.Id } New-Object psobject -Property $Properties } } 'Documents' { $Properties = [ordered]@{ 'Id' = [Int]$APIObject.Id } New-Object psobject -Property $Properties } default { } } } $Result } } End { } } #EndRegion '.\Public\New-PFRoom.ps1' 133 #Region '.\Public\Remove-PFComponent.ps1' 0 function Remove-PFComponent { [cmdletbinding(SupportsShouldProcess, ConfirmImpact = 'High')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)] [Int[]] $Id ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/infrastructure/components' -f $UriArray) } Process { $result = foreach ($item in $Id) { $params = @{ Token = $Token Method = 'Delete' Uri = '{0}/{1}' -f $BaseURL, $item } if ($PSCmdlet.ShouldProcess(('{0} Id: {1}' -f $Method, $item))) { Invoke-PFRestMethod @params } } $result } End { } } #EndRegion '.\Public\Remove-PFComponent.ps1' 48 #Region '.\Public\Update-PFComponent.ps1' 0 function Update-PFComponent { [cmdletbinding(SupportsShouldProcess, ConfirmImpact = 'Medium')] param ( [Parameter(Mandatory)] [string] $Computername, [ValidateRange(0, 65535)] [Int] $TCPPort = 8087, [ValidateNotNull()] [string] $Token, [Parameter(Mandatory, ValueFromPipelineByPropertyName, ValueFromPipeline)] [Int[]] $Id, [Parameter(ParameterSetName = 'Patch')] [ValidateSet('Add', 'Remove', 'Replace')] [String] $Operation = 'Replace', [Parameter(ParameterSetName = 'Patch')] [String] $Name, [Parameter(ParameterSetName = 'Patch')] [String] $Description, [Parameter(ParameterSetName = 'Patch')] [String] $Guarantee, [Parameter(ParameterSetName = 'Patch')] [String] $BurdenCentre, [Parameter(ParameterSetName = 'Patch')] [String] $InventoryNumber, [Parameter(ParameterSetName = 'Patch')] [String] $SerialNumber, [Parameter(ParameterSetName = 'Patch')] [String] $MaintenanceCycle, [Parameter(ParameterSetName = 'Patch')] [ValidatePattern('(([0-9A-Fa-f]{2}[-:]){5}[0-9A-Fa-f]{2})|(([0-9A-Fa-f]{4}\.){2}[0-9A-Fa-f]{4})')] [String] $MacAddress, [Parameter(ParameterSetName = 'Patch')] [datetime] $InstallationDate, [Parameter(ParameterSetName = 'Patch')] [datetime] $LastMaintenance, [Parameter(ParameterSetName = 'Patch')] [String] $ServiceNumber, [Parameter(ParameterSetName = 'Patch')] [String] $EAN, [Parameter(ParameterSetName = 'Patch')] [String] $NameAdditional, [Parameter(ParameterSetName = 'Patch')] [Int] $Number, [Parameter(ParameterSetName = 'Patch')] [single] $PowerConsumptionInWatt, [Parameter(ParameterSetName = 'Patch')] [single] $HeatEmissionInBTU, [Parameter(ParameterSetName = 'Patch')] [single] $MassInKG, [Parameter(ParameterSetName = 'Patch')] [single] $MaxPowerConsumptionInWatt, [Parameter(ParameterSetName = 'Patch')] [single] $MaxHeatEmissionInBTU, [Parameter(ParameterSetName = 'Patch')] [single] $MaxMassInKG, [Parameter(ParameterSetName = 'Patch')] [String] $Url, [Parameter(ParameterSetName = 'Patch')] [String] $ExternalRef, [Parameter(ParameterSetName = 'Patch')] [String] $FQDN, [Parameter(ParameterSetName = 'Patch')] [String] $Comment, [Parameter(ParameterSetName = 'Patch')] [String] $Configuration, [Parameter(ParameterSetName = 'Patch')] [String] $KnownIssues, [Parameter(ParameterSetName = 'Patch')] [String] $OS, [Parameter(ParameterSetName = 'Patch')] [String] $WarrantyContract, [Parameter(ParameterSetName = 'Patch')] [datetime] $WarrantyEnds, [Parameter(ParameterSetName = 'Patch')] [String] $ResponsibleContact, [Parameter(ParameterSetName = 'Patch')] [String] $CustomString1, [Parameter(ParameterSetName = 'Patch')] [String] $CustomString2, [Parameter(ParameterSetName = 'Patch')] [String] $CustomString3, [Parameter(ParameterSetName = 'Patch')] [String] $CustomString4, [Parameter(ParameterSetName = 'Patch')] [String] $CustomString5, [Parameter(ParameterSetName = 'Patch')] [String] $CustomString6, [Parameter(ParameterSetName = 'Patch')] [String] $CustomString7, [Parameter(ParameterSetName = 'Patch')] [String] $CustomString8, [Parameter(ParameterSetName = 'Patch')] [datetime] $CustomDate1, [Parameter(ParameterSetName = 'Patch')] [datetime] $CustomDate2, [Parameter(ParameterSetName = 'Patch')] [int] $CustomInteger1, [Parameter(ParameterSetName = 'Patch')] [int] $CustomInteger2, [Parameter(ParameterSetName = 'Patch')] [single] $CustomFloat1, [Parameter(ParameterSetName = 'Patch')] [single] $CustomFloat2, [Parameter(ParameterSetName = 'Put')] [Hashtable] $Properties, [Parameter(ParameterSetName = 'Tag')] [Int] $TagId, [Parameter(ParameterSetName = 'VLAN')] [Int] $VLANId, [Parameter(ParameterSetName = 'Service')] [Int] $ServiceId, [Parameter(ParameterSetName = 'Phone')] [Int] $PhoneId, [Parameter(ParameterSetName = 'Tag')] [Parameter(ParameterSetName = 'VLAN')] [Parameter(ParameterSetName = 'Service')] [Parameter(ParameterSetName = 'Phone')] [Switch] $Remove ) Begin { $UriArray = @($ComputerName, $TCPPort) $BaseURL = ('https://{0}:{1}/api/v1.0/infrastructure/components' -f $UriArray) $Params = @{ Token = $Token } } Process { $result = foreach ($item in $Id) { Switch ($PsCmdlet.ParameterSetName) { 'Patch' { $PatchParams = $PSBoundParameters $Null = $PatchParams.Remove('Id') $Null = $PatchParams.Remove('Token') $Null = $PatchParams.Remove('Computername') $Null = $PatchParams.Remove('Operation') $BodyArray = @( $PatchParams.GetEnumerator().ForEach{ [ordered]@{ 'value' = $_.Value 'path' = '/{0}' -f $_.Key 'op' = $Operation } } ) $Body = ConvertTo-Json $BodyArray $Params = @{ Token = $Token Uri = ('{0}/{1}' -f $BaseURL, $item) Body = $Body Method = 'Patch' } } 'Put' { $Body = ConvertTo-Json $Properties $Params = @{ Token = $Token Uri = ('{0}/{1}' -f $BaseURL, $item) Body = $Body Method = 'Put' } } 'Tag' { $Params = @{ Token = $Token Uri = ('{0}/{1}/tags/{2}' -f $BaseURL, $item, $TagId) Body = $Body } switch ($Remove) { $true { $Params.Add('Method', 'Delete') } Default { $Params.Add('Method', 'Put') } } } 'VLAN' { $Params = @{ Token = $Token Uri = ('{0}/{1}/vlans/{2}' -f $BaseURL, $item, $VLANId) Body = $Body } switch ($Remove) { $true { $Params.Add('Method', 'Delete') } Default { $Params.Add('Method', 'Put') } } } 'Service' { $Params = @{ Token = $Token Uri = ('{0}/{1}/services/{2}' -f $BaseURL, $item, $ServiceId) Body = $Body } switch ($Remove) { $true { $Params.Add('Method', 'Delete') } Default { $Params.Add('Method', 'Put') } } } 'Phone' { $Params = @{ Token = $Token Uri = ('{0}/{1}/phones/{2}' -f $BaseURL, $item, $PhoneId) Body = $Body } switch ($Remove) { $true { $Params.Add('Method', 'Delete') } Default { $Params.Add('Method', 'Put') } } } default { } } if ($PSCmdlet.ShouldProcess(('{0} Id: {1}' -f $Method, $item))) { Invoke-PFRestMethod @Params } } $result } End { } } #EndRegion '.\Public\Update-PFComponent.ps1' 371 |