UNPKG

@softchef/cdk-iot-device-management

Version:

IoT device management is composed of things, thing types, thing groups, jobs, files API services. The constructs can be used independently, that are based on full-managed service to create an API Gateway & Lambda function.

484 lines (369 loc) 8.83 kB
## File API Documentation - [Create Category](#post-categories) - [Create Files](#post-files) - [Delete Category](#delete-categoriescategoryid) - [Delete Files](#delete-files) - [Get Category](#get-categoriescategoryid) - [Get Files](#get-fileschecksumversionsversion) - [List Categories](#get-categories) - [List Files](#get-files) - [List Files by Category](#get-categoriescategoryidfiles) - [Update Category](#put-categoriescategoryid) - [Update Files](#put-files) --- ### *POST* /categories Create a new file category **Body** | Name | Schema | Description | | ---- | ------ | ----------- | | name* | String | Category's name | | parentId | String | Parent category's ID | | description | String | Category's description | **Response Success Body** ``` { created: true } ``` **Response Failure Body** ``` { "error": "{reason}" } ``` **Response Status** | HTTP Status Code | Description | | ---------------- | ----------- | | 200 | Create success | | 404 | Parent category id not found | | 422 | Missing require field / Category already exists / Variable type incorrect | --- ### *POST* /files Create files **Body** ``` { files: [ { "categoryId": "{file's category ID}", "version": "{file's version}", "checksum": "{an encrypt md5 / crc32 / sha1 value}", "checksumType" : "{file's checksum type}", "location": "{file' path}", "locale"": "{file's locale}", "summary"": "{file's summary}", "description"": "{file's description}", }, ...more file objects ] } ``` | Name | Schema | Description | | -------- | ------- | ---- | | version* | String | File's version| | categoryId* | String | From category | | checksum* | String | An encrypt md5 / crc32 / sha1 value | | checksumType* | 'md5' \| 'crc32' \| 'sha1' | File's checksum type| | location* | URI | File's path| | locale* | String | File's locale | | summary* | string (Allow empty string) | File's summary| | description* | String (Allow empty string) | File's description | **Response Success Body** ``` { "created": true } ``` **Response Failure Body** ``` { "error": "{reason}" } ``` **Response Status** | HTTP Status Code | Description | | ---------------- | ----------- | | 200 | Create file success | | 404 | Category ID not found | | 422 | File already exists / Variable type incorrect | --- ### *DELETE* /categories/{categoryId} Delete category by category ID **Path Parameters** | Name | Description | | ---- | ----------- | | categoryId | Category's ID | **Response Success Body** ``` { "deleted": true } ``` **Response Failure Body** ``` { "error": "{reason}" } ``` **Response Status** | HTTP Status Code | Description | | ---------------- | ----------- | | 200 | Delete success | --- ### *DELETE* /files Delete files **Body** ``` { files: [ { "fileId": "{file' ID}", }, ...more file objects ] } ``` **Response Success Body** ``` { "deleted": true } ``` **Response Failure Body** ``` { "error": "{reason}" } ``` **Response Status** | HTTP Status Code | Description | | ---------------- | ----------- | | 200 | Delete success | --- ### *GET* /categories/{categoryId} Get category by category ID, if category is root will return children category. **Path Parameters** | Name | Description | | ---- | ----------- | | categoryId | Category's ID | **Response Success Body** ``` { category: { "categoryId": "{the category id}", "parentId": "{parent category id}", "description": "{category's description}", "createdAt": "{created timestamp}", "updatedAt": "{last updated timestamp}", } } ``` **Response Status** | HTTP Status Code | Description | | ---------------- | ----------- | | 200 | Get Category Success | | 404 | Category ID not found | --- ### *GET* /files/{checksum}/versions/{version} Get file by checksum & version **Path Parameters** | Name | Description | | ---- | ----------- | | checksum | File's checksum | | version | File's version | **Response Success Body** ``` { files: [ { "location": "{file' path}", "checksum": "{an encrypt md5 / crc32 / sha1 value}", "checksumType" : "{file's checksum type}", "version": "{file's version}", "locale": "{file's locale}", "summary": "{file's summary}" "categoryId": "{file's category ID}", "description": "{file's description}", "createdAt": "{created time}", "updatedAt": "{last updated time}" }, ...more file objects ], "nextToken": "{Token for next data}" } ``` **Response Status** | HTTP Status Code | Description | | ---------------- | ----------- | | 200 | Create success | | 404 | File not found | --- ### *GET* /categories Get root category list **Query String Parameters** | Name | Schema | Description | | ---- | ------ | ----------- | | parentId | String | Parent category's ID | | nextToken | String | Token for next data | **Response Success Body** ``` { categories: [ { "categoryId": "{the category id}", "parentId": "{parent category id}", "description": "{category's description}", "createdAt": "{created timestamp}", "updatedAt": "{last updated timestamp}", }, ... more category object ] "nextToken": "{Token for next data}" } ``` **Response Status** | HTTP Status Code | Description | | ---------------- | ----------- | | 200 | List category success | --- ### *GET* /files List files **Query String Parameters** | Name | Schema | Description | | ---- | ------ | ----------- | | nextToken | String | Token for next data | **Response Success Body** ``` { "files": [ { "location": "{file' path}", "checksum": "{an encrypt md5 / crc32 / sha1 value}", "checksumType" : "{file's checksum type}", "version": "{file's version}", "locale": "{file's locale}", "summary": "{file's summary}" "categoryId": "{file's category ID}", "description": "{file's description}", "createdAt": "{created time}", "updatedAt": "{last updated time}" }, ...more file objects ] "nextToken": "{Token for next data}" } ``` **Response Status** | HTTP Status Code | Description | | ---------------- | ----------- | | 200 | List file success | --- ### *GET* /categories/{categoryId}/files List files by category ID **Path Parameters** | Name | Description | | ---- | ----------- | | categoryId | Category's ID | **Query String Parameters** | Name | Schema | Description | | ---- | ------ | ----------- | | locale | String | File's locale | | nextToken | String | Token for next data | **Response Success Body** ``` { "files": [ { "fileId": "{file' ID}", "location": "{file' path}", "checksum": "{an encrypt md5 / crc32 / sha1 value}", "checksumType" : "{file's checksum type}", "version": "{file's version}", "locale": "{file's locale}", "summary": "{file's summary}" "categoryId": "{file's category ID}", "description": "{file's description}", "createdAt": "{created time}", "updatedAt": "{last updated time}" }, ...more file objects ] "nextToken": "{Token for next data}" } ``` **Response Status** | HTTP Status Code | Description | | ---------------- | ----------- | | 200 | List files success | | 404 | Category ID not found | --- ### *PUT* /categories/{categoryId} Update category description by category ID **Path Parameters** | Name | Description | | ---- | ----------- | | categoryId | Category's ID | **Body** | Name | Schema | Description | | ---- | ------ | ----------- | | description* | String | Category's description | **Response Success Body** ``` { "updated": true } ``` **Response Failure Body** ``` { "error": "{reason}" } ``` **Response Status** | HTTP Status Code | Description | | ---------------- | ----------- | | 200 | Update success | | 404 | Category ID not found | | 422 | Missing require description / Variable type incorrect | --- ### *PUT* /files Update files summary and description by file ID. **Path Parameters** | Name | Description | | ---- | ----------- | | fileId | File's ID | **Body** ``` { files: [ { "fileId": "{file' ID}", "summary"": "{file's summary}", "description"": "{file's description}", }, ...more file objects ] } ``` | Name | Schema | Description | | -------- | ------- | ---- | | fileId* | String | File's ID| | summary* | string (Allow empty string) | File's summary| | description* | String (Allow empty string) | File's description | **Response Success Body** ``` { "updated": true } ``` **Response Failure Body** ``` { "error": "{reason}" } ``` **Response Status** | HTTP Status Code | Description | | ---------------- | ----------- | | 200 | Update success | | 422 | Variable type incorrect |