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

org.openstack4j.model.manila.BackendStoragePool Maven / Gradle / Ivy

package org.openstack4j.model.manila;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import org.openstack4j.model.ModelEntity;

import java.util.List;
import java.util.Map;

/**
 * Represents a back-end storage pool.
 *
 * @author Daniel Gonzalez Nothnagel
 */
public interface BackendStoragePool extends ModelEntity {
    enum ConsistencyGroupSupport {
        POOL, HOST, FALSE;

        @JsonCreator
        public static ConsistencyGroupSupport value(String v) {
            return valueOf(v.toUpperCase());
        }

        @JsonValue
        public String value() {
            return name().toLowerCase();
        }
    }

    /**
     * @return the name of the back end
     */
    String getBackend();

    /**
     * @return the host name for the back end
     */
    String getHost();

    /**
     * @return the pool name for the back end
     */
    String getPool();

    /**
     * @return the name of the back end in this format: host@backend#POOL
     */
    String getName();

    /**
     * @return the capabilities for the storage back end
     */
    Capabilities getCapabilities();

    interface Capabilities {
        /**
         * @return the quality of service (QoS) support
         */
        Boolean getQosSupport();

        /**
         * @return the consistency group support
         */
        ConsistencyGroupSupport getConsistencyGroupSupport();

        /**
         * @return the date and time stamp when the API request was issued
         */
        String getTimestamp();

        /**
         * @return the name of the share back end
         */
        String getShareBackendName();

        /**
         * @return the mapping between servers and pools
         */
        Map> getServerPoolsMapping();

        /**
         * @return an extra specification that defines the driver mode for share server,
         * or storage, life cycle management
         */
        Boolean getDriverHandlesShareServers();

        /**
         * @return the driver version
         */
        String getDriverVersion();

        /**
         * @return the total capacity for the back end, in GBs, or 'unkown'
         */
        String getTotalCapacityGb();

        /**
         * @return the amount of free capacity for the back end, in GBs, or 'unknown'
         */
        String getFreeCapacityGb();

        /**
         * @return the percentage of the total capacity that is reserved for the internal use by the back end
         */
        Integer getReservedPercentage();

        /**
         * @return the pools for the back end
         */
        String getPools();

        /**
         * @return the name of the vendor for the back end
         */
        String getVendorName();

        /**
         * @return the specification that filters back ends by whether they do or do not support share snapshots
         */
        Boolean getSnapshotSupport();

        /**
         * @return the storage protocol for the back end
         */
        String getStorageProtocol();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy