15.Custom interfaces
1. Added rule
API address: /v1/rule
Request method:POST
Request data type:application/json
Response data type:*/*,application/json
Supported version:v1.9.0
API description: only supported for use with H3C firewalls
Added firewall rule
Request parameters:
| Parameter name | Parameter description | Location | Whether required | Data type | Description |
|---|---|---|---|---|---|
| name | Rule name | body | true | string | Rule name |
| protocolType | Protocol type | body | true | integer | 1:udp 2:tcp |
| internalPort | Internal port | body | true | integer | Example [5555] |
| remark | Remarks | body | false | string |
Request example. Replace parameter values in the actual request:
POST "/openapi/v1/rule"
body:
{
"name": "测试",
"protocolType": 1,
"internalPort": 5555,
"remark": "test"
}
Response parameters:
| Parameter name | Parameter description | Type | Description |
|---|---|---|---|
| code | Return code | integer(int32) | |
| message | Return processing message | string | |
| result | Returned data object | list<object> | |
| uuid | Rule uuid | string | |
| timestamp | Timestamp | integer(int64) | |
| traceId | Request processing ID | string |
Response example:
{
"message": "操作成功!",
"code": 200,
"result": {
"uuid": "55c185fd3e3d6d3adcffc17c54a1ddbf"
},
"timestamp": 1718608913954,
"traceId": "C20240617152153954008"
}
2. Rule details
API address: /v1/rule/{uuid}
Request method:GET
Request data type:application/json
Response data type:*/*,application/json
Supported version:v1.9.0
API description: only supported for use with H3C firewalls
Detailed rule information
Request parameters:
| Parameter name | Parameter description | Location | Whether required | Data type | Description |
|---|---|---|---|---|---|
| uuid | Rule uuid | path | true | string |
Request example. Replace parameter values in the actual request:
Response parameters:
| Parameter name | Parameter description | Type | Description |
|---|---|---|---|
| code | Return code | integer(int32) | |
| message | Return processing message | string | |
| result | Returned data object | list<object> | |
| uuid | Rule uuid | string | |
| name | Rule name | string | |
| protocolType | Protocol type | integer | 1:udp 2:tcp |
| internalPort | Internal port | integer | |
| remark | Remarks | string | |
| createTime | Creation time | string | |
| timestamp | Timestamp | integer(int64) | |
| traceId | Request processing ID | string |
Response example:
{
"message": "操作成功!",
"code": 200,
"result": {
"uuid": "b1573a97c152f4d24208a28c7aba7dd9",
"name": "测试",
"protocolType": 1,
"internalPort": 5555,
"remark": "test",
"createTime": "2024-06-14 17:59:55"
},
"timestamp": 1718609053301,
"traceId": "C20240617152413301345"
}
3. Rule list
API address: /v1/rule/list
Request method:POST
Request data type:application/json
Response data type:*/*,application/json
Supported version:v1.9.0
API description: only supported for use with H3C firewalls
Rule paginated list
Request parameters:
| Parameter name | Parameter description | Location | Whether required | Data type | Description |
|---|---|---|---|---|---|
| name | Rule name | body | false | string | |
| pageSize | Amount of data on the current page | body | false | integer | |
| pageNum | Current page number | body | false | integer |
Request example. Replace parameter values in the actual request:
Response parameters:
| Parameter name | Parameter description | Type | Description |
|---|---|---|---|
| code | Return code | integer(int32) | |
| message | Return processing message | string | |
| result | Returned data object | IPage<object> | |
| records | Data list on the current page | list<object> | |
| uuid | Rule uuid | string | |
| name | Rule name | string | |
| protocolType | Protocol type | integer | 1:udp 2:tcp |
| internalPort | Internal port | integer | |
| remark | Remarks | string | |
| createTime | Creation time | sting | |
| bindInstanceNum | Number of bound containers | integer | |
| total | Total number of records | integer | |
| current | Current page number | integer | |
| pages | Total pages | integer | |
| size | Number of items displayed per page | integer | |
| timestamp | Timestamp | integer(int64) | |
| traceId | Request processing ID | string |
Response example:
{
"message": "操作成功!",
"code": 200,
"result": {
"records": [
{
"uuid": "b1573a97c152f4d24208a28c7aba7dd9",
"name": "测试",
"protocolType": 1,
"internalPort": 5555,
"remark": "test",
"createTime": "2024-06-14 17:59:55",
"bindInstanceNum": 1
}
],
"total": 1,
"current": 1,
"size": 10,
"pages": 1
},
"timestamp": 1718431861571,
"traceId": "C20240615141101571003"
}
4. Delete rule
API address: /v1/rule/{uuid}
Request method:DELETE
Request data type:application/json
Response data type:*/*,application/json
Supported version:v1.9.0
API description: only supported for use with H3C firewalls
Delete rule
Request parameters:
| Parameter name | Parameter description | Location | Whether required | Data type | Description |
|---|---|---|---|---|---|
| uuid | Rule uuid | path | true | string |
Request example. Replace parameter values in the actual request:
Response parameters:
| Parameter name | Parameter description | Type | Description |
|---|---|---|---|
| code | Return code | integer(int32) | |
| message | Return processing message | string | |
| result | Returned data object | IPage<object> | |
| timestamp | Timestamp | integer(int64) | |
| traceId | Request processing ID | string |
Response example:
{
"message": "操作成功!",
"code": 200,
"result": null,
"timestamp": 1718431861571,
"traceId": "C20240615141101571003"
}
5. Modification rule
API address: /v1/rule
Request method:PUT
Request data type:application/json
Response data type:*/*,application/json
Supported version:v1.9.0
API description: only supported for use with H3C firewalls
Modification rule remarks
Request parameters:
| Parameter name | Parameter description | Location | Whether required | Data type | Description |
|---|---|---|---|---|---|
| uuid | Rule uuid | body | true | string | |
| remark | Remarks | body | false | string |
Request example. Replace parameter values in the actual request:
Response parameters:
| Parameter name | Parameter description | Type | Description |
|---|---|---|---|
| code | Return code | integer(int32) | |
| message | Return processing message | string | |
| result | Returned data object | IPage<object> | |
| timestamp | Timestamp | integer(int64) | |
| traceId | Request processing ID | string |
Response example:
{
"message": "操作成功!",
"code": 200,
"result": null,
"timestamp": 1718431861571,
"traceId": "C20240615141101571003"
}
6. Bind port mapping to container (call firewall API)
[!CAUTION]
only supported for use with H3C firewalls
API address:/v2/instance/binding
Request method:POST
Request data type:application/json
Response data type:*/*,application/json
Supported version:v1.9.0
API description: only supported for use with H3C firewalls
Bind port mapping rules to the container
Request parameters:
| Parameter name | Parameter description | Location | Whether required | Data type | Description |
|---|---|---|---|---|---|
| instanceUuids | Container uuid | body | true | list | Single or multiple container data entries |
| ruleUuid | Rule uuid | body | true | string | |
| callbackUrl | Notification callback address | body | false | string | POST request |
Request example:
POST "/openapi/v2/instance/binding"
body:
{
"instanceUuids": ["f4d2fccea3e341dcba0bf0d6ec40455e"],
"ruleUuid": "b1573a97c152f4d24208a28c7aba7dd9"
}
Response parameters:
| Parameter name | Parameter description | Type | Description |
|---|---|---|---|
| code | Return code | integer(int32) | |
| message | Return processing message | string | |
| success | Success flag | boolean | |
| result | Returned data object | List | |
| jobId | Task ID | string | |
| uuid | Container uuid | string | |
| code | Task submission status code | integer | Corresponding to [1.4 Response Status Code Table] |
| message | Task submission description | string | |
| timestamp | Timestamp | integer(int64) | |
| traceId | Request processing ID | string |
Response example:
{
"message": "操作成功",
"code": 200,
"result": [
{
"jobId": "406f1720dc7b4fbda540ad48206628ee",
"code": 200,
"message": "success",
"uuid": "f4d2fccea3e341dcba0bf0d6ec40455e"
}
],
"timestamp": 1691372308394,
"traceId": "E76220230807093828363"
}
7. Unbind port mapping from container (call firewall API)
[!CAUTION]
only supported for use with H3C firewalls
API address:/v2/instance/unbinding
Request method:POST
Request data type:application/json
Response data type:*/*,application/json
Supported version:v1.9.0
API description: only supported for use with H3C firewalls
Unbind port mapping rules from the container
Request parameters:
| Parameter name | Parameter description | Location | Whether required | Data type | Description |
|---|---|---|---|---|---|
| instanceUuids | Container uuid | body | true | list | Single or multiple container data entries |
| ruleUuid | Rule uuid | body | true | string | |
| callbackUrl | Notification callback address | body | false | string | POST request |
Request example:
POST "/openapi/v2/instance/unbinding"
body:
{
"instanceUuids": ["f4d2fccea3e341dcba0bf0d6ec40455e"],
"ruleUuid": "b1573a97c152f4d24208a28c7aba7dd9"
}
Response parameters:
| Parameter name | Parameter description | Type | Description |
|---|---|---|---|
| code | Return code | integer(int32) | |
| message | Return processing message | string | |
| success | Success flag | boolean | |
| result | Returned data object | List | |
| jobId | Task ID | string | |
| code | Task submission status code | integer | CorrespondingResponse status code table |
| message | Task submission description | string | |
| uuid | Container uuid | string | |
| timestamp | Timestamp | integer(int64) | |
| traceId | Request processing ID | string |
Response example:
{
"message": "操作成功",
"code": 200,
"result": [
{
"jobId": "406f1720dc7b4fbda540ad48206628ee",
"code": 200,
"message": "success",
"uuid": "f4d2fccea3e341dcba0bf0d6ec40455e"
}
],
"timestamp": 1691372308394,
"traceId": "E76220230807093828363"
}
8. Bound container paginated list
API address: /v1/rule/bind/instance/list
Request method:POST
Request data type:application/json
Response data type:*/*,application/json
Supported version:v1.9.0
API description: only supported for use with H3C firewalls
Paginated query of bound container list by rule uuid
Request parameters:
| Parameter name | Parameter description | Location | Whether required | Data type | Description |
|---|---|---|---|---|---|
| uuid | Rule uuid | body | true | string | |
| pageSize | Amount of data on the current page | body | false | integer | |
| pageNum | Current page number | body | false | integer |
Request example. Replace parameter values in the actual request:
Response parameters:
| Parameter name | Parameter description | Type | Description |
|---|---|---|---|
| code | Return code | integer(int32) | |
| message | Return processing message | string | |
| result | Returned data object | IPage<object> | |
| records | Data list on the current page | list<object> | |
| instanceUuid | Container uuid | string | |
| ip | Container ip | string | |
| armCardUuid | Associated card uuid | string | |
| armCardSn | Associated card sn | string | |
| total | Total number of records | integer | |
| current | Current page number | integer | |
| pages | Total pages | integer | |
| size | Number of items displayed per page | integer | |
| timestamp | Timestamp | integer(int64) | |
| traceId | Request processing ID | string |
Response example:
{
"message": "操作成功!",
"code": 200,
"result": {
"records": [
{
"instanceUuid": "i-2c57bd70f9017e11ed538a6abe669362",
"ip": "10.255.0.110",
"armCardUuid": "c-87ed3a458c7b53d2e01089bae58b2280",
"armCardSn": "OR65M22QC1E223700085"
}
],
"total": 0,
"size": 10,
"current": 1,
"pages": 0
},
"timestamp": 1718610490575,
"traceId": "C20240617154810575375"
}
9. Delete container port mapping (for operations personnel)
API address:/v2/instance/delete/mapping
Request method:POST
Request data type:application/json
Response data type:*/*,application/json
Supported version:v2.1.0
API description:
Delete port mapping rules for the container. This operation deletes the port mapping rules corresponding to the container from the database; firewall rules still need to be deleted manually.
Request parameters:
| Parameter name | Parameter description | Location | Whether required | Data type | Description |
|---|---|---|---|---|---|
| instanceUuids | Container uuid | body | true | list | Single or multiple container data entries |
Request example:
POST "/openapi/v2/instance/delete/mapping"
body:
{
"instanceUuids": ["f4d2fccea3e341dcba0bf0d6ec40455e"]
}
Response parameters:
| Parameter name | Parameter description | Type | Description |
|---|---|---|---|
| code | Return code | integer(int32) | |
| message | Return processing message | string | |
| success | Success flag | boolean | |
| timestamp | Timestamp | integer(int64) | |
| traceId | Request processing ID | string |
Response example: