CRUD on ThingModels

Examples of CRUD Operation on a ThingModel:

CREATE:

Create PhidgetServo Thing Model
#
Create: 
    PhidgetServoModel: 
      ServoProtocolURL: "phid://"
      PhidgetDeviceType: "PhidgetAdvancedServo"
      DeviceInterfaceIndex: 0
      ServoAngle: 110

CREATE RESULT:

Create PhidgetServoModel Result
#
Create(Status: "Success"):
  PhidgetServoModel: 
    PhidServoId: "KNJN2YRVAAAAUAABA7LIQ4Y6" 
    ServoProtocolURL(Status: "Success+Created:1:1457384153653;", Value: "phid://")
    DeviceInterfaceIndex(Status: "Success+Created:1:1457384153653;", Value: "0")
    PhidgetDeviceType(Status: "Success+Created:1:1457384153653;", Value: "PhidgetAdvancedServo")
    ServoAngle(Status: "Success+Created:1:1457384153654;", Value: "110")

Note: If a ThingModel is combined with a ThingFacet, creation of a ThingModel results in instantiating (Trigger) of a ThingFacet action.


UPDATE:

PhidgetServo Thing Model
#
Query: 
  Find(format: "version"):
    PhidgetServoModel as: "var.PS"):
      PhidServoId(ne: "")
  SetResponseData: 
    key: Message.Value.Find.Result.PhidgetServoModel.ServoAngle.Value
    value: 120
  Update: 
    from: Result
    Include: $Response.Message.Value.Find


UPDATE Result:

PhidgetServo Thing Model
#
Find(Status: "Success", Format: "version"):
  Result: 
    PhidgetServoModel: 
      PhidServoId: "KNJPIFR6AAAAUAABA67ZRBQO" 
      PhidgetDeviceType(Value: "PhidgetAdvancedServo", Version: "1")
      ServoAngle(Version: "1", Value: "120")
      DeviceInterfaceIndex(Value: "0", Version: "1")
      ServoProtocolURL(Value: "phid://", Version: "1")

Note: If a ThingModel is combined with a ThingFacet updating a ThingModel attribute results in Trigger of a Action if that attribute is associated with an action.


DELETE:

Delete PhidgetServoModel Thing Model
#
Query: 
  DeleteAll: 
    PhidgetServoModel: 
      PhidServoId(ne: "")


DELETE Result

Delete PhidgetServoModel Thing Model Result
#
DeleteAll(Status: "Success"):
  Result: 
    PhidgetServoModel: 
      PhidServoId: "KNJOOOBZAAAAUAABA72MMI6E"
      PhidgetDeviceType: "PhidgetAdvancedServo"
      ServoAngle: 110
      DeviceInterfaceIndex: 0
      ServoProtocolURL: "phid://"

Note: If a ThingModel is combined with a ThingFacet, creation of a ThingModel results in deleting an instance results in cleanup of connections with actual things as per the protocol Handler used.



FIND

PhidgetServo Thing Model
#
Query: 
  Find(format: "all"):
    PhidgetServoModel:
      PhidServoId(ne: "")


Find result: Format="all" - returns all the internal attribute data as well.

PhidgetServoModel ThingModel Find Result
#
Find(Status: "Success", Format: "all"):
  Result: 
    PhidgetServoModel(QName: "Atomiton.PhidgetServos.PhidgetServoModel"):
      PhidServoId: "KNJOOOBZAAAAUAABA72MMI6E" 
      PhidgetDeviceType(Value: "PhidgetAdvancedServo", Known: "PhidgetAdvancedServo", Version: "1", Timestamp: "1457384798266", DateTime: "2016-03-07 13:06:38.266", QName: "Atomiton.PhidgetServos.PhidgetServoModel.PhidgetDeviceType", FName: "PhidgetDeviceType")
      ServoAngle(Value: "110", Known: "110", Version: "1", Timestamp: "1457384798266", DateTime: "2016-03-07 13:06:38.266", QName: "Atomiton.PhidgetServos.PhidgetServoModel.ServoAngle", FName: "ServoAngle")
      DeviceInterfaceIndex(Value: "0", Known: "0", Version: "1", Timestamp: "1457384798266", DateTime: "2016-03-07 13:06:38.266", QName: "Atomiton.PhidgetServos.PhidgetServoModel.DeviceInterfaceIndex", FName: "DeviceInterfaceIndex")
      ServoProtocolURL(Value: "phid://", Known: "phid://", Version: "1", Timestamp: "1457384798265", DateTime: "2016-03-07 13:06:38.265", QName: "Atomiton.PhidgetServos.PhidgetServoModel.ServoProtocolURL", FName: "ServoProtocolURL")


Note: