package com.bocloud.ims.entity.resource;

import com.bocloud.entity.annotations.Column;
import com.bocloud.entity.annotations.IgnoreAll;
import com.bocloud.entity.annotations.PK;
import com.bocloud.entity.annotations.Table;
import com.bocloud.entity.bean.GenericEntity;
import com.bocloud.entity.meta.PKStrategy;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Table("nat_gateway")
public class NatGateway extends GenericEntity {

	// ID
	@PK(value = PKStrategy.AUTO)
	private Long id;
	@Column("vendor_id")
	private Long vendorId;
	// 地域
	@Column("region_id")
	private String regionId;
	@Column("uuid")
	private String uuid;
	@Column("spec")
	private String spec; // 公网NAT网关的规格。“1”:小型,SNAT最大连接数10000“2”:中型,SNAT最大连接数50000
							// “3”:大型,SNAT最大连接数200000“4”:超大型,SNAT最大连接数1000000
	@Column("vpc_id")
	private Long vpcId;
	@Column("subnet_id")
	private Long subnetId;
	@Column("admin_state_up")
	private Boolean adminStateUp; // 解冻/冻结状态 "true":解冻 "false":冻结

	@Column("resource_group_uuid")
	private String resourceGroupUuid;
	@Column("type")
	private String type;
	@Column("vpc_uuid")
	private String vpcUuid;
	@Column("subnet_uuid")
	private String subnetUuid;
	@IgnoreAll
	private String resourceGroupName;
	@IgnoreAll
	private String regionName;
	@IgnoreAll
	private String vpcName;
	@IgnoreAll
	private String subnetName;
	@IgnoreAll
	private String subnetCidr;
	/** 阿里云新增 **/
	@Column("forward_table_ids")
	private String forwardTableIds;
	@Column("snat_table_ids")
	private String snatTableIds;
	@Column("private_ip_address")
	private String privateIpAddress;
	/** end **/
	@IgnoreAll
	private Long eipId;
	@IgnoreAll
	private String publicIpAddress;
	@Column("network_interface_id")
	private Long networkInterfaceId;
	@Column("network_interface_uuid")
	private String networkInterfaceUuid;
	@Column("nat_type")
	private String natType;
	@Column("eni_instanceId")
	private String eniInstanceId;
}
