# Schema for the configuration files of the Block module.

block.block.*:
  type: config_entity
  label: 'Block'
  mapping:
    id:
      type: machine_name
      label: 'ID'
      # Blocks have atypical machine names: they allow periods for historical reasons.
      # @see https://www.drupal.org/project/drupal/issues/2685917
      # @see https://www.drupal.org/project/drupal/issues/2043527
      constraints:
        Regex:
          pattern: '/^[a-z0-9_.]+$/'
          message: "The %value machine name is not valid."
    theme:
      type: string
      label: 'Theme'
    region:
      type: string
      label: 'Region'
    weight:
      type: integer
      label: 'Weight'
    provider:
      type: string
      label: 'Provider'
    plugin:
      type: string
      label: 'Plugin'
      constraints:
        PluginExists:
          manager: plugin.manager.block
          interface: Drupal\Core\Block\BlockPluginInterface
    settings:
      type: block.settings.[%parent.plugin]
    visibility:
      type: sequence
      label: 'Visibility Conditions'
      sequence:
        type: condition.plugin.[id]
        label: 'Visibility Condition'
