The purpose of this Document is to enumerate the APIs which are exposed by Akraino Blue print project to the external projects Akraino/Non Akraino for interaction/integration.
This document should be used in conjunction with the architecture document to understand APIs at modular level and their interactions.
This document should function as a glossary of APIs with its functionality, interfaces, inputs and expected outcomes as the following example:
API1 < var 1, var 2, var 2>
(
functional description
...
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
Code Block | ||||
---|---|---|---|---|
| ||||
POST /v1/authorization
Body:
{
"user": "u1",
"password": "xxx"
}
Response:
{
"token": "eyxxxxxxxxxxxxxx",
"code": 200,
"message": "success"
} |
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
Code Block | ||||
---|---|---|---|---|
| ||||
PUT /v1/authorization
Header: Authorization: eyxxxxxxxxxxxxxx
Response: {
"token": "eyyxxxxxxxxxxxx2",
"code": 200,
"message": "success"
} |
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
状态码 | 说明 |
---|---|
200 | Success |
500 | Unexpected internal errors |
422 | Parameter validation error |
Example
Code Block | ||||
---|---|---|---|---|
| ||||
POST /v1/user
body:
{
"user": "u1",
"password": "xxX@1234",
"phone": "12345678910",
"realName": "hello"
"isAdmin": true
}
Response:
{
"code": 200,
"message": "success"
} |
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
Code Block | ||||
---|---|---|---|---|
| ||||
PUT /v1/user
body:
{
"oldPassword": "xxx0",
"password": "xxx"
}
Response:
{
"code": 200,
"message": "success"
} |
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
Code Block | ||||
---|---|---|---|---|
| ||||
DELETE /v1/admin/user/1
Response:
{
"code": 200,
"message": "success"
} |
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
Code Block | ||||
---|---|---|---|---|
| ||||
PUT /v1/admin/user/1/password
Body:
{
"password": "xxx"
}
Response:
{
"code": 200,
"message": "success"
} |
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
Code Block | ||||
---|---|---|---|---|
| ||||
GET /v1/admin/user
Response:
{
"data":
[
{"id":1, "user":"user1", "status":3, "realName":"user1", "phone":"18923441163", "createTime":1551758321, "updateTime":1551758321 },
{"id":2, "user":"user2", "status":3, "realName":"user2", "phone":"18923441123", "createTime":1551758321, "updateTime":1551758321 }
],
"total": 2,
"code": 200,
"message": "Success"
} |
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
Code Block | ||||
---|---|---|---|---|
| ||||
PUT /v1/admin/user/1
body:
{
"status": 0
}
Response:
{
"code": 200,
"message": "success"
} |
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
Code Block | ||||
---|---|---|---|---|
| ||||
DELETE /v1/authorizations
Header: Authorization: eyxxxxxxxxxxxxxx
Response:
{
"code": 200,
"message": "Success"
} |
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
Code Block | ||||
---|---|---|---|---|
| ||||
GET /v1/authorization
Response:
{
"data":
{
"displayName": "ote_test1",
"hasRepoAccount": true,
"role": 4,
"privateProject": true,
"enableIngress": false,
"enableAlert": true,
"enableAdminAutoDeploy": true
},
"code": 200,
"message": "Success"
} |
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
Code Block | ||||
---|---|---|---|---|
| ||||
POST /v1/business
{
"name": "name",
"introduce": "intrduce",
"objective": "objective",
"scale": "scale"
} |
Get Business List
GET /v1/business
Description
Return the business list.
parameters
Name | Type | Required | Default | 意义 |
---|---|---|---|---|
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
Code Block | ||
---|---|---|
| ||
GET /v1/business
{
"data": [
{
"name": "name",
"userId": 123,
"comment": "comment",
"id": 1,
"status": 0,
"createTime": 1590062196,
"updateTime": 1590062196
}
],
"total": 1,
"code":200,
"message": "Success"
} |
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
Code Block | ||
---|---|---|
| ||
GET /v1/business/id/1
{
"data": {
"name": "name",
"userId": 123,
"introduce": "introduce",
"objective": "",
"scale": "1400000000",
"comment": "comment",
"id": 1,
"status": 0,
"createTime": 1590062196,
"updateTime": 1590062196
}
"code":200,
"message": "Success"
} |