Commit | Line | Data |
---|---|---|
4810b707 PP |
1 | # The MIT License (MIT) |
2 | # | |
3 | # Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com> | |
4 | # | |
5 | # Permission is hereby granted, free of charge, to any person obtaining | |
6 | # a copy of this software and associated documentation files (the | |
7 | # "Software"), to deal in the Software without restriction, including | |
8 | # without limitation the rights to use, copy, modify, merge, publish, | |
9 | # distribute, sublicense, and/or sell copies of the Software, and to | |
10 | # permit persons to whom the Software is furnished to do so, subject to | |
11 | # the following conditions: | |
12 | # | |
13 | # The above copyright notice and this permission notice shall be | |
14 | # included in all copies or substantial portions of the Software. | |
15 | # | |
16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
17 | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
18 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | |
19 | # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | |
20 | # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | |
21 | # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | |
22 | # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
23 | ||
24 | $schema: http://json-schema.org/draft-07/schema# | |
c3fa1a14 | 25 | $id: https://barectf.org/schemas/config/3/config-pre-field-type-expansion.json |
4810b707 PP |
26 | title: Configuration object before field type expansions |
27 | definitions: | |
28 | partial-ft: | |
29 | title: Partial field type object | |
30 | if: | |
31 | type: object | |
32 | then: | |
33 | oneOf: | |
34 | - properties: | |
35 | class: | |
36 | type: string | |
37 | required: | |
38 | - class | |
39 | - properties: | |
40 | $inherit: | |
41 | type: string | |
42 | required: | |
43 | - $inherit | |
44 | properties: | |
45 | element-field-type: | |
46 | $ref: '#/definitions/partial-ft' | |
47 | members: | |
48 | if: | |
49 | type: array | |
50 | then: | |
51 | items: | |
52 | type: object | |
53 | patternProperties: | |
54 | '^[A-Za-z_][A-Za-z0-9_]*$': | |
55 | if: | |
56 | type: object | |
57 | then: | |
58 | properties: | |
59 | field-type: | |
60 | $ref: '#/definitions/partial-ft' | |
61 | required: | |
62 | - field-type | |
63 | else: | |
64 | type: string | |
65 | minProperties: 1 | |
66 | maxProperties: 1 | |
67 | else: | |
68 | type: 'null' | |
69 | else: | |
70 | oneOf: | |
71 | - type: string | |
72 | - type: boolean | |
73 | - type: 'null' | |
74 | type: object | |
75 | properties: | |
76 | trace: | |
77 | title: Trace object before field type expansions | |
78 | type: object | |
79 | properties: | |
80 | type: | |
81 | title: Trace type object before field type expansions | |
82 | type: object | |
83 | properties: | |
84 | $field-type-aliases: | |
85 | title: Field type aliases object before field type expansions | |
86 | if: | |
87 | type: object | |
88 | then: | |
89 | patternProperties: | |
90 | '.*': | |
91 | $ref: '#/definitions/partial-ft' | |
92 | else: | |
93 | type: 'null' | |
94 | $features: | |
95 | if: | |
96 | type: object | |
97 | then: | |
98 | properties: | |
99 | magic-field-type: | |
100 | $ref: '#/definitions/partial-ft' | |
101 | uuid-field-type: | |
102 | $ref: '#/definitions/partial-ft' | |
e8f0d548 | 103 | data-stream-type-id-field-type: |
4810b707 PP |
104 | $ref: '#/definitions/partial-ft' |
105 | else: | |
106 | type: 'null' | |
e8f0d548 PP |
107 | data-stream-types: |
108 | title: Data stream types object before field type expansions | |
4810b707 PP |
109 | type: object |
110 | patternProperties: | |
111 | '.*': | |
e8f0d548 | 112 | title: Data stream type object before field type expansions |
4810b707 PP |
113 | type: object |
114 | properties: | |
115 | $features: | |
116 | if: | |
117 | type: object | |
118 | then: | |
119 | properties: | |
120 | packet: | |
121 | if: | |
122 | type: object | |
123 | then: | |
124 | properties: | |
125 | total-size-field-type: | |
126 | $ref: '#/definitions/partial-ft' | |
127 | content-size-field-type: | |
128 | $ref: '#/definitions/partial-ft' | |
462e49b3 | 129 | beginning-timestamp-field-type: |
4810b707 | 130 | $ref: '#/definitions/partial-ft' |
462e49b3 | 131 | end-timestamp-field-type: |
4810b707 | 132 | $ref: '#/definitions/partial-ft' |
e8f0d548 | 133 | discarded-event-records-counter-snapshot-field-type: |
4810b707 | 134 | $ref: '#/definitions/partial-ft' |
af09c4fc JL |
135 | sequence-number-field-type: |
136 | $ref: '#/definitions/partial-ft' | |
4810b707 PP |
137 | else: |
138 | type: 'null' | |
e8f0d548 | 139 | event-record: |
4810b707 PP |
140 | if: |
141 | type: object | |
142 | then: | |
143 | properties: | |
144 | type-id-field-type: | |
145 | $ref: '#/definitions/partial-ft' | |
462e49b3 | 146 | timestamp-field-type: |
4810b707 PP |
147 | $ref: '#/definitions/partial-ft' |
148 | else: | |
149 | type: 'null' | |
150 | else: | |
151 | type: 'null' | |
152 | packet-context-field-type-extra-members: | |
153 | if: | |
154 | type: array | |
155 | then: | |
156 | items: | |
157 | type: object | |
158 | properties: | |
159 | field-type: | |
160 | $ref: '#/definitions/partial-ft' | |
161 | else: | |
162 | type: 'null' | |
e8f0d548 | 163 | event-record-common-context-field-type: |
4810b707 | 164 | $ref: '#/definitions/partial-ft' |
e8f0d548 PP |
165 | event-record-types: |
166 | title: Event record types object before field type expansions | |
4810b707 PP |
167 | type: object |
168 | patternProperties: | |
169 | '.*': | |
e8f0d548 | 170 | title: Event record type object before field type expansions |
4810b707 PP |
171 | type: object |
172 | properties: | |
173 | specific-context-field-type: | |
174 | $ref: '#/definitions/partial-ft' | |
175 | payload-field-type: | |
176 | $ref: '#/definitions/partial-ft' | |
177 | required: | |
e8f0d548 | 178 | - event-record-types |
4810b707 | 179 | required: |
e8f0d548 | 180 | - data-stream-types |
4810b707 PP |
181 | required: |
182 | - type | |
183 | required: | |
184 | - trace |