Public/New-GrafanaPanel.ps1
function New-GrafanaPanel{ <# .SYNOPSIS Create New Grafana Panel .DESCRIPTION .EXAMPLE .PARAMETER name name of the panel .PARAMETER model Panel Json Mdoel .PARAMETER folderid FolderId to save panel .PARAMETER uid Unique ID of the panel #> [CmdletBinding()] param( ##[Parameter(Mandatory=$false)] ##[String]$name, ##[Parameter(Mandatory=$false)] ##[String]$model, ##[Parameter(Mandatory=$false)] ##[String]$folderid, ##[Parameter(Mandatory=$false)] ##[String]$uid, [Parameter(Mandatory=$true)] $paneljson ) process { $url = Get-GrafanaUrl $header = Get-AuthHeader -Type token $url += "/api/library-elements" write-verbose $url #if ([string]::IsNullOrWhiteSpace($uid)){ # $uid = $null #} #if ([string]::IsNullOrWhiteSpace($folderid)){ # $folderid = 0 #} #$body = @{ # uid = $uid # folderId = $folderid # name = $name # model = $model # kind = 1 #} #$jsonBody = ConvertTo-Json -InputObject $body -Depth 100 -Compress $jsonBody = ConvertTo-Json -InputObject $paneljson -Depth 100 -Compress # Force using TLS v1.2 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 $panelJson = Invoke-RestMethod -Uri $url -Headers $header -Method POST -ContentType 'application/json;charset=utf-8' -Body $jsonBody -ErrorVariable myerror -StatusCodeVariable mystatus -ResponseHeadersVariable myheaders -SkipHttpErrorCheck $ReturnValue = New-Object PSObject -Property @{ StatusCode = $mystatus Data = $paneljson } return $ReturnValue } } |