Update a Device Model

put

/iot/api/v2/deviceModels/{urn}

Update a device model

Request

Supported Media Types
Path Parameters
Query Parameters
  • This resource allows to update a device model. It is potentially hazardous operation. Integrations or analytic explorations may depend on message formats defined by this device model. Updating a device model is also dangerous because any devices that implement the old device model specification won't work with your new changes (unless they are backwards compatible)By passing this query parameter, the caller acknowledges their willingness to proceed.
Body ()
Root Schema : DeviceModelImpl_create
Type: object
Show Source
Nested Schema : actions
Type: array
Property description was not set
Show Source
Nested Schema : attributes
Type: array
Property description was not set
Show Source
Nested Schema : formatObjects
Type: array
Property description was not set
Show Source
Nested Schema : formats
Type: array
Property description was not set
Show Source
Nested Schema : DeviceModelActionModel_create
Type: object
Show Source
Nested Schema : arguments
Type: array
Property description was not set
Show Source
Nested Schema : DeviceModelActionArgumentModel_create
Type: object
Show Source
Nested Schema : DeviceModelAttributeModel_create
Type: object
Show Source
Nested Schema : MessageFormatModel_create
Type: object
Show Source
Nested Schema : MessageFormatValue_create
Type: object
Show Source
Nested Schema : fields
Type: array
Property description was not set
Show Source
Nested Schema : MessageFormatField_create
Type: object
Show Source
Back to Top

Response

Supported Media Types

200 Response

Successfully processed.
Body ()
Root Schema : DeviceModelImpl_receive
Type: object
Show Source
Nested Schema : actions
Type: array
Property description was not set
Show Source
Nested Schema : attributes
Type: array
Property description was not set
Show Source
Nested Schema : formatObjects
Type: array
Property description was not set
Show Source
Nested Schema : DeviceModelActionModel_receive
Type: object
Show Source
Nested Schema : arguments
Type: array
Property description was not set
Show Source
Nested Schema : DeviceModelActionArgumentModel_receive
Type: object
Show Source
Nested Schema : DeviceModelAttributeModel_receive
Type: object
Show Source
Nested Schema : MessageFormatModel_receive
Type: object
Show Source
Nested Schema : MessageFormatValue_receive
Type: object
Show Source
Nested Schema : fields
Type: array
Property description was not set
Show Source
Nested Schema : MessageFormatField_receive
Type: object
Show Source

400 Response

Bad Request. The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications.

401 Response

Unauthorized. The request requires user authentication.

403 Response

Forbidden. The server understood the request, but is refusing to fulfill it. Authorization will not help and the request SHOULD NOT be repeated.

404 Response

Not Found. The server has not found anything matching the Request-URI. No indication is given of whether the condition is temporary or permanent.

406 Response

Request Not Acceptable. The resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request.

415 Response

Unsupported Media Type. The request entity has a media type which the server or resource does not support.
Back to Top

Examples

curl -X PUT 
   -u <username>:<password>
   -H 'Accept: application/json'
   -H 'Content-Type: application/json'
   https://iotserver/iot/api/v2/deviceModels/{urn}

Example of Request Body

The following example shows the content of the request body in JSON format:


{
"urn":"urn:example:unique:identifier:of:the:resource:74d0",
"name":"Human friendly name of the device model",
"description":"Optional description of the device model",
"attributes":[
{
"range":"For NUMBERs and INTEGERs only, defines the acceptable range of values such as '1,10'. This range is inclusive.",
"alias":"Optional alternative name. This property is deprecated and should not be used for new or updated device models.",
"writable":false,
"description":"A human friendly description",
"name":"A name for the attribute. Name can contain only A-Z, a-z, 0-9 or underscore (_) characters.",
"type":"The data typeOne of [STRING, NUMBER, BOOLEAN, INTEGER, DATETIME, URI]."
}
],
"actions":[
{
"argType":"If it is specified, then there is a single required argument. If neither this nor arguments field is present, then action has no arguments. Is not allowed when arguments field is specified.One of [STRING, NUMBER, BOOLEAN, INTEGER, DATETIME, URI].",
"range":"For NUMBERs and INTEGERs only, defines the acceptable range of values such as '1,10'. This range is inclusive. Is not allowed when arguments field is specified.",
"alias":"Optional alternative name. This property is deprecated and should not be used for new or updated device models.",
"description":"A human friendly description",
"arguments":[
{
"range":"For NUMBERs and INTEGERs only, defines the acceptable range of values such as '1,10'. This range is inclusive.",
"description":"A human friendly description",
"name":"A name for the action",
"type":"Argument type.One of [STRING, NUMBER, BOOLEAN, INTEGER, DATETIME, URI]."
}
],
"name":"A name for the action"
}
],
"formats":[
{
"urn":"urn:example:unique:identifier:of:the:resource:1a8c",
"name":"Message format name",
"description":"Message format description",
"type":"Message format typeOne of [DATA, ALERT, EXPLORATION, EXPLORATION_DATA, EXPLORATION_ALERT, IACS_DATA, IACS_ALERT].",
"deviceModel":"Device model that created this message format",
"value":{
"fields":[
{
"optional":false,
"name":"Name of the message format field. Name can contain only A-Z, a-z, 0-9 or underscore (_) characters.",
"type":"Type of the message format fieldOne of [STRING, NUMBER, BOOLEAN, INTEGER, DATETIME, URI]."
}
]
}
}
]
}

Example of Response Body

The following example shows the content of the response body in JSON format:


{
"urn":"urn:example:unique:identifier:of:the:resource:7b11",
"name":"Human friendly name of the device model",
"description":"Optional description of the device model",
"system":false,
"draft":false,
"created":1469184297746,
"createdAsString":"2016-07-22T10:44:57.746Z",
"lastModified":1469184297746,
"lastModifiedAsString":"2016-07-22T10:44:57.746Z",
"userLastModified":"Name of the user who last to modify this device model",
"attributes":[
{
"range":"For NUMBERs and INTEGERs only, defines the acceptable range of values such as '1,10'. This range is inclusive.",
"alias":"Optional alternative name. This property is deprecated and should not be used for new or updated device models.",
"writable":false,
"description":"A human friendly description",
"name":"A name for the attribute. Name can contain only A-Z, a-z, 0-9 or underscore (_) characters.",
"type":"The data typeOne of [STRING, NUMBER, BOOLEAN, INTEGER, DATETIME, URI]."
}
],
"actions":[
{
"argType":"If it is specified, then there is a single required argument. If neither this nor arguments field is present, then action has no arguments. Is not allowed when arguments field is specified.One of [STRING, NUMBER, BOOLEAN, INTEGER, DATETIME, URI].",
"range":"For NUMBERs and INTEGERs only, defines the acceptable range of values such as '1,10'. This range is inclusive. Is not allowed when arguments field is specified.",
"alias":"Optional alternative name. This property is deprecated and should not be used for new or updated device models.",
"description":"A human friendly description",
"arguments":[
{
"range":"For NUMBERs and INTEGERs only, defines the acceptable range of values such as '1,10'. This range is inclusive.",
"description":"A human friendly description",
"name":"A name for the action",
"type":"Argument type.One of [STRING, NUMBER, BOOLEAN, INTEGER, DATETIME, URI]."
}
],
"name":"A name for the action"
}
],
"formats":[
{
"urn":"urn:example:unique:identifier:of:the:resource:6f9e",
"name":"Message format name",
"description":"Message format description",
"type":"Message format typeOne of [DATA, ALERT, EXPLORATION, EXPLORATION_DATA, EXPLORATION_ALERT, IACS_DATA, IACS_ALERT].",
"deviceModel":"Device model that created this message format",
"value":{
"fields":[
{
"optional":false,
"name":"Name of the message format field. Name can contain only A-Z, a-z, 0-9 or underscore (_) characters.",
"type":"Type of the message format fieldOne of [STRING, NUMBER, BOOLEAN, INTEGER, DATETIME, URI]."
}
]
},
"explorationID":"ID of an exploration assocoated with the message format",
"severity":"The severity of exploration's alert message format",
"sourceType":"Type of the source from which format was createdOne of [UNKNOWN, DEVICE_MODEL, EXPLORATION, ANALYTICS].",
"sourceId":"728210852f3d-3877"
}
],
"devicePolicies":{
"links":[
{
"rel":"self",
"href":"https://iotserver/iot/api/version/resource/path"
},
{
"rel":"canonical",
"href":"https://iotserver/iot/api/version/resource/path"
}
]
}
}



Complete cURL Example

The following example shows a complete cURL command that you can use to perform the described operation:

curl -X PUT 
   -u <username>:<password>
   -H 'Accept: application/json'
   -H 'Content-Type: application/json'
   -d '{"urn":"urn:example:unique:identifier:of:the:resource:74d0","name":"Human friendly name of the device model","description":"Optional description of the device model","attributes":[{"range":"For NUMBERs and INTEGERs only, defines the acceptable range of values such as '1,10'. This range is inclusive.","alias":"Optional alternative name. This property is deprecated and should not be used for new or updated device models.","writable":false,"description":"A human friendly description","name":"A name for the attribute. Name can contain only A-Z, a-z, 0-9 or underscore (_) characters.","type":"The data typeOne of [STRING, NUMBER, BOOLEAN, INTEGER, DATETIME, URI]."}],"actions":[{"argType":"If it is specified, then there is a single required argument. If neither this nor arguments field is present, then action has no arguments. Is not allowed when arguments field is specified.One of [STRING, NUMBER, BOOLEAN, INTEGER, DATETIME, URI].","range":"For NUMBERs and INTEGERs only, defines the acceptable range of values such as '1,10'. This range is inclusive. Is not allowed when arguments field is specified.","alias":"Optional alternative name. This property is deprecated and should not be used for new or updated device models.","description":"A human friendly description","arguments":[{"range":"For NUMBERs and INTEGERs only, defines the acceptable range of values such as '1,10'. This range is inclusive.","description":"A human friendly description","name":"A name for the action","type":"Argument type.One of [STRING, NUMBER, BOOLEAN, INTEGER, DATETIME, URI]."}],"name":"A name for the action"}],"formats":[{"urn":"urn:example:unique:identifier:of:the:resource:1a8c","name":"Message format name","description":"Message format description","type":"Message format typeOne of [DATA, ALERT, EXPLORATION, EXPLORATION_DATA, EXPLORATION_ALERT, IACS_DATA, IACS_ALERT].","deviceModel":"Device model that created this message format","value":{"fields":[{"optional":false,"name":"Name of the message format field. Name can contain only A-Z, a-z, 0-9 or underscore (_) characters.","type":"Type of the message format fieldOne of [STRING, NUMBER, BOOLEAN, INTEGER, DATETIME, URI]."}]}}]}'
   https://iotserver/iot/api/v2/deviceModels/urn:example:unique:identifier:of:the:resource:32a5



Note that in the request, https://iotserver will be replaced by the name and port of your assigned IoT Cloud Service instance. The format of the Cloud Service instance is https://myinstance-myidentitydomain.iot.us.oraclecloud.com and the default port is 443.
Back to Top