diff --git a/src/oatpp/core/async/Coroutine.hpp b/src/oatpp/core/async/Coroutine.hpp
index 8befeaed..4c24dba4 100644
--- a/src/oatpp/core/async/Coroutine.hpp
+++ b/src/oatpp/core/async/Coroutine.hpp
@@ -113,6 +113,9 @@ public:
public:
+ /**
+ * Event type qualifier for Actions of type &l:Action::TYPE_IO_WAIT;, &l:Action::TYPE_IO_REPEAT;.
+ */
enum IOEventType : v_int32 {
/**
* IO event type READ.
diff --git a/src/oatpp/core/data/IODefinitions.hpp b/src/oatpp/core/data/IODefinitions.hpp
index cee9bd41..6dc44ee2 100644
--- a/src/oatpp/core/data/IODefinitions.hpp
+++ b/src/oatpp/core/data/IODefinitions.hpp
@@ -56,13 +56,13 @@ typedef v_int64 v_io_size;
enum IOError : v_io_size {
/**
- * In oatpp 0 is considered to be an Error as for I/O operation size
+ * In oatpp 0 is considered to be an Error as for I/O operation size.
*
- * As for argument value 0 should be handled separately of the main flow.
+ * As for argument value 0 should be handled separately of the main flow.
*
- * As for return value 0 should not be returned.
- * I/O method should return an error describing a reason why I/O is empty instead of a zero itself.
- * if zero is returned, client should treat it like a bad api implementation and as an error in the flow.
+ * As for return value 0 should not be returned.
+ * I/O method should return an error describing a reason why I/O is empty instead of a zero itself.
+ * if zero is returned, client should treat it like a bad api implementation and as an error in the flow.
*/
ZERO_VALUE = 0,
diff --git a/src/oatpp/core/data/stream/Stream.hpp b/src/oatpp/core/data/stream/Stream.hpp
index 3a293140..d4399b46 100644
--- a/src/oatpp/core/data/stream/Stream.hpp
+++ b/src/oatpp/core/data/stream/Stream.hpp
@@ -32,8 +32,19 @@
namespace oatpp { namespace data{ namespace stream {
+/**
+ * Stream I/O mode.
+ */
enum IOMode : v_int32 {
+
+ /**
+ * Blocking stream I/O mode.
+ */
BLOCKING = 0,
+
+ /**
+ * Non-blocking stream I/O mode.
+ */
NON_BLOCKING = 1
};