Public/New-LMDatasourceOverviewGraph.ps1
<# .SYNOPSIS Creates a new datasource overview graph in LogicMonitor. .DESCRIPTION The New-LMDatasourceOverviewGraph function creates a new overview graph for a specified datasource in LogicMonitor. .PARAMETER RawObject The raw object representing the graph configuration. Use Get-LMDatasourceOverviewGraph to see the expected format. .PARAMETER DatasourceId The ID of the datasource for which to create the overview graph. Required for dsId parameter set. .PARAMETER DatasourceName The name of the datasource for which to create the overview graph. Required for dsName parameter set. .EXAMPLE #Create overview graph using datasource ID New-LMDatasourceOverviewGraph -RawObject $graphConfig -DatasourceId 123 .EXAMPLE #Create overview graph using datasource name New-LMDatasourceOverviewGraph -RawObject $graphConfig -DatasourceName "MyDatasource" .NOTES You must run Connect-LMAccount before running this command. .INPUTS None. You cannot pipe objects to this command. .OUTPUTS Returns LogicMonitor.DatasourceGraph object. #> Function New-LMDatasourceOverviewGraph { [CmdletBinding()] Param ( [Parameter(Mandatory)] $RawObject, [Parameter(Mandatory, ParameterSetName = 'dsId')] $DatasourceId, [Parameter(Mandatory, ParameterSetName = 'dsName')] $DatasourceName ) #Check if we are logged in and have valid api creds If ($Script:LMAuth.Valid) { If ($DataSourceName) { $LookupResult = (Get-LMDatasource -Name $DataSourceName).Id If (Test-LookupResult -Result $LookupResult -LookupString $DataSourceName) { Return } $DatasourceId = $LookupResult } #Build header and uri $ResourcePath = "/setting/datasources/$DatasourceId/ographs" Try { $Data = ($RawObject | ConvertTo-Json) $Headers = New-LMHeader -Auth $Script:LMAuth -Method "POST" -ResourcePath $ResourcePath -Data $Data $Uri = "https://$($Script:LMAuth.Portal).logicmonitor.com/santaba/rest" + $ResourcePath Resolve-LMDebugInfo -Url $Uri -Headers $Headers[0] -Command $MyInvocation -Payload $Data #Issue request $Response = Invoke-RestMethod -Uri $Uri -Method "POST" -Headers $Headers[0] -WebSession $Headers[1] -Body $Data Return (Add-ObjectTypeInfo -InputObject $Response -TypeName "LogicMonitor.DatasourceGraph" ) } 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." } } |