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

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

There is a newer version: 3.5.0.0
Show newest version
/*
 * Copyright (c) 2013 EMC Corporation
 * All Rights Reserved
 */
package com.emc.storageos.model.vpool;

import org.codehaus.jackson.annotate.JsonProperty;

import java.net.URI;
import javax.xml.bind.annotation.XmlElement;

public class VirtualPoolHighAvailabilityParam {

    private String type;
    private VirtualArrayVirtualPoolMapEntry haVirtualArrayVirtualPool;
    private Boolean metroPoint;
    private Boolean autoCrossConnectExport;

    public VirtualPoolHighAvailabilityParam() {
    }

    public VirtualPoolHighAvailabilityParam(String type) {
        this.type = type;
    }

    public VirtualPoolHighAvailabilityParam(String type,
            VirtualArrayVirtualPoolMapEntry haVirtualArrayVirtualPool) {
        this.type = type;
        this.haVirtualArrayVirtualPool = haVirtualArrayVirtualPool;
    }

    /**
     * The high availability type.
     * 
     * @valid vplex_local
     * @valid vplex_distributed
     */
    @XmlElement(name = "type")
    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    /**
     * The virtual pool for the high availability virtual array.
     * 
     * @valid none
     */
    @XmlElement(name = "ha_varray_vpool")
    @JsonProperty("ha_varray_vpool")
    public VirtualArrayVirtualPoolMapEntry getHaVirtualArrayVirtualPool() {
        return haVirtualArrayVirtualPool;
    }

    public void setHaVirtualArrayVirtualPool(
            VirtualArrayVirtualPoolMapEntry haVirtualArrayVirtualPool) {
        this.haVirtualArrayVirtualPool = haVirtualArrayVirtualPool;
    }

    /**
     * Flag to specify whether or not MetroPoint configuration will be used.
     * 
     * @valid true
     * @valid false
     */
    @XmlElement(name = "metroPoint", required = false)
    public Boolean getMetroPoint() {
        return metroPoint;
    }

    public void setMetroPoint(Boolean metroPoint) {
        this.metroPoint = metroPoint;
    }

    /**
     * The class provides the REST representation of an entry in a
     * VirtualArray VirtualPool map.
     */
    public static class VirtualArrayVirtualPoolMapEntry {

        private URI virtualArray;
        private URI virtualPool;
        private Boolean activeProtectionAtHASite;

        public VirtualArrayVirtualPoolMapEntry() {
        }

        public VirtualArrayVirtualPoolMapEntry(URI key, URI val) {
            virtualArray = key;
            virtualPool = val;
        }

        public VirtualArrayVirtualPoolMapEntry(URI key, URI val, Boolean rp) {
            virtualArray = key;
            virtualPool = val;
            activeProtectionAtHASite = rp;
        }

        /**
         * The virtual array.
         * 
         * @valid none
         */
        @XmlElement(name = "varray")
        @JsonProperty("varray")
        public URI getVirtualArray() {
            return virtualArray;
        }

        public void setVirtualArray(URI virtualArray) {
            this.virtualArray = virtualArray;
        }

        /**
         * The virtual pool.
         * 
         * @valid none
         */
        @XmlElement(name = "vpool")
        @JsonProperty("vpool")
        public URI getVirtualPool() {
            return virtualPool;
        }

        public void setVirtualPool(URI virtualPool) {
            this.virtualPool = virtualPool;
        }

        /**
         * Indicates whether or not to use the HA side of the VPlex as the
         * RecoverPoint protected site in an RP+VPLEX setup. In a MetroPoint
         * context, if true, this field indicates that the HA VPlex site will be
         * the active site.
         * 
         * @valid true
         * @valid false
         */
        @XmlElement(name = "activeProtectionAtHASite", required = false)
        @JsonProperty("activeProtectionAtHASite")
        public Boolean getActiveProtectionAtHASite() {
            return activeProtectionAtHASite;
        }

        public void setActiveProtectionAtHASite(Boolean activeProtectionAtHASite) {
            this.activeProtectionAtHASite = activeProtectionAtHASite;
        }
    }

    /**
     * Flag to specify whether to automatically export both VPlex Clusters to
     * cross-connected hosts.
     * 
     * @valid true
     * @valid false
     */
    @XmlElement(name = "autoCrossConnectExport", required = false)
    public Boolean getAutoCrossConnectExport() {
        return autoCrossConnectExport;
    }

    public void setAutoCrossConnectExport(Boolean autoCrossConnectExport) {
        this.autoCrossConnectExport = autoCrossConnectExport;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy