{
  "$schema": "https://json-schema.org/draft/2019-09/schema",
  "$id": "file:///InfoBar.schema.json",
  "title": "InfoBar",
  "description": "A template with an image, test and buttons.",
  "allOf": [{ "$ref": "file:///FxMSCommon.schema.json#/$defs/Message" }],
  "type": "object",
  "properties": {
    "content": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Should the message be global (persisted across tabs) or local (disappear when switching to a different tab).",
          "enum": ["global", "tab"]
        },
        "text": {
          "$ref": "file:///FxMSCommon.schema.json#/$defs/localizableText",
          "description": "The text show in the notification box."
        },
        "priority": {
          "description": "Infobar priority level https://searchfox.org/mozilla-central/rev/3aef835f6cb12e607154d56d68726767172571e4/toolkit/content/widgets/notificationbox.js#387",
          "type": "number",
          "minumum": 0,
          "exclusiveMaximum": 10
        },
        "buttons": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "$ref": "file:///FxMSCommon.schema.json#/$defs/localizableText",
                "description": "The text label of the button."
              },
              "primary": {
                "type": "boolean",
                "description": "Is this the primary button?"
              },
              "accessKey": {
                "type": "string",
                "description": "Keyboard shortcut letter."
              },
              "action": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "Action dispatched by the button."
                  },
                  "data": {
                    "type": "object"
                  }
                },
                "required": ["type"],
                "additionalProperties": true
              },
              "supportPage": {
                "type": "string",
                "description": "A page title on SUMO to link to"
              }
            },
            "required": ["label", "action"],
            "additionalProperties": true
          }
        }
      },
      "additionalProperties": true,
      "required": ["text", "buttons"]
    },
    "template": {
      "type": "string",
      "const": "infobar"
    }
  },
  "additionalProperties": true,
  "required": ["targeting", "trigger"],
  "$defs": {
    "plainText": {
      "description": "Plain text (no HTML allowed)",
      "type": "string"
    },
    "linkUrl": {
      "description": "Target for links or buttons",
      "type": "string",
      "format": "uri"
    }
  }
}
