diff --git a/app/code/Magento/Payment/Model/Method/Adapter.php b/app/code/Magento/Payment/Model/Method/Adapter.php
index eea91dca831244b4af1e6aecae6318f55b296eae..1d693e11fe51f5311ede057ffcdb7b7fd73a2338 100644
--- a/app/code/Magento/Payment/Model/Method/Adapter.php
+++ b/app/code/Magento/Payment/Model/Method/Adapter.php
@@ -507,12 +507,15 @@ class Adapter implements MethodInterface
             return null;
         }
 
-        if (isset($arguments['payment'])) {
+        /** @var InfoInterface|null $payment */
+        $payment = null;
+        if (isset($arguments['payment']) && $arguments['payment'] instanceof InfoInterface) {
+            $payment = $arguments['payment'];
             $arguments['payment'] = $this->paymentDataObjectFactory->create($arguments['payment']);
         }
 
         if ($this->commandExecutor !== null) {
-            return $this->commandExecutor->executeByCode($commandCode, $arguments);
+            return $this->commandExecutor->executeByCode($commandCode, $payment, $arguments);
         }
 
         if ($this->commandPool === null) {
diff --git a/app/code/Magento/Payment/Test/Unit/Model/Method/AdapterTest.php b/app/code/Magento/Payment/Test/Unit/Model/Method/AdapterTest.php
index 6de6726db31ba35345519064c178e45cf4b0c8d9..9489219ed7aa21fdc3b43110bf1ea9ef66fb9940 100644
--- a/app/code/Magento/Payment/Test/Unit/Model/Method/AdapterTest.php
+++ b/app/code/Magento/Payment/Test/Unit/Model/Method/AdapterTest.php
@@ -6,10 +6,15 @@
 namespace Magento\Payment\Test\Unit\Model\Method;
 
 use Magento\Framework\Event\ManagerInterface;
+use Magento\Payment\Gateway\Command\CommandManagerInterface;
 use Magento\Payment\Gateway\Command\CommandPoolInterface;
+use Magento\Payment\Gateway\CommandInterface;
+use Magento\Payment\Gateway\Config\ValueHandlerInterface;
 use Magento\Payment\Gateway\Config\ValueHandlerPoolInterface;
 use Magento\Payment\Gateway\Data\PaymentDataObjectFactory;
+use Magento\Payment\Gateway\Data\PaymentDataObjectInterface;
 use Magento\Payment\Gateway\Validator\ValidatorPoolInterface;
+use Magento\Payment\Model\InfoInterface;
 use Magento\Payment\Model\Method\Adapter;
 
 class AdapterTest extends \PHPUnit_Framework_TestCase
@@ -158,4 +163,133 @@ class AdapterTest extends \PHPUnit_Framework_TestCase
         $this->adapter->setInfoInstance($paymentInfo);
         static::assertTrue($this->adapter->isAvailable(null));
     }
+
+    public function testExecuteCommandWithCommandExecutor()
+    {
+        /** @var ManagerInterface|\PHPUnit_Framework_MockObject_MockObject $eventManager */
+        $eventManager = $this->getMock(
+            ManagerInterface::class
+        );
+
+        /** @var ValueHandlerPoolInterface|\PHPUnit_Framework_MockObject_MockObject $valueHandlerPool */
+        $valueHandlerPool = $this->getMock(
+            ValueHandlerPoolInterface::class
+        );
+
+        /** @var CommandManagerInterface|\PHPUnit_Framework_MockObject_MockObject $commandManager */
+        $commandManager = $this->getMock(
+            CommandManagerInterface::class
+        );
+
+        /** @var PaymentDataObjectFactory|\PHPUnit_Framework_MockObject_MockObject $paymentDataObjectFactory */
+        $paymentDataObjectFactory = $this->getMockBuilder(
+            PaymentDataObjectFactory::class
+        )
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $paymentInfo = $this->getMock(InfoInterface::class);
+        $paymentDO = $this->getMock(PaymentDataObjectInterface::class);
+
+        $adapter = new Adapter(
+            $eventManager,
+            $valueHandlerPool,
+            $paymentDataObjectFactory,
+            'CODE',
+            '\FormBlock',
+            '\InfoBlock',
+            null,
+            null,
+            $commandManager
+        );
+
+        $valueHandler = $this->getMock(ValueHandlerInterface::class);
+
+        $valueHandlerPool->expects(static::once())
+            ->method('get')
+            ->with('can_authorize')
+            ->willReturn($valueHandler);
+        $valueHandler->expects(static::once())
+            ->method('handle')
+            ->with(['field' => 'can_authorize'])
+            ->willReturn(true);
+
+        $paymentDataObjectFactory->expects(static::once())
+            ->method('create')
+            ->with($paymentInfo)
+            ->willReturn($paymentDO);
+
+        $commandManager->expects(static::once())
+            ->method('executeByCode')
+            ->with('authorize', $paymentInfo, ['amount' => 10, 'payment' => $paymentDO])
+            ->willReturn(null);
+
+        $adapter->authorize($paymentInfo, 10);
+    }
+
+    public function testExecuteCommandWithCommandPool()
+    {
+        /** @var ManagerInterface|\PHPUnit_Framework_MockObject_MockObject $eventManager */
+        $eventManager = $this->getMock(
+            ManagerInterface::class
+        );
+
+        /** @var ValueHandlerPoolInterface|\PHPUnit_Framework_MockObject_MockObject $valueHandlerPool */
+        $valueHandlerPool = $this->getMock(
+            ValueHandlerPoolInterface::class
+        );
+
+        /** @var CommandPoolInterface|\PHPUnit_Framework_MockObject_MockObject $commandPool */
+        $commandPool = $this->getMock(
+            CommandPoolInterface::class
+        );
+
+        /** @var PaymentDataObjectFactory|\PHPUnit_Framework_MockObject_MockObject $paymentDataObjectFactory */
+        $paymentDataObjectFactory = $this->getMockBuilder(
+            PaymentDataObjectFactory::class
+        )
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $paymentInfo = $this->getMock(InfoInterface::class);
+        $paymentDO = $this->getMock(PaymentDataObjectInterface::class);
+
+        $adapter = new Adapter(
+            $eventManager,
+            $valueHandlerPool,
+            $paymentDataObjectFactory,
+            'CODE',
+            '\FormBlock',
+            '\InfoBlock',
+            $commandPool
+        );
+
+        $valueHandler = $this->getMock(ValueHandlerInterface::class);
+        $command = $this->getMock(CommandInterface::class);
+
+        $valueHandlerPool->expects(static::once())
+            ->method('get')
+            ->with('can_authorize')
+            ->willReturn($valueHandler);
+        $valueHandler->expects(static::once())
+            ->method('handle')
+            ->with(['field' => 'can_authorize'])
+            ->willReturn(true);
+
+        $paymentDataObjectFactory->expects(static::once())
+            ->method('create')
+            ->with($paymentInfo)
+            ->willReturn($paymentDO);
+
+        $commandPool->expects(static::once())
+            ->method('get')
+            ->with('authorize')
+            ->willReturn($command);
+        $command->expects(static::once())
+            ->method('execute')
+            ->with(['amount' => 10, 'payment' => $paymentDO])
+            ->willReturn(null);
+
+        $adapter->authorize($paymentInfo, 10);
+    }
 }
diff --git a/lib/internal/Magento/Framework/App/Action/Context.php b/lib/internal/Magento/Framework/App/Action/Context.php
index c725e0af6f71bfcf7c00204dc8fa9bc4e8030379..c1f648d9336981a1956459704dd88cf243ff259b 100644
--- a/lib/internal/Magento/Framework/App/Action/Context.php
+++ b/lib/internal/Magento/Framework/App/Action/Context.php
@@ -7,6 +7,9 @@ namespace Magento\Framework\App\Action;
 
 use Magento\Framework\Controller\ResultFactory;
 
