Fix definition of response of POST /_matrix/federation/v1/user/keys/claim

Also fixes the rendering of nested OneOf.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
This commit is contained in:
Kévin Commaille 2023-06-08 21:52:34 +02:00
parent f4aa7c0327
commit 770bbd01a0
No known key found for this signature in database
GPG key ID: 29A48C1F03620416
3 changed files with 36 additions and 20 deletions

View file

@ -71,26 +71,28 @@ paths:
type: object
# Key
additionalProperties:
type: object
title: KeyObject
properties:
key:
type: string
description: The key, encoded using unpadded base64.
signatures:
type: object
title: Signatures
additionalProperties:
type: object
additionalProperties:
oneOf:
- type: string
- type: object
title: KeyObject
properties:
key:
type: string
description: |-
Signature of the key object.
description: The key, encoded using unpadded base64.
signatures:
type: object
title: Signatures
additionalProperties:
type: object
additionalProperties:
type: string
description: |-
Signature of the key object.
The signature is calculated using the process described at [Signing JSON](/appendices/#signing-json).
required:
- key
- signatures
The signature is calculated using the process described at [Signing JSON](/appendices/#signing-json).
required:
- key
- signatures
example:
"@alice:example.com":
JLAFKJWSCS:

View file

@ -91,6 +91,20 @@
{{ end }}
{{ end }}
{{ if and $this_object.oneOf (reflect.IsSlice $this_object.oneOf) }}
{{ range $idx, $item := $this_object.oneOf }}
/* although we expect resolve-allof to be called on the input, resolve-allof does not recurse into
* nested objects, so we have to call it again.
*/
{{ $item = partial "json-schema/resolve-allof" $item }}
{{ $additional_objects = partial "json-schema/resolve-additional-types" (dict
"schema" $item
"anchor_base" $anchor_base
"name" (printf "%s.oneOf[%d]" $name $idx))
}}
{{ end }}
{{ end }}
{{ return $additional_objects }}

View file

@ -36,7 +36,7 @@
{{ $property := partial "json-schema/resolve-allof" $property }}
{{ $type := $property.type }}
{{ if eq $property.type "object" }}
{{ if or (eq $property.type "object") (and $property.oneOf (reflect.IsSlice .oneOf)) }}
{{ $type = partial "type-or-title" $property }}
{{ end }}
@ -108,7 +108,7 @@
{{ $types := slice }}
{{ range .oneOf }}
{{ $types = $types | append .type }}
{{ $types = $types | append (partial "type-or-title" .) }}
{{ end }}
{{ $type = delimit $types "|" }}