package com.atlassian.bitbucket.internal.mirroring.mirror.dao.v0;

/**
 * The state of the integration between an upstream server and a mirror server.
 *
 * @since 4.6
 */
public enum IntegrationStateV0 {
    /**
     * Mirror server has not requested access to the upstream server yet
     */
    INITIALIZING,
    /**
     * Integration between a mirror server and its upstream server has been requested, but hasn't been accepted
     */
    PENDING,
    /**
     * Mirror server is integrated with the upstream server and is allowed to act as a mirror for the upstream server
     * <p>
     * Replaced by {@link #INSTALLED} in V1
     */
    ENABLED,
    /**
     * Mirror server is integrated with the upstream server and is allowed to act as a mirror for the upstream server
     * <p>
     * Introduced in V1 as a replacement of {@link #ENABLED}
     */
    INSTALLED,
    /**
     * The connection between the mirror and its upstream server is configured, but has (temporarily) been disabled
     * <p>
     * Removed in V1
     */
    DISABLED,
    /**
     * The mirror server cannot determine its integration state. This happens when the mirror status endpoint on the
     * upstream is unavailable.
     */
    UNKNOWN,
    /**
     * The mirror server has been uninstalled from the upstream server
     */
    REMOVED
}
