namespace EVCB_OCPP.Packet20.DataTypes.EnumTypes
{
    public enum FirmwareStatusEnumType
    {
        /// <summary>
        ///  Intermediate state. New firmware has been downloaded by Charging Station.
        /// </summary>
        Downloaded = 1,
        /// <summary>
        ///  Failure end state. Charging Station failed to download firmware.
        /// </summary>
        DownloadFailed,
        /// <summary>
        ///  Intermediate state. Firmware is being downloaded.
        /// </summary>
        Downloading,
        /// <summary>
        ///  Intermediate state. Downloading of new firmware has been scheduled.
        /// </summary>
        DownloadScheduled,
        /// <summary>
        ///  Intermediate state. Downloading has been paused.
        /// </summary>
        DownloadPaused,
        /// <summary>
        ///  Charging Station is not performing firmware update related tasks. Status Idle SHALL only be used as in a
        /// FirmwareStatusNotificationRequest that was triggered by TriggerMessageRequest.
        /// </summary>
        Idle,
        /// <summary>
        ///  Failure end state. Installation of new firmware has failed.
        /// </summary>
        InstallationFailed,
        /// <summary>
        ///  Intermediate state.Firmware is being installed.
        /// </summary>
        Installing,
        /// <summary>
        ///  Successful end state.New firmware has successfully been installed in Charging Station.
        /// </summary>
        Installed,
        /// <summary>
        ///  Intermediate state.Charging Station is about to reboot to activate new firmware.This status MAY be omitted
        //if a reboot is an integral part of the installation and cannot be reported separately.
        /// </summary>
        InstallRebooting,
        /// <summary>
        ///  Intermediate state.Installation of the downloaded firmware is scheduled to take place on installDateTime
        ///  given in UpdateFirmware request.
        /// </summary>
        InstallScheduled,
        /// <summary>
        /// Failure end state. Verification of the new firmware(e.g. using a checksum or some other means) has failed
        ///and installation will not proceed. (Final failure state)
        /// </summary>
        InstallVerificationFailed,
        /// <summary>
        ///  Failure end state.The firmware signature is not valid.
        /// </summary>
        InvalidSignature,
        /// <summary>
        ///  Intermediate state.Provide signature successfully verified.
        /// </summary>
        SignatureVerified
    }
}
