QueryModelDescriptor

data class QueryModelDescriptor(val model: QueryModel, val version: String, val timeZone: String, val record: RecordDescriptor, val limits: LimitsDescriptor, val analysis: AnalysisDescriptor, val fields: List<FieldDescriptor>, val elements: List<ElementDescriptor>, val dynamic: List<DynamicFieldDescriptor>, val constraints: List<ConstraintDescriptor>, val variants: VariantsDescriptor? = null)

How a query model can be queried on one entry: the answer GET …/schema gives to agents and the view engine.

It publishes conclusions, never storage vocabulary: every listed operator, sort, group and function is admitted when used on its own, anything unlisted is rejected; combination rules are in constraints. Values, scopes and policy conditions may still reject a query at run time, with a structured violation. It exposes no physical names and does not depend on the caller, so it is cacheable; version is a hash of its content and doubles as the ETag.

Constructors

Link copied to clipboard
constructor(model: QueryModel, version: String, timeZone: String, record: RecordDescriptor, limits: LimitsDescriptor, analysis: AnalysisDescriptor, fields: List<FieldDescriptor>, elements: List<ElementDescriptor>, dynamic: List<DynamicFieldDescriptor>, constraints: List<ConstraintDescriptor>, variants: VariantsDescriptor? = null)

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Fields under dynamic map keys, written with {key} in place of the key.

Link copied to clipboard
Link copied to clipboard

Every queryable field by logical path, fields inside elements included (see FieldDescriptor.scope).

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

The server's default time zone, used when a request names none.

Link copied to clipboard

The variants of an element whose records differ by a discriminator, or null when the model has none.

Link copied to clipboard