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

import com.alibaba.fastjson.JSONObject;
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.meta.PKStrategy;

@Deprecated
@Table("hmc_physical_disk")
public class HmcPhysicalDisk {

    /**
     * id
     */
    @PK(value = PKStrategy.AUTO)
    private Long id;

    /**
     * volume name
     * 
     * visk0
     */
    @Column("volume_name")
    private String volumeName;

    /**
     * volume capacity
     * 
     * 50
     */
    @Column("volume_capacity")
    private Double volumeCapacity;

    /**
     * volume state
     * 
     * None
     */
    @Column("volume_state")
    private String volumeState;
    /**
     * unique device id
     * 
     * 0300cf856300004c0000000164d55cc59a.1
     */
    @Column("unique_device_id")
    private String uniqueDeviceId;
    /**
     * 物理磁盘所在vios的平台id
     */
    @Column("vios_id")
    private Long viosId;

    /**
     * physical disk assign slot id
     * 
     * 2
     * 
     */
    @Column("vios_slot_id")
    private Integer viosSlotId;
    /**
     * vios name
     */
    @IgnoreAll
    private String viosName;
    /**
     * vios hmc id
     */
    @IgnoreAll
    private Integer viosHmcId;
    /**
     * 物理磁盘所在vg的平台id
     */
    @Column("vg_id")
    private Long vgId;
    /**
     * physical disk vg info
     * 
     * rootvg
     * 
     */
    @IgnoreAll
    private String vg;
    /**
     * physical disk assign partition id
     * 
     * 这个id是平台的partition的id
     * 
     * 不是hmc端显示的partition的id
     * 
     * 2
     * 
     */
    @Column("assign_partition_id")
    private Long assignPartitionId;
    /**
     * physical disk assign slot id
     * 
     * 2
     * 
     */
    @Column("assign_slot_id")
    private Integer assignSlotId;
    /**
     * physical disk assign info
     * 
     * aix(2)
     * 
     */
    @IgnoreAll
    private String assign;

    /**
     * virtual disk assign partition status
     * 
     * not activated
     * 
     */
    @IgnoreAll
    private String assignStatus;
    /**
     * 该磁盘是否可用
     */
    @Column("available")
    private Boolean available;
    /**
     * 该磁盘描述
     */
    @Column("description")
    private String description;
    /**
     * 该磁盘是否由光纤存储提供
     */
    @Column("is_fc")
    private Boolean isFc;
    /**
     * 该磁盘位置信息
     */
    @Column("location_code")
    private String locationCode;
    /**
     * 该磁盘恢复策略
     * 
     * NoReserve
     */
    @Column("reserve_policy")
    private String reservePolicy;
    /**
     * 该磁盘恢复策略算法
     * 
     * Failover
     */
    @Column("reserve_policy_algorithm")
    private String reservePolicyAlgorithm;

    /**
     * @return the id
     */
    public Long getId() {
        return id;
    }

    /**
     * @param id
     *            the id to set
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * @return the volumeName
     */
    public String getVolumeName() {
        return volumeName;
    }

    /**
     * @param volumeName
     *            the volumeName to set
     */
    public void setVolumeName(String volumeName) {
        this.volumeName = volumeName;
    }

    /**
     * @return the volumeCapacity
     */
    public Double getVolumeCapacity() {
        return volumeCapacity;
    }

    /**
     * @param volumeCapacity
     *            the volumeCapacity to set
     */
    public void setVolumeCapacity(Double volumeCapacity) {
        this.volumeCapacity = volumeCapacity;
    }

    /**
     * @return the volumeState
     */
    public String getVolumeState() {
        return volumeState;
    }

    /**
     * @param volumeState
     *            the volumeState to set
     */
    public void setVolumeState(String volumeState) {
        this.volumeState = volumeState;
    }

    /**
     * @return the uniqueDeviceId
     */
    public String getUniqueDeviceId() {
        return uniqueDeviceId;
    }

    /**
     * @param uniqueDeviceId
     *            the uniqueDeviceId to set
     */
    public void setUniqueDeviceId(String uniqueDeviceId) {
        this.uniqueDeviceId = uniqueDeviceId;
    }

    /**
     * @return the viosId
     */
    public Long getViosId() {
        return viosId;
    }

