package org.zstack.network.service.lb; import org.springframework.http.HttpMethod; import org.zstack.header.identity.Action; import org.zstack.header.message.APICreateMessage; import org.zstack.header.message.APIEvent; import org.zstack.header.message.APIMessage; import org.zstack.header.message.APIParam; import org.zstack.header.notification.ApiNotification; import org.zstack.header.rest.RestRequest; import org.zstack.header.tag.TagResourceType; /** * Created by frank on 8/8/2015. */ @TagResourceType(LoadBalancerListenerVO.class) @Action(category = LoadBalancerConstants.ACTION_CATEGORY) @RestRequest( path = "/load-balancers/{loadBalancerUuid}/listeners", method = HttpMethod.POST, responseClass = APICreateLoadBalancerListenerEvent.class, parameterName = "params" ) public class APICreateLoadBalancerListenerMsg extends APICreateMessage implements LoadBalancerMessage { @APIParam(resourceType = LoadBalancerVO.class, checkAccount = true, operationTarget = true) private String loadBalancerUuid; @APIParam(maxLength = 255) private String name; @APIParam(maxLength = 2048, required = false) private String description; @APIParam(numberRange = {1, 65535}, required = false) private Integer instancePort; @APIParam(numberRange = {1, 65535}) private int loadBalancerPort; @APIParam(maxLength = 255, validValues = {LoadBalancerConstants.LB_PROTOCOL_TCP, LoadBalancerConstants.LB_PROTOCOL_HTTP}, required = false) private String protocol; @Override public String getLoadBalancerUuid() { return loadBalancerUuid; } public void setLoadBalancerUuid(String loadBalancerUuid) { this.loadBalancerUuid = loadBalancerUuid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Integer getInstancePort() { return instancePort; } public void setInstancePort(int instancePort) { this.instancePort = instancePort; } public int getLoadBalancerPort() { return loadBalancerPort; } public void setLoadBalancerPort(int loadBalancerPort) { this.loadBalancerPort = loadBalancerPort; } public String getProtocol() { return protocol; } public void setProtocol(String protocol) { this.protocol = protocol; } public static APICreateLoadBalancerListenerMsg __example__() { APICreateLoadBalancerListenerMsg msg = new APICreateLoadBalancerListenerMsg(); msg.setLoadBalancerUuid(uuid()); msg.setName("Test-Listener"); msg.setLoadBalancerPort(80); msg.setInstancePort(80); msg.setProtocol(LoadBalancerConstants.LB_PROTOCOL_HTTP); return msg; } public ApiNotification __notification__() { APIMessage that = this; return new ApiNotification() { @Override public void after(APIEvent evt) { if (evt.isSuccess()) { ntfy("Created").resource(((APICreateLoadBalancerListenerEvent)evt).getInventory().getUuid(),LoadBalancerListenerVO.class.getSimpleName()) .messageAndEvent(that, evt).done(); } } }; } }