Public/New-LMDatasourceOverviewGraph.ps1
<# .SYNOPSIS Creates a new datasource overview graph in LogicMonitor. .DESCRIPTION The New-LMDatasourceOverviewGraph function creates a new datasource overview graph in LogicMonitor. It requires the user to be logged in and have valid API credentials. .PARAMETER RawObject The raw object representing the graph configuration. This object will be converted to JSON and sent as the request body. Use Get-LMDatasourceOverviewGraph to get the raw object representing a graph configuration. .PARAMETER DatasourceId The ID of the datasource for which the overview graph is being created. This parameter is mandatory when using the 'dsId' parameter set. .PARAMETER DatasourceName The name of the datasource for which the overview graph is being created. This parameter is mandatory when using the 'dsName' parameter set. .EXAMPLE New-LMDatasourceOverviewGraph -RawObject $graphConfig -DatasourceId 12345 .EXAMPLE New-LMDatasourceOverviewGraph -RawObject $graphConfig -DatasourceName "My Datasource" #> 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." } } |