Create an Import Request

post

/iot/api/v2/imports

Creates an import request object that provides status of the operation.
The import process is a two phase protocol with some user input.
  1. The first phase of the protocol requires the user to upload a file with the import data to Oracle IoT Cloud Service. The server performs the following tasks:
    1. creates a record for the import operation and stores the file
    2. validates all import entries (applications / device models / settings etc)
    3. sends the response to the user which includes import request identifier and list of valid and conflicted entries.
  2. The second phase of the protocol allows the user to proceed with the import (it is assumed that the user provides information about resolution for conflicted entries). These steps are done:
    1. re-validates all import entries (applications / device models / settings etc)
    2. creates or updates entries
    3. sends the summary report with information about the entries that are successfully imported; if import fails the report has information on what import entry caused the failure.
The data file accepted for import can be either a previously exported .iot archive containing application, device model(s), and/or settings, or a .json file containing the JSON representation of a device model. The device model data file can be exported from an instance of IoT CS, or be composed by the user who is familiar with the device model JSON format and rules.

Request

Supported Media Types
Body ()
Root Schema : ImportRequestImpl_create
Type: object
Show Source
Back to Top

Response

Supported Media Types

201 Response

Successfully processed.
Body ()
Root Schema : ImportRequestImpl_receive
Type: object
Show Source
Nested Schema : ConflictReport_receive
Type: object
Show Source
Nested Schema : applications
Type: array
Application part of the report
Show Source
Nested Schema : deviceModels
Type: array
Device model part of the report
Show Source
Nested Schema : settings
Type: array
Setting part of the report
Show Source
Nested Schema : ConflictReportImpl$ApplicationItem_receive
Type: object
Show Source
Nested Schema : AppConflicts_receive
Type: object
Show Source
Nested Schema : conflictItems
Type: object
Additional Properties Allowed
Show Source
  • A map of the following type: Map<String, String>
Property description was not set
Show Source
Nested Schema : genericConflicts
Type: array
Property description was not set
Show Source
Nested Schema : ConflictReportImpl$ConflictItem_receive
Type: object
Show Source
Nested Schema : ConflictReportImpl$DeviceModelItem_receive
Type: object
Show Source
Nested Schema : ConflictItem_receive
Type: object
Show Source
Nested Schema : ConflictReportImpl$SettingItem_receive
Type: object
Show Source
Nested Schema : conflicts
Type: array
List of conflicts for the setting
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.
Back to Top

Examples

curl -X POST 
   -u <username>:<password>
   -H 'Accept: application/json'
   https://iotserver/iot/api/v2/imports

Example of Request Body

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


{
}

Example of Response Body

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


{
"id":"653d1b991e32-7fd5",
"status":"The state associated with the request.One of [CREATED, VERIFIED, CONFLICT, RUNNING, COMPLETED, FAILED].",
"description":"Import request description.",
"lastModifiedBy":"Name of the user who last modified(created/completed) this request.",
"created":1469184297746,
"createdAsString":"2016-07-22T10:44:57.746Z",
"completed":12345,
"completedAsString":"Date of the request completion represented as ISO string.",
"content":{
"applications":[
{
"id":"1fa657ca632f-45e2",
"name":"Application name",
"conflicts":{
"conflictItems":{
"conflictItems_key1":"conflictItems_value1",
"conflictItems_key2":"conflictItems_value2",
"conflictItems_key3":"conflictItems_value3"
}
}
}
],
"deviceModels":[
{
"urn":"urn:example:unique:identifier:of:the:resource:1f67",
"name":"Device model name",
"conflict":{
}
}
],
"settings":[
{
"group":"Group name of the setting",
"name":"Setting name"
}
]
}
}



Complete cURL Example

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

curl -X POST 
   -u <username>:<password>
   -H 'Accept: application/json'
   -d '{}'
   https://iotserver/iot/api/v2/imports



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