/*
* Copyright (c) 2008-2013 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.model.file;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
/**
* FileSystem Ingest parameters
*
* UnManaged FileSystem are FileSystems, which are present within ViPR Storage Systems, but not managed in ViPR.
* Use GET /vdc/storage-systems/{id}/unmanaged/filesystems for the list of unmanaged filesystems ids on a Storage System basis.
* Use GET /vdc/unmanaged/filesystems/bulk for the list of all unManaged filesystems ids.
* Use POST /vdc/unmanaged/filesystems/bulk for unManaged FileSystem data.
* FileSystem Ingest provides flexibility in bringing UnManaged FileSystems under ViPR management.
* User must associate a Project, a Vpool, and a Varray to the file system for the file system to be managed by ViPR.
*
* List of Supported VPools for each UnManagedFileSystem is being exposed using /vdc/unmanaged/filesystems/bulk.
*/
@XmlRootElement(name = "filesystem_ingest")
public class FileSystemIngest {
private URI vpool;
private URI varray;
private URI project;
private List<URI> unManagedFileSystems;
public FileSystemIngest() {
}
public FileSystemIngest(URI vpool, URI varray, URI project,
List<URI> unManagedFileSystems) {
this.vpool = vpool;
this.varray = varray;
this.project = project;
this.unManagedFileSystems = unManagedFileSystems;
}
/**
* URI representing the virtual pool supporting the unmanaged file systems
*
*/
@XmlElement(required = true)
public URI getVpool() {
return vpool;
}
public void setVpool(URI vpool) {
this.vpool = vpool;
}
/**
* URI representing the virtual array supporting the unmanaged file systems
*
*/
@XmlElement(required = true)
public URI getVarray() {
return varray;
}
public void setVarray(URI varray) {
this.varray = varray;
}
/**
* URI representing the project
*
*/
@XmlElement(required = true)
public URI getProject() {
return project;
}
public void setProject(URI project) {
this.project = project;
}
/**
* List of UnManaged FileSystem URIs.
* Use GET /vdc/storage-systems/{id}/unmanaged/filesystems for the list of unmanaged FileSystem ids on a Storage System basis.
* Use GET /vdc/unmanaged/filesystems/bulk for the list of all unManaged FileSystem ids.
*
*/
@XmlElement(name = "unmanaged_filesystem_list", required = true)
public List<URI> getUnManagedFileSystems() {
if (unManagedFileSystems == null) {
unManagedFileSystems = new ArrayList<URI>();
}
return unManagedFileSystems;
}
public void setUnManagedFileSystems(List<URI> unManagedFileSystems) {
this.unManagedFileSystems = unManagedFileSystems;
}
}