using EVCB_OCPP.Packet20.DataTypes.EnumTypes;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
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 CertificateSignedRequest
    {

        /// <summary>
        /// The signed X.509 certificate, first DER encoded
        /// into binary, and then Base64 encoded.This can also
        /// contain the necessary sub CA certificates.In that case,
        ///  the order should follow the certificate chain, starting from
        /// the leaf certificate.
        /// </summary>
        [Required]
        public List<string> Certificate { set; get; }

        /// <summary>
        /// Indicates the type of the signed certificate that
        ///is returned.When omitted the certificate is used for both
        ///the 15118 connection(if implemented) and the Charging
        ///Station to CSMS connection.This field is required when a
        ///typeOfCertificate was included in the
        ///SignCertificateRequest that requested this certificate to
        ///be signed AND both the 15118 connection and the
        ///Charging Station connection are implemented.
        /// </summary>       
        [JsonConverter(typeof(StringEnumConverter))]
        public CertificateSigningUseEnumType CertificateType { set; get; }




    }
}
