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 virtual Server
 *
 * @author liuyuanyuan
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Table("bi_virtual_server")
public class BiVirtualServer extends GenericEntity {
    @PK(value = PKStrategy.AUTO)
    private Long id; // ID
    // 地址
    @Column("address")
    private String address;
    // 端口
    @Column("port")
    private String port;
    // 端口类型
    @Column("type")
    private String type;
    // 关联的pool
    @Column("pool_id")
    private Long poolId;
    // 云平台id
    @Column("vendor_id")
    private Long vendorId;
    // profiles
    @Column("http_profile_id")
    private Long httpProfileId;
    @Column("source_address")
    private String sourceAddress;
    @Column("protocol")
    private String protocol;
    @Column("protocol_profile_client_id")
    private Long protocolProfileClientId;
    @Column("protocol_profile_server_id")
    private Long protocolProfileServerId;
    @Column("vlan_and_tunnel_traffic")
    private String vlanAndTunnelTraffic;
    @Column("vlans_and_tunnels")
    private String vlansAndTunnels;
    @Column("source_address_translation")
    private String sourceAddressTranslation;
    @Column("snat_pool_id")
    private Long snatPoolId;
    @Column("irules")
    private String irules;
    @Column("default_persistence_profile_id")
    private Long defaultPersistenceProfileId;
    @Column("fallback_persistence_profile_id")
    private Long fallbackPersistenceProfileId;
    @Column("project_id")
    private Long projectId;
    @Column("partition_id")
    private Long partitionId;
    @IgnoreAll
    private String destination;
    @IgnoreAll
    private String poolName;
    @IgnoreAll
    private String httpProfileName;
    @IgnoreAll
    private String fallbackPersistenceProfileName;
    @IgnoreAll
    private String defaultPersistenceProfileName;
    @IgnoreAll
    private String protocolProfileServerName;
    @IgnoreAll
    private String protocolProfileClientName;
    @IgnoreAll
    private String snatPoolName;
    @IgnoreAll
    private String ruleNames;
    @IgnoreAll
    private String vlanNamesAndTunnelNames;
    @IgnoreAll
    private String userName;
    @IgnoreAll
    private String projectName;
    @IgnoreAll
    private String category;
    @IgnoreAll
    private String partitionName;

}
