namespace EVCB_OCPP.Packet20.DataTypes.EnumTypes
{
    public enum TriggerReasonEnumType
    {
        /// <summary>
        /// Charging is authorized, by any means. Might be an RFID, or other authorization means.
        /// </summary>
        Authorized = 1,
        /// <summary>
        /// Cable is plugged in and EVDetected.
        /// </summary>
        CablePluggedIn,
        /// <summary>
        /// Rate of charging changed by more than MaxLimitChangedSkipPercentage, or next period in charging
        ///schedule
        /// </summary>
        ChargingRateChanged,
        /// <summary>
        /// Charging State changed.
        /// </summary>
        ChargingStateChanged,
        /// <summary>
        /// The transaction was stopped because of the authorization status in the response to a
        /// transactionEventRequest.
        /// </summary>
        Deauthorized,
        /// <summary>
        ///  Maximum energy of charging reached. For example: in a pre-paid charging solution
        /// </summary>
        EnergyLimitReached,
        /// <summary>
        /// Communication with EV lost, for example: cable disconnected.
        /// </summary>
        EVCommunicationLost,
        /// <summary>
        ///  EV not connected before the connection is timed out.
        /// </summary>
        EVConnectTimeout,
        /// <summary>
        /// Needed to send a clock aligned meter value
        /// </summary>
        MeterValueClock,
        /// <summary>
        ///  Needed to send a periodic meter value
        /// </summary>
        MeterValuePeriodic,
        /// <summary>
        /// Maximum time of charging reached. For example: in a pre-paid charging solution
        /// </summary>
        TimeLimitReached,
        /// <summary>
        ///  Requested by the CSMS via a TriggerMessageRequest.
        /// </summary>
        Trigger,
        /// <summary>
        /// CSMS sent an Unlock Connector command.
        /// </summary>
        UnlockCommand,
        /// <summary>
        /// An EV Driver has been authorized to stop charging. For example: By swiping an RFID card.
        /// </summary>
        StopAuthorized,
        /// <summary>
        ///  EV departed. For example: When a departing EV triggers a parking bay detector.
        /// </summary>
        EVDeparted,
        /// <summary>
        ///  EV detected. For example: When an arriving EV triggers a parking bay detector.
        /// </summary>
        EVDetected,
        /// <summary>
        /// A RequestStopTransactionRequest has been sent.
        /// </summary>
        RemoteStop,
        /// <summary>
        /// A RequestStartTransactionRequest has been sent.
        /// </summary>
        RemoteStart,
        /// <summary>
        /// An Abnormal Error or Fault Condition has occurred.
        /// </summary>
        AbnormalCondition,
        /// <summary>
        /// Signed data is received from the energy meter.
        /// </summary>
        SignedDataReceived,
        /// <summary>
        /// CSMS sent a Reset Charging Station command.
        /// </summary>
        ResetCommand
    }
}
