# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
# Query profiles and their types - a query profile is a nested composite of query parameters with an id
# A set of query parameters can be fetched from a query profile rather than being
# submitted explicitly.
namespace=search.query.profile.config

# The id of this query profile. The id has the form name(:version)?
# where the version has the form 1(.2(.3(.identifier)?)?)?.
# The default query profile (if any) must be called "default".
queryprofile[].id string

# The (optional) type of this query profile, an id string
# If no type is given, all values are legal
queryprofile[].type string default=""

# The optional list of query profiles this inherits, by id.
# The id's has the form name(:version)?
# where the version has the form 1(.2(.3(.identifier)?)?)?.
# If the version is not specified the newest version found is used.
queryprofile[].inherit[] string

# The dimensions over which this profile may vary, if any
queryprofile[].dimensions[] string

# A property name. Note that names containing dots will create implicit query profile
# sub-instances. These instances will completely override instances in super-profiles
# even if they don't set all the values of the super-instance
queryprofile[].property[].name string
# The property value
queryprofile[].property[].value string
# Whether the value is overridable in the request or by a programmatic setting: "true", "false" or ""
# which means take the value from any inherited profile or the type
queryprofile[].property[].overridable string default=""

# A reference name to another query profile
queryprofile[].reference[].name string
# The id of the referenced profile, the version part may be missing
# or underspecified as usual
queryprofile[].reference[].value string
# Whether the value is overridable in the request or by a programmatic setting: "true", "false" or ""
# which means take the value from any inherited profile or the type
queryprofile[].reference[].overridable string default=""

# A variant of this (top level) profile for some value of its dimensions
queryprofile[].queryprofilevariant[].fordimensionvalues[] string
# The optional list of query profiles this variant inherits, by id.
# The id's has the form name(:version)?
# where the version has the form 1(.2(.3(.identifier)?)?)?.
# If the version is not specified the newest version found is used.
queryprofile[].queryprofilevariant[].inherit[] string
# Content of profile variant
queryprofile[].queryprofilevariant[].property[].name string
# Content of profile variant
queryprofile[].queryprofilevariant[].property[].value string
# Content of profile variant
queryprofile[].queryprofilevariant[].reference[].name string
# Content of profile variant
queryprofile[].queryprofilevariant[].reference[].value string

# A query profile type defines the values of instance query profiles.
# The id follows the same rules as for query profiles
queryprofiletype[].id string

# If this is strict, non-declared values can not be set in a query profile of this type nor
# in the request or by a programmatic call
queryprofiletype[].strict bool default=false

# With this set to true, requests for query profile instances of this type will be matched as path names
queryprofiletype[].matchaspath bool default=false

# The optional list of query profile types this inherits, by id.
# The id's has the form name(:version)?
# where the version has the form 1(.2(.3(.identifier)?)?)?.
# If the version is not specified the newest version found is used.
queryprofiletype[].inherit[] string

# Declaration of a field
queryprofiletype[].field[].name string
# The type of the field, a primitive, query-profile or query-profile:id to declare a reference
# which is untyped or typed, respectively
queryprofiletype[].field[].type string
# Whether values of this is overridable in the request or by a programmatic setting
queryprofiletype[].field[].overridable bool default=true
# Whether this must be present in the query profile or the request for this to be valid
queryprofiletype[].field[].mandatory bool default=false
# A space-separated list of aliases of this field name. Aliases are case insensitive
queryprofiletype[].field[].alias string default=""





