--- /dev/null
+//
+// Created by v.cherepanov@samsung.com on 09.04.18.
+//
+
+#ifndef __PLUGIN_PARAM_H__
+#define __PLUGIN_PARAM_H__
+
+#include <string>
+
+namespace nncc
+{
+namespace contrib
+{
+namespace config
+{
+
+class PluginParam
+{
+public:
+ PluginParam() = delete;
+ PluginParam(const std::string &name, const std::string &desc, bool isOptional);
+
+ const std::string & getName() const;
+ const std::string & getDesc() const;
+ bool isOptional();
+
+protected:
+ std::string _name;
+ std::string _desc;
+ bool _isOptional;
+};
+
+std::ostream &operator<<(std::ostream &os, const PluginParam ¶m);
+
+} // namespace config
+} // namespace contrib
+} // namespace nncc
+
+#endif // __PLUGIN_PARAM_H__
--- /dev/null
+//
+// Created by v.cherepanov@samsung.com on 09.04.18.
+//
+
+#include <ostream>
+#include <string>
+
+#include "PluginParam.h"
+
+namespace nncc
+{
+namespace contrib
+{
+namespace config
+{
+
+PluginParam::PluginParam(const std::string &name, const std::string &desc, bool isOptional)
+ : _name(name), _desc(desc), _isOptional(isOptional)
+{
+}
+
+const std::string & PluginParam::getName() const { return _name; }
+
+const std::string & PluginParam::getDesc() const { return _desc; }
+
+bool PluginParam::isOptional() { return _isOptional; }
+
+std::ostream &operator<<(std::ostream &os, const PluginParam ¶m)
+{
+ os << param.getName() << " " << param.getDesc();
+ return os;
+}
+
+} // namespace config
+} // namespace contrib
+} // namespace nncc