/*
* Copyright (c) 2008-2013 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.model.varray;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import org.codehaus.jackson.annotate.JsonProperty;
import com.emc.storageos.model.pools.VirtualArrayAssignmentChanges;
import com.emc.storageos.model.valid.Length;
@XmlRootElement(name = "network_update")
public class NetworkUpdate {
private String name;
private List<URI> varrays;
private EndpointChanges endpointChanges;
private VirtualArrayAssignmentChanges varrayChanges;
public NetworkUpdate() {
}
public NetworkUpdate(String name, List<URI> varrays) {
this.name = name;
this.varrays = varrays;
}
/**
* Name of the network; must be unique.
*
*/
@XmlElement(required = false)
@Length(min = 2, max = 128)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/**
* List containing 0 or 1 virtual arrays.
* Empty list will unassign the network from its existing virtual array.
* List with one element will assign the network to the virtual array.
* This field is maintained for backward compatibility and {@link #getVarrayChanges()} should be used instead. When used it will
* override the existing virtual arrays of a
* network.
*
* @deprecated use {@link #getVarrayChanges()}
*/
@XmlElementWrapper(name = "varrays", required = false)
@XmlElement(name = "varray", required = false)
@JsonProperty("varrays")
@Deprecated
public List<URI> getVarrays() {
if (varrays == null) {
varrays = new ArrayList<URI>();
}
return varrays;
}
/**
* @param varrays
* @deprecated use {@link #setVarrayChanges(VirtualArrayAssignmentChanges)}
*/
@Deprecated
public void setVarrays(List<URI> varrays) {
this.varrays = varrays;
}
/**
* Add and remove lists of virtual arrays.
*
*/
@XmlElement(name = "varray_assignment_changes")
public VirtualArrayAssignmentChanges getVarrayChanges() {
return varrayChanges;
}
public void setVarrayChanges(VirtualArrayAssignmentChanges varrays) {
this.varrayChanges = varrays;
}
/**
* Add and remove lists of endpoints. Valid: valid endpoints for the network type (FC,IP or Ethernet)
*
*/
@XmlElement(name = "endpoint_changes")
public EndpointChanges getEndpointChanges() {
return endpointChanges;
}
public void setEndpointChanges(EndpointChanges endpoints) {
this.endpointChanges = endpoints;
}
}