diff --git a/core/modules/block/lib/Drupal/block/BlockInterface.php b/core/modules/block/lib/Drupal/block/BlockInterface.php
index de0d9de..52f1c31 100644
--- a/core/modules/block/lib/Drupal/block/BlockInterface.php
+++ b/core/modules/block/lib/Drupal/block/BlockInterface.php
@@ -32,4 +32,68 @@
    */
   public function getPlugin();
 
+  /**
+   * Returns the plugin settings.
+   *
+   * @return array
+   *   The plugin settings for this block.
+   */
+  public function settings();
+
+  /**
+   * Returns the region name.
+   *
+   * @return string
+   *   The name of the region this block is placed in.
+   */
+  public function getRegion();
+
+  /**
+   * Sets the region to the region with the given name.
+   *
+   * @param string $region
+   *   The name of the desired region this block will be placed in.
+   *
+   * @return \Drupal\block\BlockInterface
+   *   The class instance this method is called on.
+   */
+  public function setRegion($region);
+
+  /**
+   * Returns the weight.
+   *
+   * @return int
+   *   The weight of this block.
+   */
+  public function getWeight();
+
+  /**
+   * Sets the weight to the given value.
+   *
+   * @param int $weight
+   *   The desired weight.
+   *
+   * @return \Drupal\block\BlockInterface
+   *   The class instance this method is called on.
+   */
+  public function setWeight($weight);
+
+  /**
+   * Returns the visibility restrictions information.
+   *
+   * @return array
+   *   The visibility restrictions information keyed by type for this block.
+   */
+  public function getVisibility();
+
+  /**
+   * Sets the visibility restrictions information as a whole.
+   *
+   * @param array $visibility
+   *   All visibility restrictions information keyed by type for this block.
+   *
+   * @return \Drupal\block\BlockInterface
+   *   The class instance this method is called on.
+   */
+  public function setVisibility(array $visibility);
 }
diff --git a/core/modules/block/lib/Drupal/block/Entity/Block.php b/core/modules/block/lib/Drupal/block/Entity/Block.php
index decd0b1..927ee4a 100644
--- a/core/modules/block/lib/Drupal/block/Entity/Block.php
+++ b/core/modules/block/lib/Drupal/block/Entity/Block.php
@@ -13,7 +13,6 @@
 use Drupal\block\BlockInterface;
 use Drupal\Core\Config\Entity\ConfigEntityInterface;
 use Drupal\Core\Config\Entity\EntityWithPluginBagInterface;
-use Drupal\Core\Entity\EntityStorageInterface;
 
 /**
  * Defines a Block configuration entity class.
@@ -116,7 +115,7 @@ class Block extends ConfigEntityBase implements BlockInterface, EntityWithPlugin
   }
 
   /**
-   * Overrides \Drupal\Core\Entity\Entity::label();
+   * {@inheritdoc}
    */
   public function label() {
     $settings = $this->get('settings');
@@ -149,7 +148,59 @@ class Block extends ConfigEntityBase implements BlockInterface, EntityWithPlugin
   }
 
   /**
-   * Sorts active blocks by weight; sorts inactive blocks by name.
+   * {@inheritdoc}
+   */
+  public function settings() {
+    return $this->get('settings');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getRegion() {
+    return $this->get('region');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setRegion($region) {
+    $this->set('region', $region);
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getWeight() {
+    return $this->get('weight');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setWeight($weight) {
+    $this->set('weight', $weight);
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getVisibility() {
+    return $this->get('visibility');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setVisibility(array $visibility) {
+    $this->set('visibility', $visibility);
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
    */
   public static function sort(ConfigEntityInterface $a, ConfigEntityInterface $b) {
     // Separate enabled from disabled.
