package com.bocloud.cmp.model;

import com.alibaba.fastjson.JSONArray;
import java.util.List;

/**
 * 负载均衡监听器业务类
 *
 * @author wangyu
 * @version 1.0
 * @since 2017年8月28日
 */
public class LbListenerModel {

	private String listenerUuid;// 监听器ID
	private String name;// 名称
	private Integer connLimit;// 连接限制
	private String defaultPoolUuid;// 默认池ID
	private String remark;// 描述
	private List<String> lbUuids;// 该监听器所绑定的所有负载均衡器
	private String lbUuid;// 负载均衡器ID
	private String protocol;// 监听器协议
	private Integer port;// 监听器端口
	private String tenantUuid;// 租户ID
	private Boolean adminStateUp;// 网络管理状态
	private List<String> snicontainerRefs;
	private String defTlsContainerRef;
	private List<LbMemberModel> models;
	private Long vendorId;// 云平台ID
	private String vendorUuid;// 云平台UUID
	private LbPoolModel poolModel;
	private Integer sniSwitch;
	private List<LbListenerRulesModel> listenerRulesModel;
	private JSONArray certificates;
	private String sslPolicy;
	private JSONArray alpnPolicy;
	private JSONArray defaultActions;
	// 阿里云
	private Integer bandwidth;// 监听的带宽峰值
	private String scheduler; // 调度算法
	private Integer persistenceTimeout;// 会话保持的超时时间
	private Integer healthyThreshold;// 健康检查连续成功多少次后，将后端服务器的健康检查状态由fail判定为success
	private Integer unhealthyThreshold;// 健康检查连续失败多少次后，将后端服务器的健康检查状态由success判定为fail
	private Integer healthCheckConnectTimeout;// 每次健康检查响应的最大超时时间
	private Integer healthCheckConnectPort;// 健康检查使用的端口
	private Integer healthCheckInterval;// 健康检查的时间间隔
	private String healthCheckType;// 健康检查类型
	private String masterSlaveServerGroupId;// 主备服务器组ID
	private String healthCheckURI;// 健康检查的URI
	private String healthCheckDomain;// 健康检查的域名
	private String healthCheckHttpCode;// 健康检查正常的HTTP状态码，多个状态码用逗号（,）分割
	private Boolean aclStatus;// 是否开启访问控制功能
	private String aclType;// 访问控制类型
	private String aclId;// 监听绑定的访问策略组ID
	private String healthCheckReq; // UDP监听健康检查的请求串
	private String healthCheckExp; // UDP监听健康检查的响应串
	private String listenerForward;// 是否开启HTTP至HTTPS的转发
	private Integer forwardPort;// HTTP至HTTPS的监听转发端口
	private Boolean stickySession;// 是否开启会话保持
	private String stickySessionType;// cookie的处理方式
	private String cookie;// 服务器上配置的Cookie
	private Integer cookieTimeout;// Cookie超时时间
	private Integer idleTimeout;// 指定连接空闲超时时间
	private Integer requestTimeout;// 指定请求超时时间
	private Boolean gzip;// 是否开启Gzip压缩，对特定文件类型进行压缩
	private Boolean xForwardedFor;
	private Boolean xForwardedFor_SLBID;// 是否通过SLB-ID头字段获取负载均衡实例ID
	private Boolean xForwardedFor_SLBIP;// 是否通过SLB-IP头字段获取客户端请求的真实IP
	private Boolean xForwardedFor_proto;// 是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议
	private Boolean healthCheck;// 否开启健康检查
	private Integer healthCheckTimeout;// 接收来自运行状况检查的响应需要等待的时间
	private String enableHttp2;// 是否开启HTTP/2特性
	private String status;// 状态
	private String hash;
	private Long poolId;
	private String regionId;

	public String getListenerUuid() {
		return listenerUuid;
	}

