package com.bocloud.ims.entity.resource.nsx;

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.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * nsx防火墙规则
 * 
 * @author wangyu
 * @version 1.0
 * @since 2020年2月28日
 *
 */
@NoArgsConstructor
@AllArgsConstructor
@Table("nsx_firewall_rule")
public class NsxFirewallRule extends GenericEntity {

	// id
	@Setter
	@Getter
	@PK(PKStrategy.AUTO)
	private Long id;
	// 规则id
	@Setter
	@Getter
	@Column("rule_id")
	private String ruleId;
	// References related to this resource
	@Setter
	@Getter
	@Column("links")
	private String links;
	// Schema for this resource
	@Setter
	@Getter
	@Column("resource_schema")
	private String resourceSchema;
	// Link to this resource
	@Setter
	@Getter
	@Column("self")
	private String self;
	// Generation of this resource config
	@Setter
	@Getter
	@Column("revision")
	private Long revision;
	// 所属
	@Setter
	@Getter
	@Column("owner")
	private String owner;
	// 资源类型
	@Setter
	@Getter
	@Column("resource_type")
	private String resourceType;
	// 动作
	@Setter
	@Getter
	@Column("action")
	private String action;
	// 应用清单
	@Setter
	@Getter
	@Column("applied_tos")
	private String appliedTos;
	// 目的地列表
	@Setter
	@Getter
	@Column("destinations")
	private String destinations;
	// 除目的地之外
	@Setter
	@Getter
	@Column("destinations_excluded")
	private Boolean destinationsExcluded;
	// 方向
	@Setter
	@Getter
	@Column("direction")
	private String direction;
	// 是否禁用
	@Setter
	@Getter
	@Column("disabled")
	private Boolean disabled;
	// IP协议
	@Setter
	@Getter
	@Column("ip_protocol")
	private String ipProtocol;
	// 是否默认
	@Setter
	@Getter
	@Column("is_default")
	private Boolean isDefault;
	// 是否开启日志
	@Setter
	@Getter
	@Column("logged")
	private Boolean logged;
	// 用户使用该规则的记录
	@Setter
	@Getter
	@Column("notes")
	private String notes;
	// 优先级
	@Setter
	@Getter
	@Column("priority")
	private Long priority;
	// 规则标签
	@Setter
	@Getter
	@Column("rule_tag")
	private String ruleTag;
	// 源列表
	@Setter
	@Getter
	@Column("sources")
	private String sources;
	// 除源之外
	@Setter
	@Getter
	@Column("sources_excluded")
	private Boolean sourcesExcluded;
	// 上下文配置
	@Setter
	@Getter
	@Column("context_profiles")
	private String contextProfiles;
	// 扩展来源
	@Setter
	@Getter
	@Column("extended_sources")
	private String extendedSources;
	// 防火墙服务
	@Setter
	@Getter
	@Column("services")
	private String services;
	// 防火墙uuid
	@Setter
	@Getter
	@Column("section_id")
	private String sectionId;
	// 防火墙id
	@Setter
	@Getter
	@Column("firewall_id")
	private Long firewallId;
	// 云平台id
	@Setter
	@Getter
	@Column("vendor_id")
	private Long vendorId;
	// 防火墙名称
	@Setter
	@Getter
	@IgnoreAll
	private String firewallName;
	// 云平台名称
	@Setter
	@Getter
	@IgnoreAll
	private String vendorName;
}
