File: gecko-trace.schema.yaml

package info (click to toggle)
firefox 145.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,653,528 kB
  • sloc: cpp: 7,594,999; javascript: 6,459,658; ansic: 3,752,909; python: 1,403,455; xml: 629,809; asm: 438,679; java: 186,421; sh: 67,287; makefile: 19,169; objc: 13,086; perl: 12,982; yacc: 4,583; cs: 3,846; pascal: 3,448; lex: 1,720; ruby: 1,003; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10
file content (96 lines) | stat: -rw-r--r-- 2,582 bytes parent folder | download | duplicates (5)
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
---
$schema: "https://json-schema.org/draft/2020-12/schema"
$id: "https://example.com/schemas/gecko-trace.schema.json"
$title: Gecko Trace-Events Specification
$comment: >
  A definition file describing traces collected by Gecko.

type: object
description: Top-level container object.
required: [events]
additionalProperties: false

properties:
  events:
    type: object
    description: Map of event identifiers => event definition objects.
    minProperties: 1
    propertyNames:
      type: string
      pattern: "^[a-z][a-z0-9._]*$"
      description: Lower-snake-case dotted event identifier
    additionalProperties: false
    patternProperties:
      "^[a-z][a-z0-9._]*$": { $ref: "#/$defs/event" }

$defs:
  event:
    type: object
    required: [description]
    properties:
      display_name:
        type: string
        description: >
          Display name that appears in Telemetry.
          If omitted the enclosing map key is used.
      description:
        type: string
        minLength: 1
        description: Human-readable description of the event.
      inherits_from:
        type: array
        items:
          type: string
          pattern: "^[a-z][a-z0-9._]*$"
        minItems: 1
        uniqueItems: true
        description: Other events this one extends.
      attributes:
        type: object
        minProperties: 1
        description: Event-specific attribute declarations.
        propertyNames:
          type: string
          pattern: "^[a-z][a-z0-9._]*$"
        additionalProperties: false
        patternProperties:
          "^[a-z][a-z0-9._]*$": { $ref: "#/$defs/attribute" }
    additionalProperties: false

  attribute:
    type: object
    required: [type, description]
    properties:
      type:
        description: >
          Allowed value type(s) for this attribute (scalar or array of scalars).
        oneOf:
          # single primitive
          - $ref: "#/$defs/attributeValue"
          # array of ONE primitive
          - const: array
      items:
        type: object
        properties:
          type:
            $ref: "#/$defs/attributeValue"
        required: [type]
        additionalProperties: false
      description:
        type: string
        minLength: 1
        description: Human-readable description of the attribute.
    additionalProperties: false
    if:
      properties:
        type: { const: array }
    then:
      required: [items]
    else:
      properties:
        items: false

  attributeValue:
    $anchor: attributeValue
    type: string
    enum: ["boolean", "integer", "string"]