{{/* This template is used to render EDUs and PDUs in the server-server and room versions specs. It expects to be passed a `path` parameter, which is a path, relative to /data, pointing to a schema file. The file extension is omitted. For example: {{% definition path="api/server-server/definitions/edu" %}} This template replaces the old {{definition_*}} template. */}} {{ $path := .Params.path }} {{ $compact := .Params.compact }} {{ $pieces := split $path "/" }} {{/* The definition is referenced by the .path parameter */}} {{ $definition := index .Site.Data $pieces }} {{ if not $definition }} {{ errorf "site data %s not found" $path }} {{ end }} {{/* The base path, which we use to resolve $ref, omits the last component */}} {{ $pieces = first (sub (len $pieces) 1) $pieces}} {{ $path = delimit $pieces "/" }} {{/* Resolve $ref and allOf */}} {{ $definition = partial "json-schema/resolve-refs" (dict "schema" $definition "path" $path) }} {{ $definition = partial "json-schema/resolve-allof" $definition }}

{{ $definition.title }}


{{ if (index $definition "x-addedInMatrixVersion") }} {{ partial "added-in" (dict "v" (index $definition "x-addedInMatrixVersion")) }} {{ end }} {{ $definition.description | markdownify }}
{{ $additional_types := partial "json-schema/resolve-additional-types" (dict "schema" $definition "name" (printf "\"%s\"" $path)) }} {{ $additional_types = uniq $additional_types }} {{ range $additional_types }} {{ partial "openapi/render-object-table" . }} {{end}}

Examples

{{ $example := partial "json-schema/resolve-example" $definition }} ```json {{ jsonify (dict "indent" " ") $example }} ```