Public/Set-MerakiNetworkSwitchRoutingOSPF.ps1

function Set-MerakiNetworkSwitchRoutingOSPF {
    <#
    .SYNOPSIS
    Updates a network switch routing OSPF.
     
    .DESCRIPTION
    The Set-MerakiNetworkSwitchRoutingOSPF function allows you to update a network switch routing OSPF by providing the authentication token, network ID, and a JSON formatted string of OSPF configuration.
     
    .PARAMETER AuthToken
    The authentication token (API key) required to access the Meraki Dashboard API.
     
    .PARAMETER NetworkId
    The ID of the network.
     
    .PARAMETER OSPFConfig
    A JSON formatted string of OSPF configuration.
     
    .EXAMPLE
    $OSPFConfig = '{
        "enabled": true,
        "helloTimerInSeconds": 10,
        "deadTimerInSeconds": 40,
        "areas": [
            {
                "areaId": "1284392014819",
                "areaName": "Backbone",
                "areaType": "normal"
            }
        ],
        "v3": {
            "enabled": true,
            "helloTimerInSeconds": 10,
            "deadTimerInSeconds": 40,
            "areas": [
                {
                    "areaId": "1284392014819",
                    "areaName": "V3 Backbone",
                    "areaType": "normal"
                }
            ]
        },
        "md5AuthenticationEnabled": true,
        "md5AuthenticationKey": {
            "id": 1234,
            "passphrase": "abc1234"
        }
    }'
    $OSPFConfig = $OSPFConfig | ConvertTo-Json
    Set-MerakiNetworkSwitchRoutingOSPF -AuthToken "your-api-token" -NetworkId "N_1234" -OSPFConfig $OSPFConfig
     
    This example updates a network switch routing OSPF with the specified configuration.
     
    .NOTES
    The function requires the "Invoke-RestMethod" cmdlet to be available.
     
    The function returns the response from the API if the update is successful, otherwise, it displays an error message.
    #>

    
        [CmdletBinding()]
        param (
            [parameter(Mandatory=$true)]
            [string]$AuthToken,
            [parameter(Mandatory=$true)]
            [string]$NetworkId,
            [parameter(Mandatory=$true)]
            [string]$OSPFConfig
        )
    
        try {
            $header = @{
                "X-Cisco-Meraki-API-Key" = $AuthToken
                "content-type" = "application/json; charset=utf-8"
            }
    
            $url = "https://api.meraki.com/api/v1/networks/$NetworkId/switch/routing/ospf"
    
            $body = $OSPFConfig
    
            $response = Invoke-RestMethod -Method Put -Uri $url -Header $header -UserAgent "MerakiPowerShellModule/1.0.2 DocNougat" -Body $body
            return $response
        }
        catch {
            Write-Host $_
        }
    }