forked from mirrors/gecko-dev
128 lines
4.1 KiB
JSON
128 lines
4.1 KiB
JSON
{
|
|
"description": "Common elements used across FxMS schemas",
|
|
"$id": "file:///FxMSCommon.schema.json",
|
|
"$defs": {
|
|
"Message": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "The message identifier"
|
|
},
|
|
"groups": {
|
|
"description": "Array of preferences used to control `enabled` status of the group. If any is `false` the group is disabled.",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"description": "Preference name"
|
|
}
|
|
},
|
|
"template": {
|
|
"type": "string",
|
|
"description": "Which messaging template this message is using."
|
|
},
|
|
"frequency": {
|
|
"type": "object",
|
|
"description": "An object containing frequency cap information for a message.",
|
|
"properties": {
|
|
"lifetime": {
|
|
"type": "integer",
|
|
"description": "The maximum lifetime impressions for a message.",
|
|
"minimum": 1,
|
|
"maximum": 100
|
|
},
|
|
"custom": {
|
|
"type": "array",
|
|
"description": "An array of custom frequency cap definitions.",
|
|
"items": {
|
|
"description": "A frequency cap definition containing time and max impression information",
|
|
"type": "object",
|
|
"properties": {
|
|
"period": {
|
|
"type": "integer",
|
|
"description": "Period of time in milliseconds (e.g. 86400000 for one day)"
|
|
},
|
|
"cap": {
|
|
"type": "integer",
|
|
"description": "The maximum impressions for the message within the defined period.",
|
|
"minimum": 1,
|
|
"maximum": 100
|
|
}
|
|
},
|
|
"required": ["period", "cap"]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"priority": {
|
|
"description": "The priority of the message. If there are two competing messages to show, the one with the highest priority will be shown",
|
|
"type": "integer"
|
|
},
|
|
"order": {
|
|
"description": "The order in which messages should be shown. Messages will be shown in increasing order.",
|
|
"type": "integer"
|
|
},
|
|
"targeting": {
|
|
"description": "A JEXL expression representing targeting information",
|
|
"type": "string"
|
|
},
|
|
"trigger": {
|
|
"description": "An action to trigger potentially showing the message",
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "A string identifying the trigger action"
|
|
},
|
|
"params": {
|
|
"type": "array",
|
|
"description": "An optional array of string parameters for the trigger action",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": ["id"]
|
|
},
|
|
"provider": {
|
|
"description": "An identifier for the provider of this message, such as \"cfr\" or \"preview\".",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": true,
|
|
"dependentRequired": {
|
|
"content": ["id", "template"],
|
|
"template": ["id", "content"]
|
|
}
|
|
},
|
|
"localizedText": {
|
|
"type": "object",
|
|
"properties": {
|
|
"string_id": {
|
|
"description": "Id of localized string to be rendered.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["string_id"]
|
|
},
|
|
"localizableText": {
|
|
"description": "Either a raw string or an object containing the string_id of the localized text",
|
|
"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"description": "The string to be rendered."
|
|
},
|
|
{
|
|
"$ref": "#/$defs/localizedText"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|