namespace EVCB_OCPP.Packet20.DataTypes.EnumTypes
{
    public enum AuthorizeCertificateStatusEnumType
    {
        /// <summary>
        ///  Positive response
        /// </summary>
        Accepted = 1,
        /// <summary>
        /// If the validation of the Security element in the message header failed.
        /// </summary>
        SignatureError,
        /// <summary>
        ///  If the OEMProvisioningCert in the CertificateInstallationReq, the Contract Certificate in the
        ///   CertificateUpdateReq, or the ContractCertificate in the PaymentDetailsReq is expired.
        /// </summary>
        CertificateExpired,
        /// <summary>
        ///  Used when the SECC or CSMS matches the ContractCertificate contained in a CertificateUpdateReq or
        ///PaymentDetailsReq with a CRL and the Contract Certificate is marked as revoked, OR when the SECC or
        ///CSMS matches the OEM Provisioning Certificate contained in a CertificateInstallationReq with a CRL and the
        ///OEM Provisioning Certificate is marked as revoked.
        ///
        ///  The revocation status can alternatively be obtained through an OCSP responder.
        /// </summary>
        CertificateRevoked,
        /// <summary>
        ///If the new certificate cannot be retrieved from secondary actor within the specified timeout 
        /// </summary>
        NoCertificateAvailable,
        /// <summary>
        /// If the ContractSignatureCertChain contained in the CertificateInstallationReq message is not valid.
        /// </summary>
        CertChainError,
        /// <summary>
        ///  If the EMAID provided by EVCC during CertificateUpdateReq is not accepted by secondary actor.
        /// </summary>
        ContractCancelled
    }
}
