/*
* Copyright (c) 2016 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.model.storagesystem.type;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import com.emc.storageos.model.DataObjectRestRep;
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlRootElement(name = "storagesystem_type")
public class StorageSystemTypeRestRep extends DataObjectRestRep {
private String storageTypeName;
private String metaType;
private String storageTypeId;
private boolean isSmiProvider = false;
private boolean isDefaultSsl = false;
private String storageTypeDispName;
private boolean isDefaultMDM = false;
private boolean isOnlyMDM = false;
private boolean isElementMgr = false;
private String nonSslPort;
private String sslPort;
private String driverClassName;
private boolean isSecretKey = false;
private String managedBy;
private boolean isNative = true;
private boolean supportAutoTierPolicy;
@XmlElement(name = "support_autotier_policy")
public boolean isSupportAutoTierPolicy() {
return supportAutoTierPolicy;
}
public void setSupportAutoTierPolicy(boolean supportAutoTierPolicy) {
this.supportAutoTierPolicy = supportAutoTierPolicy;
}
public StorageSystemTypeRestRep() {
}
@XmlElement(name = "is_native")
public boolean isNative() {
return isNative;
}
public void setNative(boolean isNative) {
this.isNative = isNative;
}
@XmlElement(name = "managed_by")
public String getManagedBy() {
return managedBy;
}
public void setManagedBy(String managedBy) {
this.managedBy = managedBy;
}
/**
* Storage System Type ID internal URI generated by system for unique identification
*
*/
@XmlElement(name = "storage_type_id")
public String getStorageTypeId() {
return storageTypeId;
}
public void setStorageTypeId(String storageTypeId) {
this.storageTypeId = storageTypeId;
}
/**
* Storage System Type name, example VMAX
*/
@XmlElement(name = "storage_type_name")
public String getStorageTypeName() {
return storageTypeName;
}
public void setStorageTypeName(String storageSystemTypeName) {
this.storageTypeName = storageSystemTypeName;
}
/**
* Storage System Type type, example file, block and object
*/
@XmlElement(name = "meta_type")
public String getMetaType() {
return metaType;
}
public void setMetaType(String metaType) {
this.metaType = metaType;
}
/**
* Is this Storage System Type is managed using SMI Provider. If true CoprHD should connect through Provider only
*/
@XmlElement(name = "is__smi_provider")
public boolean getIsSmiProvider() {
return isSmiProvider;
}
public void setIsSmiProvider(boolean isSmiProvider) {
this.isSmiProvider = isSmiProvider;
}
/**
* Display name for storage system type, example EMC VMAX
*/
@XmlElement(name = "storage_type_disp_name")
public String getStorageTypeDispName() {
return storageTypeDispName;
}
public void setStorageTypeDispName(String storageTypeDispName) {
this.storageTypeDispName = storageTypeDispName;
}
/**
* Storage system type support SSL connection by default. If true provide SSL port
*/
@XmlElement(name = "is_default_ssl")
public boolean getIsDefaultSsl() {
return isDefaultSsl;
}
public void setIsDefaultSsl(boolean isDefaultSsl) {
this.isDefaultSsl = isDefaultSsl;
}
/**
* Is the storage system type support Meta Data Manager as default. This is applicable only for ScaleIO arrays
*/
@XmlElement(name = "is_default_mdm")
public boolean getIsDefaultMDM() {
return isDefaultMDM;
}
public void setIsDefaultMDM(boolean isDefaultMDM) {
this.isDefaultMDM = isDefaultMDM;
}
/**
* Is the storage system type support only Meta Data Manager. This is applicable only for ScaleIO arrays
*/
@XmlElement(name = "is_only_mdm")
public boolean getIsOnlyMDM() {
return isOnlyMDM;
}
public void setIsOnlyMDM(boolean isOnlyMDM) {
this.isOnlyMDM = isOnlyMDM;
}
/**
* Whether the Storage System Type is managed by Element Manager. Applicable for ScaleIO
*/
@XmlElement(name = "is_element_mgr")
public boolean getIsElementMgr() {
return isElementMgr;
}
public void setIsElementMgr(boolean isElementMgr) {
this.isElementMgr = isElementMgr;
}
/**
* Whether the Storage System Type has a secret key.
*/
@XmlElement(name = "is_secret_key")
public boolean getIsSecretKey() {
return isSecretKey;
}
public void setIsSecretKey(boolean isSecretKey) {
this.isSecretKey = isSecretKey;
}
/**
* SSL port number, if SSL is supported and enabled
*/
@XmlElement(name = "ssl_port")
public String getSslPort() {
return sslPort;
}
public void setSslPort(String sslPort) {
this.sslPort = sslPort;
}
/**
* Storage System Type port number.
*/
@XmlElement(name = "non_ssl_port")
public String getNonSslPort() {
return nonSslPort;
}
public void setNonSslPort(String nonSslPort) {
this.nonSslPort = nonSslPort;
}
/**
* Storage System Type driver class name. This class is defined in South Bound SDK of CoprHD that device driver developer should
* implement.
*/
@XmlElement(name = "driver_class_name")
public String getDriverClassName() {
return driverClassName;
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("StorageSystemTypeRestRep [storage_type_id=");
builder.append(storageTypeId);
builder.append(", storage_type_name=");
builder.append(storageTypeName);
builder.append(", storage_type_type=");
builder.append(metaType);
builder.append(", isSmiProvider=");
builder.append(isSmiProvider);
builder.append(", isDefaultSsl=");
builder.append(isDefaultSsl);
builder.append(", nonSslPort=");
builder.append(nonSslPort);
builder.append(", sslPort=");
builder.append(sslPort);
builder.append(", driverClassName=");
builder.append(driverClassName);
builder.append("]");
return builder.toString();
}
}