package com.bocloud.cmp.model;

import java.util.Date;
import java.util.List;

import com.alibaba.fastjson.JSONArray;

import lombok.Data;

@Data
public class LbModel {
	private String name;
	private String lbUuid;
	private String remark;
	private Integer feeType;
	private String subnetUuid;
	private String lbMethod;
	private Integer port;
	private String protocol;
	private String listenProtocol;
	private String tenantUuid;
	private String vipAddress;
	private String vipPortUuid;
	private String vipSubnetUuid;
	private Boolean adminStateUp;
	private List<String> listeners;// 监听器
	private List<String> lbPoolUuids;// 监听器
	private String provisioningStatus;// 准备状态
	private String operatingStatus;// 操作状态
	private String provider;
	private List<LbListenerModel> models;
	private String loadBalancerType; // 负载均衡实例的网络类型： OPEN：公网属性， INTERNAL：内网属性。
	private String vpcUuid;
	private String loadBalancerVips;
	private String status;
	private Date createTime;
	private Integer forward; // 负载均衡实例。1：应用型，0：传统型，默认为应用型负载均衡实例。
	private String regionId;
	private String log;
	private String domain;
	private Integer isolation;
	private Boolean snat;

	private String scheme; // internet-facing;internal;
	private String ipAddressType; // dualstack;ipv4
	private JSONArray availabilityZones;
	private List<String> securityGroups;

	private String spec;
	private String resourceGroupUuid;// 资源组id
	private String networkType;
	private String deleteProtection;
	private List<TagModel> tagModels;
	private String internetChargeType; // 公网计费方式
	private Long broadbandValue;// 公网宽带值

	private String modificationProtection;// 配置修改保护状态
	private String modificationProtectionReason;// 配置修改保护描述

	/**
	 *
	 */
	public LbModel() {
		super();
	}

	/**
	 * @param name
	 * @param lbUuid
	 * @param remark
	 * @param feeType
	 * @param subnetUuid
	 * @param lbMethod
	 * @param port
	 * @param protocol
	 * @param listenProtocol
	 * @param tenantUuid
	 * @param vipAddress
	 * @param vipPortUuid
	 * @param adminStateUp
	 * @param listeners
	 * @param provisioningStatus
	 * @param operatingStatus
	 * @param provider
	 */
	public LbModel(String name, String lbUuid, String remark, Integer feeType, String subnetUuid, String lbMethod,
			Integer port, String protocol, String listenProtocol, String tenantUuid, String vipAddress,
			String vipPortUuid, Boolean adminStateUp, List<String> listeners, String provisioningStatus,
			String operatingStatus, String provider) {
		super();
		this.name = name;
		this.lbUuid = lbUuid;
		this.remark = remark;
		this.feeType = feeType;
		this.subnetUuid = subnetUuid;
		this.lbMethod = lbMethod;
		this.port = port;
		this.protocol = protocol;
		this.listenProtocol = listenProtocol;
		this.tenantUuid = tenantUuid;
		this.vipAddress = vipAddress;
		this.vipPortUuid = vipPortUuid;
		this.adminStateUp = adminStateUp;
		this.listeners = listeners;
		this.provisioningStatus = provisioningStatus;
		this.operatingStatus = operatingStatus;
		this.provider = provider;
	}

}
