diff --git a/core/lib/Drupal/Core/Entity/ContentEntityBase.php b/core/lib/Drupal/Core/Entity/ContentEntityBase.php
index 9e83814..90a601c 100644
--- a/core/lib/Drupal/Core/Entity/ContentEntityBase.php
+++ b/core/lib/Drupal/Core/Entity/ContentEntityBase.php
@@ -438,6 +438,15 @@ public function bundle() {
   /**
    * {@inheritdoc}
    */
+  public function bundleEntity() {
+    $bundle_entity_type = $node->getEntityType()->getBundleEntityType();
+    $bundle_storage = $this->entityManager()->getStorage($bundle_entity_type);
+    return $bundle_storage->load($this->getEntityKey('bundle'));
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function uuid() {
     return $this->getEntityKey('uuid');
   }
diff --git a/core/lib/Drupal/Core/Entity/Entity.php b/core/lib/Drupal/Core/Entity/Entity.php
index b49f3d4..b95c261 100644
--- a/core/lib/Drupal/Core/Entity/Entity.php
+++ b/core/lib/Drupal/Core/Entity/Entity.php
@@ -157,6 +157,13 @@ public function bundle() {
   /**
    * {@inheritdoc}
    */
+  public function bundleEntity() {
+    return NULL;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function label() {
     $label = NULL;
     $entity_type = $this->getEntityType();
diff --git a/core/lib/Drupal/Core/Entity/EntityInterface.php b/core/lib/Drupal/Core/Entity/EntityInterface.php
index 3ff3b09..f2ee502 100644
--- a/core/lib/Drupal/Core/Entity/EntityInterface.php
+++ b/core/lib/Drupal/Core/Entity/EntityInterface.php
@@ -93,6 +93,15 @@ public function getEntityTypeId();
   public function bundle();
 
   /**
+   * Gets the bundle entity of the entity.
+   *
+   * @return \Drupal\Core\Entity\EntityInterface|null
+   *   The config entity which is the bundle of the entity, or NULL if the
+   *   entity does not have bundle entities.
+   */
+  public function bundleEntity();
+
+  /**
    * Gets the label of the entity.
    *
    * @return string|null
diff --git a/core/modules/views_ui/src/ViewUI.php b/core/modules/views_ui/src/ViewUI.php
index 784c59b..03b2f5a 100644
--- a/core/modules/views_ui/src/ViewUI.php
+++ b/core/modules/views_ui/src/ViewUI.php
@@ -945,6 +945,13 @@ public function bundle() {
   /**
    * {@inheritdoc}
    */
+  public function bundleEntity() {
+    return NULL;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function getEntityType() {
     return $this->storage->getEntityType();
   }
diff --git a/core/modules/views_ui/tests/src/Unit/ViewUIObjectTest.php b/core/modules/views_ui/tests/src/Unit/ViewUIObjectTest.php
index c6d7726..0c43c7c 100644
--- a/core/modules/views_ui/tests/src/Unit/ViewUIObjectTest.php
+++ b/core/modules/views_ui/tests/src/Unit/ViewUIObjectTest.php
@@ -41,7 +41,7 @@ public function testEntityDecoration() {
       // process. EntityInterface::getConfigDependencyName() and
       // ConfigEntityInterface::calculateDependencies() are only used for
       // dependency management.
-      if (!in_array($reflection_method->getName(), ['isNew', 'isSyncing', 'isUninstalling', 'getConfigDependencyKey', 'getConfigDependencyName', 'calculateDependencies'])) {
+      if (!in_array($reflection_method->getName(), ['isNew', 'isSyncing', 'isUninstalling', 'getConfigDependencyKey', 'getConfigDependencyName', 'calculateDependencies', 'bundleEntity'])) {
         if (count($reflection_method->getParameters()) == 0) {
           $method_args[$reflection_method->getName()] = array();
         }
