Public/Set-MrkDevice.ps1

function Set-MrkDevice {
    <#
    .SYNOPSIS
    Sets the properties of the device
    .DESCRIPTION
    blah
    .EXAMPLE
    Set-MrkDevice -networkId X_111122223639801111 -Serial Q2XX-XXXX-XXXX -devicename my-device -tag thistag -lat 52.12 -lng 41.21
    .PARAMETER networkId
    id of a network get one using: (Get-MrkNetwork).id
    .PARAMETER serial
    Serial number of the physical device that is added to the network.
    .PARAMETER devicename
    Optional parameter to specify the name of the device
    .PARAMETER address
    Optional parameter to specify the address of the device
    .PARAMETER tag
    Optional parameter to specify the tag(s) to identify the device
    .PARAMETER lat
    Optional parameter to specify the latitude value of the device
    .PARAMETER lng
    Optional parameter to specify the longitude value of the device
    #>

    [CmdletBinding()]
    Param (
        [Parameter(Mandatory)][ValidateNotNullOrEmpty()][String]$networkId,
        [Parameter(Mandatory)][ValidateNotNullOrEmpty()][Alias("serialNr")][String]$serial,
        [Parameter()][ValidateNotNullOrEmpty()][String]$devicename,
        [Parameter()][string]$address,
        [Parameter()][String]$tag,
        [Parameter()][String]$lat,
        [Parameter()][String]$lng
    )

    #retrieve current settings from the device and populate $body
    $deviceProps = Get-MrkDevice -networkID $networkId -Serial $serial;
    Write-Host current settings:
    $deviceProps
    if ("" -eq $devicename){$devicename = $deviceProps.name};
    if ("" -eq $address){$address = $deviceProps.address};
    if ("" -eq $tag){$tag = $deviceProps.tags};
    if ("" -eq $lat){$lat = $deviceProps.lat};
    if ("" -eq $lng){$lng = $deviceProps.lng};

    $body = @{
        "name"=$devicename
        "tags"=$tag
        "lat"=$lat
        "lng"=$lng
        "address"=$address
        "moveMapMarker"=$MoveMapMarker
    }

    convertto-json ($body)

    $request = Invoke-MrkRestMethod -Method PUT -ResourceID ('/networks/' + $networkId + '/devices/' + $serial) -Body $body  
    return $request
}