Video Security Monitoring R3 API Document
Introduction
These APIs provide services for manipulating ote-stack platform on AI Edge Blueprint.
API Definitions
User Management
Login
POST /v1/authorization
Description
An access token, which contains user information and expiry time, will be returned by presenting username and password. The client should includes the token in the authorization header of HTTP request to access subsequent request until the token is expired. During the validity period (1 hour), the new token with new expiry time can be obtained through the Update token API with current token.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
user | string | yes | user name | |
password | string | yes | user password |
Response codes
Code | Description |
---|---|
200 | Successful |
500 | Unexpected internal errors |
422 | Parameter validation error |
Example
Update Token
PUT /v1/authorization
Description
Returns a new authorization token with new expiry time.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
Authorization | string | yes | token string in Authorization Header |
Response codes
Code | Description |
---|---|
200 | Successful |
500 | Unexpected internal errors |
422 | Parameter validation error |
Example
Create User
POST /v1/user
Description
Create a user without access token authorization. This user will be available after system administrator approval.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
user | string | yes | User name | |
password | string | yes | Password should be 8-20 characters long with at least 1 uppercase, 1 lowercase and 1 number. | |
phone | string | yes | Phone number | |
isAdmin | bool | yes | true: general administrator, false: general user | |
realName | string | yes | Real name |
Response code
Code | Description |
---|---|
200 | Success |
500 | Unexpected internal errors |
422 | Parameter validation error |
Example
Update Password
PUT /v1/user
Description
Change the password of the logged-in user.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
oldPassword | string | yes | old password | |
password | string | yes | new password |
Response code
Code | Description |
---|---|
200 | Success |
500 | Unexpected internal errors |
422 | Parameter validation error |
Example
Delete User
DELETE /v1/admin/user/[userid]
Description
This can only be done by general administrator and system administrator. General administrator can delete user in own business namespace while system administrator can delete all users.
Parameters
Name | type | Required | Default | Description |
---|---|---|---|---|
userid | uint64 | yes | User id that needs to be deleted. |
Response code
Code | Description |
---|---|
200 | Success |
500 | Unexpected internal errors |
422 | Parameter validation error |
Example
Reset Password
PUT /v1/admin/user/[userId]/password
Description
This can only be done by general administrator and system administrator. General administrator can update user in own business namespace while system administrator can update all users.
Parameters
Name | Type | Required | Description |
---|---|---|---|
userId | uint64 | yes | UserId that needs to update. Located in url path. |
password | string | yes | New password that will be updated.Located in body. |
Response code
Code | Description |
---|---|
200 | Success |
500 | Unexpected internal errors |
422 | Parameter validation error |
Example
Get User List
GET /v1/admin/user
Description
This can only be done by general administrator and system administrator. General administrator can get users in own business namespace while system administrator can get all users.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
orderBy | string | no | id | orderBy allows sorting by id and user_name. |
order | string | no | asc | sort order: asc, desc |
page | int | no | 1 | page number |
pageSize | int | no | 10 | page size |
Response code
Code | Description |
---|---|
200 | Success |
500 | Unexpected internal errors |
422 | Parameter validation error |
Response Parameters
Name | Type | Description |
---|---|---|
id | int | User id |
user | string | User name |
status | int | Status 0: Pending 1: Approved 2: Not Approved 3: Forbidden |
realName | string | Real name |
phone | string | Phone number |
total | int | Total number of users |
createTime | int | Create time of user |
updateTime | int | Update time of user |
Example
Audit User
PUT /v1/admin/user/[userId]
Description
This can only be done by system administrator for auditing new user. The new user will be available to create business namespace after system administrator approval.
Parameters
Name | Type | Required | Description |
---|---|---|---|
userId | uint64 | yes | UserID that needs to be audited. |
status | int | yes | Status 0: Pending 1: Approved 2: Not Approved 3: Forbidden |
Response code
Code | Description |
---|---|
200 | Success |
500 | Unexpected internal errors |
422 | Parameter validation error |
Example
Logout
DELETE /v1/authorization
Description
Logout by deleting the access token.
Response code
Code | Description |
---|---|
200 | Success |
500 | Unexpected internal errors |
422 | Parameter validation error |
Example
Get Authorization Information
GET /v1/authorization
Description
Return the authorization information, such as user name, user role.
Response parameters
Name | Type | Description |
---|---|---|
displayName | string | User name |
hasRepoAccount | bool | Whether or not the user has created a harbor account |
role | int | User role: 0: register user that waiting for approval 1:approved user that do not has business namespace 2:general user 3:business administrator 4:system administrator |
privateProject | bool | Flag to indicate if the project is private. |
enableIngress | bool | Flag to indicate if the ingress is enabled. |
enableAlert | bool | Flag to indicate if the alert information is enabled. |
enableAdminAutoDeploy | bool | Allow deployment that admin submits run automatically without audit. |
Example
Create Sub-User
POST /v1/admin/user
Description
Create a user with access token authorization. This user will has the same business namespace with current logged-in administrator. This can only be done by general administrator and system administrator.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
user | string | yes | user name | |
password | string | yes | password | |
phone | string | yes | phone number | |
isAdmin | bool | yes | true: admin false: general user | |
realName | string | yes | real name |
Response code
Code | Description |
---|---|
200 | Success |
500 | Unexpected internal errors |
422 | Parameter validation error |
Business Management
Create Business
POST /v1/business
Description
Create a new business namespace. This can only be done by admin who do not create business yet.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
name | string | yes | Business name | |
introduce | string | yes | Introduction of business | |
objective | string | yes | purpose for creating business | |
scale | string | yes | the scale of resources excepted to use |
Example
Get Business List
GET /v1/business
Description
Return the business list.
parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
page | int | no | 1 | page |
pageSize | int | no | 10 | page size |
orderBy | string | no | id | orderBy allows sorting by id. |
order | string | no | asc | sort order: asc, desc |
name | string | no | business name filter |
Response parameters
Name | Type | Required | Description |
---|---|---|---|
name | string | yes | business name |
userId | int | yes | user id |
comment | string | yes | audit comment |
status | int8 | yes | status 0: pending 1: approved 2: disapproved 3: deleted |
Example
Get Business
GET /v1/business/id/[id]
Description
Get the specify business.
Parameters
Name | Type | Required | Description |
---|---|---|---|
name | string | yes | business name |
userId | int | yes | use id |
introduce | string | yes | Introduction of business |
objective | string | yes | purpose for creating business |
scale | string | yes | the scale of resources excepted to use |
Example
Audit Business
PUT /v1/business/id/[id]
Description
This can only be done by system administrator. A namespace, named "ns+business_id", will be created in all edge clusters. For example, the business id is 123, then the name of namespace is ns123.
Parameters
Name | Type | Required | Description |
---|---|---|---|
id | string | yes | business id |
comment | string | yes | audit comment |
status | int8 | yes | comment result: 1: approved; 2: disapproved |
Example
Cluster Management
Get Cluster List
GET /v1/cluster
Description
Get all the cluster list.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
clusterLabel | string | no | all | cluster label filter |
page | int | no | 1 | page |
pageSize | int | no | no limited | page size |
Response Parameters
Name | Type | Description |
---|---|---|
clusterName | string | cluster name |
nodeCount | int | number of nodes in the cluster |
isReady | bool | flag to indicate if the cluster is alive |
total | int | total number of clusters under the filter |
Example
Add Label to Cluster
POST /v1/cluster/label
Description
Label the clusters.
Parameters
Name | Type | Required | Description |
---|---|---|---|
clusterName | []string | yes | the list of clusters that need to be labeled. |
clusterLabel | string | yes | label name that only use uppercase and lowercase letters, numbers and special character - . |
Example
Delete Label
DELETE /v1/cluster/label
Description
Delete label of specified clusters.
Parameters
Name | Type | Required | Description |
---|---|---|---|
clusterName | [ ]string | yes | the list of clusters that need to be labeled. |
clusterLabel | string | yes | label name that needs to be removed. |
Example
Get Label List
GET /v1/cluster/label
Description
Get the list of labels that have been created.
Parameters
Response Parameters
Name | Type | Description |
---|---|---|
data | []string | the list of label |
Example
Get Label
GET /v1/cluster/label/[clusterNamel]
Description
Get the labels under the specified cluster.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
clusterName | string | yes | cluster name | |
page | int | no | 1 | page |
pageSize | int | no | 10 | page size. 0: no limited |
Response Parameters
Name | type | Description |
---|---|---|
clusterLabel | string | cluster label |
createTime | int64 | create time of label |
total | int32 | total number |
Example
Node Management
Get Node List
GET /v1/node
Description
Parameters
Name | Type | Required | default | Description |
---|---|---|---|---|
field | string | no | fields that need be presented | |
nodeLabel | string | no | node label to filter nodes | |
clusterName | string | no | cluster name for filtering result | |
nodeName | string | no | node name for filtering result. | |
page | int | no | 1 | the page number |
pageSize | int | no | 10 | the size of per page |
Response Parameters
Name | Tyep | Description |
---|---|---|
nodeName | string | node name |
clusterName | string | cluster that node belongs to |
operatingSystem | string | os of node |
kernelVersion | string | kernel version of node |
ip | string | ip address |
memory | int64 | memory(byte) |
cpu | int | cpu core |
isReady | bool | flag to indicate if the node is alive. |
total | int | total number of nodes |
gpu | int | GPU memory(byte) |
disk | int64 | disk size(byte) |
readyNodeCount | int | the number of alive node |
Example
Add Label to Node
POST /v1/node/label
Description
Label the nodes.
Parameters
Name | Type | Required | Description |
---|---|---|---|
nodeName | []string | yes | the list of nodes that need to be labeled. |
nodeLabel | string | yes | label name that only use uppercase and lowercase letters, numbers and special character - . |
clusterName | string | yes | cluster that nodes belong to. |
Example
Delete Label
DELETE /v1/node/label
Description
Delete label of specified nodes.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
nodeName | [ ]string | yes | the list of nodes that need to remove label. | |
nodeLabel | string | yes | the label that needs to be removed. | |
clusterName | string | yes | cluster that nodes belong to. | |
deleteDeploy | bool | no | no | allow to delete deployment on the node that have been labeled. |
Example
Get Label List
GET /v1/node/label
Description
Return the list of label of nodes under the specified cluster.
Parameters
Name | Type | Required | Description |
---|---|---|---|
clusterName | string | no | Return node labels in all clusters by default. |
Response Parameters
Name | Type | Description |
---|---|---|
data | [ ]string | the list of label |
Example
Repository Management
Get Images
GET /v1/repository/image
Description
List images of the specified project.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
orderBy | string | no | id | OrderBy allows sorting by id. |
order | string | no | desc | Sort order: asc, desc. |
page | int | no | 1 | The page number. |
pageSize | int | no | 10 | The size of per page, 0 for no limited. |
projectName | string | yes | The name of project. | |
imageName | string | no | Image name for filtering result. |
Response code
Code | Description |
---|---|
200 | Searched for images of Harbor successfully. |
400 | Invalid parameters. |
401 | User need to log in first. |
403 | User does not have permission of admin role. |
500 | Unexpected internal errors |
Response Parameters
Name | Type | Description |
---|---|---|
projectName | string | The name of project |
public | bool | The flag to indicate the publicity of the image. |
imageName | string | The name of image |
imageAddress | string | The registry url of image which do not including tag. |
createTime | int | The create time of image |
updateTime | int | The update time of image |
total | int | total number of images |
Example
Get Tag of Image
GET /v1/repository/image/tag?imageName=[imageName]
Description
List tags under the specific image name.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
page | int | no | 1 | The page number. |
pageSize | int | no | 10 | The size of per page, 0 for no limited. |
imageName | string | yes | The image name for filtering result. |
Response code
Code | Description |
---|---|
200 | Get tags successfully. |
400 | Bad request. |
401 | User need to log in first. |
403 | User does not have permission of admin role. |
500 | Unexpected internal errors |
Response Parameters
Name | Type | Description |
---|---|---|
tag | string | tag of docker image |
imageAddress | string | repository of docker image |
createTime | int | create time |
updateTime | int | update time |
total | int | total number of images |
Example
Delete Image
DELETE /v1/repository/image
Description
Delete multiple images specified by name.
Parameters
Name | Type | Required | Default | Descripton |
---|---|---|---|---|
imageName | [ ]string | yes | name of images |
Example
Delete Tag of Image
DELETE /v1/repository/image/tag
Description
Delete the image specified by name and tags.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
tag | [ ]string | yes | tags of image that needs to be removed | |
imageName | string | yes | name of image that needs to be removed |
Example
Create User
POST /v1/repository/user
Description
Create a new user of harbor repository.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
user | string | yes | username | |
password | string | yes | password |
Response code
Code | Description |
---|---|
200 | User created successfully. |
400 | Unsatisfied with constraints of the user creation. |
409 | username conflict |
403 | User registration can only be used by admin role user when self-registration is off. |
415 | The Media Type of the request is not supported, it has to be "application/json" |
500 | Unexpected internal errors. |
Example
Update Password
PUT /v1/repository/user
Description
Modify password of current logged-in user.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
password | string | yes | new password |
Response code
Code | Description |
---|---|
200 | Updated password successfully. |
400 | Invalid user ID; Old password is blank; New password is blank. |
401 | Don't have authority to change password. Please check login status. |
403 | The caller does not have permission to update the password of the user with given ID, or the old password in request body is not correct. |
500 | Unexpected internal errors. |
Example
Get Projects of Repository
GET /v1/repository/project
Description
List all projects of current logged-in user.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
projectName | string | no | Project name for filtering results. | |
public | bool | no | Public sign for filtering projects. | |
page | int | no | 1 | The page number. |
pageSize | int | no | 10 | The size of per page. |
Response code
Code | Description |
---|---|
401 | User need to log in first. |
200 | Return all matched projects. |
500 | Internal errors. |
Response parameters
Name | Type | Description |
---|---|---|
projectId | int | Project ID. |
projectName | string | The name of the project |
createTime | string | The creation time of the project. |
updateTime | string | The update time of the project. |
public | bool | The public status of the project. |
imageCount | int | The count of the images under this project. |
total | int | Total number of the projects. |
Example
Create Project
POST /v1/repository/project
Description
Create a new project of the current user.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
projectName | string | yes | The name of project. | |
public | bool | yes | The public status of the project. |
Response code
Code | Description |
---|---|
201 | Project created successfully. |
400 | Unsatisfied with constraints of the project creation. |
401 | User need to log in first. |
409 | Project name already exists. |
415 | The Media Type of the request is not supported, it has to be "application/json" |
500 | Unexpected internal errors. |
Example
Delete Project
DELETE /v1/repository/project
Description
Delete the projects specified by ID.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
projectId | [ ]int64 | yes | The IDs of projects |
Response code
Code | Description |
---|---|
201 | Project created successfully. |
400 | Unsatisfied with constraints of the project creation. |
401 | User need to log in first. |
409 | Project name already exists. |
415 | The Media Type of the request is not supported, it has to be "application/json" |
500 | Unexpected internal errors. |
Example
Create External Repository
POST /v1/repository/third
Description
Create a secret registry record for pulling docker images from external repository.
Parameters
Name | Type | Required | Description |
---|---|---|---|
repositoryId | string | yes | A unique name for specifying repository. |
address | string | yes | The address of repository. |
user | string | yes | username for pulling images. |
password | string | yes | password for pulling images. |
Example
Delete External Repository
DELETE /v1/repository/third
Description
Delete the external repository record by ID. It won't affect existing deployment.
Parameters
Name | Type | Required | Description |
---|---|---|---|
repositoryId | [ ]string | yes | The ID of repository |
Example
Get External Repository List
GET /v1/repository/third
Description
List the external repository.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
pageSize | int | no | 10 | The size of per page, 0 for no limited. |
page | int | no | 1 | The page number. |
orderBy | string | no | id | orderBy allows sorting by id. |
order | string | no | asc | sort order: asc, desc. |
Response Parameters
Name | Type | Description |
---|---|---|
repositoryId | string | The unique name for specifying repository. |
address | string | The address of repository. |
user | string | username for pulling images. |
Example
Get External Repository
GET /v1/repository/third/[repoId]
Description
Return the external repository by ID.
Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
repoId | string | yes | The unique name of repository |
Response code
状态码 | 说明 |
---|---|
200 | Get repository successfully. |
404 | Not found |
500 | Unexpected internal errors |
Response parameters
Name | Type | Description |
---|---|---|
repositoryId | string | The unique name for specifying repository. |
address | string | The address of repository. |
user | string | username for pulling images. |
Example
Application Management
Create Application
POST /v1/app
Parameters
Name | Type | Required | Description |
---|---|---|---|
appName | string | yes | The name of applicaton |
deployType | string | yes | Deployment mode: Only deployment or daemonset can be set |
image | string | yes | Image repository with specified tag. |
version | string | yes | Main version with format x.x, for example 1.1. |
repositoryId | string | no | The ID of repository whose secret can be used to pull docker image. |
port | array | yes | The exposed port. |
command |