	public void setListenerUuid(String listenerUuid) {
		this.listenerUuid = listenerUuid;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getConnLimit() {
		return connLimit;
	}

	public void setConnLimit(Integer connLimit) {
		this.connLimit = connLimit;
	}

	public String getDefaultPoolUuid() {
		return defaultPoolUuid;
	}

	public void setDefaultPoolUuid(String defaultPoolUuid) {
		this.defaultPoolUuid = defaultPoolUuid;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public List<String> getLbUuids() {
		return lbUuids;
	}

	public void setLbUuids(List<String> lbUuids) {
		this.lbUuids = lbUuids;
	}

	public String getLbUuid() {
		return lbUuid;
	}

	public void setLbUuid(String lbUuid) {
		this.lbUuid = lbUuid;
	}

	public String getProtocol() {
		return protocol;
	}

	public void setProtocol(String protocol) {
		this.protocol = protocol;
	}

	public Integer getPort() {
		return port;
	}

	public void setPort(Integer port) {
		this.port = port;
	}

	public String getTenantUuid() {
		return tenantUuid;
	}

	public void setTenantUuid(String tenantUuid) {
		this.tenantUuid = tenantUuid;
	}

	public Boolean getAdminStateUp() {
		return adminStateUp;
	}

	public void setAdminStateUp(Boolean adminStateUp) {
		this.adminStateUp = adminStateUp;
	}

	public List<String> getSnicontainerRefs() {
		return snicontainerRefs;
	}

	public void setSnicontainerRefs(List<String> snicontainerRefs) {
		this.snicontainerRefs = snicontainerRefs;
	}

	public String getDefTlsContainerRef() {
		return defTlsContainerRef;
	}

	public void setDefTlsContainerRef(String defTlsContainerRef) {
		this.defTlsContainerRef = defTlsContainerRef;
	}

	public List<LbMemberModel> getModels() {
		return models;
	}

	public void setModels(List<LbMemberModel> models) {
		this.models = models;
	}

	public Long getVendorId() {
		return vendorId;
	}

	public void setVendorId(Long vendorId) {
		this.vendorId = vendorId;
	}

	public String getVendorUuid() {
		return vendorUuid;
	}

	public void setVendorUuid(String vendorUuid) {
		this.vendorUuid = vendorUuid;
	}

	public LbPoolModel getPoolModel() {
		return poolModel;
	}

	public void setPoolModel(LbPoolModel poolModel) {
		this.poolModel = poolModel;
	}

	public Integer getSniSwitch() {
		return sniSwitch;
	}

	public void setSniSwitch(Integer sniSwitch) {
		this.sniSwitch = sniSwitch;
	}

	public List<LbListenerRulesModel> getListenerRulesModel() {
		return listenerRulesModel;
	}

	public void setListenerRulesModel(List<LbListenerRulesModel> listenerRulesModel) {
		this.listenerRulesModel = listenerRulesModel;
	}

	public JSONArray getCertificates() {
		return certificates;
	}

	public void setCertificates(JSONArray certificates) {
		this.certificates = certificates;
	}

	public String getSslPolicy() {
		return sslPolicy;
	}

	public void setSslPolicy(String sslPolicy) {
		this.sslPolicy = sslPolicy;
	}

	public JSONArray getAlpnPolicy() {
		return alpnPolicy;
	}

	public void setAlpnPolicy(JSONArray alpnPolicy) {
		this.alpnPolicy = alpnPolicy;
	}

	public JSONArray getDefaultActions() {
		return defaultActions;
	}

	public void setDefaultActions(JSONArray defaultActions) {
		this.defaultActions = defaultActions;
	}

	public Integer getBandwidth() {
		return bandwidth;
	}

	public void setBandwidth(Integer bandwidth) {
		this.bandwidth = bandwidth;
	}

	public String getScheduler() {
		return scheduler;
	}

	public void setScheduler(String scheduler) {
		this.scheduler = scheduler;
	}

	public Integer getPersistenceTimeout() {
		return persistenceTimeout;
	}

	public void setPersistenceTimeout(Integer persistenceTimeout) {
		this.persistenceTimeout = persistenceTimeout;
	}

	public Integer getHealthyThreshold() {
		return healthyThreshold;
	}

	public void setHealthyThreshold(Integer healthyThreshold) {
		this.healthyThreshold = healthyThreshold;
	}

	public Integer getUnhealthyThreshold() {
		return unhealthyThreshold;
	}

	public void setUnhealthyThreshold(Integer unhealthyThreshold) {
		this.unhealthyThreshold = unhealthyThreshold;
	}

	public Integer getHealthCheckConnectTimeout() {
		return healthCheckConnectTimeout;
	}

	public void setHealthCheckConnectTimeout(Integer healthCheckConnectTimeout) {
		this.healthCheckConnectTimeout = healthCheckConnectTimeout;
	}

	public Integer getHealthCheckConnectPort() {
		return healthCheckConnectPort;
	}

	public void setHealthCheckConnectPort(Integer healthCheckConnectPort) {
		this.healthCheckConnectPort = healthCheckConnectPort;
	}

	public Integer getHealthCheckInterval() {
		return healthCheckInterval;
	}

	public void setHealthCheckInterval(Integer healthCheckInterval) {
		this.healthCheckInterval = healthCheckInterval;
	}

	public String getHealthCheckType() {
		return healthCheckType;
	}

	public void setHealthCheckType(String healthCheckType) {
		this.healthCheckType = healthCheckType;
	}

	public String getMasterSlaveServerGroupId() {
		return masterSlaveServerGroupId;
	}

	public void setMasterSlaveServerGroupId(String masterSlaveServerGroupId) {
		this.masterSlaveServerGroupId = masterSlaveServerGroupId;
	}

	public String getHealthCheckURI() {
		return healthCheckURI;
	}

	public void setHealthCheckURI(String healthCheckURI) {
		this.healthCheckURI = healthCheckURI;
	}

	public String getHealthCheckDomain() {
		return healthCheckDomain;
	}

	public void setHealthCheckDomain(String healthCheckDomain) {
		this.healthCheckDomain = healthCheckDomain;
	}

	public String getHealthCheckHttpCode() {
		return healthCheckHttpCode;
	}

	public void setHealthCheckHttpCode(String healthCheckHttpCode) {
		this.healthCheckHttpCode = healthCheckHttpCode;
	}

	public Boolean getAclStatus() {
		return aclStatus;
	}

	public void setAclStatus(Boolean aclStatus) {
		this.aclStatus = aclStatus;
	}

	public String getAclType() {
		return aclType;
	}

	public void setAclType(String aclType) {
		this.aclType = aclType;
	}

	public String getAclId() {
		return aclId;
	}

	public void setAclId(String aclId) {
		this.aclId = aclId;
	}

	public String getHealthCheckReq() {
		return healthCheckReq;
	}

	public void setHealthCheckReq(String healthCheckReq) {
		this.healthCheckReq = healthCheckReq;
	}

	public String getHealthCheckExp() {
		return healthCheckExp;
	}

	public void setHealthCheckExp(String healthCheckExp) {
		this.healthCheckExp = healthCheckExp;
	}

	public String getListenerForward() {
		return listenerForward;
	}

	public void setListenerForward(String listenerForward) {
		this.listenerForward = listenerForward;
	}

	public Integer getForwardPort() {
		return forwardPort;
	}

	public void setForwardPort(Integer forwardPort) {
		this.forwardPort = forwardPort;
	}

	public Boolean getStickySession() {
		return stickySession;
	}

	public void setStickySession(Boolean stickySession) {
		this.stickySession = stickySession;
	}

	public String getStickySessionType() {
		return stickySessionType;
	}

	public void setStickySessionType(String stickySessionType) {
		this.stickySessionType = stickySessionType;
	}

	public String getCookie() {
		return cookie;
	}

	public void setCookie(String cookie) {
		this.cookie = cookie;
	}

	public Integer getCookieTimeout() {
		return cookieTimeout;
	}

	public void setCookieTimeout(Integer cookieTimeout) {
		this.cookieTimeout = cookieTimeout;
	}

	public Integer getIdleTimeout() {
		return idleTimeout;
	}

	public void setIdleTimeout(Integer idleTimeout) {
		this.idleTimeout = idleTimeout;
	}

	public Integer getRequestTimeout() {
		return requestTimeout;
	}

	public void setRequestTimeout(Integer requestTimeout) {
		this.requestTimeout = requestTimeout;
	}

	public Boolean getGzip() {
		return gzip;
	}

	public void setGzip(Boolean gzip) {
		this.gzip = gzip;
	}

	public Boolean getxForwardedFor() {
		return xForwardedFor;
	}

	public void setxForwardedFor(Boolean xForwardedFor) {
		this.xForwardedFor = xForwardedFor;
	}

	public Boolean getxForwardedFor_SLBID() {
		return xForwardedFor_SLBID;
	}

	public void setxForwardedFor_SLBID(Boolean xForwardedFor_SLBID) {
		this.xForwardedFor_SLBID = xForwardedFor_SLBID;
	}

	public Boolean getxForwardedFor_SLBIP() {
		return xForwardedFor_SLBIP;
	}

	public void setxForwardedFor_SLBIP(Boolean xForwardedFor_SLBIP) {
		this.xForwardedFor_SLBIP = xForwardedFor_SLBIP;
	}

	public Boolean getxForwardedFor_proto() {
		return xForwardedFor_proto;
	}

	public void setxForwardedFor_proto(Boolean xForwardedFor_proto) {
		this.xForwardedFor_proto = xForwardedFor_proto;
	}

	public Boolean getHealthCheck() {
		return healthCheck;
	}

	public void setHealthCheck(Boolean healthCheck) {
		this.healthCheck = healthCheck;
	}

	public Integer getHealthCheckTimeout() {
		return healthCheckTimeout;
	}

	public void setHealthCheckTimeout(Integer healthCheckTimeout) {
		this.healthCheckTimeout = healthCheckTimeout;
	}

	public String getEnableHttp2() {
		return enableHttp2;
	}

	public void setEnableHttp2(String enableHttp2) {
		this.enableHttp2 = enableHttp2;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public String getHash() {
		return hash;
	}

	public void setHash(String hash) {
		this.hash = hash;
	}

	public Long getPoolId() {
		return poolId;
	}

	public void setPoolId(Long poolId) {
		this.poolId = poolId;
	}

	public String getRegionId() {
		return regionId;
	}

	public void setRegionId(String regionId) {
		this.regionId = regionId;
	}

}
