Public/Set-MerakiNetworkApplianceVLANsSettings.ps1

function Set-MerakiNetworkApplianceVLANsSettings {
    <#
    .SYNOPSIS
    Updates the VLAN settings for a Meraki network.
     
    .DESCRIPTION
    This function updates the VLAN settings for a Meraki network using the Meraki Dashboard API. The function takes a boolean value as input and sends it to the API endpoint to update the VLAN settings.
     
    .PARAMETER AuthToken
    The authentication token (API key) required to access the Meraki Dashboard API.
     
    .PARAMETER NetworkId
    The ID of the Meraki network for which you want to update the VLAN settings.
     
    .PARAMETER VlansEnabled
    Boolean indicating whether to enable (true) or disable (false) VLANs for the network.
     
    .EXAMPLE
    Set-MerakiNetworkApplianceVLANsSettings -AuthToken "your-api-token" -NetworkId "L_9817349871234" -VlansEnabled $true
     
    This example enables VLANs for the specified network.
     
    .NOTES
    For more information about the Meraki Dashboard API, see https://developer.cisco.com/meraki/api-v1/.
    #>

        [CmdletBinding()]
        param (
            [parameter(Mandatory=$true)]
            [string]$AuthToken,
            [parameter(Mandatory=$true)]
            [string]$NetworkId,
            [Parameter(Mandatory = $true)]
            [bool]$VlansEnabled
        )
    
        try {
            $header = @{
                "X-Cisco-Meraki-API-Key" = $AuthToken
                "content-type" = "application/json; charset=utf-8"
            }
    
            $body = @{
                "vlansEnabled" = $VlansEnabled
            } | ConvertTo-Json
    
            $url = "https://api.meraki.com/api/v1/networks/$NetworkId/appliance/vlans/settings"
    
            $response = Invoke-RestMethod -Method Put -Uri $url -Header $header -Body $body
            return $response
        }
        catch {
            Write-Host $_
        }
    }