CreateLoadBalancerListener

API Request

URLs
POST zstack/v1/load-balancers/{loadBalancerUuid}/listeners
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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/listeners
Request Parameters
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.
  • tcp
  • http
  • https
  • udp
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.
  • tcp
  • udp
  • http
3.9.0
healthCheckMethod String body (contained in the params structure) Optional. The health check method.
  • GET
  • HEAD
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.
  • enable
  • disable
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.
  • white
  • black
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 be healthCheckParameter::method:uri:expect-result.
    • Example: healthCheckParameter::GET:/healthstatus.html:http_2xx
  • 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}

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()