CreateLoadBalancerListener
API Request
URLs
POST zstack/v1/load-balancers/{loadBalancerUuid}/listenersHeaders
Authorization: OAuth the-session-uuidBody
Note: In
the preceding sample, both systemTags and userTags are optional.
These two fields can be included in the body structure.
{
"params": {
"name": "Test-Listener",
"instancePort": 80.0,
"loadBalancerPort": 80.0,
"protocol": "http"
"aclStatus": "disable",
"aclType": "black"
},
"systemTags": [],
"userTags": []
}
Note: In
the preceding sample, both systemTags and userTags are optional.
These two fields can be included in the body structure.Curl
Sample
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"Test-Listener","instancePort":80.0,"loadBalancerPort":80.0,"protocol":"http","aclStatus":"disable","aclType":"black"}}' http://localhost:8080/zstack/v1/load-balancers/192b3fe960d63e078ced8f59529a25ad/listenersRequest Parameters
Note:
| Name | Type | Location | Description | Optional Value | Starting Version |
|---|---|---|---|---|---|
| loadBalancerUuid | String | url | The UUID of the load balancer listener. | 0.6 | |
| name | String | body (contained in the params structure) | The name of the load balancer listener. | 0.6 | |
| description | String | body (contained in the params structure) | Optional. The detailed description of the resource. | 0.6 | |
| instancePort | Integer | body (contained in the params structure) | Optional. The VM port. | 0.6 | |
| loadBalancerPort | int | body (contained in the params structure) | The load balancer port. | 0.6 | |
| protocol | String | body (contained in the params structure) | Optional. The protocol. |
|
3.0.0 |
| certificateUuid | String | body (contained in the params structure) | Optional. The certificate UUID. | 2.3.2 | |
| resourceUuid | String | body (contained in the params structure) | Optional. The resource UUID. | 0.6 | |
| instancePort | Integer | body (contained in the params structure) | Optional. | 3.9.0 | |
| healthCheckProtocol | String | body (contained in the params structure) | Optional. The health check protocol. |
|
3.9.0 |
| healthCheckMethod | String | body (contained in the params structure) | Optional. The health check method. |
|
3.9.0 |
| healthCheckURI | String | body (contained in the params structure) | Optional. The health check URI. | 3.9.0 | |
| healthCheckHttpCode | String | body (contained in the params structure) | Optional. The expected response code of the health check. | 3.9.0 | |
| aclStatus | String | body (contained in the params structure) | The access control status. |
|
3.9.0 |
| aclUuids | list | body (contained in the params structure) | Optional. The access control list. | 3.9.0 | |
| aclType | String | body (contained in the params structure) | Optional. The access control type. |
|
3.9.0 |
| tagUuids | list | body (contained in the params structure) | Optional. The tag UUID list. | 3.9.0 | |
| systemTags | List | body | Optional. The system tags. | 0.6 | |
| userTags | List | body | Optional. The user tags. | 0.6 |
Note:
- When you create a load balancer listener in ZStack Cloud, you can set seven layers of health check
parameters by adding the healthCheckParameter option to
SystemTags.
- Format of the healthCheckParameter option:
healthCheckParameter::{parameter}. Here, the parameter can behealthCheckParameter::method:uri:expect-result. - Example:
healthCheckParameter::GET:/healthstatus.html:http_2xx
- Format of the healthCheckParameter option:
- When you create a load balancer listener in ZStack Cloud, you can set the access control status of
the listener by adding the accessControlStatus option to
SystemTags.
- Format of the accessControlStatus option:
accessControlStatus::{status} - Example:
accessControlStatus::{enable}
- Format of the accessControlStatus option:
API Response
Sample
Response
{
"inventory": {
"uuid": "e82212513e2f3644885d98ce164ee687",
"name": "Test-Listener",
"loadBalancerUuid": "f7b267e9a5683ba5981b79196ca65d47",
"instancePort": 80.0,
"loadBalancerPort": 80.0,
"protocol": "http"
}
}| Name | Type | Description | Starting Version |
|---|---|---|---|
| error | ErrorCode | The error code. If not null, the operation fails, or vice versa. For more information, see error. | 0.6 |
| inventory | LoadBalancerListenerInventory | See inventory. | 0.6 |
#error
| Name | Type | Description | Starting Version |
|---|---|---|---|
| code | String | The error code, which is a numbered or alphanumeric code that specifies an error. For example, SYS.1000, HOST.1001. | 0.6 |
| description | String | The brief description of the error. | 0.6 |
| details | String | The details about the error. | 0.6 |
| elaboration | String | The reserved field. Default value: null. | 0.6 |
| opaque | LinkedHashMap | The reserved field. Default value: null. | 0.6 |
| cause | ErrorCode | The root error, which is the associated root cause of the current error. If no root error exists, this parameter is null. | 0.6 |
#inventory
| Name | Type | Description | Starting Version |
|---|---|---|---|
| uuid | String | The resource UUID. | 0.6 |
| name | String | The resource name. | 0.6 |
| description | String | The detailed description of the resource. | 0.6 |
| loadBalancerUuid | String | The load balancer UUID. | 0.6 |
| instancePort | Integer | 0.6 | |
| loadBalancerPort | Integer | 0.6 | |
| protocol | String | 0.6 | |
| createDate | Timestamp | The creation date. | 0.6 |
| lastOpDate | Timestamp | The last operation date. | 0.6 |
| vmNicRefs | List | See vmNicRefs. | 0.6 |
| aclRefs | List | See aclRefs. | 3.9.0 |
| certificateRefs | List | See certificateRefs. | 2.3.2 |
#vmNicRefs
| Name | Type | Description | Starting Version |
|---|---|---|---|
| id | Long | 0.6 | |
| listenerUuid | String | 0.6 | |
| vmNicUuid | String | The VM NIC UUID. | 0.6 |
| status | String | 0.6 | |
| createDate | Timestamp | The creation date. | 0.6 |
| lastOpDate | Timestamp | The last operation date. | 0.6 |
#aclRefs
| Name | Type | Description | Starting Version |
|---|---|---|---|
| id | Long | The resource UUID. | 3.9.0 |
| listenerUuid | String | The listener UUID. | 3.9.0 |
| aclUuid | String | The UUID of the access control list. | 3.9.0 |
| type | String | The access control type. | 3.9.0 |
| createDate | Timestamp | The creation date. | 3.9.0 |
| lastOpDate | Timestamp | The last operation date. | 3.9.0 |
#certificateRefs
| Name | Type | Description | Starting Version |
|---|---|---|---|
| id | Long | 2.3 | |
| listenerUuid | String | 2.3 | |
| certificateUuid | String | 2.3.2 | |
| createDate | Timestamp | The creation date. | 0.6 |
| lastOpDate | Timestamp | The last operation date. | 0.6 |
SDK Sample
Java
SDK
CreateLoadBalancerListenerAction action = new CreateLoadBalancerListenerAction();
action.loadBalancerUuid = "192b3fe960d63e078ced8f59529a25ad";
action.name = "Test-Listener";
action.instancePort = 80.0;
action.loadBalancerPort = 80.0;
action.protocol = "http";
action.aclStatus = "disable";
action.aclType = "black";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateLoadBalancerListenerAction.Result res = action.call();Python
SDK
CreateLoadBalancerListenerAction action = CreateLoadBalancerListenerAction()
action.loadBalancerUuid = "192b3fe960d63e078ced8f59529a25ad"
action.name = "Test-Listener"
action.instancePort = 80.0
action.loadBalancerPort = 80.0
action.protocol = "http"
action.aclStatus = "disable"
action.aclType = "black"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateLoadBalancerListenerAction.Result res = action.call()