using EVCB_OCPP.Packet20.DataTypes;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EVCB_OCPP.Packet20.Messages
{
    public class UpdateFirmwareRequest
    {
        /// <summary>
        /// This specifies how many times Charging
        /// Station must try to download the firmware before giving
        ///up.If this field is not present, it is left to Charging Station
        ///to decide how many times it wants to retry.
        /// </summary>
        public int? Retries { set; get; }

        /// <summary>
        /// The interval in seconds after which a retry may
        /// be attempted.If this field is not present, it is left to
        /// Charging Station to decide how long to wait between
        ///  attempts.
        /// </summary>
        public int? retryInterval { set; get; }

        /// <summary>
        /// The Id of this request
        /// </summary>
        [Required]
        public int RequestId { set; get; }

        /// <summary>
        /// Specifies the firmware to be updated on the
        ///Charging Station
        /// </summary>
        [Required]
        public FirmwareType Firmware { set; get; }
    }
}
