/*
* Copyright (c) 2017 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.db.client.model.remotereplication;
import java.net.URI;
import com.emc.storageos.db.client.model.AlternateId;
import com.emc.storageos.db.client.model.Cf;
import com.emc.storageos.db.client.model.DataObject;
import com.emc.storageos.db.client.model.DiscoveredDataObject;
import com.emc.storageos.db.client.model.Name;
import com.emc.storageos.db.client.model.RelationIndex;
import com.emc.storageos.db.client.model.StringSet;
@Cf("RemoteReplicationGroup")
public class RemoteReplicationGroup extends DiscoveredDataObject {
// native id of this group
private String nativeId;
// If replication group is reachable.
private Boolean reachable;
// Device label of this replication group.
private String deviceLabel;
// Type of storage systems in this replication group.
private String storageSystemType;
// Display name of this replication group (when provisioned by the system).
private String displayName;
// Source storage system of this group
private URI sourceSystem;
// Target storage system of this group
private URI targetSystem;
// replication mode of this group
private String replicationMode;
// replication state of this group
private String replicationState;
// Defines if group consistency of link operations is enforced.
private Boolean isGroupConsistencyEnforced;
// Parent replication set
private URI replicationSet;
@Name("nativeId")
public String getNativeId() {
return nativeId;
}
public void setNativeId(String nativeId) {
this.nativeId = nativeId;
setChanged("nativeId");
}
@Name("reachable")
public Boolean getReachable() {
return reachable == null ? false : reachable;
}
public void setReachable(final Boolean reachable) {
this.reachable = reachable;
setChanged("reachable");
}
@AlternateId("AltIdIndex")
@Name("storageSystemType")
public String getStorageSystemType() {
return storageSystemType;
}
public void setStorageSystemType(String storageSystemType) {
this.storageSystemType = storageSystemType;
setChanged("storageSystemType");
}
@Name("deviceLabel")
public String getDeviceLabel() {
return deviceLabel;
}
public void setDeviceLabel(String deviceLabel) {
this.deviceLabel = deviceLabel;
setChanged("deviceLabel");
}
@Name("displayName")
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
setChanged("displayName");
}
@Name("sourceSystem")
public URI getSourceSystem() {
return sourceSystem;
}
public void setSourceSystem(URI sourceSystem) {
this.sourceSystem = sourceSystem;
setChanged("sourceSystem");
}
@Name("targetSystem")
public URI getTargetSystem() {
return targetSystem;
}
public void setTargetSystem(URI targetSystem) {
this.targetSystem = targetSystem;
setChanged("targetSystem");
}
@Name("isGroupConsistencyEnforced")
public Boolean getIsGroupConsistencyEnforced() {
return isGroupConsistencyEnforced;
}
public void setIsGroupConsistencyEnforced(Boolean isGroupConsistencyEnforced) {
this.isGroupConsistencyEnforced = isGroupConsistencyEnforced;
setChanged("isGroupConsistencyEnforced");
}
@Name("replicationMode")
public String getReplicationMode() {
return replicationMode;
}
public void setReplicationMode(String replicationMode) {
this.replicationMode = replicationMode;
setChanged("replicationMode");
}
@Name("replicationState")
public String getReplicationState() {
return replicationState;
}
public void setReplicationState(String replicationState) {
this.replicationState = replicationState;
setChanged("replicationState");
}
@RelationIndex(cf = "RelationIndex", type = RemoteReplicationSet.class)
@Name("replicationSet")
public URI getReplicationSet() {
return replicationSet;
}
public void setReplicationSet(URI replicationSet) {
this.replicationSet = replicationSet;
setChanged("replicationSet");
}
@Override
public String toString() {
return getLabel()+"/"+_id;
}
}