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

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;

/**
 * f5节点
 *
 * @author liuyuanyuan
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Table("bi_node")
public class BiNode extends GenericEntity {
    @PK(value = PKStrategy.AUTO)
    private Long id; // ID
    // General Properties
    // 地址
    @Column("address")
    private String address;

    // Configuration
    // 安全检查：type:1.Node Default(default)
    // 2.Node Specific (例如："min 3 of { /Common/https_443 /Common/real_server
    // /Common/tcp_echo }")
    // 3.None("/Common/none ")
    @Column("health_monitors")
    private String healthMonitors;
    @Column("ratio")
    private Long ratio;
    @Column("connection_limit")
    private Long connectionLimit;
    @Column("connection_ratel_limit")
    private Long connectionRateLimit;
    @Column("select_monitors")
    private String selectMonitors;
    @Column("availability_requirement")
    private String availabilityRequirement;
    @Column("available_count")
    private Long availableCount;
    // FQDN
    // 地址类型
    @Column("address_family")
    private String addressFamily;
    @Column("autopopulate")
    private String autopopulate;
    @Column("down_interval")
    private Long downInterval;
    @Column("intervals")
    private Long interval;
    @Column("vendor_id")
    private Long vendorId;
    @Column("partition_id")
    private Long partitionId;
    @IgnoreAll
    private String partitionName;

}
