@@ -131,6 +131,26 @@ func Find(parentID int32, name string, client *client.LMSdkGo) (*models.DeviceGr
131131	return  deviceGroup , nil 
132132}
133133
134+ // FindDeviceGroupsByName searches for a device group by name. 
135+ func  FindDeviceGroupsByName (name  string , client  * client.LMSdkGo ) ([]* models.DeviceGroup , error ) {
136+ 	params  :=  lm .NewGetDeviceGroupListParams ()
137+ 	fields  :=  "name,id,parentId,subGroups" 
138+ 	params .SetFields (& fields )
139+ 	filter  :=  fmt .Sprintf ("name:\" %s\" " , name )
140+ 	params .SetFilter (& filter )
141+ 	restResponse , err  :=  client .LM .GetDeviceGroupList (params )
142+ 	if  err  !=  nil  {
143+ 		return  nil , err 
144+ 	}
145+ 
146+ 	var  deviceGroups  []* models.DeviceGroup 
147+ 	if  restResponse  !=  nil  &&  restResponse .Payload  !=  nil  {
148+ 		deviceGroups  =  restResponse .Payload .Items 
149+ 	}
150+ 
151+ 	return  deviceGroups , nil 
152+ }
153+ 
134154// Exists returns true if the specified device group exists in the account 
135155func  Exists (parentID  int32 , name  string , client  * client.LMSdkGo ) bool  {
136156	deviceGroup , err  :=  Find (parentID , name , client )
@@ -185,6 +205,19 @@ func DeleteSubGroup(deviceGroup *models.DeviceGroup, name string, client *client
185205	return  nil 
186206}
187207
208+ // DeleteGroup deletes a device group with the specified deviceGroupID. 
209+ func  DeleteGroup (deviceGroup  * models.DeviceGroup , client  * client.LMSdkGo ) error  {
210+ 	params  :=  lm .NewDeleteDeviceGroupByIDParams ()
211+ 	params .ID  =  deviceGroup .ID 
212+ 	deleteChildren  :=  true 
213+ 	params .SetDeleteChildren (& deleteChildren )
214+ 	deleteHard  :=  true 
215+ 	params .SetDeleteHard (& deleteHard )
216+ 	log .Infof ("Deleting deviceGroup:\" %s\"  ID:\" %d\"  ParentID:\" %d\" " , * deviceGroup .Name , deviceGroup .ID , deviceGroup .ParentID )
217+ 	_ , err  :=  client .LM .DeleteDeviceGroupByID (params )
218+ 	return  err 
219+ }
220+ 
188221func  create (name , appliesTo  string , disableAlerting  bool , parentID  int32 , client  * client.LMSdkGo ) (* models.DeviceGroup , error ) {
189222	params  :=  lm .NewAddDeviceGroupParams ()
190223	params .SetBody (& models.DeviceGroup {
0 commit comments