Public/Get-LMTopologyMapData.ps1
<# .SYNOPSIS Retrieves data for a specific topology map from LogicMonitor. .DESCRIPTION The Get-LMTopologyMapData function retrieves the vertex and edge data for a specified topology map in LogicMonitor. The map can be identified by either ID or name. .PARAMETER Id The ID of the topology map to retrieve data from. Required for Id parameter set. .PARAMETER Name The name of the topology map to retrieve data from. Required for Name parameter set. .EXAMPLE #Retrieve topology map data by ID Get-LMTopologyMapData -Id 123 .EXAMPLE #Retrieve topology map data by name Get-LMTopologyMapData -Name "Network-Topology" .NOTES You must run Connect-LMAccount before running this command. .INPUTS None. You cannot pipe objects to this command. .OUTPUTS Returns LogicMonitor.TopologyMapData objects. #> Function Get-LMTopologyMapData { [CmdletBinding()] Param ( [Parameter(Mandatory, ParameterSetName = 'Id')] [Int]$Id, [Parameter(Mandatory, ParameterSetName = 'Name')] [String]$Name ) #Check if we are logged in and have valid api creds If ($Script:LMAuth.Valid) { #Lookup Id if supplying name If ($Name) { $LookupResult = (Get-LMTopologyMap -Name $Name).Id If (Test-LookupResult -Result $LookupResult -LookupString $Name) { return } $Id = $LookupResult } #Build header and uri $ResourcePath = "/topology/topologies/$Id/data" #Loop through requests Try { $Headers = New-LMHeader -Auth $Script:LMAuth -Method "GET" -ResourcePath $ResourcePath $Uri = "https://$($Script:LMAuth.Portal).logicmonitor.com/santaba/rest" + $ResourcePath + $QueryParams Resolve-LMDebugInfo -Url $Uri -Headers $Headers[0] -Command $MyInvocation #Issue request $Response = Invoke-RestMethod -Uri $Uri -Method "GET" -Headers $Headers[0] -WebSession $Headers[1] Return (Add-ObjectTypeInfo -InputObject $Response.vertices -TypeName "LogicMonitor.TopologyMapData" ) } Catch [Exception] { $Proceed = Resolve-LMException -LMException $PSItem If (!$Proceed) { Return } } } Else { Write-Error "Please ensure you are logged in before running any commands, use Connect-LMAccount to login and try again." } } |