-
Notifications
You must be signed in to change notification settings - Fork 20
/
entryTypeDefinition.yaml
72 lines (72 loc) · 3.32 KB
/
entryTypeDefinition.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
$schema: https://json-schema.org/draft/2020-12/schema
title: ''
description: "Definition of an element or entry type including the Beacon v2 required\
\ and suggested attributes. This schema purpose is to describe each type of entities\
\ included in a Beacon, hence Beacon clients could have some metadata about such\
\ entities.\n\nThe `id` attribute is the key that should be used in other parts\
\ of the Beacon Model to allow Beacon clients to identify the different parts (e.g.\
\ endpoints, filteringTerms, request parameters, etc.) that fully describe an entry\
\ type."
type: object
$comment: 'TO DO: The tagged parts should reference to `common/ontologizedElement.json`.
But that configuration fails to validate. Further investigation is required, but
should not affect the resulting schema.'
properties:
$schema:
$ref: ../common/beaconCommonComponents.yaml#/definitions/$schema
id:
$comments: ++++++ THIS IS THE START OF THE ontologized element ++++++
type: string
description: A (unique) identifier of the element.
name:
type: string
description: A distinctive name for the element.
description:
type: string
description: A textual description for the element.
ontologyTermForThisType:
$ref: ../common/ontologyTerm.yaml
$comments: ++++++ THIS IS THE END OF THE ontologized element ++++++
partOfSpecification:
description: This is label to group together entry types that are part of the
same specification.
type: string
example: Beacon v2.0
defaultSchema:
description: Description of the default schema used for this concept.
$ref: ../common/referenceToAnSchema.yaml
additionallySupportedSchemas:
description: List of additional schemas that could be used for this concept in
this instance of Beacon.
type: array
items:
$ref: ../common/referenceToAnSchema.yaml
aCollectionOf:
description: If the entry type is a collection of other entry types, (e.g. a Dataset
is a collection of Records), then this attribute must list the entry types that
could be included. One collection type could be defined as included more than
one entry type (e.g. a Dataset could include Individuals or Genomic Variants),
in such cases the entries are alternative, meaning that a given instance of
this entry type could be of only one of the types (e.g. a given Dataset contains
Individuals, while another Dataset could contain Genomic Variants, but not both
at once).
includedConcepts:
type: array
$ref: ../common/basicElement.yaml
filteringTerms:
description: Reference to the file with the list of filtering terms that could
be used to filter this concept in this instance of Beacon. The referenced file
could be used to populate the `filteringTerms`endpoint. Having it independently
should allow for updating the list of accepted filtering terms when it is necessary.
type: string
$comment: "TO DO: Double-check the proper way of referencing a path or relative\
\ path. 'format: uri' is throwing validation errors for relative file paths"
nonFilteredQueriesAllowed:
$ref: ../common/beaconCommonComponents.yaml#/definitions/NonFilteredQueriesAllowed
required:
- id
- name
- ontologyTermForThisType
- partOfSpecification
- defaultSchema
additionalProperties: true