page_manager.page.*:
  type: config_entity
  label: 'Page'
  mapping:
    id:
      type: string
      label: 'Machine-readable name'
    label:
      type: label
      label: 'Label'
    description:
      type: text
      label: 'Description'
    use_admin_theme:
      type: boolean
      label: 'Whether the page is displayed using the admin theme or not'
    path:
      type: string
      label: 'Page path'
    access_logic:
      type: string
      label: 'Access logic'
    access_conditions:
      type: sequence
      label: 'Access Conditions'
      sequence:
        - type: condition.plugin.[id]
          label: 'Access Condition'
    parameters:
      type: sequence
      label: Parameter context list
      sequence:
        - type: mapping
          label: Parameter context
          mapping:
            machine_name:
              type: string
              label: 'Machine-readable name'
            label:
              type: label
              label: 'Label of the context'
            type:
              type: string
              label: 'Context type'
            optional:
              type: boolean
              label: 'Optional'

page_manager.page_variant.*:
  type: config_entity
  label: 'Page variant configuration'
  mapping:
    id:
      type: string
      label: 'ID'
    label:
      type: label
      label: 'Label'
    weight:
      type: integer
      label: 'Weight'
    uuid:
      type: string
      label: 'UUID'
    variant:
      type: string
      label: 'Display variant'
    variant_settings:
      type: display_variant.plugin.[%parent.variant]
      label: 'Variant settings'
    page:
      type: string
      label: 'Parent page'
    selection_criteria:
      type: sequence
      label: 'Selection criteria'
      sequence:
        - type: condition.plugin.[id]
          label: 'Selection condition'
    selection_logic:
      type: string
      label: 'Selection logic'
    static_context:
      type: sequence
      label: Static context list
      sequence:
        - type: ctools.context
          label: 'Static context'

page_manager.block_plugin.*:
  type: block.settings.[id]
  mapping:
    region:
      type: string
      label: 'Region'
    weight:
      type: integer
      label: 'Weight'
    uuid:
      type: string
      label: 'UUID'
    context_mapping:
      type: sequence
      label: 'Context assignments'
      sequence:
        - type: string

# @todo Move to core in https://www.drupal.org/node/2838130.
display_variant.plugin.*:
  type: display_variant.plugin
  label: 'Variant settings'
condition.plugin.*:
  type: condition.plugin
  label: 'Condition settings'

display_variant.plugin.block_display:
  type: display_variant.plugin
  label: 'Block variant plugin'
  mapping:
    selection_logic:
      type: string
      label: 'Selection logic'
    selection_conditions:
      type: sequence
      label: 'Selection Conditions'
      sequence:
        - type: condition.plugin.[id]
          label: 'Selection Condition'
    blocks:
      type: sequence
      label: 'Blocks'
      sequence:
        - type: page_manager.block_plugin.[id]
    page_title:
      type: label
      label: 'Page title'

display_variant.plugin.http_status_code:
  type: display_variant.plugin
  label: 'HTTP status code variant plugin'
  mapping:
    status_code:
      type: integer
      label: 'Status code'
    redirect_location:
      type: string
      label: 'Redirect location'

display_variant.plugin.layout_builder:
  type: display_variant.plugin
  label: 'Layout Builder'
  mapping:
    sections:
      type: sequence
      sequence:
        type: layout_builder.section
