#if swift(>=4.0)
@objcMembers public class TrustDefenderArgs: ElectrodeObject, Bridgeable {

    private static let tag = String(describing: type(of: self))

    public let trustDefenderUserId: String?
    public let trustDefenderEventType: String?
    public let trustDefenderSessionId: String?
    public let trustDefenderConfig: TrustDefenderConfig?

    public init(trustDefenderUserId: String?, trustDefenderEventType: String?, trustDefenderSessionId: String?, trustDefenderConfig: TrustDefenderConfig?) {
        self.trustDefenderUserId = trustDefenderUserId
        self.trustDefenderEventType = trustDefenderEventType
        self.trustDefenderSessionId = trustDefenderSessionId
        self.trustDefenderConfig = trustDefenderConfig
        super.init()
    }

    public override init() {
        self.trustDefenderUserId = nil
        self.trustDefenderEventType = nil
        self.trustDefenderSessionId = nil
        self.trustDefenderConfig = nil
        super.init()
    }

    required public init(dictionary:[AnyHashable:Any]) {



        if let trustDefenderUserId = dictionary["trustDefenderUserId"] as? String {
            self.trustDefenderUserId = trustDefenderUserId
        } else {
            self.trustDefenderUserId = nil
        }
        

        if let trustDefenderEventType = dictionary["trustDefenderEventType"] as? String {
            self.trustDefenderEventType = trustDefenderEventType
        } else {
            self.trustDefenderEventType = nil
        }
        

        if let trustDefenderSessionId = dictionary["trustDefenderSessionId"] as? String {
            self.trustDefenderSessionId = trustDefenderSessionId
        } else {
            self.trustDefenderSessionId = nil
        }
        

        if let trustDefenderConfigDict = dictionary["trustDefenderConfig"] as? [AnyHashable: Any] {
            self.trustDefenderConfig = TrustDefenderConfig(dictionary: trustDefenderConfigDict)
        } else {
            self.trustDefenderConfig = nil
        }
        
        super.init(dictionary: dictionary)
    }

    public func toDictionary() -> NSDictionary {

         var dict = [:] as [AnyHashable : Any]

         
        if let nonNullTrustDefenderUserId = self.trustDefenderUserId {
                dict["trustDefenderUserId"] = nonNullTrustDefenderUserId
        }
        if let nonNullTrustDefenderEventType = self.trustDefenderEventType {
                dict["trustDefenderEventType"] = nonNullTrustDefenderEventType
        }
        if let nonNullTrustDefenderSessionId = self.trustDefenderSessionId {
                dict["trustDefenderSessionId"] = nonNullTrustDefenderSessionId
        }
        if let nonNullTrustDefenderConfig = self.trustDefenderConfig {
                dict["trustDefenderConfig"] = nonNullTrustDefenderConfig.toDictionary()
        }
        return dict as NSDictionary
    }
}
#else

public class TrustDefenderArgs: ElectrodeObject, Bridgeable {

    private static let tag = String(describing: type(of: self))

    public let trustDefenderUserId: String?
    public let trustDefenderEventType: String?
    public let trustDefenderSessionId: String?
    public let trustDefenderConfig: TrustDefenderConfig?

    public init(trustDefenderUserId: String?, trustDefenderEventType: String?, trustDefenderSessionId: String?, trustDefenderConfig: TrustDefenderConfig?) {
        self.trustDefenderUserId = trustDefenderUserId
        self.trustDefenderEventType = trustDefenderEventType
        self.trustDefenderSessionId = trustDefenderSessionId
        self.trustDefenderConfig = trustDefenderConfig
        super.init()
    }

    public override init() {
        self.trustDefenderUserId = nil
        self.trustDefenderEventType = nil
        self.trustDefenderSessionId = nil
        self.trustDefenderConfig = nil
        super.init()
    }

    required public init(dictionary:[AnyHashable:Any]) {



        if let trustDefenderUserId = dictionary["trustDefenderUserId"] as? String {
            self.trustDefenderUserId = trustDefenderUserId
        } else {
            self.trustDefenderUserId = nil
        }
        

        if let trustDefenderEventType = dictionary["trustDefenderEventType"] as? String {
            self.trustDefenderEventType = trustDefenderEventType
        } else {
            self.trustDefenderEventType = nil
        }
        

        if let trustDefenderSessionId = dictionary["trustDefenderSessionId"] as? String {
            self.trustDefenderSessionId = trustDefenderSessionId
        } else {
            self.trustDefenderSessionId = nil
        }
        

        if let trustDefenderConfigDict = dictionary["trustDefenderConfig"] as? [AnyHashable: Any] {
            self.trustDefenderConfig = TrustDefenderConfig(dictionary: trustDefenderConfigDict)
        } else {
            self.trustDefenderConfig = nil
        }
        
        super.init(dictionary: dictionary)
    }

    public func toDictionary() -> NSDictionary {

         var dict = [:] as [AnyHashable : Any]

         
        if let nonNullTrustDefenderUserId = self.trustDefenderUserId {
                dict["trustDefenderUserId"] = nonNullTrustDefenderUserId
        }
        if let nonNullTrustDefenderEventType = self.trustDefenderEventType {
                dict["trustDefenderEventType"] = nonNullTrustDefenderEventType
        }
        if let nonNullTrustDefenderSessionId = self.trustDefenderSessionId {
                dict["trustDefenderSessionId"] = nonNullTrustDefenderSessionId
        }
        if let nonNullTrustDefenderConfig = self.trustDefenderConfig {
                dict["trustDefenderConfig"] = nonNullTrustDefenderConfig.toDictionary()
        }
        return dict as NSDictionary
    }
}
#endif
