Public/Set-MerakiOrganizationAlertsProfile.ps1
function Set-MerakiOrganizationAlertsProfile { <# .SYNOPSIS Updates an alerts profile for a Meraki organization using the Meraki Dashboard API. .DESCRIPTION The Set-MerakiOrganizationAlertsProfile function allows you to update an alerts profile for a specified Meraki organization by providing the authentication token, profile ID, and alert configuration. .PARAMETER AuthToken The authentication token (API key) required to access the Meraki Dashboard API. .PARAMETER AlertProfileId The ID of the alerts profile to be updated. .PARAMETER AlertProfileConfig The JSON configuration for the alerts profile to be updated. Refer to the JSON schema for required parameters and their format. .EXAMPLE $AlertProfileConfig = [PSCustomObject]@{ description = "Updated alert profile" type = "wanUtilization" networkTags = @("tag1", "tag2") alertCondition = @{ bit_rate_bps = 2000000 duration = 120 window = 7200 } recipients = @{ emails = @("alerts@example.com", "alerts2@example.com") httpServerIds = @() } } $AlertProfileConfig = $AlertProfileConfig | ConvertTo-Json -Compress Set-MerakiOrganizationAlertsProfile -AuthToken "your-api-token" -AlertProfileId "1234567890" -AlertProfileConfig $AlertProfileConfig This example updates the alerts profile with ID "1234567890" to have the description "Updated alert profile" and monitor networks with tags "tag1" and "tag2" for WAN utilization exceeding 2 Mbps for 120 seconds within a 2-hour window. Alerts will be sent to "alerts@example.com" and "alerts2@example.com". .NOTES The function requires the "Invoke-RestMethod" cmdlet to be available. The function returns the response from the API if the configuration is successful, otherwise, it displays an error message. #> [CmdletBinding()] param ( [parameter(Mandatory=$true)] [string]$AuthToken, [parameter(Mandatory=$true)] [string]$AlertProfileId, [parameter(Mandatory=$true)] [string]$AlertProfileConfig, [parameter(Mandatory=$false)] [string]$OrganizationID = (Get-OrgID -AuthToken $AuthToken) ) If($OrganizationID -eq "Multiple organizations found. Please specify an organization ID.") { Return "Multiple organizations found. Please specify an organization ID." } else { try { $header = @{ "X-Cisco-Meraki-API-Key" = $AuthToken "content-type" = "application/json; charset=utf-8" } $body = $AlertProfileConfig $url = "https://api.meraki.com/api/v1/organizations/$OrganizationId/alerts/profiles/$AlertProfileId" $response = Invoke-RestMethod -Method Put -Uri $url -Header $header -UserAgent "MerakiPowerShellModule/1.0.2 DocNougat" -Body $body return $response } catch { Write-Debug $_ Throw $_ } } } |