    /**
     * @param viosId
     *            the viosId to set
     */
    public void setViosId(Long viosId) {
        this.viosId = viosId;
    }

    /**
     * @return the viosSlotId
     */
    public Integer getViosSlotId() {
        return viosSlotId;
    }

    /**
     * @param viosSlotId
     *            the viosSlotId to set
     */
    public void setViosSlotId(Integer viosSlotId) {
        this.viosSlotId = viosSlotId;
    }

    /**
     * @return the viosName
     */
    public String getViosName() {
        return viosName;
    }

    /**
     * @param viosName
     *            the viosName to set
     */
    public void setViosName(String viosName) {
        this.viosName = viosName;
    }

    /**
     * @return the viosHmcId
     */
    public Integer getViosHmcId() {
        return viosHmcId;
    }

    /**
     * @param viosHmcId
     *            the viosHmcId to set
     */
    public void setViosHmcId(Integer viosHmcId) {
        this.viosHmcId = viosHmcId;
    }

    /**
     * @return the vgId
     */
    public Long getVgId() {
        return vgId;
    }

    /**
     * @param vgId
     *            the vgId to set
     */
    public void setVgId(Long vgId) {
        this.vgId = vgId;
    }

    /**
     * @return the vg
     */
    public String getVg() {
        return vg;
    }

    /**
     * @param vg
     *            the vg to set
     */
    public void setVg(String vg) {
        this.vg = vg;
    }

    /**
     * @return the assignPartitionId
     */
    public Long getAssignPartitionId() {
        return assignPartitionId;
    }

    /**
     * @param assignPartitionId
     *            the assignPartitionId to set
     */
    public void setAssignPartitionId(Long assignPartitionId) {
        this.assignPartitionId = assignPartitionId;
    }

    /**
     * @return the assignSlotId
     */
    public Integer getAssignSlotId() {
        return assignSlotId;
    }

    /**
     * @param assignSlotId
     *            the assignSlotId to set
     */
    public void setAssignSlotId(Integer assignSlotId) {
        this.assignSlotId = assignSlotId;
    }

    /**
     * @return the assign
     */
    public String getAssign() {
        return assign;
    }

    /**
     * @param assign
     *            the assign to set
     */
    public void setAssign(String assign) {
        this.assign = assign;
    }

    /**
     * @return the assignStatus
     */
    public String getAssignStatus() {
        return assignStatus;
    }

    /**
     * @param assignStatus
     *            the assignStatus to set
     */
    public void setAssignStatus(String assignStatus) {
        this.assignStatus = assignStatus;
    }

    /**
     * @return the available
     */
    public Boolean getAvailable() {
        return available;
    }

    /**
     * @param available
     *            the available to set
     */
    public void setAvailable(Boolean available) {
        this.available = available;
    }

    /**
     * @return the description
     */
    public String getDescription() {
        return description;
    }

    /**
     * @param description
     *            the description to set
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * @return the isFc
     */
    public Boolean getIsFc() {
        return isFc;
    }

    /**
     * @param isFc
     *            the isFc to set
     */
    public void setIsFc(Boolean isFc) {
        this.isFc = isFc;
    }

    /**
     * @return the locationCode
     */
    public String getLocationCode() {
        return locationCode;
    }

    /**
     * @param locationCode
     *            the locationCode to set
     */
    public void setLocationCode(String locationCode) {
        this.locationCode = locationCode;
    }

    /**
     * @return the reservePolicy
     */
    public String getReservePolicy() {
        return reservePolicy;
    }

    /**
     * @param reservePolicy
     *            the reservePolicy to set
     */
    public void setReservePolicy(String reservePolicy) {
        this.reservePolicy = reservePolicy;
    }

    /**
     * @return the reservePolicyAlgorithm
     */
    public String getReservePolicyAlgorithm() {
        return reservePolicyAlgorithm;
    }

    /**
     * @param reservePolicyAlgorithm
     *            the reservePolicyAlgorithm to set
     */
    public void setReservePolicyAlgorithm(String reservePolicyAlgorithm) {
        this.reservePolicyAlgorithm = reservePolicyAlgorithm;
    }

    public HmcPhysicalDisk() {
    }

    @Override
    public String toString() {
        return JSONObject.toJSONString(this);
    }

}
