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,
"loadBalancerPort": 80,
"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,"loadBalancerPort":80,"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 | |
| securityPolicyType | String | body (contained in the params structure) | Optioanl. The TLS security policy. |
|
5.0.0 |
| httpVersions | List | body (contained in the params structure) | Optional. The Load Balancer frontend network HTTP protocol version. |
|
5.0.0 |
| tcpProxyProtocol | String | body (contained in the params structure) | Optional. The TCP Proxy Protocol agreement. |
|
5.0.0 |
| httpCompressAlgos | List | body (contained in the params structure) | Optional. The HTTP compression algorithm. |
|
5.0.0 |
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:
- When you create a load balancer listener in ZStack Cloud, you can set whether to enable the
session persistence and specify the session persistence mode by adding
the sessionPersistence option to SystemTags.
- Format of the sessionPersistenceoption:
sessionPersistence::{%s}.. The value of %s can be disable/iphash/insert/rewrite. - Example:
sessionPersistence::insert.
- Format of the sessionPersistenceoption:
- When you create a load balancer listener in ZStack Cloud, you can specify the session persistence
time by adding the sessionIdleTimeout option to
SystemTags.
- Format of the sessionIdleTimeoutoption:
sessionIdleTimeout::{%s}. Here, %s is the session persistence time. Valid value: 30-3600. Unit:second. - Example:
sessionIdleTimeout::60
- Format of the sessionIdleTimeoutoption:
- When you create a load balancer listener in ZStack Cloud, you can set the rewritten cookie name by
adding the cookieName option to SystemTags.
- Format of the
validRegexValues::{%s}. Here, %s is the cookie name. The name must be 1 to 20 characters and can contain uppercase or lowercase letters, digits, hyphens (-), and underscores (_). - Example:
cookieName::zstack-cookie.
- Format of the
- When you create a load balancer listener in ZStack Cloud, you can set whether to enable http
redirect by adding the httpRedirectHttps option to
SystemTags.
- Format of the
httpRedirectHttps::{%s}. Here, the value of %s can be disable/enable. - Example:
httpRedirectHttps::enable
- Format of the
- When you create a load balancer listener in ZStack Cloud, you can set redirect port by adding
redirectPort option to SystemTags.
- Format of the
redirectPort::{%s}. Here, the number range of %s can be 1-65535. - Example:
redirectPort::80
- Format of the
- When you create a load balancer listener in ZStack Cloud, you can set redirect status code by
adding statusCode optional to SystemTags.
- Format of the
statusCode::{%s}. Here, the value of %s can be 301/302/303/307/308. - Example:
statusCode::302
- Format of the
API Response
Sample
Response
{
"inventory": {
"uuid": "e82212513e2f3644885d98ce164ee687",
"name": "Test-Listener",
"loadBalancerUuid": "f7b267e9a5683ba5981b79196ca65d47",
"instancePort": 80,
"loadBalancerPort": 80,
"protocol": "http"
}
}#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 | |
| serverGroupUuid | String | 5.0.0 | |
| 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 |
| serverGroupRefs | List | See serverGroupRefs | 5.0.0 |
#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 |
#serverGroupRefs
| Name | Type | Description | Starting Version |
|---|---|---|---|
| id | long | 5.0.0 | |
| listenerUuid | String | 5.0.0 | |
| serverGroupUuid | String | 5.0.0 | |
| createDate | Timestamp | The create date. | 5.0.0 |
| lastOpDate | Timestamp | The last operation date. | 5.0.0 |
SDK Sample
Java
SDK
CreateLoadBalancerListenerAction action = new CreateLoadBalancerListenerAction();
action.loadBalancerUuid = "192b3fe960d63e078ced8f59529a25ad";
action.name = "Test-Listener";
action.instancePort = 80;
action.loadBalancerPort = 80;
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
action.loadBalancerPort = 80
action.protocol = "http"
action.aclStatus = "disable"
action.aclType = "black"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateLoadBalancerListenerAction.Result res = action.call()