Public/Invoke-MerakiNetworkModifySmDevicesTags.ps1
function Invoke-MerakiNetworkModifySmDevicesTags { <# .SYNOPSIS Modifies tags for devices in a Meraki network. .DESCRIPTION The Invoke-MerakiNetworkModifySmDevicesTags function allows you to modify tags for devices in a specified Meraki network by providing the authentication token, network ID, and a JSON formatted string of tags configuration. .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 modify device tags. .PARAMETER TagsConfig A JSON formatted string of tags configuration. .EXAMPLE $config = [PSCustomObject]@{ wifiMacs = [ "00:11:22:33:44:55" ] ids = @( "1284392014819", "2983092129865" ) serials = @( "Q234-ABCD-0001", "Q234-ABCD-0002", "Q234-ABCD-0003" ) scope = [ "withAny, old_tag" ] tags = [ "tag1", "tag2" ] updateAction = "add" } $configJson = $config | ConvertTo-Json Invoke-MerakiNetworkModifySmDevicesTags -AuthToken "your-api-token" -NetworkId "1234" -TagsConfig $configJson This example modifies tags for devices in the Meraki network with ID "1234" with the specified tags configuration. .NOTES The function requires the "Invoke-RestMethod" cmdlet to be available. The function returns the response from the API if the modification is successful, otherwise, it displays an error message. #> [CmdletBinding()] param ( [parameter(Mandatory=$true)] [string]$AuthToken, [parameter(Mandatory=$true)] [string]$NetworkId, [parameter(Mandatory=$true)] [string]$TagsConfig ) try { $header = @{ "X-Cisco-Meraki-API-Key" = $AuthToken "content-type" = "application/json; charset=utf-8" } $url = "https://api.meraki.com/api/v1/networks/$NetworkId/sm/devices/modifyTags" $body = $TagsConfig $response = Invoke-RestMethod -Method Post -Uri $url -Header $header -UserAgent "MerakiPowerShellModule/1.0.2 DocNougat" -Body $body return $response } catch { Write-Debug $_ Throw $_ } } |