All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.emc.storageos.model.vpool.BlockVirtualPoolRestRep Maven / Gradle / Ivy

There is a newer version: 3.5.0.0
Show newest version
/*
 * Copyright (c) 2008-2013 EMC Corporation
 * All Rights Reserved
 */

package com.emc.storageos.model.vpool;

import java.util.LinkedHashSet;
import java.util.Set;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "block_vpool")
public class BlockVirtualPoolRestRep extends VirtualPoolCommonRestRep {
    private String autoTieringPolicyName;
    private String driveType;
    private Boolean expandable;
    public Boolean fastExpansion;
    private Boolean multiVolumeConsistent;
    private Integer thinVolumePreAllocationPercentage;
    private BlockVirtualPoolProtectionParam protection;
    private VirtualPoolHighAvailabilityParam highAvailability;
    private Set raidLevels;
    private Boolean uniquePolicyNames;
    private Integer maxPaths;
    private Integer minPaths;
    private Integer pathsPerInitiator;

    // VMAX Host IO Limits attributes
    private Integer hostIOLimitBandwidth; // Host Front End limit bandwidth. If not specified or 0, indicated unlimited
    private Integer hostIOLimitIOPs; // Host Front End limit I/O. If not specified or 0, indicated unlimited

    public BlockVirtualPoolRestRep() {
    }

    /**
     * Name of the auto tier policy for the virtual pool.
     * 
     * @valid none
     * 
     * @return The auto tier policy name.
     */
    @XmlElement(name = "auto_tiering_policy_name")
    public String getAutoTieringPolicyName() {
        return autoTieringPolicyName;
    }

    /**
     * The supported disk drive type for the virtual pool.
     * 
     * @valid NONE = No specific drive type
     * @valid SSD = Solid State Drive
     * @valid FC = Fibre Channel
     * @valid SAS = Serial Attached SCSI
     * @valid SATA = Serial Advanced Technology Attachment
     * 
     * @return The drive type.
     */
    @XmlElement(name = "drive_type")
    public String getDriveType() {
        return driveType;
    }

    /**
     * Specifies whether or not volumes can be expanded.
     * 
     * @valid true
     * @valid false
     * 
     * @return true if volumes are expandable, false otherwise.
     */
    @XmlElement(name = "expandable")
    public Boolean getExpandable() {
        return expandable;
    }

    /**
     * Indicates that virtual pool volumes should use concatenated meta volumes,
     * not striped.
     * 
     * @valid true
     * @valid false
     */
    @XmlElement(name = "fast_expansion")
    public Boolean getFastExpansion() {
        return fastExpansion;
    }

    public void setFastExpansion(Boolean fastExpansion) {
        this.fastExpansion = fastExpansion;
    }

    /**
     * The high availability settings for the virtual pool.
     * 
     * @valid none
     * 
     * @return The high availability settings for the virtual pool.
     */
    @XmlElement(name = "high_availability")
    public VirtualPoolHighAvailabilityParam getHighAvailability() {
        return highAvailability;
    }

    /**
     * The preallocation size for VMAX thin volumes.
     * 
     * @valid none
     * 
     * @return The preallocation size for VMAX thin volumes.
     */
    @XmlElement(name = "thin_volume_preallocation_percentage")
    public Integer getThinVolumePreAllocationPercentage() {
        return thinVolumePreAllocationPercentage;
    }

    /**
     * Specifies whether or not multi-volume consistency is supported for the
     * virtual pool.
     * 
     * @valid true
     * @valid false
     * 
     * @return true if multi-volume consistency is supported, false otherwise.
     */
    @XmlElement(name = "multi_volume_consistency")
    public Boolean getMultiVolumeConsistent() {
        return multiVolumeConsistent;
    }

    /**
     * The protection settings for the virtual pool.
     * 
     * @valid none
     * 
     * @return The protection settings for the virtual pool.
     */
    @XmlElement
    public BlockVirtualPoolProtectionParam getProtection() {
        return protection;
    }

