232 lines
4.7 KiB
JSON
232 lines
4.7 KiB
JSON
{
|
|
"type": "object",
|
|
"required": [
|
|
"description",
|
|
"action",
|
|
"product_group",
|
|
"introduced_by_url",
|
|
"milestone",
|
|
"tiers"
|
|
],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"category": {
|
|
"type": "string"
|
|
},
|
|
"internal_events": {
|
|
"type": "boolean",
|
|
"const": true
|
|
},
|
|
"action": {
|
|
"type": "string",
|
|
"pattern": "^[a-z0-9_]+$"
|
|
},
|
|
"extra_properties": {
|
|
"type": [
|
|
"object",
|
|
"null"
|
|
]
|
|
},
|
|
"identifiers": {
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
],
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"project",
|
|
"user",
|
|
"namespace",
|
|
"feature_enabled_by_namespace_ids"
|
|
]
|
|
}
|
|
},
|
|
"additional_properties": {
|
|
"anyOf": [
|
|
{
|
|
"description": "Only base additional properties are provided",
|
|
"type": "object",
|
|
"properties": {
|
|
"label": {
|
|
"$ref": "#additional_prop"
|
|
},
|
|
"property": {
|
|
"$ref": "#additional_prop"
|
|
},
|
|
"value": {
|
|
"$ref": "#additional_prop"
|
|
}
|
|
},
|
|
"additionalProperties": {
|
|
"type": "null",
|
|
"x-error": "Either property/label or value must be used before defining other additional_properties"
|
|
}
|
|
},
|
|
{
|
|
"description": "All string-type base additional properties are provided, allowing custom properties",
|
|
"type": "object",
|
|
"properties": {
|
|
"label": {
|
|
"$ref": "#additional_prop"
|
|
},
|
|
"property": {
|
|
"$ref": "#additional_prop"
|
|
},
|
|
"value": {
|
|
"$ref": "#additional_prop"
|
|
}
|
|
},
|
|
"required": [
|
|
"property",
|
|
"label"
|
|
],
|
|
"additionalProperties": {
|
|
"$ref": "#additional_prop"
|
|
}
|
|
},
|
|
{
|
|
"description": "All numeric-type base additional properties are provided, allowing custom properties",
|
|
"type": "object",
|
|
"properties": {
|
|
"label": {
|
|
"$ref": "#additional_prop"
|
|
},
|
|
"property": {
|
|
"$ref": "#additional_prop"
|
|
},
|
|
"value": {
|
|
"$ref": "#additional_prop"
|
|
}
|
|
},
|
|
"required": [
|
|
"value"
|
|
],
|
|
"additionalProperties": {
|
|
"$ref": "#additional_prop"
|
|
}
|
|
}
|
|
],
|
|
"$defs": {
|
|
"additional_prop": {
|
|
"$anchor": "additional_prop",
|
|
"type": "object",
|
|
"properties": {
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"description"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
},
|
|
"iglu_schema_url": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"product_group": {
|
|
"$ref": "../metrics/schema/product_groups.json"
|
|
},
|
|
"product_categories": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "known_product_category"
|
|
}
|
|
},
|
|
"introduced_by_url": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"format": "uri"
|
|
},
|
|
"milestone": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"pattern": "^<?[0-9]+\\.[0-9]+$"
|
|
},
|
|
"status": {
|
|
"type": [
|
|
"string"
|
|
],
|
|
"enum": [
|
|
"active",
|
|
"removed"
|
|
]
|
|
},
|
|
"milestone_removed": {
|
|
"type": [
|
|
"string"
|
|
],
|
|
"pattern": "^<?[0-9]+\\.[0-9]+$"
|
|
},
|
|
"removed_by_url": {
|
|
"type": [
|
|
"string"
|
|
],
|
|
"format": "uri"
|
|
},
|
|
"classification": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"enum": [
|
|
"duo"
|
|
]
|
|
},
|
|
"tiers": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"free",
|
|
"premium",
|
|
"ultimate"
|
|
]
|
|
}
|
|
},
|
|
"extra_trackers": {
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
],
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"tracking_class": {
|
|
"type": "string"
|
|
},
|
|
"protected_properties": {
|
|
"type": [
|
|
"object",
|
|
"null"
|
|
],
|
|
"properties": {
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"allOf": [
|
|
{
|
|
"$ref": "schema/status.json"
|
|
}
|
|
]
|
|
}
|