Update Device Group Properties

Last updated on 24 February, 2021

You can use LogicMonitor’s REST API to programmatically update device properties.  There are two ways to do this:

  1. by making a PATCH request to the device group resource – you can update only the customProperties object and keep the remaining fields the same.  By using opType = replace, you can replace the values of one or more properties within the customProperties object.
  2. by updating the specific property value via the device group property resource

Note: As with all of our API calls, authentication is required.

Update a property via the device group property resource

HTTP Method: PUT

Resource URI: /device/groups/{groupID}/properties/{propertyName}

Where groupID is the ID of the group you’d like to update a property for, which you can get from the group resource.  propertyName is the name of the property you’d like to update (in all lower case).

You’ll need to include the updated value in your PUT request.

Example

The following Python script updates the value of property proddc for group 43:

#!/bin/env python

import requests
import json
import hashlib
import base64
import time
import hmac

#Account Info
AccessId ='48v2wRzfK94y53sq5EuF'
AccessKey ='H_D9i(f5~B^U36^K6i42=^nS~e75gy382Bf6{)P+'
Company = 'api'

#Request Info
httpVerb ='PUT'
resourcePath = '/device/groups/43/properties/proddc'
queryParams =''
data = '{"value":"DC"}'

#Construct URL 
url = 'https://'+ Company +'.logicmonitor.com/santaba/rest' + resourcePath + queryParams

#Get current time in milliseconds
epoch = str(int(time.time() * 1000))

#Concatenate Request details
requestVars = httpVerb + epoch + data + resourcePath

#Construct signature
hmac1 = hmac.new(AccessKey.encode(),msg=requestVars.encode(),digestmod=hashlib.sha256).hexdigest()
signature = base64.b64encode(hmac1.encode())

#Construct headers
auth = 'LMv1 ' + AccessId + ':' + signature.decode() + ':' + epoch
headers = {'Content-Type':'application/json','Authorization':auth}}

#Make request
response = requests.put(url, data=data, headers=headers)

#Print status and body of response
print('Response Status:',response.status_code)
print('Response Body:',response.content)
Python 3
In This Article