+/**
+ * @api
+ */
 class Context implements \Magento\Framework\ObjectManager\ContextInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/App/ActionFactory.php b/lib/internal/Magento/Framework/App/ActionFactory.php
index 52cdefc971f9275c573d0e9d19f0366009f1a483..943488cc12488a8fa28cc46ad15b9bd0beeb0676 100644
--- a/lib/internal/Magento/Framework/App/ActionFactory.php
+++ b/lib/internal/Magento/Framework/App/ActionFactory.php
@@ -7,6 +7,9 @@
  */
 namespace Magento\Framework\App;
 
+/**
+ * @api
+ */
 class ActionFactory
 {
     /**
diff --git a/lib/internal/Magento/Framework/App/ActionInterface.php b/lib/internal/Magento/Framework/App/ActionInterface.php
index a54f75e09bf47660af7ab7dfc4872117ad3d946e..765e10a7c81cc045c8806557a8f1d2333eec3067 100644
--- a/lib/internal/Magento/Framework/App/ActionInterface.php
+++ b/lib/internal/Magento/Framework/App/ActionInterface.php
@@ -7,6 +7,9 @@
  */
 namespace Magento\Framework\App;
 
+/**
+ * @api
+ */
 interface ActionInterface
 {
     const FLAG_NO_DISPATCH = 'no-dispatch';
diff --git a/lib/internal/Magento/Framework/App/Area/FrontNameResolverFactory.php b/lib/internal/Magento/Framework/App/Area/FrontNameResolverFactory.php
index 8f91eb9937fc615c79e1a7a0a3d4ac0c73ad9ab7..e5be5fdd7c9bdc04288273e4b1633b54398abb11 100644
--- a/lib/internal/Magento/Framework/App/Area/FrontNameResolverFactory.php
+++ b/lib/internal/Magento/Framework/App/Area/FrontNameResolverFactory.php
@@ -7,6 +7,9 @@
  */
 namespace Magento\Framework\App\Area;
 
+/**
+ * @api
+ */
 class FrontNameResolverFactory
 {
     /**
diff --git a/lib/internal/Magento/Framework/App/Area/FrontNameResolverInterface.php b/lib/internal/Magento/Framework/App/Area/FrontNameResolverInterface.php
index d107a97bbccd92c61e9c7d0b2d0e869c424785b2..0ee442d560d07046cc6ab439b8e8b2b7fe963e37 100644
--- a/lib/internal/Magento/Framework/App/Area/FrontNameResolverInterface.php
+++ b/lib/internal/Magento/Framework/App/Area/FrontNameResolverInterface.php
@@ -16,7 +16,7 @@ interface FrontNameResolverInterface
     /**
      * Retrieve front name
      *
-     * @param bool if true,  only return frontname if it is valid for the host
+     * @param bool $checkHost if true, return front name only if it is valid for the current host
      * @return string|bool
      */
     public function getFrontName($checkHost = false);
diff --git a/lib/internal/Magento/Framework/App/Language/Dictionary.php b/lib/internal/Magento/Framework/App/Language/Dictionary.php
index 5e1413aecfe2d03779f499ab168bb84ff6e0bb75..603b0ac35779c9a63ce6ed02c9c2d578cbd21281 100644
--- a/lib/internal/Magento/Framework/App/Language/Dictionary.php
+++ b/lib/internal/Magento/Framework/App/Language/Dictionary.php
@@ -11,6 +11,8 @@ use Magento\Framework\Filesystem\Directory\ReadFactory;
 
 /**
  * A service for reading language package dictionaries
+ *
+ * @api
  */
 class Dictionary
 {
diff --git a/lib/internal/Magento/Framework/App/Request/DataPersistorInterface.php b/lib/internal/Magento/Framework/App/Request/DataPersistorInterface.php
index 03dd4dbe8763d5fff685601f39a93d0296e7e968..6530e89264fdfb27cf97b3d43de0e07fda2d9816 100644
--- a/lib/internal/Magento/Framework/App/Request/DataPersistorInterface.php
+++ b/lib/internal/Magento/Framework/App/Request/DataPersistorInterface.php
@@ -5,6 +5,9 @@
  */
 namespace Magento\Framework\App\Request;
 
+/**
+ * @api
+ */
 interface DataPersistorInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/App/Request/PathInfoProcessorInterface.php b/lib/internal/Magento/Framework/App/Request/PathInfoProcessorInterface.php
index 4293b809b718c77ca40775fe2cdc345d2ea02ad6..85140a9af28ebc2491026be97b8c714ed5a615dc 100644
--- a/lib/internal/Magento/Framework/App/Request/PathInfoProcessorInterface.php
+++ b/lib/internal/Magento/Framework/App/Request/PathInfoProcessorInterface.php
@@ -7,6 +7,9 @@
  */
 namespace Magento\Framework\App\Request;
 
+/**
+ * @api
+ */
 interface PathInfoProcessorInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/App/RequestInterface.php b/lib/internal/Magento/Framework/App/RequestInterface.php
index 92a5d16ef957de859bd8ac196fcab44d2f7c1a63..d2b4ae17a0584597c85bb39bdcb2a196b7b0670d 100644
--- a/lib/internal/Magento/Framework/App/RequestInterface.php
+++ b/lib/internal/Magento/Framework/App/RequestInterface.php
@@ -7,6 +7,9 @@
  */
 namespace Magento\Framework\App;
 
+/**
+ * @api
+ */
 interface RequestInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/App/ResponseInterface.php b/lib/internal/Magento/Framework/App/ResponseInterface.php
index 67e67bdf011f521ba783dc181d7b970c542cc766..423509ca962463a1f6834cf4103deea7a799da04 100644
--- a/lib/internal/Magento/Framework/App/ResponseInterface.php
+++ b/lib/internal/Magento/Framework/App/ResponseInterface.php
@@ -7,6 +7,9 @@
  */
 namespace Magento\Framework\App;
 
+/**
+ * @api
+ */
 interface ResponseInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/App/View/Asset/Publisher.php b/lib/internal/Magento/Framework/App/View/Asset/Publisher.php
index d998a322d0d8bde2f3ce796c36a1b9aba6720b36..eddc71ce014f72cb127c93b4139df9936c068a5f 100644
--- a/lib/internal/Magento/Framework/App/View/Asset/Publisher.php
+++ b/lib/internal/Magento/Framework/App/View/Asset/Publisher.php
@@ -12,6 +12,8 @@ use Magento\Framework\View\Asset;
 
 /**
  * A publishing service for view assets
+ *
+ * @api
  */
 class Publisher
 {
diff --git a/lib/internal/Magento/Framework/AppInterface.php b/lib/internal/Magento/Framework/AppInterface.php
index 7c9c3c341aea3def17cf4714f5985a93bdd5f2be..d9a532b5401422efcfbbbbf247176c0213ef2179 100644
--- a/lib/internal/Magento/Framework/AppInterface.php
+++ b/lib/internal/Magento/Framework/AppInterface.php
@@ -7,6 +7,9 @@
  */
 namespace Magento\Framework;
 
+/**
+ * @api
+ */
 interface AppInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/AuthorizationInterface.php b/lib/internal/Magento/Framework/AuthorizationInterface.php
index c6e1c7f6925fbe0bf894d9b716efb63ea5673f90..d33145920c094be9fb63770c8401f3a66e0c2807 100644
--- a/lib/internal/Magento/Framework/AuthorizationInterface.php
+++ b/lib/internal/Magento/Framework/AuthorizationInterface.php
@@ -7,6 +7,9 @@
  */
 namespace Magento\Framework;
 
+/**
+ * @api
+ */
 interface AuthorizationInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/Component/ComponentRegistrar.php b/lib/internal/Magento/Framework/Component/ComponentRegistrar.php
index ba7ebdf49dc43c798c825665f48ba223b13b4fe3..d7496971188df8663c5ec634ba1035c71dac0a26 100644
--- a/lib/internal/Magento/Framework/Component/ComponentRegistrar.php
+++ b/lib/internal/Magento/Framework/Component/ComponentRegistrar.php
@@ -9,6 +9,8 @@ namespace Magento\Framework\Component;
  * Provides ability to statically register components.
  *
  * @author Josh Di Fabio <joshdifabio@gmail.com>
+ *
+ * @api
  */
 class ComponentRegistrar implements ComponentRegistrarInterface
 {
diff --git a/lib/internal/Magento/Framework/Controller/ResultInterface.php b/lib/internal/Magento/Framework/Controller/ResultInterface.php
index dd5271af432c05ffed849a5283e854999f18de2b..4fec5445c9eb3a420a9e159e05c8e39ec6c42a27 100644
--- a/lib/internal/Magento/Framework/Controller/ResultInterface.php
+++ b/lib/internal/Magento/Framework/Controller/ResultInterface.php
@@ -12,6 +12,8 @@ use Magento\Framework\App\ResponseInterface;
  * An abstraction of result that controller actions must return
  * The point of this kind of object is to encapsulate all information/objects relevant to the result
  * and be able to set it to the HTTP response
+ *
+ * @api
  */
 interface ResultInterface
 {
diff --git a/lib/internal/Magento/Framework/CurrencyInterface.php b/lib/internal/Magento/Framework/CurrencyInterface.php
index 148b8ed58d43feb648d5a867a45268b210b1f15d..ed3f1eb99eba390e7851bcbbdf5b789361543c0f 100644
--- a/lib/internal/Magento/Framework/CurrencyInterface.php
+++ b/lib/internal/Magento/Framework/CurrencyInterface.php
@@ -5,6 +5,9 @@
  */
 namespace Magento\Framework;
 
+/**
+ * @api
+ */
 interface CurrencyInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/Data/Argument/InterpreterInterface.php b/lib/internal/Magento/Framework/Data/Argument/InterpreterInterface.php
index 65f579066d22f020b44e8c27eba1506376f5dd30..b8332db9d352a9870f08acd3b011154d0b213a98 100644
--- a/lib/internal/Magento/Framework/Data/Argument/InterpreterInterface.php
+++ b/lib/internal/Magento/Framework/Data/Argument/InterpreterInterface.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\Data\Argument;
 
 /**
  * Interface that encapsulates complexity of expression computation
+ *
+ * @api
  */
 interface InterpreterInterface
 {
diff --git a/lib/internal/Magento/Framework/Data/Form/Filter/FilterInterface.php b/lib/internal/Magento/Framework/Data/Form/Filter/FilterInterface.php
index 55adc1008d5e27f016193ae8d0164c395efa872d..8360d0431ba80877db8fbbbc45ed5ffb3e113bc8 100644
--- a/lib/internal/Magento/Framework/Data/Form/Filter/FilterInterface.php
+++ b/lib/internal/Magento/Framework/Data/Form/Filter/FilterInterface.php
@@ -11,6 +11,9 @@
  */
 namespace Magento\Framework\Data\Form\Filter;
 
+/**
+ * @api
+ */
 interface FilterInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/Data/OptionSourceInterface.php b/lib/internal/Magento/Framework/Data/OptionSourceInterface.php
index dda53d7ac7f5b1a2a68209e8bbc07886d0b0d095..ff3a3f1d7eafb0d6623201ee056e6de05febfbcf 100644
--- a/lib/internal/Magento/Framework/Data/OptionSourceInterface.php
+++ b/lib/internal/Magento/Framework/Data/OptionSourceInterface.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\Data;
 
 /**
  * Source of option values in a form of value-label pairs
+ *
+ * @api
  */
 interface OptionSourceInterface
 {
diff --git a/lib/internal/Magento/Framework/Event.php b/lib/internal/Magento/Framework/Event.php
index 6aa85b1d365c39a68bef87e992640f32a55eb6c7..275d4e0fc257dcfc1e0e469e5240200ebfb0faee 100644
--- a/lib/internal/Magento/Framework/Event.php
+++ b/lib/internal/Magento/Framework/Event.php
@@ -11,6 +11,9 @@
  */
 namespace Magento\Framework;
 
+/**
+ * @api
+ */
 class Event extends \Magento\Framework\DataObject
 {
     /**
diff --git a/lib/internal/Magento/Framework/Event/Observer.php b/lib/internal/Magento/Framework/Event/Observer.php
index 5b2178ee54f98ffe69e9c1a676bd39b7583848d6..222a28d03de3de39dc411d075d66b65ccd8d3dde 100644
--- a/lib/internal/Magento/Framework/Event/Observer.php
+++ b/lib/internal/Magento/Framework/Event/Observer.php
@@ -7,6 +7,9 @@ namespace Magento\Framework\Event;
 
 use Magento\Framework\Event;
 
+/**
+ * @api
+ */
 class Observer extends \Magento\Framework\DataObject
 {
     /**
diff --git a/lib/internal/Magento/Framework/Exception/LocalizedException.php b/lib/internal/Magento/Framework/Exception/LocalizedException.php
index 9906ca2b733b29c6a972de5ef612c5c95aa1d0ba..5208fd3cfb82663ba95482dd4f5f4af663f1ff0b 100644
--- a/lib/internal/Magento/Framework/Exception/LocalizedException.php
+++ b/lib/internal/Magento/Framework/Exception/LocalizedException.php
@@ -10,6 +10,9 @@ namespace Magento\Framework\Exception;
 use Magento\Framework\Phrase;
 use Magento\Framework\Phrase\Renderer\Placeholder;
 
+/**
+ * @api
+ */
 class LocalizedException extends \Exception
 {
     /**
diff --git a/lib/internal/Magento/Framework/Filesystem.php b/lib/internal/Magento/Framework/Filesystem.php
index a61b201dedf11c98d74491ab071d93d1301e32a7..d1b53b333f30e3cce2501fb5e07e34047621ef84 100644
--- a/lib/internal/Magento/Framework/Filesystem.php
+++ b/lib/internal/Magento/Framework/Filesystem.php
@@ -9,6 +9,9 @@ namespace Magento\Framework;
 
 use Magento\Framework\Filesystem\DriverPool;
 
+/**
+ * @api
+ */
 class Filesystem
 {
     /**
diff --git a/lib/internal/Magento/Framework/Filesystem/DriverInterface.php b/lib/internal/Magento/Framework/Filesystem/DriverInterface.php
index 5e297b237e24285587899733fdd6c8cc2494a097..8b30fe398f08c5ccf7806f8e27b7ad82fbf8cd55 100644
--- a/lib/internal/Magento/Framework/Filesystem/DriverInterface.php
+++ b/lib/internal/Magento/Framework/Filesystem/DriverInterface.php
@@ -11,6 +11,8 @@ use Magento\Framework\Exception\FileSystemException;
 
 /**
  * Class Driver
+ *
+ * @api
  */
 interface DriverInterface
 {
diff --git a/lib/internal/Magento/Framework/Indexer/ConfigInterface.php b/lib/internal/Magento/Framework/Indexer/ConfigInterface.php
index 0aec18bd26d91e8305b278e33238023152935a4d..c49b5038da0fb9bea731fc89e0c299a2e0a2666c 100644
--- a/lib/internal/Magento/Framework/Indexer/ConfigInterface.php
+++ b/lib/internal/Magento/Framework/Indexer/ConfigInterface.php
@@ -5,6 +5,11 @@
  */
 namespace Magento\Framework\Indexer;
 
+/**
+ * Indexer(s) configuration
+ *
+ * @api
+ */
 interface ConfigInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/Indexer/IndexStructureInterface.php b/lib/internal/Magento/Framework/Indexer/IndexStructureInterface.php
index 78d3233f98bf2cfd668335ccd9e37e1ea9b64289..81bf133de805f71a6dcbd70b8b6ac410fd97bcbe 100644
--- a/lib/internal/Magento/Framework/Indexer/IndexStructureInterface.php
+++ b/lib/internal/Magento/Framework/Indexer/IndexStructureInterface.php
@@ -7,6 +7,11 @@ namespace Magento\Framework\Indexer;
 
 use Magento\Framework\Search\Request\Dimension;
 
+/**
+ * Indexer structure (schema) handler
+ *
+ * @api
+ */
 interface IndexStructureInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/Indexer/IndexerInterface.php b/lib/internal/Magento/Framework/Indexer/IndexerInterface.php
index 7085432a8249a2cb1066c4741cac0d855c9bffab..643d3cb4251f0b48a45a735bbd99f6f0db37c957 100644
--- a/lib/internal/Magento/Framework/Indexer/IndexerInterface.php
+++ b/lib/internal/Magento/Framework/Indexer/IndexerInterface.php
@@ -5,6 +5,11 @@
  */
 namespace Magento\Framework\Indexer;
 
+/**
+ * Indexer
+ *
+ * @api
+ */
 interface IndexerInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/Indexer/SaveHandler/IndexerInterface.php b/lib/internal/Magento/Framework/Indexer/SaveHandler/IndexerInterface.php
index faafbb28c19a916131a3758ca12a5c1b4524ccad..11e4d827b824aa92509e281cbdc6077264e6f9cf 100644
--- a/lib/internal/Magento/Framework/Indexer/SaveHandler/IndexerInterface.php
+++ b/lib/internal/Magento/Framework/Indexer/SaveHandler/IndexerInterface.php
@@ -11,6 +11,11 @@ namespace Magento\Framework\Indexer\SaveHandler;
 
 use Magento\Framework\Search\Request\Dimension;
 
+/**
+ * Indexer persistence handler
+ *
+ * @api
+ */
 interface IndexerInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/Math/Calculator.php b/lib/internal/Magento/Framework/Math/Calculator.php
index 3786e61ed20c4a8d1be2d289070b95d8e8ac571f..a1705cdcfba8234ec6d701035265edf6e85593c8 100644
--- a/lib/internal/Magento/Framework/Math/Calculator.php
+++ b/lib/internal/Magento/Framework/Math/Calculator.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\Math;
 
 /**
  * Calculations Library
+ *
+ * @api
  */
 class Calculator
 {
diff --git a/lib/internal/Magento/Framework/Math/Division.php b/lib/internal/Magento/Framework/Math/Division.php
index cbe8232abcf58b590a1f4294c46e3b8e906fd8e2..49b7882f961ab884b6e1633fa1f45fd4f1d8847a 100644
--- a/lib/internal/Magento/Framework/Math/Division.php
+++ b/lib/internal/Magento/Framework/Math/Division.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\Math;
 
 /**
  * Division library
+ *
+ * @api
  */
 class Division
 {
diff --git a/lib/internal/Magento/Framework/Math/Random.php b/lib/internal/Magento/Framework/Math/Random.php
index 31b7728ed874bf08b7d8c921543fbfe89a0e8a18..473ef9d4a8701009dc8a532e979c612eced26776 100644
--- a/lib/internal/Magento/Framework/Math/Random.php
+++ b/lib/internal/Magento/Framework/Math/Random.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\Math;
 
 /**
  * Random data generator
+ *
+ * @api
  */
 class Random
 {
diff --git a/lib/internal/Magento/Framework/Model/Context.php b/lib/internal/Magento/Framework/Model/Context.php
index 5a74a58c8286a78191ff1e1f05945da87338c4ca..b9a2349b57ed06ccd49452f9bea3f37b3fe2225b 100644
--- a/lib/internal/Magento/Framework/Model/Context.php
+++ b/lib/internal/Magento/Framework/Model/Context.php
@@ -7,6 +7,9 @@
  */
 namespace Magento\Framework\Model;
 
+/**
+ * @api
+ */
 class Context implements \Magento\Framework\ObjectManager\ContextInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/ObjectManagerInterface.php b/lib/internal/Magento/Framework/ObjectManagerInterface.php
index 3da6e76eae2a41ac20501835eb1828e63d084a9c..e30b040866b7478bc3a4993868844387b669e8b3 100644
--- a/lib/internal/Magento/Framework/ObjectManagerInterface.php
+++ b/lib/internal/Magento/Framework/ObjectManagerInterface.php
@@ -5,6 +5,9 @@
  */
 namespace Magento\Framework;
 
+/**
+ * @api
+ */
 interface ObjectManagerInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/Phrase/RendererInterface.php b/lib/internal/Magento/Framework/Phrase/RendererInterface.php
index a18436c2a56e2cbc8e8d9ec94c28214504d62356..85ef3a39083b8c66676361ff17fcd979ea6bbf5e 100644
--- a/lib/internal/Magento/Framework/Phrase/RendererInterface.php
+++ b/lib/internal/Magento/Framework/Phrase/RendererInterface.php
@@ -7,6 +7,11 @@
  */
 namespace Magento\Framework\Phrase;
 
+/**
+ * Translated phrase renderer
+ *
+ * @api
+ */
 interface RendererInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/Profiler.php b/lib/internal/Magento/Framework/Profiler.php
index 8607ba21f3e36016a6235840ae17414e7831ee52..94db43d9a02193d67ee64762b0d94dbb64cd0bb7 100644
--- a/lib/internal/Magento/Framework/Profiler.php
+++ b/lib/internal/Magento/Framework/Profiler.php
@@ -10,6 +10,9 @@ namespace Magento\Framework;
 use Magento\Framework\Profiler\Driver\Factory;
 use Magento\Framework\Profiler\DriverInterface;
 
+/**
+ * @api
+ */
 class Profiler
 {
     /**
diff --git a/lib/internal/Magento/Framework/Registry.php b/lib/internal/Magento/Framework/Registry.php
index ed9d54845d9d8d83a0d9842f8326f7f389b5519f..87d6868f78bd8954745e6a568ba4c48aa6fcd845 100644
--- a/lib/internal/Magento/Framework/Registry.php
+++ b/lib/internal/Magento/Framework/Registry.php
@@ -7,6 +7,8 @@ namespace Magento\Framework;
 
 /**
  * Registry model. Used to manage values in registry
+ *
+ * @api
  */
 class Registry
 {
diff --git a/lib/internal/Magento/Framework/Setup/InstallDataInterface.php b/lib/internal/Magento/Framework/Setup/InstallDataInterface.php
index 60c2c92d6444b8ff7d63f926fb67ca42b55bc1b3..24f7a18ae69862c79de2fe2f0c9dd158d9d4038a 100644
--- a/lib/internal/Magento/Framework/Setup/InstallDataInterface.php
+++ b/lib/internal/Magento/Framework/Setup/InstallDataInterface.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\Setup;
 
 /**
  * Interface for data installs of a module
+ *
+ * @api
  */
 interface InstallDataInterface
 {
diff --git a/lib/internal/Magento/Framework/Setup/InstallSchemaInterface.php b/lib/internal/Magento/Framework/Setup/InstallSchemaInterface.php
index c09cb3dc967bc51ddfdcc312b5ecc80979ede28d..ae24333f653325fce67e4bc03f1a9ffad725ebab 100644
--- a/lib/internal/Magento/Framework/Setup/InstallSchemaInterface.php
+++ b/lib/internal/Magento/Framework/Setup/InstallSchemaInterface.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\Setup;
 
 /**
  * Interface for DB schema installs of a module
+ *
+ * @api
  */
 interface InstallSchemaInterface
 {
diff --git a/lib/internal/Magento/Framework/Setup/LoggerInterface.php b/lib/internal/Magento/Framework/Setup/LoggerInterface.php
index f3e2bec686e6dfd867f0b3616bc7e39337a13d97..0ed9648b9284e8c751e23eb1f8a09d83b13e07f3 100644
--- a/lib/internal/Magento/Framework/Setup/LoggerInterface.php
+++ b/lib/internal/Magento/Framework/Setup/LoggerInterface.php
@@ -8,6 +8,8 @@ namespace Magento\Framework\Setup;
 
 /**
  * Interface to Log Message in Setup
+ *
+ * @api
  */
 interface LoggerInterface
 {
diff --git a/lib/internal/Magento/Framework/Setup/ModuleDataSetupInterface.php b/lib/internal/Magento/Framework/Setup/ModuleDataSetupInterface.php
index 94e43b9d3b43579713257c492d59e690930e8097..fead63b73c55e2759409e3d7a794d1eab3fdf3ce 100644
--- a/lib/internal/Magento/Framework/Setup/ModuleDataSetupInterface.php
+++ b/lib/internal/Magento/Framework/Setup/ModuleDataSetupInterface.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\Setup;
 
 /**
  * DB data resource interface for a module
+ *
+ * @api
  */
 interface ModuleDataSetupInterface extends SetupInterface
 {
diff --git a/lib/internal/Magento/Framework/Setup/SetupInterface.php b/lib/internal/Magento/Framework/Setup/SetupInterface.php
index ac7b2af414643ff953d1de46c8eba0206afce0fa..a11eb95fa0dfc25680d30683c9327a72b987d953 100644
--- a/lib/internal/Magento/Framework/Setup/SetupInterface.php
+++ b/lib/internal/Magento/Framework/Setup/SetupInterface.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\Setup;
 
 /**
  * DB resource interface
+ *
+ * @api
  */
 interface SetupInterface
 {
diff --git a/lib/internal/Magento/Framework/Setup/UninstallInterface.php b/lib/internal/Magento/Framework/Setup/UninstallInterface.php
index 7e8450f7b69b377265b2f9a351211a60b4bc50aa..5eb91270bcf53d46e86b59bba291576d79f65234 100644
--- a/lib/internal/Magento/Framework/Setup/UninstallInterface.php
+++ b/lib/internal/Magento/Framework/Setup/UninstallInterface.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\Setup;
 
 /**
  * Interface for handling data removal during module uninstall
+ *
+ * @api
  */
 interface UninstallInterface
 {
diff --git a/lib/internal/Magento/Framework/Setup/UpgradeDataInterface.php b/lib/internal/Magento/Framework/Setup/UpgradeDataInterface.php
index c7e99709f6cbc031552a0807f33873eef0993118..75b2ecc82faabfcbe976912516354dd28a4b35e7 100644
--- a/lib/internal/Magento/Framework/Setup/UpgradeDataInterface.php
+++ b/lib/internal/Magento/Framework/Setup/UpgradeDataInterface.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\Setup;
 
 /**
  * Interface for data upgrades of a module
+ *
+ * @api
  */
 interface UpgradeDataInterface
 {
diff --git a/lib/internal/Magento/Framework/Setup/UpgradeSchemaInterface.php b/lib/internal/Magento/Framework/Setup/UpgradeSchemaInterface.php
index 4a1e45dfa00754855d559a0f66459bf17174fc83..9dfc7025f863170e90a19daa4f6515d7de843368 100644
--- a/lib/internal/Magento/Framework/Setup/UpgradeSchemaInterface.php
+++ b/lib/internal/Magento/Framework/Setup/UpgradeSchemaInterface.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\Setup;
 
 /**
  * Interface for DB schema upgrades of a module
+ *
+ * @api
  */
 interface UpgradeSchemaInterface
 {
diff --git a/lib/internal/Magento/Framework/Shell/CommandRendererInterface.php b/lib/internal/Magento/Framework/Shell/CommandRendererInterface.php
index 6296240d40e295806cc0be9cb0191a14ab15fecc..3e0575c251d54c77ba9944afc952d5730ee2e2cf 100644
--- a/lib/internal/Magento/Framework/Shell/CommandRendererInterface.php
+++ b/lib/internal/Magento/Framework/Shell/CommandRendererInterface.php
@@ -5,6 +5,11 @@
  */
 namespace Magento\Framework\Shell;
 
+/**
+ * Shell command renderer
+ *
+ * @api
+ */
 interface CommandRendererInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/Shell/README.md b/lib/internal/Magento/Framework/Shell/README.md
index 5bfb194e6090cc93d30675b3eaf1241ec438be14..d901fd4915e7ece4b5fd77d78877241a87c7bbe1 100644
--- a/lib/internal/Magento/Framework/Shell/README.md
+++ b/lib/internal/Magento/Framework/Shell/README.md
@@ -1,3 +1,3 @@
-A library with object-oriented interface for executing shell commands. Provides an indirection layer that can be used for customizing or testing (mocking) `exec()` function.
+A library with object-oriented interface for generation of shell commands. Provides an indirection layer that can be used for customizing or testing (mocking) `exec()` function.
 
 Implements placeholders for command arguments that are automatically escaped in format appropriate to the current OS. Provides ability for logging/capturing the commands and their output.
diff --git a/lib/internal/Magento/Framework/Stdlib/ArrayManager.php b/lib/internal/Magento/Framework/Stdlib/ArrayManager.php
index de20312fd3ab5054da744f50ce6ecd9d10ae38be..f8b758bb9d9dfa480fd3657cee0ea3ed6c0b0f81 100644
--- a/lib/internal/Magento/Framework/Stdlib/ArrayManager.php
+++ b/lib/internal/Magento/Framework/Stdlib/ArrayManager.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\Stdlib;
 
 /**
  * Provides methods for nested array manipulations
+ *
+ * @api
  */
 class ArrayManager
 {
diff --git a/lib/internal/Magento/Framework/Stdlib/ArrayUtils.php b/lib/internal/Magento/Framework/Stdlib/ArrayUtils.php
index ae8b0689c5b4a4187fe2d7070b271713ee40a4b2..82935038c1187e02117a3c92fdefaccb311ca65e 100644
--- a/lib/internal/Magento/Framework/Stdlib/ArrayUtils.php
+++ b/lib/internal/Magento/Framework/Stdlib/ArrayUtils.php
@@ -8,6 +8,7 @@ namespace Magento\Framework\Stdlib;
 /**
  * Class ArrayUtils
  *
+ * @api
  */
 class ArrayUtils
 {
diff --git a/lib/internal/Magento/Framework/Stdlib/BooleanUtils.php b/lib/internal/Magento/Framework/Stdlib/BooleanUtils.php
index 37d8595c4a66159d6ac773eb4193d3750b71b150..fc3d9baaf9fe878e414380601363877fff14ebf0 100644
--- a/lib/internal/Magento/Framework/Stdlib/BooleanUtils.php
+++ b/lib/internal/Magento/Framework/Stdlib/BooleanUtils.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\Stdlib;
 
 /**
  * Utility methods for the boolean data type
+ *
+ * @api
  */
 class BooleanUtils
 {
diff --git a/lib/internal/Magento/Framework/Stdlib/CookieManagerInterface.php b/lib/internal/Magento/Framework/Stdlib/CookieManagerInterface.php
index eb3383e6e64004a0107feffeabe98f6489f56525..f4f2effec2dfa7547797ace5378bd3140656afd5 100644
--- a/lib/internal/Magento/Framework/Stdlib/CookieManagerInterface.php
+++ b/lib/internal/Magento/Framework/Stdlib/CookieManagerInterface.php
@@ -20,6 +20,7 @@ use Magento\Framework\Exception\InputException;
  * The cookie manager will make it possible for an application to indicate if a cookie contains sensitive data,
  * this will allow extra protection to be added to the contents of the cookie as well sending directives to the browser
  * about how the cookie should be stored and whether JavaScript can access the cookie.
+ *
  * @api
  */
 interface CookieManagerInterface extends CookieReaderInterface
diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime.php b/lib/internal/Magento/Framework/Stdlib/DateTime.php
index de831f6c676dc2a5c0c1a54ab0079823b856e0a3..35b6adc7e4a41cfb7a1df2275e0f67fe01a552e4 100644
--- a/lib/internal/Magento/Framework/Stdlib/DateTime.php
+++ b/lib/internal/Magento/Framework/Stdlib/DateTime.php
@@ -8,6 +8,8 @@ namespace Magento\Framework\Stdlib;
 /**
  * Converter of date formats
  * Internal dates
+ *
+ * @api
  */
 class DateTime
 {
diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php b/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php
index 3fbf941005c9abef1645e5838cf2d5d1f8246e29..b5049edd721c7c52e2d0f52842ae26371e7d8c41 100644
--- a/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php
+++ b/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php
@@ -8,6 +8,10 @@
 
 namespace Magento\Framework\Stdlib\DateTime;
 
+/**
+ * Timezone Interface
+ * @api
+ */
 interface TimezoneInterface
 {
     /**
diff --git a/lib/internal/Magento/Framework/Stdlib/StringUtils.php b/lib/internal/Magento/Framework/Stdlib/StringUtils.php
index fbc19ed947bd92ee99d32d7a2095bfa7e12987c9..ed980bd20eda1207b171219577fea9e2e879860d 100644
--- a/lib/internal/Magento/Framework/Stdlib/StringUtils.php
+++ b/lib/internal/Magento/Framework/Stdlib/StringUtils.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\Stdlib;
 
 /**
  * Magento methods to work with string
+ *
+ * @api
  */
 class StringUtils
 {
diff --git a/lib/internal/Magento/Framework/UrlInterface.php b/lib/internal/Magento/Framework/UrlInterface.php
index b245ea4eface331948ccbb965d33897ceb7ddca0..dd953e732b4c44ffac94956ee14f46c831d7026f 100644
--- a/lib/internal/Magento/Framework/UrlInterface.php
+++ b/lib/internal/Magento/Framework/UrlInterface.php
@@ -5,6 +5,9 @@
  */
 namespace Magento\Framework;
 
+/**
+ * @api
+ */
 interface UrlInterface
 {
     /**#@+
diff --git a/lib/internal/Magento/Framework/View/Asset/ConfigInterface.php b/lib/internal/Magento/Framework/View/Asset/ConfigInterface.php
index 9b18247be24f53a53604b37742d4ec51abbc98e7..2e0505cde7d91605a3593c4f6bbaa0cf09f9f3c9 100644
--- a/lib/internal/Magento/Framework/View/Asset/ConfigInterface.php
+++ b/lib/internal/Magento/Framework/View/Asset/ConfigInterface.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\View\Asset;
 
 /**
  * View asset configuration interface
+ *
+ * @api
  */
 interface ConfigInterface
 {
diff --git a/lib/internal/Magento/Framework/View/Asset/Repository.php b/lib/internal/Magento/Framework/View/Asset/Repository.php
index c4171b153e089ce47ef67de56d118d6cb1a659dc..072b3361cbefea99e2ebb5dd958cc8468bbda088 100644
--- a/lib/internal/Magento/Framework/View/Asset/Repository.php
+++ b/lib/internal/Magento/Framework/View/Asset/Repository.php
@@ -13,6 +13,8 @@ use Magento\Framework\Filesystem;
 /**
  * A repository service for view assets
  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
+ *
+ * @api
  */
 class Repository
 {
diff --git a/lib/internal/Magento/Framework/View/ConfigInterface.php b/lib/internal/Magento/Framework/View/ConfigInterface.php
index f414f62a15ca6d59e134cad0eb252b483779029b..21cb20bc80815b30bd367799481019cd41f3e0d9 100644
--- a/lib/internal/Magento/Framework/View/ConfigInterface.php
+++ b/lib/internal/Magento/Framework/View/ConfigInterface.php
@@ -7,6 +7,7 @@ namespace Magento\Framework\View;
 
 /**
  * Config Interface
+ * @api
  */
 interface ConfigInterface
 {
diff --git a/lib/internal/Magento/Framework/View/Context.php b/lib/internal/Magento/Framework/View/Context.php
index 17f850aa1ae5a054403d4fbf1fe88eae576fb76e..83215621d60a745b76660793d7cde4cc7b0040eb 100644
--- a/lib/internal/Magento/Framework/View/Context.php
+++ b/lib/internal/Magento/Framework/View/Context.php
@@ -26,6 +26,7 @@ use Magento\Framework\View\ConfigInterface as ViewConfig;
  *
  * @SuppressWarnings(PHPMD.TooManyFields)
  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
+ * @api
  */
 class Context
 {
diff --git a/lib/internal/Magento/Framework/View/Design/Theme/FileProviderInterface.php b/lib/internal/Magento/Framework/View/Design/Theme/FileProviderInterface.php
index a2e8b2ff4841f74aa581846cfa16ed220cc46828..f20305fb9826a4a31c0ae42f16f7fdbab0e54f18 100644
--- a/lib/internal/Magento/Framework/View/Design/Theme/FileProviderInterface.php
+++ b/lib/internal/Magento/Framework/View/Design/Theme/FileProviderInterface.php
@@ -6,7 +6,9 @@
 namespace Magento\Framework\View\Design\Theme;
 
 /**
- * Interface FileProviderInterface
+ * Theme files provider
+ *
+ * @api
  */
 interface FileProviderInterface
 {
diff --git a/lib/internal/Magento/Framework/View/Design/Theme/Label/ListInterface.php b/lib/internal/Magento/Framework/View/Design/Theme/Label/ListInterface.php
index d42306a2cd0333682298e3702a694c6b19de989f..d4530559d044d775bd2d9e8c9d5f45788c4f3ec0 100644
--- a/lib/internal/Magento/Framework/View/Design/Theme/Label/ListInterface.php
+++ b/lib/internal/Magento/Framework/View/Design/Theme/Label/ListInterface.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\View\Design\Theme\Label;
 
 /**
  * Label list interface
+ *
+ * @api
  */
 interface ListInterface
 {
diff --git a/lib/internal/Magento/Framework/View/Design/Theme/ListInterface.php b/lib/internal/Magento/Framework/View/Design/Theme/ListInterface.php
index 2cc2a96d3e97fafc78d948cf9a83aaa30de0d227..5a243d30f6e54bdeb33e4845293f46cc48f93d6f 100644
--- a/lib/internal/Magento/Framework/View/Design/Theme/ListInterface.php
+++ b/lib/internal/Magento/Framework/View/Design/Theme/ListInterface.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\View\Design\Theme;
 
 /**
  * Theme list interface
+ *
+ * @api
  */
 interface ListInterface
 {
diff --git a/lib/internal/Magento/Framework/View/Element/BlockFactory.php b/lib/internal/Magento/Framework/View/Element/BlockFactory.php
index 3244f4105405be256fa88b12827fe0727c884594..8c75a3136107a7aba2d57f9574ac3f5693b426d3 100644
--- a/lib/internal/Magento/Framework/View/Element/BlockFactory.php
+++ b/lib/internal/Magento/Framework/View/Element/BlockFactory.php
@@ -9,6 +9,8 @@ use Magento\Framework\ObjectManagerInterface;
 
 /**
  * Class BlockFactory
+ *
+ * @api
  */
 class BlockFactory
 {
diff --git a/lib/internal/Magento/Framework/View/Element/BlockInterface.php b/lib/internal/Magento/Framework/View/Element/BlockInterface.php
index 3e0b2946da52d58b754e0413cddab115370af6f6..480d4361c4acd4232b549a60873c3306c6759a6f 100644
--- a/lib/internal/Magento/Framework/View/Element/BlockInterface.php
+++ b/lib/internal/Magento/Framework/View/Element/BlockInterface.php
@@ -9,6 +9,8 @@ namespace Magento\Framework\View\Element;
  * Magento Block
  *
  * Used to present information to user
+ *
+ * @api
  */
 interface BlockInterface
 {
diff --git a/lib/internal/Magento/Framework/View/Element/Context.php b/lib/internal/Magento/Framework/View/Element/Context.php
index 26bb8caae9587901e0328d5c9e2f0062c5d32fce..0b1f044bd6a75fa0bdd92114f4a83c21869a1ba6 100644
--- a/lib/internal/Magento/Framework/View/Element/Context.php
+++ b/lib/internal/Magento/Framework/View/Element/Context.php
@@ -13,6 +13,8 @@ namespace Magento\Framework\View\Element;
  *
  * @SuppressWarnings(PHPMD.TooManyFields)
  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
+ *
+ * @api
  */
 class Context implements \Magento\Framework\ObjectManager\ContextInterface
 {
diff --git a/lib/internal/Magento/Framework/View/Element/FormKey.php b/lib/internal/Magento/Framework/View/Element/FormKey.php
index 3030b3af17da5b7ab44bf81c333eca218cb06f5f..0f64cf73cb51df30256af10d1712a182818086bb 100644
--- a/lib/internal/Magento/Framework/View/Element/FormKey.php
+++ b/lib/internal/Magento/Framework/View/Element/FormKey.php
@@ -9,6 +9,9 @@
  */
 namespace Magento\Framework\View\Element;
 
+/**
+ * @api
+ */
 class FormKey extends \Magento\Framework\View\Element\AbstractBlock
 {
     /**
diff --git a/lib/internal/Magento/Framework/View/Element/RendererInterface.php b/lib/internal/Magento/Framework/View/Element/RendererInterface.php
index 55f5309fffe04715d32aef9c9f3f15e9bc71b894..77a7dbecc408a821e75cbd9df9d988192e67ed0d 100644
--- a/lib/internal/Magento/Framework/View/Element/RendererInterface.php
+++ b/lib/internal/Magento/Framework/View/Element/RendererInterface.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\View\Element;
 
 /**
  * Magento Block interface
+ *
+ * @api
  */
 interface RendererInterface
 {
diff --git a/lib/internal/Magento/Framework/View/Element/RendererList.php b/lib/internal/Magento/Framework/View/Element/RendererList.php
index 0ca73a0c98971b55f02caf056047a8d2b11e9d37..7ab2dd745bb8fbb09f3f99bd9a3062c2e6c909c2 100644
--- a/lib/internal/Magento/Framework/View/Element/RendererList.php
+++ b/lib/internal/Magento/Framework/View/Element/RendererList.php
@@ -5,6 +5,9 @@
  */
 namespace Magento\Framework\View\Element;
 
+/**
+ * @api
+ */
 class RendererList extends AbstractBlock
 {
     /**
diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/DataProviderInterface.php b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/DataProviderInterface.php
index 7475047f399144ff00e54de0768971ca5d3308da..05451d12003d32b05518f2fdc496e0a4ca3b377a 100644
--- a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/DataProviderInterface.php
+++ b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/DataProviderInterface.php
@@ -9,6 +9,8 @@ use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection;
 
 /**
  * Interface DataProviderInterface
+ *
+ * @api
  */
 interface DataProviderInterface
 {
diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FilterPool.php b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FilterPool.php
index cd5f7ab61456c57dc7c0590655aa880a10484957..99e985587221a666efa584a09b5b635cfa3d7b52 100644
--- a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FilterPool.php
+++ b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FilterPool.php
@@ -11,6 +11,8 @@ use Magento\Framework\Api\Search\SearchCriteriaInterface;
 
 /**
  * Class FilterPool
+ *
+ * @api
  */
 class FilterPool
 {
diff --git a/lib/internal/Magento/Framework/View/Element/UiComponentFactory.php b/lib/internal/Magento/Framework/View/Element/UiComponentFactory.php
index 20501a4f35917c863357137daaaf58962c469aef..89066b67966f141804b32d6fd8793f67278d00d8 100755
--- a/lib/internal/Magento/Framework/View/Element/UiComponentFactory.php
+++ b/lib/internal/Magento/Framework/View/Element/UiComponentFactory.php
@@ -17,6 +17,8 @@ use Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterfac
 
 /**
  * Class UiComponentFactory
+ *
+ * @api
  */
 class UiComponentFactory extends DataObject
 {
diff --git a/lib/internal/Magento/Framework/View/File/CollectorInterface.php b/lib/internal/Magento/Framework/View/File/CollectorInterface.php
index 6269b1f14bc593079d983c4a409b4502e82b2db5..d52b86808e300a0caf7c6edb318c62e1e5b5e360 100644
--- a/lib/internal/Magento/Framework/View/File/CollectorInterface.php
+++ b/lib/internal/Magento/Framework/View/File/CollectorInterface.php
@@ -9,6 +9,8 @@ use Magento\Framework\View\Design\ThemeInterface;
 
 /**
  * Interface of locating view files in the file system
+ *
+ * @api
  */
 interface CollectorInterface
 {
diff --git a/lib/internal/Magento/Framework/View/FileSystem.php b/lib/internal/Magento/Framework/View/FileSystem.php
index b5597bd058ce8bf7c82096615780b66294c93033..8a4e70d42a5e7f9f33010665a27e3d5a87d861cb 100644
--- a/lib/internal/Magento/Framework/View/FileSystem.php
+++ b/lib/internal/Magento/Framework/View/FileSystem.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\View;
 
 /**
  * Model that finds file paths by their fileId
+ *
+ * @api
  */
 class FileSystem
 {
diff --git a/lib/internal/Magento/Framework/View/LayoutInterface.php b/lib/internal/Magento/Framework/View/LayoutInterface.php
index 7b2157aaf17aa75458dc45310b9ecb604086a3c6..7aab06bdd5db2ecc3f802f73ed3615b870a6dc00 100644
--- a/lib/internal/Magento/Framework/View/LayoutInterface.php
+++ b/lib/internal/Magento/Framework/View/LayoutInterface.php
@@ -7,6 +7,7 @@ namespace Magento\Framework\View;
 
 /**
  * Interface LayoutInterface
+ * @api
  */
 interface LayoutInterface
 {
diff --git a/lib/internal/Magento/Framework/View/Page/Config.php b/lib/internal/Magento/Framework/View/Page/Config.php
index 29b264f4e3789d1f17769a14dbb8e784b500b71b..48ed2748a4ab2a05bcdab138204b83e70224accc 100644
--- a/lib/internal/Magento/Framework/View/Page/Config.php
+++ b/lib/internal/Magento/Framework/View/Page/Config.php
@@ -21,6 +21,8 @@ use Magento\Framework\View;
  *
  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  * @SuppressWarnings(PHPMD.TooManyFields)
+ *
+ * @api
  */
 class Config
 {
diff --git a/lib/internal/Magento/Framework/View/Page/FaviconInterface.php b/lib/internal/Magento/Framework/View/Page/FaviconInterface.php
index bcc9c654eb393634a2b9240c3d3a8312f19408f5..20e8692a0fdf860891bf931a0a99f27d652ade6b 100644
--- a/lib/internal/Magento/Framework/View/Page/FaviconInterface.php
+++ b/lib/internal/Magento/Framework/View/Page/FaviconInterface.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\View\Page;
 
 /**
  * Favicon interface
+ *
+ * @api
  */
 interface FaviconInterface
 {
diff --git a/lib/internal/Magento/Framework/View/Page/Title.php b/lib/internal/Magento/Framework/View/Page/Title.php
index 0e5c6da5640ed4b043e803a02bda098cfe5ab384..f27056f2a503ad6d6dc850936ed5117cde155be1 100644
--- a/lib/internal/Magento/Framework/View/Page/Title.php
+++ b/lib/internal/Magento/Framework/View/Page/Title.php
@@ -10,6 +10,8 @@ use Magento\Framework\App;
 
 /**
  * Page title
+ *
+ * @api
  */
 class Title
 {
diff --git a/lib/internal/Magento/Framework/View/Render/RenderFactory.php b/lib/internal/Magento/Framework/View/Render/RenderFactory.php
index fb69f5bb2c86e2af0b765b52ad89b14ac02b72c2..1b96a01e8445128b2f3e48c113ecdfbe58cbdb2e 100644
--- a/lib/internal/Magento/Framework/View/Render/RenderFactory.php
+++ b/lib/internal/Magento/Framework/View/Render/RenderFactory.php
@@ -10,6 +10,8 @@ use Magento\Framework\View\RenderInterface;
 
 /**
  * Class RenderFactory
+ *
+ * @api
  */
 class RenderFactory
 {
diff --git a/lib/internal/Magento/Framework/View/RenderInterface.php b/lib/internal/Magento/Framework/View/RenderInterface.php
index c379df5e95a11a63f7c270ae5a166b7461cd16c3..61abc093244e2280bc317156c508465f798b43bd 100644
--- a/lib/internal/Magento/Framework/View/RenderInterface.php
+++ b/lib/internal/Magento/Framework/View/RenderInterface.php
@@ -7,6 +7,8 @@ namespace Magento\Framework\View;
 
 /**
  * Interface RenderInterface
+ *
+ * @api
  */
 interface RenderInterface
 {
diff --git a/lib/internal/Magento/Framework/View/Result/Layout.php b/lib/internal/Magento/Framework/View/Result/Layout.php
index 677b34da7c82ad3fb7dde127ac51cad8a2527483..4bc015cc48d43af6200904d9a2a3dbada8be9f79 100644
--- a/lib/internal/Magento/Framework/View/Result/Layout.php
+++ b/lib/internal/Magento/Framework/View/Result/Layout.php
@@ -14,6 +14,8 @@ use Magento\Framework\View;
 /**
  * A generic layout response can be used for rendering any kind of layout
  * So it comprises a response body from the layout elements it has and sets it to the HTTP response
+ *
+ * @api
  */
 class Layout extends AbstractResult
 {
diff --git a/lib/internal/Magento/Framework/View/Result/LayoutFactory.php b/lib/internal/Magento/Framework/View/Result/LayoutFactory.php
index 22bca7c3f9dfc0d244fcb587db869b8e851e9fa1..426ce0a12333474b645958beb35f372102a143b7 100644
--- a/lib/internal/Magento/Framework/View/Result/LayoutFactory.php
+++ b/lib/internal/Magento/Framework/View/Result/LayoutFactory.php
@@ -8,6 +8,9 @@ namespace Magento\Framework\View\Result;
 
 use Magento\Framework\ObjectManagerInterface;
 
+/**
+ * @api
+ */
 class LayoutFactory
 {
     /**
diff --git a/lib/internal/Magento/Framework/View/Result/Page.php b/lib/internal/Magento/Framework/View/Result/Page.php
index fc5967d106a48c398670c7ebf5f41214024a808c..952dcabddc19e6c0aca4816ba7558cae26e5090a 100644
--- a/lib/internal/Magento/Framework/View/Result/Page.php
+++ b/lib/internal/Magento/Framework/View/Result/Page.php
@@ -23,6 +23,8 @@ use Magento\Framework\View;
  * @SuppressWarnings(PHPMD.TooManyFields)
  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  * @SuppressWarnings(PHPMD.DepthOfInheritance)
+ *
+ * @api
  */
 class Page extends Layout
 {
diff --git a/lib/internal/Magento/Framework/View/Result/PageFactory.php b/lib/internal/Magento/Framework/View/Result/PageFactory.php
index e82ef0cb66137da8616c4493add85763e971be5e..d7b4a49b120b80704b52b20c37505166010f7bf5 100644
--- a/lib/internal/Magento/Framework/View/Result/PageFactory.php
+++ b/lib/internal/Magento/Framework/View/Result/PageFactory.php
@@ -12,6 +12,8 @@ use Magento\Framework\ObjectManagerInterface;
  * A factory that knows how to create a "page" result
  * Requires an instance of controller action in order to impose page type,
  * which is by convention is determined from the controller action class
+ *
+ * @api
  */
 class PageFactory
 {
diff --git a/lib/internal/Magento/Framework/View/Template/Html/MinifierInterface.php b/lib/internal/Magento/Framework/View/Template/Html/MinifierInterface.php
index 0166a490dd372bea2b9b0d9b60af098386bc60db..c7219f8b74d34b7109490c0552bbb4aac2991b47 100644
--- a/lib/internal/Magento/Framework/View/Template/Html/MinifierInterface.php
+++ b/lib/internal/Magento/Framework/View/Template/Html/MinifierInterface.php
@@ -6,6 +6,11 @@
 
 namespace Magento\Framework\View\Template\Html;
 
+/**
+ * HTML minifier
+ *
+ * @api
+ */
 interface MinifierInterface
 {
     /**
@@ -30,4 +35,4 @@ interface MinifierInterface
      * @param string $file
      */
     public function minify($file);
-}
\ No newline at end of file
+}
diff --git a/lib/internal/Magento/Framework/View/Url/ConfigInterface.php b/lib/internal/Magento/Framework/View/Url/ConfigInterface.php
index b5c33ee21d962c3ea975059c8ba208eb84c1b944..5a540d96ac493d81379c33b0408f64e98397cb3a 100644
--- a/lib/internal/Magento/Framework/View/Url/ConfigInterface.php
+++ b/lib/internal/Magento/Framework/View/Url/ConfigInterface.php
@@ -7,6 +7,7 @@ namespace Magento\Framework\View\Url;
 
 /**
  * Url Config Interface
+ * @api
  */
 interface ConfigInterface
 {