node-blaze
Version:
Bindings to blaze, high-performance C++ JSON Schema validator
3,299 lines • 93.8 kB
JSON
{
"$schema": "http://json-schema.org/draft-06/schema#",
"$id": "https://adaptivecards.io/schemas/adaptive-card.json",
"id": "http://adaptivecards.io/schemas/adaptive-card.json",
"anyOf": [
{
"allOf": [
{
"$ref": "#/definitions/AdaptiveCard"
}
]
}
],
"definitions": {
"Action.Execute": {
"description": "Gathers input fields, merges with optional data field, and sends an event to the client. Clients process the event by sending an Invoke activity of type adaptiveCard/action to the target Bot. The inputs that are gathered are those on the current card, and in the case of a show card those on any parent cards. See [Universal Action Model](https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/universal-action-model) documentation for more details.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Action"
}
],
"properties": {
"requires": {},
"id": {},
"title": {},
"type": {
"description": "Must be `Action.Execute`",
"enum": [
"Action.Execute"
]
},
"associatedInputs": {
"description": "Controls which inputs are associated with the action.",
"default": "auto",
"$ref": "#/definitions/AssociatedInputs"
},
"data": {
"description": "Initial data that input fields will be combined with. These are essentially ‘hidden’ properties.",
"anyOf": [
{
"type": "string"
},
{
"type": "object"
}
]
},
"fallback": {},
"iconUrl": {},
"isEnabled": {},
"mode": {},
"style": {},
"tooltip": {},
"verb": {
"description": "The card author-defined verb associated with this action.",
"type": "string"
}
},
"additionalProperties": false,
"version": "1.4"
},
"Action.OpenUrl": {
"description": "When invoked, show the given url either by launching it in an external web browser or showing within an embedded web browser.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Action"
}
],
"required": [
"url"
],
"properties": {
"requires": {},
"id": {},
"title": {},
"type": {
"description": "Must be `Action.OpenUrl`",
"enum": [
"Action.OpenUrl"
]
},
"fallback": {},
"iconUrl": {},
"isEnabled": {},
"mode": {},
"style": {},
"tooltip": {},
"url": {
"description": "The URL to open.",
"type": "string",
"format": "uri-reference"
}
},
"additionalProperties": false
},
"Action.ShowCard": {
"description": "Defines an AdaptiveCard which is shown to the user when the button or link is clicked.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Action"
}
],
"properties": {
"requires": {},
"id": {},
"title": {},
"type": {
"description": "Must be `Action.ShowCard`",
"enum": [
"Action.ShowCard"
]
},
"card": {
"description": "The Adaptive Card to show. Inputs in ShowCards will not be submitted if the submit button is located on a parent card. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details.",
"$ref": "#/definitions/AdaptiveCard"
},
"fallback": {},
"iconUrl": {},
"isEnabled": {},
"mode": {},
"style": {},
"tooltip": {}
},
"additionalProperties": false
},
"Action.Submit": {
"description": "Gathers input fields, merges with optional data field, and sends an event to the client. It is up to the client to determine how this data is processed. For example: With BotFramework bots, the client would send an activity through the messaging medium to the bot. The inputs that are gathered are those on the current card, and in the case of a show card those on any parent cards. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Action"
}
],
"properties": {
"requires": {},
"id": {},
"title": {},
"type": {
"description": "Must be `Action.Submit`",
"enum": [
"Action.Submit"
]
},
"associatedInputs": {
"description": "Controls which inputs are associated with the submit action.",
"default": "auto",
"$ref": "#/definitions/AssociatedInputs",
"version": "1.3"
},
"data": {
"description": "Initial data that input fields will be combined with. These are essentially ‘hidden’ properties.",
"anyOf": [
{
"type": "string"
},
{
"type": "object"
}
]
},
"fallback": {},
"iconUrl": {},
"isEnabled": {},
"mode": {},
"style": {},
"tooltip": {}
},
"additionalProperties": false
},
"Action.ToggleVisibility": {
"description": "An action that toggles the visibility of associated card elements.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Action"
}
],
"required": [
"targetElements"
],
"properties": {
"requires": {},
"id": {},
"title": {},
"type": {
"description": "Must be `Action.ToggleVisibility`",
"enum": [
"Action.ToggleVisibility"
]
},
"fallback": {},
"iconUrl": {},
"isEnabled": {},
"mode": {},
"style": {},
"targetElements": {
"description": "The array of TargetElements. It is not recommended to include Input elements with validation under Action.Toggle due to confusion that can arise from invalid inputs that are not currently visible. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more information.",
"type": "array",
"items": {
"$ref": "#/definitions/TargetElement"
}
},
"tooltip": {}
},
"additionalProperties": false,
"version": "1.2"
},
"ActionMode": {
"description": "Determines whether an action is displayed with a button or is moved to the overflow menu.",
"anyOf": [
{
"enum": [
"primary",
"secondary"
]
},
{
"pattern": "^([p|P][r|R][i|I][m|M][a|A][r|R][y|Y])|([s|S][e|E][c|C][o|O][n|N][d|D][a|A][r|R][y|Y])$"
}
],
"features": [
4715
],
"version": "1.5"
},
"ActionSet": {
"description": "Displays a set of actions.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Element"
}
],
"required": [
"actions"
],
"properties": {
"requires": {},
"id": {},
"type": {
"description": "Must be `ActionSet`",
"enum": [
"ActionSet"
]
},
"actions": {
"description": "The array of `Action` elements to show.",
"type": "array",
"items": {
"$ref": "#/definitions/ImplementationsOf.Action"
}
},
"fallback": {},
"height": {},
"isVisible": {},
"separator": {},
"spacing": {}
},
"additionalProperties": false,
"version": "1.2"
},
"ActionStyle": {
"description": "Controls the style of an Action, which influences how the action is displayed, spoken, etc.",
"anyOf": [
{
"enum": [
"default",
"positive",
"destructive"
]
},
{
"pattern": "^([d|D][e|E][f|F][a|A][u|U][l|L][t|T])|([p|P][o|O][s|S][i|I][t|T][i|I][v|V][e|E])|([d|D][e|E][s|S][t|T][r|R][u|U][c|C][t|T][i|I][v|V][e|E])$"
}
],
"features": [
861
],
"version": "1.2"
},
"AdaptiveCard": {
"description": "An Adaptive Card, containing a free-form body of card elements, and an optional set of actions.",
"type": "object",
"properties": {
"$schema": {
"description": "The Adaptive Card schema.",
"type": "string",
"format": "uri"
},
"type": {
"description": "Must be `AdaptiveCard`",
"enum": [
"AdaptiveCard"
]
},
"actions": {
"description": "The Actions to show in the card's action bar.",
"type": "array",
"items": {
"$ref": "#/definitions/ImplementationsOf.Action"
}
},
"authentication": {
"description": "Defines authentication information to enable on-behalf-of single sign on or just-in-time OAuth.",
"$ref": "#/definitions/Authentication",
"version": "1.4"
},
"backgroundImage": {
"description": "Specifies the background image of the card.",
"anyOf": [
{
"$ref": "#/definitions/BackgroundImage"
},
{
"description": "The URL (or data url) to use as the background image. Supports data URI in version 1.2+",
"type": "string",
"format": "uri-reference",
"version": "1.0"
}
],
"version": "1.2"
},
"body": {
"description": "The card elements to show in the primary card region.",
"type": "array",
"items": {
"$ref": "#/definitions/ImplementationsOf.Element"
}
},
"fallbackText": {
"description": "Text shown when the client doesn't support the version specified (may contain markdown).",
"type": "string"
},
"lang": {
"description": "The 2-letter ISO-639-1 language used in the card. Used to localize any date/time functions.",
"examples": [
"en",
"fr",
"es"
],
"type": "string"
},
"minHeight": {
"description": "Specifies the minimum height of the card.",
"examples": [
"50px"
],
"type": "string",
"features": [
2293
],
"version": "1.2"
},
"refresh": {
"description": "Defines how the card can be refreshed by making a request to the target Bot.",
"$ref": "#/definitions/Refresh",
"version": "1.4"
},
"rtl": {
"description": "When `true` content in this Adaptive Card should be presented right to left. When 'false' content in this Adaptive Card should be presented left to right. If unset, the default platform behavior will apply.",
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"version": "1.5"
},
"selectAction": {
"description": "An Action that will be invoked when the card is tapped or selected. `Action.ShowCard` is not supported.",
"$ref": "#/definitions/ImplementationsOf.ISelectAction",
"version": "1.1"
},
"speak": {
"description": "Specifies what should be spoken for this entire card. This is simple text or SSML fragment.",
"type": "string"
},
"version": {
"description": "Schema version that this card requires. If a client is **lower** than this version, the `fallbackText` will be rendered. NOTE: Version is not required for cards within an `Action.ShowCard`. However, it *is* required for the top-level card.",
"examples": [
"1.0",
"1.1",
"1.2"
],
"type": "string"
},
"verticalContentAlignment": {
"description": "Defines how the content should be aligned vertically within the container. Only relevant for fixed-height cards, or cards with a `minHeight` specified.",
"$ref": "#/definitions/VerticalContentAlignment",
"version": "1.1"
}
},
"additionalProperties": false
},
"AssociatedInputs": {
"anyOf": [
{
"enum": [
"Auto",
"None"
]
},
{
"pattern": "^([a|A][u|U][t|T][o|O])|([n|N][o|O][n|N][e|E])$"
}
]
},
"AuthCardButton": {
"description": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.cardaction).",
"type": "object",
"required": [
"type",
"value"
],
"properties": {
"title": {
"description": "The caption of the button.",
"type": "string"
},
"type": {
"description": "The type of the button.",
"type": "string"
},
"image": {
"description": "A URL to an image to display alongside the button's caption.",
"type": "string"
},
"value": {
"description": "The value associated with the button. The meaning of value depends on the button's type.",
"type": "string"
}
},
"additionalProperties": false,
"version": "1.4"
},
"Authentication": {
"description": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.oauthcard)",
"type": "object",
"properties": {
"type": {
"description": "Must be `Authentication`",
"enum": [
"Authentication"
]
},
"buttons": {
"description": "Buttons that should be displayed to the user when prompting for authentication. The array MUST contain one button of type \"signin\". Other button types are not currently supported.",
"type": "array",
"items": {
"$ref": "#/definitions/AuthCardButton"
}
},
"connectionName": {
"description": "The identifier for registered OAuth connection setting information.",
"type": "string"
},
"text": {
"description": "Text that can be displayed to the end user when prompting them to authenticate.",
"type": "string"
},
"tokenExchangeResource": {
"description": "Provides information required to enable on-behalf-of single sign-on user authentication.",
"$ref": "#/definitions/TokenExchangeResource"
}
},
"additionalProperties": false,
"version": "1.4"
},
"BackgroundImage": {
"description": "Specifies a background image. Acceptable formats are PNG, JPEG, and GIF",
"type": "object",
"required": [
"url"
],
"properties": {
"type": {
"description": "Must be `BackgroundImage`",
"enum": [
"BackgroundImage"
]
},
"fillMode": {
"description": "Describes how the image should fill the area.",
"$ref": "#/definitions/ImageFillMode"
},
"horizontalAlignment": {
"description": "Describes how the image should be aligned if it must be cropped or if using repeat fill mode.",
"$ref": "#/definitions/HorizontalAlignment"
},
"url": {
"description": "The URL (or data url) of the image. Acceptable formats are PNG, JPEG, and GIF",
"type": "string",
"format": "uri-reference"
},
"verticalAlignment": {
"description": "Describes how the image should be aligned if it must be cropped or if using repeat fill mode.",
"$ref": "#/definitions/VerticalAlignment"
}
},
"additionalProperties": false,
"version": "1.2"
},
"BlockElementHeight": {
"anyOf": [
{
"enum": [
"auto",
"stretch"
]
},
{
"pattern": "^([a|A][u|U][t|T][o|O])|([s|S][t|T][r|R][e|E][t|T][c|C][h|H])$"
}
]
},
"ChoiceInputStyle": {
"description": "Style hint for `Input.ChoiceSet`.",
"anyOf": [
{
"enum": [
"compact",
"expanded"
]
},
{
"pattern": "^([c|C][o|O][m|M][p|P][a|A][c|C][t|T])|([e|E][x|X][p|P][a|A][n|N][d|D][e|E][d|D])$"
}
]
},
"Colors": {
"anyOf": [
{
"enum": [
"default",
"dark",
"light",
"accent",
"good",
"warning",
"attention"
]
},
{
"pattern": "^([d|D][e|E][f|F][a|A][u|U][l|L][t|T])|([d|D][a|A][r|R][k|K])|([l|L][i|I][g|G][h|H][t|T])|([a|A][c|C][c|C][e|E][n|N][t|T])|([g|G][o|O][o|O][d|D])|([w|W][a|A][r|R][n|N][i|I][n|N][g|G])|([a|A][t|T][t|T][e|E][n|N][t|T][i|I][o|O][n|N])$"
}
]
},
"Column": {
"description": "Defines a container that is part of a ColumnSet.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.ToggleableItem"
}
],
"properties": {
"requires": {},
"id": {},
"type": {
"description": "Must be `Column`",
"enum": [
"Column"
]
},
"items": {
"description": "The card elements to render inside the `Column`.",
"type": "array",
"items": {
"$ref": "#/definitions/ImplementationsOf.Element"
}
},
"backgroundImage": {
"description": "Specifies the background image. Acceptable formats are PNG, JPEG, and GIF",
"anyOf": [
{
"$ref": "#/definitions/BackgroundImage"
},
{
"description": "The URL (or data url) to use as the background image. Supports data URI.",
"type": "string",
"format": "uri-reference"
}
],
"version": "1.2"
},
"bleed": {
"description": "Determines whether the column should bleed through its parent's padding.",
"type": "boolean",
"features": [
2109
],
"version": "1.2"
},
"fallback": {
"description": "Describes what to do when an unknown item is encountered or the requires of this or any children can't be met.",
"anyOf": [
{
"$ref": "#/definitions/Column"
},
{
"$ref": "#/definitions/FallbackOption"
}
],
"version": "1.2"
},
"isVisible": {},
"minHeight": {
"description": "Specifies the minimum height of the column in pixels, like `\"80px\"`.",
"examples": [
"50px"
],
"type": "string",
"features": [
2293
],
"version": "1.2"
},
"rtl": {
"description": "When `true` content in this column should be presented right to left. When 'false' content in this column should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.",
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"version": "1.5"
},
"selectAction": {
"description": "An Action that will be invoked when the `Column` is tapped or selected. `Action.ShowCard` is not supported.",
"$ref": "#/definitions/ImplementationsOf.ISelectAction",
"version": "1.1"
},
"separator": {
"description": "When `true`, draw a separating line between this column and the previous column.",
"type": "boolean"
},
"spacing": {
"description": "Controls the amount of spacing between this column and the preceding column.",
"$ref": "#/definitions/Spacing"
},
"style": {
"description": "Style hint for `Column`.",
"anyOf": [
{
"$ref": "#/definitions/ContainerStyle"
},
{
"type": "null"
}
]
},
"verticalContentAlignment": {
"description": "Defines how the content should be aligned vertically within the column. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.",
"anyOf": [
{
"$ref": "#/definitions/VerticalContentAlignment"
},
{
"type": "null"
}
],
"version": "1.1"
},
"width": {
"description": "`\"auto\"`, `\"stretch\"`, a number representing relative width of the column in the column group, or in version 1.1 and higher, a specific pixel width, like `\"50px\"`.",
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
},
"ColumnSet": {
"description": "ColumnSet divides a region into Columns, allowing elements to sit side-by-side.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Element"
}
],
"properties": {
"requires": {},
"id": {},
"type": {
"description": "Must be `ColumnSet`",
"enum": [
"ColumnSet"
]
},
"bleed": {
"description": "Determines whether the element should bleed through its parent's padding.",
"type": "boolean",
"features": [
2109
],
"version": "1.2"
},
"columns": {
"description": "The array of `Columns` to divide the region into.",
"type": "array",
"items": {
"$ref": "#/definitions/Column"
}
},
"fallback": {},
"height": {},
"horizontalAlignment": {
"description": "Controls the horizontal alignment of the ColumnSet. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.",
"anyOf": [
{
"$ref": "#/definitions/HorizontalAlignment"
},
{
"type": "null"
}
]
},
"isVisible": {},
"minHeight": {
"description": "Specifies the minimum height of the column set in pixels, like `\"80px\"`.",
"examples": [
"50px"
],
"type": "string",
"features": [
2293
],
"version": "1.2"
},
"selectAction": {
"description": "An Action that will be invoked when the `ColumnSet` is tapped or selected. `Action.ShowCard` is not supported.",
"$ref": "#/definitions/ImplementationsOf.ISelectAction",
"version": "1.1"
},
"separator": {},
"spacing": {},
"style": {
"description": "Style hint for `ColumnSet`.",
"anyOf": [
{
"$ref": "#/definitions/ContainerStyle"
},
{
"type": "null"
}
],
"version": "1.2"
}
},
"additionalProperties": false
},
"Container": {
"description": "Containers group items together.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Element"
}
],
"required": [
"items"
],
"properties": {
"requires": {},
"id": {},
"type": {
"description": "Must be `Container`",
"enum": [
"Container"
]
},
"items": {
"description": "The card elements to render inside the `Container`.",
"type": "array",
"items": {
"$ref": "#/definitions/ImplementationsOf.Element"
}
},
"backgroundImage": {
"description": "Specifies the background image. Acceptable formats are PNG, JPEG, and GIF",
"anyOf": [
{
"$ref": "#/definitions/BackgroundImage"
},
{
"description": "The URL (or data url) to use as the background image. Supports data URI.",
"type": "string",
"format": "uri-reference"
}
],
"version": "1.2"
},
"bleed": {
"description": "Determines whether the element should bleed through its parent's padding.",
"type": "boolean",
"features": [
2109
],
"version": "1.2"
},
"fallback": {},
"height": {},
"isVisible": {},
"minHeight": {
"description": "Specifies the minimum height of the container in pixels, like `\"80px\"`.",
"examples": [
"50px"
],
"type": "string",
"features": [
2293
],
"version": "1.2"
},
"rtl?": {
"description": "When `true` content in this container should be presented right to left. When 'false' content in this container should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.",
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"version": "1.5"
},
"selectAction": {
"description": "An Action that will be invoked when the `Container` is tapped or selected. `Action.ShowCard` is not supported.",
"$ref": "#/definitions/ImplementationsOf.ISelectAction",
"version": "1.1"
},
"separator": {},
"spacing": {},
"style": {
"description": "Style hint for `Container`.",
"anyOf": [
{
"$ref": "#/definitions/ContainerStyle"
},
{
"type": "null"
}
]
},
"verticalContentAlignment": {
"description": "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.",
"anyOf": [
{
"$ref": "#/definitions/VerticalContentAlignment"
},
{
"type": "null"
}
],
"version": "1.1"
}
},
"additionalProperties": false
},
"ContainerStyle": {
"anyOf": [
{
"enum": [
"default",
"emphasis",
"good",
"attention",
"warning",
"accent"
]
},
{
"pattern": "^([d|D][e|E][f|F][a|A][u|U][l|L][t|T])|([e|E][m|M][p|P][h|H][a|A][s|S][i|I][s|S])|([g|G][o|O][o|O][d|D])|([a|A][t|T][t|T][e|E][n|N][t|T][i|I][o|O][n|N])|([w|W][a|A][r|R][n|N][i|I][n|N][g|G])|([a|A][c|C][c|C][e|E][n|N][t|T])$"
}
]
},
"Extendable.Action": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Item"
}
],
"properties": {
"requires": {},
"id": {
"description": "A unique identifier associated with this Action.",
"type": "string"
},
"title": {
"description": "Label for button or link that represents this action.",
"type": "string"
},
"fallback": {
"description": "Describes what to do when an unknown element is encountered or the requires of this or any children can't be met.",
"anyOf": [
{
"$ref": "#/definitions/ImplementationsOf.Action"
},
{
"$ref": "#/definitions/FallbackOption"
}
],
"version": "1.2"
},
"iconUrl": {
"description": "Optional icon to be shown on the action in conjunction with the title. Supports data URI in version 1.2+",
"type": "string",
"format": "uri-reference",
"version": "1.1"
},
"isEnabled": {
"description": "Determines whether the action should be enabled.",
"default": true,
"type": "boolean",
"version": "1.5"
},
"mode": {
"description": "Determines whether the action should be displayed as a button or in the overflow menu.",
"default": "primary",
"$ref": "#/definitions/ActionMode",
"version": "1.5"
},
"style": {
"description": "Controls the style of an Action, which influences how the action is displayed, spoken, etc.",
"$ref": "#/definitions/ActionStyle",
"version": "1.2"
},
"tooltip": {
"description": "Defines text that should be displayed to the end user as they hover the mouse over the action, and read when using narration software.",
"type": "string",
"version": "1.5"
}
}
},
"Extendable.Element": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.ToggleableItem"
}
],
"properties": {
"requires": {},
"id": {},
"fallback": {
"description": "Describes what to do when an unknown element is encountered or the requires of this or any children can't be met.",
"anyOf": [
{
"$ref": "#/definitions/ImplementationsOf.Element"
},
{
"$ref": "#/definitions/FallbackOption"
}
],
"version": "1.2"
},
"height": {
"description": "Specifies the height of the element.",
"$ref": "#/definitions/BlockElementHeight",
"version": "1.1"
},
"isVisible": {},
"separator": {
"description": "When `true`, draw a separating line at the top of the element.",
"type": "boolean"
},
"spacing": {
"description": "Controls the amount of spacing between this element and the preceding element.",
"$ref": "#/definitions/Spacing"
}
}
},
"Extendable.Input": {
"description": "Base input class",
"type": "object",
"required": [
"id"
],
"properties": {
"requires": {
"description": "A series of key/value pairs indicating features that the item requires with corresponding minimum version. When a feature is missing or of insufficient version, fallback is triggered.",
"type": "object",
"additionalProperties": {
"type": "string"
},
"version": "1.2"
},
"id": {
"description": "Unique identifier for the value. Used to identify collected input when the Submit action is performed.",
"type": "string"
},
"errorMessage": {
"description": "Error message to display when entered input is invalid",
"type": "string",
"version": "1.3"
},
"fallback": {
"description": "Describes what to do when an unknown element is encountered or the requires of this or any children can't be met.",
"anyOf": [
{
"$ref": "#/definitions/ImplementationsOf.Element"
},
{
"$ref": "#/definitions/FallbackOption"
}
],
"version": "1.2"
},
"height": {
"description": "Specifies the height of the element.",
"$ref": "#/definitions/BlockElementHeight",
"version": "1.1"
},
"isRequired": {
"description": "Whether or not this input is required",
"type": "boolean",
"version": "1.3"
},
"isVisible": {
"description": "If `false`, this item will be removed from the visual tree.",
"default": true,
"type": "boolean",
"version": "1.2"
},
"label": {
"description": "Label for this input",
"type": "string",
"version": "1.3"
},
"separator": {
"description": "When `true`, draw a separating line at the top of the element.",
"type": "boolean"
},
"spacing": {
"description": "Controls the amount of spacing between this element and the preceding element.",
"$ref": "#/definitions/Spacing"
}
}
},
"Extendable.Item": {
"type": "object",
"properties": {
"requires": {
"description": "A series of key/value pairs indicating features that the item requires with corresponding minimum version. When a feature is missing or of insufficient version, fallback is triggered.",
"type": "object",
"additionalProperties": {
"type": "string"
},
"version": "1.2"
}
}
},
"Extendable.ToggleableItem": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Item"
}
],
"properties": {
"requires": {},
"id": {
"description": "A unique identifier associated with the item.",
"type": "string"
},
"isVisible": {
"description": "If `false`, this item will be removed from the visual tree.",
"default": true,
"type": "boolean",
"version": "1.2"
}
}
},
"Fact": {
"description": "Describes a Fact in a FactSet as a key/value pair.",
"type": "object",
"required": [
"title",
"value"
],
"properties": {
"title": {
"description": "The title of the fact.",
"type": "string"
},
"type": {
"description": "Must be `Fact`",
"enum": [
"Fact"
]
},
"value": {
"description": "The value of the fact.",
"type": "string"
}
},
"additionalProperties": false
},
"FactSet": {
"description": "The FactSet element displays a series of facts (i.e. name/value pairs) in a tabular form.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Element"
}
],
"required": [
"facts"
],
"properties": {
"requires": {},
"id": {},
"type": {
"description": "Must be `FactSet`",
"enum": [
"FactSet"
]
},
"facts": {
"description": "The array of `Fact`'s.",
"type": "array",
"items": {
"$ref": "#/definitions/Fact"
}
},
"fallback": {},
"height": {},
"isVisible": {},
"separator": {},
"spacing": {}
},
"additionalProperties": false
},
"FallbackOption": {
"anyOf": [
{
"enum": [
"drop"
]
},
{
"pattern": "^([d|D][r|R][o|O][p|P])$"
}
]
},
"FontSize": {
"anyOf": [
{
"enum": [
"default",
"small",
"medium",
"large",
"extraLarge"
]
},
{
"pattern": "^([d|D][e|E][f|F][a|A][u|U][l|L][t|T])|([s|S][m|M][a|A][l|L][l|L])|([m|M][e|E][d|D][i|I][u|U][m|M])|([l|L][a|A][r|R][g|G][e|E])|([e|E][x|X][t|T][r|R][a|A][l|L][a|A][r|R][g|G][e|E])$"
}
]
},
"FontType": {
"anyOf": [
{
"enum": [
"default",
"monospace"
]
},
{
"pattern": "^([d|D][e|E][f|F][a|A][u|U][l|L][t|T])|([m|M][o|O][n|N][o|O][s|S][p|P][a|A][c|C][e|E])$"
}
]
},
"FontWeight": {
"anyOf": [
{
"enum": [
"default",
"lighter",
"bolder"
]
},
{
"pattern": "^([d|D][e|E][f|F][a|A][u|U][l|L][t|T])|([l|L][i|I][g|G][h|H][t|T][e|E][r|R])|([b|B][o|O][l|L][d|D][e|E][r|R])$"
}
]
},
"HorizontalAlignment": {
"description": "Controls how content is horizontally positioned within its container.",
"anyOf": [
{
"enum": [
"left",
"center",
"right"
]
},
{
"pattern": "^([l|L][e|E][f|F][t|T])|([c|C][e|E][n|N][t|T][e|E][r|R])|([r|R][i|I][g|G][h|H][t|T])$"
}
]
},
"Image": {
"description": "Displays an image. Acceptable formats are PNG, JPEG, and GIF",
"type": "object",
"required": [
"url"
],
"properties": {
"requires": {
"description": "A series of key/value pairs indicating features that the item requires with corresponding minimum version. When a feature is missing or of insufficient version, fallback is triggered.",
"type": "object",
"additionalProperties": {
"type": "string"
},
"version": "1.2"
},
"id": {
"description": "A unique identifier associated with the item.",
"type": "string"
},
"type": {
"description": "Must be `Image`",
"enum": [
"Image"
]
},
"altText": {
"description": "Alternate text describing the image.",
"type": "string"
},
"backgroundColor": {
"description": "Applies a background to a transparent image. This property will respect the image style.",
"type": "string",
"example": "#DDDDDD",
"version": "1.1"
},
"fallback": {
"description": "Describes what to do when an unknown element is encountered or the requires of this or any children can't be met.",
"anyOf": [
{
"$ref": "#/definitions/ImplementationsOf.Element"
},
{
"$ref": "#/definitions/FallbackOption"
}
],
"version": "1.2"
},
"height": {
"description": "The desired height of the image. If specified as a pixel value, ending in 'px', E.g., 50px, the image will distort to fit that exact height. This overrides the `size` property.",
"examples": [
"50px"
],
"default": "auto",
"anyOf": [
{
"type": "string"
},
{
"$ref": "#/definitions/BlockElementHeight"
}
],
"version": "1.1"
},
"horizontalAlignment": {
"description": "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.",
"anyOf": [
{
"$ref": "#/definitions/HorizontalAlignment"
},
{
"type": "null"
}
]
},
"isVisible": {
"description": "If `false`, this item will be removed from the visual tree.",
"default": true,
"type": "boolean",
"version": "1.2"
},
"selectAction": {
"description": "An Action that will be invoked when the `Image` is tapped or selected. `Action.ShowCard` is not supported.",
"$ref": "#/definitions/ImplementationsOf.ISelectAction",
"version": "1.1"
},
"separator": {
"description": "When `true`, draw a separating line at the top of the element.",
"type": "boolean"
},
"size": {
"description": "Controls the approximate size of the image. The physical dimensions will vary per host.",
"$ref": "#/definitions/ImageSize"
},
"spacing": {
"description": "Controls the amount of spacing between this element and the preceding element.",
"$ref": "#/definitions/Spacing"
},
"style": {
"description": "Controls how this `Image` is displayed.",
"$ref": "#/definitions/ImageStyle"
},
"url": {
"description": "The URL to the image. Supports data URI in version 1.2+",
"type": "string",
"format": "uri-reference"
},
"width": {
"description": "The desired on-screen width of the image, ending in 'px'. E.g., 50px. This overrides the `size` property.",
"examples": [
"50px"
],
"type": "string",
"version": "1.1"
}
},
"additionalProperties": false
},
"ImageFillMode": {
"anyOf": [
{
"enum": [
"cover",
"repeatHorizontally",
"repeatVertically",
"repeat"
]
},
{
"pattern": "^([c|C][o|O][v|V][e|E][r|R])|([r|R][e|E][p|P][e|E][a|A][t|T][h|H][o|O][r|R][i|I][z|Z][o|O][n|N][t|T][a|A][l|L][l|L][y|Y])|([r|R][e|E][p|P][e|E][a|A][t|T][v|V][e|E][r|R][t|T][i|I][c|C][a|A][l|L][l|L][y|Y])|([r|R][e|E][p|P][e|E][a|A][t|T])$"
}
]
},
"ImageSet": {
"description": "The ImageSet displays a collection of Images similar to a gallery. Acceptable formats are PNG, JPEG, and GIF",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Element"
}
],
"required": [
"images"
],
"properties": {
"requires": {},
"id": {},
"type": {
"description": "Must be `ImageSet`",
"enum": [
"ImageSet"
]
},
"fallback": {},
"height": {},
"imageSize": {
"description": "Controls the approximate size of each image. The physical dimensions will vary per host. Auto and stretch are not supported for ImageSet. The size will default to medium if those values are set.",
"default": "medium",
"$ref": "#/definitions/ImageSize"
},
"images": {
"description": "The array of `Image` elements to show.",
"type": "array",
"items": {
"$ref": "#/definitions/Image"
}
},
"isVisible": {},
"separator": {},
"spacing": {}
},
"additionalProperties": false
},
"ImageSize": {
"description": "Controls the approximate size of the image. The physical dimensions will vary per host. Every option preserves aspect ratio.",
"anyOf": [
{
"enum": [
"auto",
"stretch",
"small",
"medium",
"large"
]
},
{
"pattern": "^([a|A][u|U][t|T][o|O])|([s|S][t|T][r|R][e|E][t|T][c|C][h|H])|([s|S][m|M][a|A][l|L][l|L])|([m|M][e|E][d|D][i|I][u|U][m|M])|([l|L][a|A][r|R][g|G][e|E])$"
}
]
},
"ImageStyle": {
"description": "Controls how this `Image` is displayed.",
"anyOf": [
{
"enum": [
"default",
"person"
]
},
{
"pattern": "^([d|D][e|E][f|F][a|A][u|U][l|L][t|T])|([p|P][e|E][r|R][s|S][o|O][n|N])$"
}
]
},
"ImplementationsOf.Action": {
"anyOf": [
{
"allOf": [
{
"$ref": "#/definitions/Action.Execute"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Action.OpenUrl"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Action.ShowCard"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Action.Submit"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Action.ToggleVisibility"
}
],
"required": [
"type"
]
}
]
},
"ImplementationsOf.Element": {
"anyOf": [
{
"allOf": [
{
"$ref": "#/definitions/ActionSet"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/ColumnSet"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Container"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/FactSet"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Image"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/ImageSet"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.ChoiceSet"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Date"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Number"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Text"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Time"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Toggle"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Media"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/RichTextBlock"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Table"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/TextBlock"
}
],
"required": [
"type"
]
}
]
},
"ImplementationsOf.ISelectAction": {
"anyOf": [
{
"allOf": [
{
"$ref": "#/definitions/Action.Execute"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Action.OpenUrl"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Action.Submit"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Action.ToggleVisibility"
}
],
"required": [
"type"
]
}
]
},
"ImplementationsOf.Inline": {
"anyOf": [
{
"allOf": [
{
"$ref": "#/definitions/TextRun"
}
],
"required": [
"type"
]
}
]
},
"ImplementationsOf.Input": {
"anyOf": [
{
"allOf": [
{
"$ref": "#/definitions/Input.ChoiceSet"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Date"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Number"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Text"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Time"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Toggle"
}
],
"required": [
"type"
]
}
]
},
"ImplementationsOf.Item": {
"anyOf": [
{
"allOf": [
{
"$ref": "#/definitions/Action.Execute"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Action.OpenUrl"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Action.ShowCard"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Action.Submit"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Action.ToggleVisibility"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/ActionSet"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Column"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/ColumnSet"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Container"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/FactSet"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Image"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/ImageSet"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.ChoiceSet"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Date"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Number"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Text"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Time"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Toggle"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Media"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/RichTextBlock"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Table"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/TextBlock"
}
],
"required": [
"type"
]
}
]
},
"ImplementationsOf.ToggleableItem": {
"anyOf": [
{
"allOf": [
{
"$ref": "#/definitions/ActionSet"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Column"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/ColumnSet"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Container"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/FactSet"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Image"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/ImageSet"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.ChoiceSet"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Date"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Number"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Text"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Time"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Input.Toggle"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Media"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/RichTextBlock"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/Table"
}
],
"required": [
"type"
]
},
{
"allOf": [
{
"$ref": "#/definitions/TextBlock"
}
],
"required": [
"type"
]
}
]
},
"Input.Choice": {
"description": "Describes a choice for use in a ChoiceSet.",
"type": "object",
"required": [
"title",
"value"
],
"properties": {
"title": {
"description": "Text to display.",
"type": "string"
},
"type": {
"description": "Must be `Input.Choice`",
"enum": [
"Input.Choice"
]
},
"value": {
"description": "The raw value for the choice. **NOTE:** do not use a `,` in the value, since a `ChoiceSet` with `isMultiSelect` set to `true` returns a comma-delimited string of choice values.",
"type": "string"
}
},
"additionalProperties": false
},
"Input.ChoiceSet": {
"description": "Allows a user to input a Choice.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Input"
}
],
"properties": {
"requires": {},
"id": {},
"type": {
"description": "Must be `Input.ChoiceSet`",
"enum": [
"Input.ChoiceSet"
]
},
"choices": {
"description": "`Choice` options.",
"type": "array",
"items": {
"$ref": "#/definitions/Input.Choice"
}
},
"errorMessage": {},
"fallback": {},
"height": {},
"isMultiSelect": {
"description": "Allow multiple choices to be selected.",
"default": false,
"type": "boolean"
},
"isRequired": {},
"isVisible": {},
"label": {},
"placeholder": {
"description": "Description of the input desired. Only visible when no selection has been made, the `style` is `compact` and `isMultiSelect` is `false`",
"type": "string"
},
"separator": {},
"spacing": {},
"style": {
"$ref": "#/definitions/ChoiceInputStyle"
},
"value": {
"description": "The initial choice (or set of choices) that should be selected. For multi-select, specify a comma-separated string of values.",
"type": "string"
},
"wrap": {
"description": "If `true`, allow text to wrap. Otherwise, text is clipped.",
"type": "boolean",
"version": "1.2"
}
},
"additionalProperties": false
},
"Input.Date": {
"description": "Lets a user choose a date.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Input"
}
],
"properties": {
"requires": {},
"id": {},
"type": {
"description": "Must be `Input.Date`",
"enum": [
"Input.Date"
]
},
"errorMessage": {},
"fallback": {},
"height": {},
"isRequired": {},
"isVisible": {},
"label": {},
"max": {
"description": "Hint of maximum value expressed in YYYY-MM-DD(may be ignored by some clients).",
"type": "string"
},
"min": {
"description": "Hint of minimum value expressed in YYYY-MM-DD(may be ignored by some clients).",
"type": "string"
},
"placeholder": {
"description": "Description of the input desired. Displayed when no selection has been made.",
"type": "string"
},
"separator": {},
"spacing": {},
"value": {
"description": "The initial value for this field expressed in YYYY-MM-DD.",
"type": "string"
}
},
"additionalProperties": false
},
"Input.Number": {
"description": "Allows a user to enter a number.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Input"
}
],
"properties": {
"requires": {},
"id": {},
"type": {
"description": "Must be `Input.Number`",
"enum": [
"Input.Number"
]
},
"errorMessage": {},
"fallback": {},
"height": {},
"isRequired": {},
"isVisible": {},
"label": {},
"max": {
"description": "Hint of maximum value (may be ignored by some clients).",
"type": "number"
},
"min": {
"description": "Hint of minimum value (may be ignored by some clients).",
"type": "number"
},
"placeholder": {
"description": "Description of the input desired. Displayed when no selection has been made.",
"type": "string"
},
"separator": {},
"spacing": {},
"value": {
"description": "Initial value for this field.",
"type": "number"
}
},
"additionalProperties": false
},
"Input.Text": {
"description": "Lets a user enter text.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Input"
}
],
"properties": {
"requires": {},
"id": {},
"type": {
"description": "Must be `Input.Text`",
"enum": [
"Input.Text"
]
},
"maxLength": {
"description": "Hint of maximum length characters to collect (may be ignored by some clients).",
"type": "number"
},
"errorMessage": {},
"fallback": {},
"height": {},
"inlineAction": {
"description": "The inline action for the input. Typically displayed to the right of the input. It is strongly recommended to provide an icon on the action (which will be displayed instead of the title of the action).",
"$ref": "#/definitions/ImplementationsOf.ISelectAction",
"version": "1.2"
},
"isMultiline": {
"description": "If `true`, allow multiple lines of input.",
"default": false,
"type": "boolean"
},
"isRequired": {},
"isVisible": {},
"label": {},
"placeholder": {
"description": "Description of the input desired. Displayed when no text has been input.",
"type": "string"
},
"regex": {
"description": "Regular expression indicating the required format of this text input.",
"type": "string",
"version": "1.3"
},
"separator": {},
"spacing": {},
"style": {
"description": "Style hint for text input.",
"$ref": "#/definitions/TextInputStyle"
},
"value": {
"description": "The initial value for this field.",
"type": "string"
}
},
"additionalProperties": false
},
"Input.Time": {
"description": "Lets a user select a time.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Input"
}
],
"properties": {
"requires": {},
"id": {},
"type": {
"description": "Must be `Input.Time`",
"enum": [
"Input.Time"
]
},
"errorMessage": {},
"fallback": {},
"height": {},
"isRequired": {},
"isVisible": {},
"label": {},
"max": {
"description": "Hint of maximum value expressed in HH:MM (may be ignored by some clients).",
"type": "string"
},
"min": {
"description": "Hint of minimum value expressed in HH:MM (may be ignored by some clients).",
"type": "string"
},
"placeholder": {
"description": "Description of the input desired. Displayed when no time has been selected.",
"type": "string"
},
"separator": {},
"spacing": {},
"value": {
"description": "The initial value for this field expressed in HH:MM.",
"type": "string"
}
},
"additionalProperties": false
},
"Input.Toggle": {
"description": "Lets a user choose between two options.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Input"
}
],
"required": [
"title"
],
"properties": {
"requires": {},
"id": {},
"title": {
"description": "Title for the toggle",
"type": "string"
},
"type": {
"description": "Must be `Input.Toggle`",
"enum": [
"Input.Toggle"
]
},
"errorMessage": {},
"fallback": {},
"height": {},
"isRequired": {},
"isVisible": {},
"label": {},
"separator": {},
"spacing": {},
"value": {
"description": "The initial selected value. If you want the toggle to be initially on, set this to the value of `valueOn`'s value.",
"default": "false",
"type": "string"
},
"valueOff": {
"description": "The value when toggle is off",
"default": "false",
"type": "string"
},
"valueOn": {
"description": "The value when toggle is on",
"default": "true",
"type": "string"
},
"wrap": {
"description": "If `true`, allow text to wrap. Otherwise, text is clipped.",
"type": "boolean",
"version": "1.2"
}
},
"additionalProperties": false
},
"Media": {
"description": "Displays a media player for audio or video content.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Element"
}
],
"required": [
"sources"
],
"properties": {
"requires": {},
"id": {},
"type": {
"description": "Must be `Media`",
"enum": [
"Media"
]
},
"altText": {
"description": "Alternate text describing the audio or video.",
"type": "string"
},
"fallback": {},
"height": {},
"isVisible": {},
"poster": {
"description": "URL of an image to display before playing. Supports data URI in version 1.2+",
"type": "string",
"format": "uri-reference"
},
"separator": {},
"sources": {
"description": "Array of media sources to attempt to play.",
"type": "array",
"items": {
"$ref": "#/definitions/MediaSource"
}
},
"spacing": {}
},
"additionalProperties": false,
"features": [
196
],
"version": "1.1"
},
"MediaSource": {
"description": "Defines a source for a Media element",
"type": "object",
"required": [
"mimeType",
"url"
],
"properties": {
"type": {
"description": "Must be `MediaSource`",
"enum": [
"MediaSource"
]
},
"mimeType": {
"description": "Mime type of associated media (e.g. `\"video/mp4\"`).",
"type": "string"
},
"url": {
"description": "URL to media. Supports data URI in version 1.2+",
"type": "string",
"format": "uri-reference"
}
},
"additionalProperties": false,
"features": [
196
],
"version": "1.1"
},
"Refresh": {
"description": "Defines how a card can be refreshed by making a request to the target Bot.",
"type": "object",
"properties": {
"type": {
"description": "Must be `Refresh`",
"enum": [
"Refresh"
]
},
"action": {
"description": "The action to be executed to refresh the card. Clients can run this refresh action automatically or can provide an affordance for users to trigger it manually.",
"$ref": "#/definitions/Action.Execute"
},
"userIds": {
"description": "A list of user Ids informing the client for which users should the refresh action should be run automatically. Some clients will not run the refresh action automatically unless this property is specified. Some clients may ignore this property and always run the refresh action automatically.",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false,
"version": "1.4"
},
"RichTextBlock": {
"description": "Defines an array of inlines, allowing for inline text formatting.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Element"
}
],
"required": [
"inlines"
],
"properties": {
"requires": {},
"id": {},
"type": {
"description": "Must be `RichTextBlock`",
"enum": [
"RichTextBlock"
]
},
"fallback": {},
"height": {},
"horizontalAlignment": {
"description": "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.",
"anyOf": [
{
"$ref": "#/definitions/HorizontalAlignment"
},
{
"type": "null"
}
]
},
"inlines": {
"description": "The array of inlines.",
"type": "array",
"items": {
"$ref": "#/definitions/ImplementationsOf.Inline"
}
},
"isVisible": {},
"separator": {},
"spacing": {}
},
"additionalProperties": false,
"features": [
1933
],
"version": "1.2"
},
"Spacing": {
"description": "Specifies how much spacing. Hosts pick the exact pixel amounts for each of these.",
"anyOf": [
{
"enum": [
"default",
"none",
"small",
"medium",
"large",
"extraLarge",
"padding"
]
},
{
"pattern": "^([d|D][e|E][f|F][a|A][u|U][l|L][t|T])|([n|N][o|O][n|N][e|E])|([s|S][m|M][a|A][l|L][l|L])|([m|M][e|E][d|D][i|I][u|U][m|M])|([l|L][a|A][r|R][g|G][e|E])|([e|E][x|X][t|T][r|R][a|A][l|L][a|A][r|R][g|G][e|E])|([p|P][a|A][d|D][d|D][i|I][n|N][g|G])$"
}
]
},
"Table": {
"description": "Provides a way to display data in a tabular form.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Element"
}
],
"properties": {
"requires": {},
"id": {},
"type": {
"description": "Must be `Table`",
"enum": [
"Table"
]
},
"columns": {
"description": "Defines the number of columns in the table, their sizes, and more.",
"type": "array",
"items": {
"$ref": "#/definitions/TableColumnDefinition"
}
},
"fallback": {},
"firstRowAsHeader": {
"description": "Specifies whether the first row of the table should be treated as a header row, and be announced as such by accessibility software.",
"default": true,
"type": "boolean"
},
"gridStyle": {
"description": "Defines the style of the grid. This property currently only controls the grid's color.",
"default": "default",
"anyOf": [
{
"$ref": "#/definitions/ContainerStyle"
},
{
"type": "null"
}
]
},
"height": {},
"horizontalCellContentAlignment": {
"description": "Controls how the content of all cells is horizontally aligned by default. When not specified, horizontal alignment is defined on a per-cell basis.",
"anyOf": [
{
"$ref": "#/definitions/HorizontalAlignment"
},
{
"type": "null"
}
]
},
"isVisible": {},
"rows": {
"description": "Defines the rows of the table.",
"type": "array",
"items": {
"$ref": "#/definitions/TableRow"
}
},
"separator": {},
"showGridLines": {
"description": "Specifies whether grid lines should be displayed.",
"default": true,
"type": "boolean"
},
"spacing": {},
"verticalCellContentAlignment": {
"description": "Controls how the content of all cells is vertically aligned by default. When not specified, vertical alignment is defined on a per-cell basis.",
"anyOf": [
{
"$ref": "#/definitions/VerticalAlignment"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"version": "1.5"
},
"TableCell": {
"description": "Represents a cell within a row of a Table element.",
"type": "object",
"required": [
"items"
],
"properties": {
"type": {
"description": "Must be `TableCell`",
"enum": [
"TableCell"
]
},
"items": {
"description": "The card elements to render inside the `TableCell`.",
"type": "array",
"items": {
"$ref": "#/definitions/ImplementationsOf.Element"
}
},
"backgroundImage": {
"description": "Specifies the background image. Acceptable formats are PNG, JPEG, and GIF",
"anyOf": [
{
"$ref": "#/definitions/BackgroundImage"
},
{
"description": "The URL (or data url) to use as the background image. Supports data URI.",
"type": "string",
"format": "uri-reference"
}
],
"version": "1.2"
},
"bleed": {
"description": "Determines whether the element should bleed through its parent's padding.",
"type": "boolean",
"features": [
2109
],
"version": "1.2"
},
"minHeight": {
"description": "Specifies the minimum height of the container in pixels, like `\"80px\"`.",
"examples": [
"50px"
],
"type": "string",
"features": [
2293
],
"version": "1.2"
},
"rtl?": {
"description": "When `true` content in this container should be presented right to left. When 'false' content in this container should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.",
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"version": "1.5"
},
"selectAction": {
"description": "An Action that will be invoked when the `TableCell` is tapped or selected. `Action.ShowCard` is not supported.",
"$ref": "#/definitions/ImplementationsOf.ISelectAction",
"version": "1.1"
},
"style": {
"description": "Style hint for `TableCell`.",
"anyOf": [
{
"$ref": "#/definitions/ContainerStyle"
},
{
"type": "null"
}
]
},
"verticalContentAlignment": {
"description": "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.",
"anyOf": [
{
"$ref": "#/definitions/VerticalContentAlignment"
},
{
"type": "null"
}
],
"version": "1.1"
}
},
"additionalProperties": false,
"version": "1.5"
},
"TableColumnDefinition": {
"description": "Defines the characteristics of a column in a Table element.",
"type": "object",
"properties": {
"type": {
"description": "Must be `TableColumnDefinition`",
"enum": [
"TableColumnDefinition"
]
},
"horizontalCellContentAlignment": {
"description": "Controls how the content of all cells in the column is horizontally aligned by default. When specified, this value overrides the setting at the table level. When not specified, horizontal alignment is defined at the table, row or cell level.",
"anyOf": [
{
"$ref": "#/definitions/HorizontalAlignment"
},
{
"type": "null"
}
]
},
"verticalCellContentAlignment": {
"description": "Controls how the content of all cells in the column is vertically aligned by default. When specified, this value overrides the setting at the table level. When not specified, vertical alignment is defined at the table, row or cell level.",
"anyOf": [
{
"$ref": "#/definitions/VerticalAlignment"
},
{
"type": "null"
}
]
},
"width": {
"description": "Specifies the width of the column. If expressed as a number, width represents the weight a the column relative to the other columns in the table. If expressed as a string, width must by in the format \"<number>px\" (for instance, \"50px\") and represents an explicit number of pixels.",
"default": 1,
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false,
"version": "1.5"
},
"TableRow": {
"description": "Represents a row of cells within a Table element.",
"type": "object",
"properties": {
"type": {
"description": "Must be `TableRow`",
"enum": [
"TableRow"
]
},
"cells": {
"description": "The cells in this row. If a row contains more cells than there are columns defined on the Table element, the extra cells are ignored.",
"type": "array",
"items": {
"$ref": "#/definitions/TableCell"
}
},
"horizontalCellContentAlignment": {
"description": "Controls how the content of all cells in the row is horizontally aligned by default. When specified, this value overrides both the setting at the table and columns level. When not specified, horizontal alignment is defined at the table, column or cell level.",
"anyOf": [
{
"$ref": "#/definitions/HorizontalAlignment"
},
{
"type": "null"
}
]
},
"style": {
"description": "Defines the style of the entire row.",
"anyOf": [
{
"$ref": "#/definitions/ContainerStyle"
},
{
"type": "null"
}
]
},
"verticalCellContentAlignment": {
"description": "Controls how the content of all cells in the column is vertically aligned by default. When specified, this value overrides the setting at the table and column level. When not specified, vertical alignment is defined either at the table, column or cell level.",
"anyOf": [
{
"$ref": "#/definitions/VerticalAlignment"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false,
"version": "1.5"
},
"TargetElement": {
"description": "Represents an entry for Action.ToggleVisibility's targetElements property",
"anyOf": [
{
"description": "Element ID of element to toggle",
"type": "string"
},
{
"type": "object",
"required": [
"elementId"
],
"properties": {
"type": {
"description": "Must be `TargetElement`",
"enum": [
"TargetElement"
]
},
"elementId": {
"description": "Element ID of element to toggle",
"type": "string"
},
"isVisible": {
"description": "If `true`, always show target element. If `false`, always hide target element. If not supplied, toggle target element's visibility. ",
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
}
]
},
"TextBlock": {
"description": "Displays text, allowing control over font sizes, weight, and color.",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/Extendable.Element"
}
],
"required": [
"text"
],
"properties": {
"requires": {},
"id": {},
"type": {
"description": "Must be `TextBlock`",
"enum": [
"TextBlock"
]
},
"color": {
"description": "Controls the color of `TextBlock` elements.",
"anyOf": [
{
"$ref": "#/definitions/Colors"
},
{
"type": "null"
}
]
},
"fallback": {},
"fontType": {
"description": "Type of font to use for rendering",
"anyOf": [
{
"$ref": "#/definitions/FontType"
},
{
"type": "null"
}
],
"version": "1.2"
},
"height": {},
"horizontalAlignment": {
"description": "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.",
"anyOf": [
{
"$ref": "#/definitions/HorizontalAlignment"
},
{
"type": "null"
}
]
},
"isSubtle": {
"description": "If `true`, displays text slightly toned down to appear less prominent.",
"default": false,
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"isVisible": {},
"maxLines": {
"description": "Specifies the maximum number of lines to display.",
"type": "number"
},
"separator": {},
"size": {
"description": "Controls size of text.",
"anyOf": [
{
"$ref": "#/definitions/FontSize"
},
{
"type": "null"
}
]
},
"spacing": {},
"style": {
"description": "The style of this TextBlock for accessibility purposes.",
"default": "default",
"anyOf": [
{
"$ref": "#/definitions/TextBlockStyle"
},
{
"type": "null"
}
]
},
"text": {
"description": "Text to display. A subset of markdown is supported (https://aka.ms/ACTextFeatures)",
"type": "string"
},
"weight": {
"description": "Controls the weight of `TextBlock` elements.",
"anyOf": [
{
"$ref": "#/definitions/FontWeight"
},
{
"type": "null"
}
]
},
"wrap": {
"description": "If `true`, allow text to wrap. Otherwise, text is clipped.",
"default": false,
"type": "boolean"
}
},
"additionalProperties": false
},
"TextBlockStyle": {
"description": "Controls how a TextBlock behaves.",
"anyOf": [
{
"enum": [
"default",
"heading"
]
},
{
"pattern": "^([d|D][e|E][f|F][a|A][u|U][l|L][t|T])|([h|H][e|E][a|A][d|D][i|I][n|N][g|G])$"
}
],
"version": "1.5"
},
"TextInputStyle": {
"description": "Style hint for text input.",
"anyOf": [
{
"enum": [
"text",
"tel",
"url",
"email",
"password"
]
},
{
"pattern": "^([t|T][e|E][x|X][t|T])|([t|T][e|E][l|L])|([u|U][r|R][l|L])|([e|E][m|M][a|A][i|I][l|L])|([p|P][a|A][s|S][s|S][w|W][o|O][r|R][d|D])$"
}
]
},
"TextRun": {
"description": "Defines a single run of formatted text. A TextRun with no properties set can be represented in the json as string containing the text as a shorthand for the json object. These two representations are equivalent.",
"anyOf": [
{
"description": "Text to display. Markdown is not supported.",
"type": "string"
},
{
"type": "object",
"required": [
"text"
],
"properties": {
"type": {
"description": "Must be `TextRun`",
"enum": [
"TextRun"
]
},
"color": {
"description": "Controls the color of the text.",
"anyOf": [
{
"$ref": "#/definitions/Colors"
},
{
"type": "null"
}
]
},
"fontType": {
"description": "The type of font to use",
"anyOf": [
{
"$ref": "#/definitions/FontType"
},
{
"type": "null"
}
]
},
"highlight": {
"description": "If `true`, displays the text highlighted.",
"type": "boolean"
},
"isSubtle": {
"description": "If `true`, displays text slightly toned down to appear less prominent.",
"default": false,
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"italic": {
"description": "If `true`, displays the text using italic font.",
"type": "boolean"
},
"selectAction": {
"description": "Action to invoke when this text run is clicked. Visually changes the text run into a hyperlink. `Action.ShowCard` is not supported.",
"$ref": "#/definitions/ImplementationsOf.ISelectAction"
},
"size": {
"description": "Controls size of text.",
"anyOf": [
{
"$ref": "#/definitions/FontSize"
},
{
"type": "null"
}
]
},
"strikethrough": {
"description": "If `true`, displays the text with strikethrough.",
"type": "boolean"
},
"text": {
"description": "Text to display. Markdown is not supported.",
"type": "string"
},
"underline": {
"description": "If `true`, displays the text with an underline.",
"type": "boolean",
"version": "1.3"
},
"weight": {
"description": "Controls the weight of the text.",
"anyOf": [
{
"$ref": "#/definitions/FontWeight"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
}
],
"version": "1.2"
},
"TokenExchangeResource": {
"description": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.tokenexchangeresource)",
"type": "object",
"required": [
"id",
"uri",
"providerId"
],
"properties": {
"id": {
"description": "The unique identified of this token exchange instance.",
"type": "string"
},
"type": {
"description": "Must be `TokenExchangeResource`",
"enum": [
"TokenExchangeResource"
]
},
"providerId": {
"description": "An identifier for the identity provider with which to attempt a token exchange.",
"type": "string"
},
"uri": {
"description": "An application ID or resource identifier with which to exchange a token on behalf of. This property is identity provider- and application-specific.",
"type": "string"
}
},
"additionalProperties": false,
"version": "1.4"
},
"VerticalAlignment": {
"anyOf": [
{
"enum": [
"top",
"center",
"bottom"
]
},
{
"pattern": "^([t|T][o|O][p|P])|([c|C][e|E][n|N][t|T][e|E][r|R])|([b|B][o|O][t|T][t|T][o|O][m|M])$"
}
]
},
"VerticalContentAlignment": {
"anyOf": [
{
"enum": [
"top",
"center",
"bottom"
]
},
{
"pattern": "^([t|T][o|O][p|P])|([c|C][e|E][n|N][t|T][e|E][r|R])|([b|B][o|O][t|T][t|T][o|O][m|M])$"
}
]
}
}
}