package com.bocloud.ims.entity.resource;

import com.bocloud.common.utils.DateSerializer;
import com.bocloud.entity.annotations.Column;
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 com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 虚拟机模板 版本
 * 
 * @author ymh
 * @时间 2019年3月8日
 */
@Table("template_version")
public class ServerTemplateVersion extends GenericEntity {

	@PK(value = PKStrategy.AUTO)
	private Long id;
	@Column("vendor_id")
	private Long vendorId;
	@Column("tenant_id")
	private Long tenantId;// 租户ID
	@Column("project_id")
	private Long projectId;// 项目ID
	@Column("region")
	private String region;
	@Column("zone")
	private String zone;
	@Column("default_version")
	private Boolean defaultVersion;
	@Column("create_time")
	@JsonSerialize(using = DateSerializer.class)
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date createTime;
	@Column("host_name")
	private String hostName;
	@Column("image_uuid")
	private String imageUuid;
	@Column("image_owner_alias")
	private String imageOwnerAlias;
	@Column("instance_charge_type")
	private String instanceChargeType;
	@Column("instance_name")
	private String instanceName;
	@Column("flavor_uuid")
	private String flavorUuid;
	@Column("internet_charge_type")
	private String internetChargeType;
	@Column("internet_max_bandwidthOut")
	private Integer internetMaxBandwidthOut;// 公网出带宽最大值
	@Column("io_optimized")
	private String ioOptimized;
	@Column("keypair_name")
	private String keypairName;
	@Column("network_interfaces")
	private String networkInterfaces;
	@Column("network_type")
	private String networkType;
	@Column("security_group_id")
	private String securityGroupId;
	@Column("system_disk_category")
	private String systemDiskCategory;
	@Column("system_disk_size")
	private Integer systemDiskSize;
	@Column("vpc_uuid")
	private String vpcUuid;
	@Column("vSwitch_uuid")
	private String vSwitchUuid;
	@Column("template_id")
	private Long templateId;
	@Column("template_uuid")
	private String templateUuid;
	@Column("template_name")
	private String templateName;
	@Column("version_description")
	private String versionDescription;
	@Column("version_number")
	private Long versionNumber;
	@Column("tags")
	private String tags;
	@Column("dataDisks")
	private String dataDisks;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getVendorId() {
		return vendorId;
	}

	public void setVendorId(Long vendorId) {
		this.vendorId = vendorId;
	}

	public Long getTenantId() {
		return tenantId;
	}

	public void setTenantId(Long tenantId) {
		this.tenantId = tenantId;
	}

	public Long getProjectId() {
		return projectId;
	}

	public void setProjectId(Long projectId) {
		this.projectId = projectId;
	}

	public String getRegion() {
		return region;
	}

	public void setRegion(String region) {
		this.region = region;
	}

	public String getZone() {
		return zone;
	}

	public void setZone(String zone) {
		this.zone = zone;
	}

	public Boolean getDefaultVersion() {
		return defaultVersion;
	}

	public void setDefaultVersion(Boolean defaultVersion) {
		this.defaultVersion = defaultVersion;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public String getHostName() {
		return hostName;
	}

	public void setHostName(String hostName) {
		this.hostName = hostName;
	}

	public String getImageUuid() {
		return imageUuid;
	}

	public void setImageUuid(String imageUuid) {
		this.imageUuid = imageUuid;
	}

	public String getImageOwnerAlias() {
		return imageOwnerAlias;
	}

	public void setImageOwnerAlias(String imageOwnerAlias) {
		this.imageOwnerAlias = imageOwnerAlias;
	}

	public String getInstanceChargeType() {
		return instanceChargeType;
	}

	public void setInstanceChargeType(String instanceChargeType) {
		this.instanceChargeType = instanceChargeType;
	}

	public String getInstanceName() {
		return instanceName;
	}

	public void setInstanceName(String instanceName) {
		this.instanceName = instanceName;
	}

	public String getFlavorUuid() {
		return flavorUuid;
	}

	public void setFlavorUuid(String flavorUuid) {
		this.flavorUuid = flavorUuid;
	}

	public String getInternetChargeType() {
		return internetChargeType;
	}

	public void setInternetChargeType(String internetChargeType) {
		this.internetChargeType = internetChargeType;
	}

	public Integer getInternetMaxBandwidthOut() {
		return internetMaxBandwidthOut;
	}

	public void setInternetMaxBandwidthOut(Integer internetMaxBandwidthOut) {
		this.internetMaxBandwidthOut = internetMaxBandwidthOut;
	}

	public String getIoOptimized() {
		return ioOptimized;
	}

	public void setIoOptimized(String ioOptimized) {
		this.ioOptimized = ioOptimized;
	}

	public String getKeypairName() {
		return keypairName;
	}

	public void setKeypairName(String keypairName) {
		this.keypairName = keypairName;
	}

	public String getNetworkInterfaces() {
		return networkInterfaces;
	}

	public void setNetworkInterfaces(String networkInterfaces) {
		this.networkInterfaces = networkInterfaces;
	}

	public String getNetworkType() {
		return networkType;
	}

	public void setNetworkType(String networkType) {
		this.networkType = networkType;
	}

	public String getSecurityGroupId() {
		return securityGroupId;
	}

	public void setSecurityGroupId(String securityGroupId) {
		this.securityGroupId = securityGroupId;
	}

	public String getSystemDiskCategory() {
		return systemDiskCategory;
	}

	public void setSystemDiskCategory(String systemDiskCategory) {
		this.systemDiskCategory = systemDiskCategory;
	}

	public Integer getSystemDiskSize() {
		return systemDiskSize;
	}

	public void setSystemDiskSize(Integer systemDiskSize) {
		this.systemDiskSize = systemDiskSize;
	}

	public String getVpcUuid() {
		return vpcUuid;
	}

	public void setVpcUuid(String vpcUuid) {
		this.vpcUuid = vpcUuid;
	}

	public String getvSwitchUuid() {
		return vSwitchUuid;
	}

	public void setvSwitchUuid(String vSwitchUuid) {
		this.vSwitchUuid = vSwitchUuid;
	}

	public String getTemplateUuid() {
		return templateUuid;
	}

	public void setTemplateUuid(String templateUuid) {
		this.templateUuid = templateUuid;
	}

	public String getTemplateName() {
		return templateName;
	}

	public void setTemplateName(String templateName) {
		this.templateName = templateName;
	}

	public String getVersionDescription() {
		return versionDescription;
	}

	public void setVersionDescription(String versionDescription) {
		this.versionDescription = versionDescription;
	}

	public Long getVersionNumber() {
		return versionNumber;
	}

	public void setVersionNumber(Long versionNumber) {
		this.versionNumber = versionNumber;
	}

	public String getTags() {
		return tags;
	}

	public void setTags(String tags) {
		this.tags = tags;
	}

	public String getDataDisks() {
		return dataDisks;
	}

	public void setDataDisks(String dataDisks) {
		this.dataDisks = dataDisks;
	}

	public Long getTemplateId() {
		return templateId;
	}

	public void setTemplateId(Long templateId) {
		this.templateId = templateId;
	}

}