    @XmlElementWrapper(name = "raid_levels")
    /**
     * The RAID levels for storage allocated to your volumes.
     * RAID levels set the amount of redundancy and striping.
     * Here is a quick definition of the various RAID levels.
     * 
     * RAID 0 is a striped set of disks without parity.
     * RAID 1 is a mirror copy on two disks.
     * RAID 2 is a stripe at the bit level rather than the block level. Rarely used or supported.
     * RAID 3 is a byte level striping with a dedicated parity disk.
     * RAID 4 is block level striping with a dedicated parity disk.
     * RAID 5 is block level striping with the parity data distributed across all disks.
     * RAID 6 extends RAID 5 by adding an additional parity block; 
     * thus it uses block level striping with two parity blocks.
     * RAID 10 is a stripe of mirrors, i.e. a RAID 0 combination of RAID 1 drives.
     * 
     * @valid RAID0
     * @valid RAID1
     * @valid RAID2
     * @valid RAID3
     * @valid RAID4
     * @valid RAID5
     * @valid RAID6
     * @valid RAID10
     * 
     * @return the supported RAID levels.
     */
    @XmlElement(name = "raid_level")
    public Set getRaidLevels() {
        if (raidLevels == null) {
            raidLevels = new LinkedHashSet();
        }
        return raidLevels;
    }

    public void setAutoTieringPolicyName(String autoTieringPolicyName) {
        this.autoTieringPolicyName = autoTieringPolicyName;
    }

    public void setDriveType(String driveType) {
        this.driveType = driveType;
    }

    public void setExpandable(Boolean expandable) {
        this.expandable = expandable;
    }

    public void setHighAvailability(VirtualPoolHighAvailabilityParam highAvailability) {
        this.highAvailability = highAvailability;
    }

    public void setThinVolumePreAllocationPercentage(Integer thinVolumePreAllocationPercentage) {
        this.thinVolumePreAllocationPercentage = thinVolumePreAllocationPercentage;
    }

    public void setMultiVolumeConsistent(Boolean multiVolumeConsistent) {
        this.multiVolumeConsistent = multiVolumeConsistent;
    }

    public void setProtection(BlockVirtualPoolProtectionParam protection) {
        this.protection = protection;
    }

    public void setRaidLevels(Set raidLevels) {
        this.raidLevels = raidLevels;
    }

    /**
     * Specifies whether or not unique auto tier policy names are required.
     * 
     * @valid true
     * @valid false
     * 
     * @return true if unique auto tier policy names are required.
     */
    @XmlElement(name = "unique_auto_tier_policy_names")
    public Boolean getUniquePolicyNames() {
        return uniquePolicyNames;
    }

    public void setUniquePolicyNames(Boolean uniquePolicyNames) {
        this.uniquePolicyNames = uniquePolicyNames;
    }

    /**
     * Number of max paths supported by this virtual pool.
     * 
     * @valid 1-65535
     */
    @XmlElement(name = "max_paths")
    public Integer getMaxPaths() {
        return maxPaths;
    }

    public void setMaxPaths(Integer maxPaths) {
        this.maxPaths = maxPaths;
    }

    /*
     * Minimum number of paths to be exported by this virtual pool.
     * 
     * @valid 1-65535
     */
    @XmlElement(name = "min_paths")
    public Integer getMinPaths() {
        return minPaths;
    }

    public void setMinPaths(Integer minPaths) {
        this.minPaths = minPaths;
    }

    /**
     * Number of paths to be provisioned per initiator.
     * 
     * @valid 1-65535
     */
    @XmlElement(name = "paths_per_initiator")
    public Integer getPathsPerInitiator() {
        return pathsPerInitiator;
    }

    public void setPathsPerInitiator(Integer pathsPerInitiator) {
        this.pathsPerInitiator = pathsPerInitiator;
    }

    @XmlElement(name = "host_io_limit_bandwidth", required = false)
    public Integer getHostIOLimitBandwidth() {
        return hostIOLimitBandwidth;
    }

    public void setHostIOLimitBandwidth(Integer hostIOLimitBandwidth) {
        this.hostIOLimitBandwidth = hostIOLimitBandwidth;
    }

    @XmlElement(name = "host_io_limit_iops", required = false)
    public Integer getHostIOLimitIOPs() {
        return hostIOLimitIOPs;
    }

    public void setHostIOLimitIOPs(Integer hostIOLimitIOPs) {
        this.hostIOLimitIOPs = hostIOLimitIOPs;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy