views.query.search_api_query:
  type: views_query
  label: 'Search API query'
  mapping:
    bypass_access:
      type: boolean
      label: If the underlying search index has access checks enabled, this option allows you to disable them for this view.
    skip_access:
      type: boolean
      label: Do not execute additional access checks for all items in the search results.
    preserve_facet_query_args:
      type: boolean
      label: By default, changing an exposed filter would reset all selected facets. This option allows you to prevent this behavior.

views.row.search_api:
  type: views_row
  label: 'Search API rendered item'
  mapping:
    view_modes:
      type: sequence
      label: View modes for each datasource
      orderby: key
      sequence:
        type: sequence
        label: A list of all the bundles and their configured view mode
        orderby: key
        sequence:
          type: string
          label: View mode for the specific bundle

views.cache.search_api_time:
  type: views_cache
  label: 'Time-based caching (Search API)'
  mapping:
    options:
      type: mapping
      label: 'Cache options'
      mapping:
        results_lifespan:
          type: integer
          label: 'The length of time raw query results should be cached.'
        results_lifespan_custom:
          type: integer
          label: 'Length of time in seconds raw query results should be cached.'
        output_lifespan:
          type: integer
          label: 'The length of time rendered HTML output should be cached.'
        output_lifespan_custom:
          type: integer
          label: 'Length of time in seconds rendered HTML output should be cached.'

views.cache.search_api_tag:
  type: views_cache
  label: 'Tag-based caching (Search API)'
  mapping:
    options:
      type: mapping
      label: 'Cache options'


views.argument.search_api:
  type: views.argument.numeric
  label: 'Search API'

views.argument.search_api_fulltext:
  type: views.argument.search_api
  label: 'Search API more like this'
  mapping:
    parse_mode:
      type: string
      label: 'Parse mode'
    conjunction:
      type: string
      label: 'Conjunction'
    fields:
      type: sequence
      label: 'Fields'
      orderby: value
      sequence:
        type: string
        label: 'Field'

views.argument.search_api_more_like_this:
  type: views_argument
  label: 'Search API more like this'
  mapping:
    fields:
      type: sequence
      label: 'Fields'
      orderby: value
      sequence:
        type: string
        label: 'Field'

views.argument.search_api_term:
  type: views.argument.search_api
  label: 'Search API taxonomy term'

views.field.search_api:
  type: views_field
  label: 'Search API standard'
  mapping:
    link_to_item:
      type: boolean
      label: 'Link to item'
    use_highlighting:
      type: boolean
      label: 'Use highlighted field data'
    multi_type:
      type: string
      label: 'Handling of multiple values'
    multi_separator:
      type: string
      label: 'Separator for multiple values'

views.field.search_api_boolean:
  type: views.field.boolean
  label: 'Search API boolean'
  mapping:
    link_to_item:
      type: boolean
      label: 'Link to item'
    use_highlighting:
      type: boolean
      label: 'Use highlighted field data'
    multi_type:
      type: string
      label: 'Handling of multiple values'
    multi_separator:
      type: string
      label: 'Separator for multiple values'

views.field.search_api_date:
  type: views.field.date
  label: 'Search API date'
  mapping:
    link_to_item:
      type: boolean
      label: 'Link to item'
    use_highlighting:
      type: boolean
      label: 'Use highlighted field data'
    multi_type:
      type: string
      label: 'Handling of multiple values'
    multi_separator:
      type: string
      label: 'Separator for multiple values'

views.field.search_api_entity:
  type: views.field.search_api
  label: 'Search API entity reference'
  mapping:
    display_methods:
      type: sequence
      label: 'Display settings'
      orderby: key
      sequence:
        type: mapping
        label: 'Display settings for bundle'
        mapping:
          display_method:
            type: string
            label: 'Display method'
          view_mode:
            type: string
            label: 'View mode'

views.field.search_api_field:
  type: views.field.field
  label: 'Search API entity field'
  mapping:
    field_rendering:
      type: boolean
      label: 'Use entity field rendering'
    fallback_handler:
      type: string
      label: 'Fallback handler'
    fallback_options:
      type: views.field.[%parent.fallback_handler]
      label: 'Options for fallback handler'

views.field.search_api_numeric:
  type: views.field.numeric
  label: 'Search API boolean'
  mapping:
    link_to_item:
      type: boolean
      label: 'Link to item'
    use_highlighting:
      type: boolean
      label: 'Use highlighted field data'
    multi_type:
      type: string
      label: 'Handling of multiple values'
    multi_separator:
      type: string
      label: 'Separator for multiple values'
    format_plural_values:
      type: sequence
      label: 'Pluralized strings'
      sequence:
        type: string
        label: 'Singular/Plural string'

views.field.search_api_rendered_item:
  type: views.field.search_api
  label: 'Search API rendered item'
  mapping:
    view_modes:
      type: sequence
      label: 'View modes for each datasource'
      orderby: key
      sequence:
        type: sequence
        label: 'A list of all the bundles and their configured view mode'
        orderby: key
        sequence:
          type: string
          label: 'View mode for the specific bundle'

views.filter.search_api_boolean:
  type: views.filter.boolean
  label: 'Search API boolean'

views.filter.search_api_datasource:
  type: views.filter.search_api_options
  label: 'Search API datasource'

views.filter.search_api_date:
  type: views.filter.date
  label: 'Search API date'

views.filter.search_api_fulltext:
  type: views_filter
  label: 'Search API fulltext search'
  mapping:
    parse_mode:
      type: string
      label: Parse mode
    min_length:
      type: integer
      label: Minimum search string length
    fields:
      type: sequence
      label: Fields to search on
      orderby: value
      sequence:
        type: string
        label: Field name
    expose:
      type: mapping
      label: 'Exposed'
      mapping:
        placeholder:
          type: label
          label: 'Placeholder'

views.filter.search_api_language:
  type: views.filter.language
  label: 'Search API language'

views.filter.search_api_numeric:
  type: views.filter.numeric
  label: 'Search API numeric'

views.filter.search_api_options:
  type: views.filter.many_to_one
  label: 'Search API options'

views.filter.search_api_string:
  type: views.filter.search_api_numeric
  label: 'Search API string'

views.filter.search_api_term:
  type: views.filter.taxonomy_index_tid
  label: 'Search API taxonomy term'

views.filter.search_api_text:
  type: views.filter.search_api_string
  label: 'Search API text'

views.filter.search_api_user:
  type: views.filter.user_name
  label: 'Search API user'

views.filter_value.search_api_boolean:
  type: string

views.filter_value.search_api_datasource:
  type: string

views.filter_value.search_api_date:
  type: views.filter_value.date
  label: 'Search API date'

views.filter_value.search_api_fulltext:
  type: string

views.filter_value.search_api_language:
  type: string

views.filter_value.search_api_numeric:
  type: views.filter_value.numeric

views.filter_value.search_api_options:
  type: sequence
  orderby: value
  sequence:
    type: string
    label: 'Value'

views.filter_value.search_api_string:
  type: views.filter_value.numeric

views.filter_value.search_api_term:
  type: string

views.filter_value.search_api_text:
  type: views.filter_value.numeric

views.filter_value.search_api_user:
  type: string

views.relationship.search_api:
  type: views_relationship
  label: 'Search API'
  mapping:
    skip_access:
      type: boolean
      label: Do not execute access checks for entities referenced via this relationship.
