Public/New-LMDatasourceGraph.ps1
<# .SYNOPSIS Creates a new datasource graph in LogicMonitor. .DESCRIPTION The New-LMDatasourceGraph function is used to create a new datasource graph in LogicMonitor. It requires the user to be logged in and have valid API credentials. .PARAMETER RawObject Specifies the raw object representing the graph configuration. This object will be converted to JSON format before sending the request to LogicMonitor. Use Get-LMDatasourceGraph to get the raw object representing a graph configuration. .PARAMETER DatasourceId Specifies the ID of the datasource to which the graph will be associated. This parameter is mandatory when using the 'dsId' parameter set. .PARAMETER DatasourceName Specifies the name of the datasource to which the graph will be associated. This parameter is mandatory when using the 'dsName' parameter set. .EXAMPLE New-LMDatasourceGraph -RawObject $graphConfig -DatasourceId 123 .EXAMPLE New-LMDatasourceGraph -RawObject $graphConfig -DatasourceName "My Datasource" #> Function New-LMDatasourceGraph { [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/graphs" 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." } } |