{
	"title": "JSON schema for SAP.CARD Namespace",
	"description": "Represents general card attributes",
	"type": "object",
	"additionalProperties": false,
	"required": [
		"type"
	],
	"properties": {
		"_version": {
			"description": "Represents SAP.CARD attributes format version. It is managed by namespace owner",
			"type": "string",
			"enum": [
				"1.1.0",
				"1.2.0",
				"1.3.0",
				"1.4.0",
				"1.5.0",
				"1.6.0",
				"1.7.0",
				"1.8.0",
				"1.9.0"
			]
		},
		"configuration": {
			"description": "Represents configuration with parameters and destinations, which can be used inside the card",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"enableMarkdown": {
					"description": "Markdown enablement for Adaptive Content.",
					"type": "boolean"
				},
				"parameters": {
					"description": "Map of parameters.",
					"type": "object",
					"additionalProperties": {
						"$ref": "#/definitions/Configuration.Parameter"
					}
				},
				"destinations": {
					"description": "Describes what destinations are used by the card.",
					"type": "object",
					"additionalProperties": {
						"$ref": "#/definitions/Configuration.Destinations"
					}
				},
				"actionHandlers": {
					"description": "Holds configuration for the default action handlers.",
					"type": "object",
					"additionalProperties": false,
					"properties": {
						"submit": {
							"description": "Configuration for the submit action handler.",
							"type": "object"
						}
					}
				}
			}
		},
		"type": {
			"description": "Represents the type of the card's content",
			"type": "string",
			"enum": [
				"List",
				"Analytical",
				"Table",
				"Object",
				"Timeline",
				"Component",
				"Calendar",
				"AdaptiveCard"
			]
		},
		"data": {
			"$ref": "#/definitions/data"
		},
		"headerPosition": {
			"description": "Represents card header position - under or over the content",
			"type": "string",
			"oneOf": [
				{
					"enum": [
						"Top",
						"Bottom"
					],
					"default": "Top"
				},
				{
					"$ref": "#/definitions/simpleBinding"
				}
			]
		},
		"header": {
			"description": "Represents card header attributes",
			"$ref": "#/definitions/HeaderType"
		},
		"content": {
			"description": "Represents card content attributes. Content type should be the same as card type e.g. if card type List is used the content type should also be List"
		}
	},
	"oneOf": [
		{
			"allOf": [
				{ "properties": { "type": { "enum": [ "List" ] } }},
				{ "properties": { "content": { "$ref": "#/definitions/ContentType.List" }}}
			]
		},
		{
			"allOf": [
				{ "properties": { "type": { "enum": [ "Analytical" ] } }},
				{ "properties": { "content": { "$ref": "#/definitions/ContentType.Analytical" }}}
			]
		},
		{
			"allOf": [
				{ "properties": { "type": { "enum": [ "Timeline" ] } }},
				{ "properties": { "content": { "$ref": "#/definitions/ContentType.Timeline" }}}
			]
		},
		{
			"allOf": [
				{ "properties": { "type": { "enum": [ "Table" ] } }},
				{ "properties": { "content": { "$ref": "#/definitions/ContentType.Table" }}}
			]
		},
		{
			"allOf": [
				{ "properties": { "type": { "enum": [ "Object" ] } }},
				{ "properties": { "content": { "$ref": "#/definitions/ContentType.Object" }}}
			]
		},
		{
			"allOf": [
				{ "properties": { "type": { "enum": [ "Component" ] } }},
				{ "properties": { "content": { "enum": ["null"] } }}
			]
		},
		{
		  "allOf": [
			{ "properties": { "type": { "enum": [ "Calendar" ] } }},
			{ "properties": { "content": { "$ref": "#/definitions/ContentType.Calendar" }}}
		  ]
		},
		{
		  "allOf": [
			{ "properties": { "type": { "enum": [ "AdaptiveCard" ] } }},
			{ "properties": { "content": { "$ref": "#/definitions/ContentType.AdaptiveCard" } }}
		  ]
		}
	],
	"definitions": {
		"HeaderType": {
			"oneOf": [
				{
					"$ref": "#/definitions/HeaderType.Default"
				},
				{
					"$ref": "#/definitions/HeaderType.Numeric"
				}
			]
		},
		"HeaderType.Default": {
			"additionalProperties": false,
			"description": "Represents default header attributes",
			"type": "object",
			"properties": {
				"type": {
					"description": "Represents the type of the header.",
					"type": "string",
					"enum": [
						"Default"
					]
				},
				"title": {
					"description": "Represents language-dependent title.",
					"type": "string"
				},
				"subTitle": {
					"description": "Represents language-dependent additional information to the title.",
					"type": "string"
				},
				"actions": {
					"description": "Represents description of the actions that can be applied on a part of a card.",
					"type": "array",
					"items": {
						"$ref": "#/definitions/action"
					}
				},
				"data": {
					"$ref": "#/definitions/data"
				},
				"icon": {
					"description": "Represents the icon of the card.",
					"$ref": "#/definitions/icon"
				},
				"status": {
					"description": "Represents the status of the card.",
					"$ref": "#/definitions/status"
				}
			}
		},
		"HeaderType.Numeric": {
			"additionalProperties": false,
			"required" : [
				"type"
			],
			"description": "Represents header with numeric data",
			"type": "object",
			"properties": {
				"type": {
					"description": "Represents the type of the header.",
					"type": "string",
					"enum": [
						"Numeric"
					]
				},
				"title": {
					"description": "Represents language-dependent title.",
					"type": "string"
				},
				"subTitle": {
					"description": "Represents language-dependent additional information to the title.",
					"type": "string"
				},
				"actions": {
					"description": "Represents description of the actions that can be applied on a part of a card.",
					"type": "array",
					"items": {
						"$ref": "#/definitions/action"
					}
				},
				"data": {
					"$ref": "#/definitions/data"
				},
				"unitOfMeasurement": {
					"description": "Represents unit of measurement for the whole numeric header.",
					"type": "string"
				},
				"mainIndicator": {
					"$ref": "#/definitions/HeaderType.Numeric.MainIndicator"
				},
				"details": {
					"description": "Represents additional information about the numeric header.",
					"type": "string"
				},
				"sideIndicators": {
					"description": "Multiple side indicators that relate to the main numeric indicator.",
					"type": "array",
					"maxItems": 2,
					"items": {
						"$ref": "#/definitions/HeaderType.Numeric.SideIndicator"
					}
				},
				"status": {
					"description": "Represents the status of the card.",
					"$ref": "#/definitions/status"
				}
			}
		},
		"HeaderType.Numeric.MainIndicator": {
			"description": "Represents the main numeric indicator of the header",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"number": {
					"description": "The value of the main indicator",
					"type": "string"
				},
				"unit": {
					"description": "The unit of the main indicator",
					"type": "string"
				},
				"trend": {
					"description": "The trend indicator (direction)",
					"type": "string",
					"oneOf": [
						{
							"enum": [
								"Down",
								"None",
								"Up"
							],
							"default": "None"
						},
						{
							"$ref": "#/definitions/simpleBinding"
						}
					]
				},
				"state": {
					"description": "The state color of the main indicator",
					"type": "string",
					"oneOf": [
						{
							"description": "The state color of the main indicator",
							"type": "string",
							"enum": [
								"Critical",
								"Error",
								"Good",
								"Neutral"
							],
							"default": "Neutral"
						},
						{
							"$ref": "#/definitions/simpleBinding"
						}
					]
				}
			}
		},
		"HeaderType.Numeric.SideIndicator": {
			"description": "Represents side indicator attributes which are used for additional information about the main indicator",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"title": {
					"description": "Represents language-dependent title of the side indicator",
					"type": "string"
				},
				"number": {
					"description": "Represents value of the side indicator",
					"type": "string"
				},
				"unit": {
					"description": "Represents unit of measurement of the side indicator",
					"type": "string"
				}
			}
		},
		"ContentType.List": {
			"description": "Represents list content attributes",
			"type": "object",
			"oneOf": [
				{
					"additionalProperties": false,
					"properties": {
						"data": {
							"$ref": "#/definitions/data"
						},
						"item": {
							"$ref": "#/definitions/ContentType.List.Item"
						},
						"maxItems": {
							"description": "Represents number of items",
							"oneOf": [
								{ "type": "number" },
								{ "$ref": "#/definitions/simpleBinding" }
							]
						}
					}
				},
				{
					"additionalProperties": false,
					"properties": {
						"items": {
							"type": "array",
							"items": {
								"$ref": "#/definitions/ContentType.List.StaticItem"
							}
						}
					}
				}
			]
		},
		"ContentType.List.Item": {
			"description": "The template for all items",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"title": {
					"description": "The title of the item.",
					"oneOf": [
						{ "$ref": "#/definitions/field" },
						{ "type": "string" }
					]
				},
				"description": {
					"description": "The description of the item.",
					"oneOf": [
						{ "$ref": "#/definitions/field" },
						{ "type": "string" }
					]
				},
				"info": {
					"type": "object",
					"additionalProperties": false,
					"properties": {
						"value": {
							"type": "string",
							"description": "The value of the field"
						},
						"state": {
							"oneOf": [
								{ "$ref": "#/definitions/state" },
								{ "$ref": "#/definitions/simpleBinding" }
							]
						}
					}
				},
				"highlight": {
					"type": "string",
					"description": "The highlight of the item.",
					"oneOf": [
						{ "$ref": "#/definitions/state" },
						{ "$ref": "#/definitions/simpleBinding" }
					]
				},
				"icon": {
					"$ref": "#/definitions/icon"
				},
				"actions": {
					"description": "Defines actions that can be applied on the item.",
					"type": "array",
					"items": {
						"$ref": "#/definitions/action"
					}
				}
			}
		},
		"ContentType.List.StaticItem": {
			"description": "Represents a single static list item",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"title": {
					"description": "The title of the list item",
					"type": "string"
				},
				"description": {
					"description": "The description of the list item",
					"type": "string"
				},
				"icon": {
					"description": "The icon of the list item",
					"type": "string"
				},
				"infoState": {
					"description": "The state of the info",
					"type": "string"
				},
				"info": {
					"description": "Represents additional information text",
					"type": "string"
				},
				"highlight": {
					"description": "The highlight of the item",
					"type": "string"
				},
				"action": {
					"description": "Represents actions that can be applied on the item",
					"type": "object",
					"properties": {
						"url": {
							"type": "string"
						}
					}
				}
			}
		},
		"ContentType.Analytical": {
			"description": "Represents analytical content attributes",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"data": {
					"$ref": "#/definitions/data"
				},
				"chartType": {
					"description": "Describes the type of the chart",
					"type": "string",
					"oneOf": [
						{
							"enum": [
								"Line",
								"StackedColumn",
								"StackedBar",
								"Donut"
							]
						},
						{
							"$ref": "#/definitions/simpleBinding"
						}
					]
				},
				"legend": {
					"$ref": "#/definitions/ContentType.Analytical.Legend"
				},
				"plotArea": {
					"description": "Describes the plotArea properties",
					"type": "object",
					"additionalProperties": false,
					"properties": {
						"dataLabel": {
							"$ref": "#/definitions/ContentType.Analytical.DataLabel"
						},
						"categoryAxisText": {
							"$ref": "#/definitions/ContentType.Analytical.AxisText"
						},
						"valueAxisText": {
							"$ref": "#/definitions/ContentType.Analytical.AxisText"
						}
					}
				},
				"title": {
					"description": "Represents title attributes",
					"type": "object",
					"additionalProperties": false,
					"properties": {
						"visible": {
							"description": "Represents the visibility state of the title",
							"oneOf": [
								{
									"type": "boolean",
									"default": true
								},
								{
									"$ref": "#/definitions/simpleBinding"
								}
							]
						},
						"text": {
							"description": "Represents title text",
							"type": "string"
						},
						"alignment": {
							"description": "Represents the title alignment",
							"oneOf": [
								{
									"enum": [
										"Left",
										"Center",
										"Right"
									],
									"default": "Center"
								},
								{
									"$ref": "#/definitions/simpleBinding"
								}
							]
						}
					}
				},
				"measureAxis": {
					"description": "Represents the value set for measure axis",
					"type": "string"
				},
				"dimensionAxis": {
					"description": "Represents the value set for dimension axis",
					"type": "string"
				},
				"dimensions": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/field"
					}
				},
				"measures": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/field"
					}
				},
				"actions": {
					"description": "Defines actions that can be applied on the content.",
					"type": "array",
					"items": {
						"$ref": "#/definitions/action"
					}
				}
			}
		},
		"ContentType.Analytical.DataLabel": {
			"description": "Represents value attributes in the plot area",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"visible": {
					"description": "Represents the visibility state of the dataLabel",
					"oneOf": [
						{
							"type": "boolean",
							"default": true
						},
						{
							"$ref": "#/definitions/simpleBinding"
						}
					]
				},
				"showTotal": {
					"description": "Represents the visibility state of 'show total' indicator",
					"oneOf": [
						{
							"type": "boolean",
							"default": true
						},
						{
							"$ref": "#/definitions/simpleBinding"
						}
					]
				}
			}
		},
		"ContentType.Analytical.AxisText": {
			"description": "Represents descriptive text of the axis",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"visible": {
					"description": "Represents the visibility state of the descriptive axis text",
					"oneOf": [
						{
							"type": "boolean",
							"default": true
						},
						{
							"$ref": "#/definitions/simpleBinding"
						}
					]
				}
			}
		},
		"ContentType.Analytical.Legend": {
			"description": "Represents chart legend attributes",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"visible": {
					"description": "Represent the visibility state of the legend",
					"oneOf": [
						{
							"type": "boolean",
							"default": true
						},
						{
							"$ref": "#/definitions/simpleBinding"
						}
					]
				},
				"position": {
					"description": "Representation of where the legend will be positioned",
					"type": "string",
					"oneOf": [
						{
							"enum": [
								"Top",
								"Bottom",
								"Left",
								"Right"
							],
							"default": "Right"
						},
						{
							"$ref": "#/definitions/simpleBinding"
						}
					]
				},
				"alignment": {
					"description": "Representation of how the legend will be aligned",
					"type": "string",
					"oneOf": [
						{
							"enum": [
								"TopLeft",
								"Center"
							],
							"default": "TopLeft"
						},
						{
							"$ref": "#/definitions/simpleBinding"
						}
					]
				}
			}
		},
		"ContentType.Timeline": {
			"description": "Represents time related content",
			"type": "object",
			"oneOf": [
				{
					"additionalProperties": false,
					"properties": {
						"data": {
							"$ref": "#/definitions/data"
						},
						"item": {
							"description": "Defines the timeline item",
							"$ref": "#/definitions/ContentType.Timeline.Item"
						},
						"maxItems": {
							"description": "Represents number of items",
							"oneOf": [
								{ "type": "number" },
								{ "$ref": "#/definitions/simpleBinding" }
							]
						}
					}
				},
				{
					"additionalProperties": false,
					"properties": {
						"items": {
							"type": "array",
							"items": {
								"$ref": "#/definitions/ContentType.Timeline.StaticItem"
							}
						}
					}
				}
			]
		},
		"ContentType.Timeline.Item": {
			"description": "Represents a single timeline item",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"title": {
					"description": "The title of the timeline item.",
					"$ref": "#/definitions/field"
				},
				"description": {
					"description": "The description of the timeline item.",
					"$ref": "#/definitions/field"
				},
				"dateTime": {
					"description": "The dateTime value of the timeline item.",
					"$ref": "#/definitions/field"
				},
				"owner": {
					"description": "The owner of the timeline item.",
					"$ref": "#/definitions/field"
				},
				"ownerImage": {
					"description": "The owner image of the timeline item.",
					"properties": {
						"value": {
							"type": "string"
						}
					}
				},
				"icon": {
					"description": "The icon of the timeline item.",
					"$ref": "#/definitions/icon"
				}
			}
		},
		"ContentType.Timeline.StaticItem": {
			"description": "Represents a single static timeline item",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"title": {
					"description": "The title of the timeline item",
					"type": "string"
				},
				"description": {
					"description": "The description of the timeline item",
					"type": "string"
				},
				"ownerImage": {
					"description": "The owner image of the timeline item",
					"type": "string"
				},
				"dateTime": {
					"description": "The dateTime value of the timeline item",
					"type": "string"
				},
				"owner": {
					"description": "The owner of the timeline item",
					"type": "string"
				},
				"icon": {
					"description": "The icon of the timeline item",
					"type": "string"
				}
			}
		},
		"ContentType.Object": {
			"description": "Represents object content attributes",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"data": {
					"$ref": "#/definitions/data"
				},
				"groups": {
					"description": "Represents groups of information for an object",
					"type": "array",
					"items": {
						"$ref": "#/definitions/ContentType.Object.Group"
					}
				},
				"actions": {
					"description": "Defines actions that can be applied on the content.",
					"type": "array",
					"items": {
						"$ref": "#/definitions/action"
					}
				}
			}
		},
		"ContentType.Object.Group": {
			"description": "Represents a group of information for an object",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"title": {
					"description": "Defines language-dependent title of the object group.",
					"type": "string"
				},
				"items": {
					"description": "Represents items of information.",
					"type": "array",
					"items": {
						"$ref": "#/definitions/ContentType.Object.Item"
					}
				}
			}
		},
		"ContentType.Object.Item": {
			"description": "Represents a single item of information. It can contain label, value and image",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"icon": {
					"description": "Defines the icon of the item.",
					"$ref": "#/definitions/icon"
				},
				"label": {
					"description": "Defines the label of the item.",
					"type": "string"
				},
				"value": {
					"description": "Represents the text, which is associated with the label.",
					"type": "string"
				},
				"type": {
					"description": "Defines the type of the displayed information.",
					"type": "string",
					"oneOf": [
						{
							"enum": [
								"phone",
								"email",
								"link",
								"text"
							],
							"default": "text"
						},
						{
							"$ref": "#/definitions/simpleBinding"
						}
					]
				},
				"url": {
					"description": "Defines the URL string. Works only with items of type 'link'.",
					"type": "string"
				},
				"target": {
					"description": "Specifies the target of the link - it works like the target property of the HTML 'a' tag. Works only with items of type 'link'.",
					"oneOf": [
						{ "$ref": "#/definitions/target" },
						{ "$ref": "#/definitions/simpleBinding" }
					]
				},
				"emailSubject": {
					"description": "Represents the subject of the email. Works only with item of type 'email'.",
					"type": "string"
				}
			}
		},
		"ContentType.Table": {
			"description": "Represents table content attributes",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"data": {
					"$ref": "#/definitions/data"
				},
				"row": {
					"description": "The template for all rows",
					"type": "object",
					"additionalProperties": false,
					"properties": {
						"columns": {
							"description": "Defines the columns attributes.",
							"type": "array",
							"items": {
								"$ref": "#/definitions/ContentType.Table.Column"
							}
						},
						"actions": {
							"description": "Defines actions that can be applied on the item.",
							"type": "array",
							"items": {
								"$ref": "#/definitions/action"
							}
						}
					}
				},
				"maxItems": {
					"description": "Represents number of items",
					"oneOf": [
						{ "type": "number" },
						{ "$ref": "#/definitions/simpleBinding" }
					]
				}
			}
		},
		"ContentType.Table.Column": {
			"description": "Represents object item attributes",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"title": {
					"description": "Defines language-dependent title of the column.",
					"type": "string"
				},
				"width": {
					"description": "Defines the width of the column.",
					"type": "string"
				},
				"hAlign": {
					"description": "Defines the horizontal alignment of the column content.",
					"oneOf": [
						{ "$ref": "#/definitions/textAlign" },
						{ "$ref": "#/definitions/simpleBinding" }
					]
				},
				"value": {
					"description": "Represents the text value of the column.",
					"type": "string"
				},
				"icon": {
					"description": "Represents column with icon.",
					"$ref": "#/definitions/icon"
				},
				"state": {
					"description": "Defines the state of the column.",
					"oneOf": [
						{ "$ref": "#/definitions/state" },
						{ "$ref": "#/definitions/simpleBinding" }
					]
				},
				"url": {
					"description": "Defines the URL string.",
					"type": "string"
				},
				"target": {
					"description": "Specifies where to open the 'url', if it is provided.",
					"type": "string",
					"oneOf": [
						{ "$ref": "#/definitions/target" },
						{ "$ref": "#/definitions/simpleBinding" }
					]
				},
				"identifier": {
					"oneOf": [
						{ "$ref": "#/definitions/identifier" },
						{ "$ref": "#/definitions/simpleBinding" }
					]
				},
				"progressIndicator": {
					"description": "Represents progress indicator attributes",
					"$ref": "#/definitions/progressIndicator"
				}
			}
		},
		"ContentType.Table.StaticColumn": {
			"description": "Represents a single static column",
			"type": "object",
			"properties": {
				"title": {
					"description": "Represents language-dependent title of the column",
					"type": "string"
				},
				"width": {
					"description": "Defines the width of the column",
					"type": "string"
				}
			}
		},
		"ContentType.Table.StaticRow": {
			"description": "Represents a single static row",
			"type": "object",
			"properties": {
				"value": {
					"description": "The text value of the column",
					"type": "string"
				},
				"icon": {
					"description": "Represents column with icon",
					"$ref": "#/definitions/icon"
				},
				"state": {
					"$ref": "#/definitions/state"
				},
				"url": {
					"description": "Represents URL string",
					"type": "string"
				},
				"target": {
					"$ref": "#/definitions/target"
				},
				"identifier": {
					"$ref": "#/definitions/identifier"
				},
				"progressIndicator": {
					"description": "Represents progress indicator attributes",
					"$ref": "#/definitions/progressIndicator"
				}
			}
		},
		"ContentType.Calendar": {
			"description": "The calendar card is used to display a schedule of a single entity (such as person, resource) for a selected time interval.",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"data": {
					"$ref": "#/definitions/data"
				},
				"item": {
					"$ref": "#/definitions/ContentType.Calendar.Item"
				},
				"legendItem": {
					"$ref": "#/definitions/ContentType.Calendar.LegendItem"
				},
				"specialDate": {
					"$ref": "#/definitions/ContentType.Calendar.SpecialDate"
				},
				"date": {
					"description": "The initial date of the calendar which appointments are initially shown. The accepted date format is ISO 8601.",
					"oneOf": [
						{ "type": "string" },
						{ "$ref": "#/definitions/simpleBinding" }
					]
				},
				"maxItems": {
					"description": "Represents number of items displayed",
					"oneOf": [
						{ "type": "number" },
						{ "$ref": "#/definitions/simpleBinding" }
					]
				},
				"maxLegendItems": {
					"description": "Represents number of legendItems displayed",
					"oneOf": [
						{ "type": "number" },
						{ "$ref": "#/definitions/simpleBinding" }
					]
				},
				"noItemsText": {
					"description": "The text shown when there are no items for the selected day",
					"oneOf": [
						{ "type": "string" },
						{ "$ref": "#/definitions/simpleBinding" }
					]
				},
				"moreItems": {
					"description": "Defines actions that can be applied on the button showing there are more items than the shown",
					"type": "object",
					"properties": {
						"actions": {
							"description": "Represents an action that can be applied on he button showing there are more items than the shown.",
							"type": "array",
							"items": {
								"$ref": "#/definitions/action"
							}
						}
					}
				}
			}
		},
		"ContentType.Calendar.Item": {
			"description": "Describes each item.",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"template": {
					"$ref": "#/definitions/ContentType.Calendar.Item.Template"
				},
				"path": {
					"description": "Defines the path to the structure holding the data about the items.",
					"type": "string"
				}
			}
		},
		"ContentType.Calendar.Item.Template": {
			"description": "The template for all items",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"visualization": {
					"description": "Defines the visualization of the item in the card. Available visualizations: \"appointment\" and \"blocker\".",
					"oneOf": [
						{ "$ref": "#/definitions/field" },
						{ "type": "string" }
					]
				},
				"startDate": {
					"description": "The start date of the item. The accepted date format is ISO 8601.",
					"oneOf": [
						{ "type": "string" }
					]
				},
				"endDate": {
					"description": "The end date of the item. The accepted date format is ISO 8601.",
					"oneOf": [
						{ "type": "string" }
					]
				},
				"title": {
					"description": "The title of the item.",
					"type": "string"
				},
				"text": {
					"description": "The additional information of the item. Note: It is available only for items of visualization type \"appointment\".",
					"type": "string"
				},
				"icon": {
					"$ref": "#/definitions/icon"
				},
				"type": {
					"description": "The type of the item - one of the types defined in the legend.",
					"oneOf": [
						{
							"enum": [
								"Type01",
								"Type02",
								"Type03",
								"Type04",
								"Type05",
								"Type06",
								"Type07",
								"Type08",
								"Type09",
								"Type10",
								"Type11",
								"Type12",
								"Type13",
								"Type14",
								"Type15",
								"Type16",
								"Type17",
								"Type18",
								"Type19",
								"Type20"
							],
							"default": "Type01"
						},
						{ "$ref": "#/definitions/simpleBinding" }
					]
				}
			}
		},
		"ContentType.Calendar.LegendItem": {
			"description": "Describes each legendItem.",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"template": {
					"$ref": "#/definitions/ContentType.Calendar.LegendItem.Template"
				},
				"path": {
					"description": "Defines the path to the structure holding the data about the legendItems.",
					"type": "string"
				}
			}
		},
		"ContentType.Calendar.LegendItem.Template": {
			"description": "The template for all legendItems",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"category": {
					"description": "Defines which card component describes the legend item. Available categories: \"calendar\" (represented as square) or \"appointment\" (circle).",
					"type": "string"
				},
				"text": {
					"description": "The describing information of the item.",
					"type": "string"
				},
				"type": {
					"description": "The type of the legend item corresponding with the described component.",
					"oneOf": [
						{
							"enum": [
								"Type01",
								"Type02",
								"Type03",
								"Type04",
								"Type05",
								"Type06",
								"Type07",
								"Type08",
								"Type09",
								"Type10",
								"Type11",
								"Type12",
								"Type13",
								"Type14",
								"Type15",
								"Type16",
								"Type17",
								"Type18",
								"Type19",
								"Type20"
							],
							"default": "Type01"
						},
						{ "$ref": "#/definitions/simpleBinding" }
					]
				}
			}
		},
		"ContentType.Calendar.SpecialDate": {
			"description": "Describes each specialDate.",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"template": {
					"$ref": "#/definitions/ContentType.Calendar.SpecialDate.Template"
				},
				"path": {
					"description": "Defines the path to the structure holding the data about the specialDates.",
					"type": "string"
				}
			}
		},
		"ContentType.Calendar.SpecialDate.Template": {
			"description": "The template for all specialDates",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"startDate": {
					"description": "The start date of the special date. The accepted date format is ISO 8601.",
					"oneOf": [
						{ "type": "string" }
					]
				},
				"endDate": {
					"description": "The end date of the special date. The accepted date format is ISO 8601.",
					"oneOf": [
						{ "type": "string" }
					]
				},
				"type": {
					"description": "The type of the special date - one of the types defined in the legend.",
					"oneOf": [
						{
							"enum": [
								"Type01",
								"Type02",
								"Type03",
								"Type04",
								"Type05",
								"Type06",
								"Type07",
								"Type08",
								"Type09",
								"Type10",
								"Type11",
								"Type12",
								"Type13",
								"Type14",
								"Type15",
								"Type16",
								"Type17",
								"Type18",
								"Type19",
								"Type20"
							],
							"default": "Type01"
						},
						{ "$ref": "#/definitions/simpleBinding" }
					]
				}
			  }
		},
		"ContentType.AdaptiveCard": {
			"description": "Represents AdaptiveCard content",
			"$ref": "http://adaptivecards.io/schemas/adaptive-card.json#/definitions/AdaptiveCard"
		},
		"progressIndicator": {
			"description": "Represents progress indicator attributes",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"state": {
					"description": "Represents state color",
					"oneOf": [
						{ "$ref": "#/definitions/state" },
						{ "$ref": "#/definitions/simpleBinding" }
					]
				},
				"percent": {
					"description": "Represents progress indicator percent value",
					"oneOf": [
						{ "type": "number" },
						{ "$ref": "#/definitions/simpleBinding" }
					]
				},
				"text": {
					"description": "Represents progress indicator text",
					"type": "string"
				}
			}
		},
		"icon": {
			"description": "Represents icon attributes",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"src": {
					"type": "string",
					"description": "Represents icon name or source URL"
				},
				"alt": {
					"type": "string",
					"description": "Alternative text for the icon"
				},
				"shape": {
					"type": "string",
					"description": "Represents the shape of the icon",
					"oneOf": [
						{
							"enum": [
								"Square",
								"Circle"
							],
							"default": "Square"
						},
						{
							"$ref": "#/definitions/simpleBinding"
						}
					]
				},
				"text": {
					"type": "string",
					"description": "Text inside icon"
				},
				"backgroundColor": {
					"type": "string",
					"description": "Background color of the icon"
				},
				"color": {
					"type": "string",
					"description": "Color of the icon"
				}
			}
		},
		"status": {
			"description": "Represents status attributes.",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"text": {
					"description": "Represents status text.",
					"oneOf": [
						{ "type": "string" },
						{ "$ref": "#/definitions/statusTextFormatter" }
					]
				}
			}
		},
		"statusTextFormatter": {
			"type": "object",
			"description": "Defines fields for dynamic status formatting.",
			"additionalProperties": false,
			"properties": {
				"format": {
					"description": "Defines binding information.",
					"type": "object",
					"additionalProperties": false,
					"properties": {
						"translationKey": {
							"type": "string"
						},
						"parts": {
							"type": "array"
						}
					}
				}
			}
		},
		"data": {
			"description": "Represents request and response attributes",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"request": {
					"$ref": "#/definitions/request"
				},
				"path": {
					"description": "The path from the JSON to be used as root",
					"type": "string",
					"default": "/",
					"pattern": "^[a-zA-Z0-9_\\.\\-\/|\\@\\#]*$"
				},
				"json": {
					"description": "The data to be used directly. Without making requests.",
					"type": ["object", "array"],
					"additionalProperties": true
				},
				"service": {
					"$ref": "#/definitions/service"
				},
				"updateInterval": {
					"description": "Represents interval in seconds, after which a new data request will be triggered.",
					"oneOf": [
						{ "type": "number" },
						{ "$ref": "#/definitions/simpleBinding" }
					]
				}
			}
		},
		"request": {
			"description": "Represents request attributes",
			"type": "object",
			"additionalProperties": false,
			"required": [
				"url"
			],
			"properties": {
				"mode": {
					"description": "The mode of the request",
					"type": "string",
					"oneOf": [
						{
							"enum": [
								"no-cors",
								"same-origin",
								"cors"
							],
							"default": "cors"
						},
						{
							"$ref": "#/definitions/simpleBinding"
						}
					]
				},
				"url": {
					"description": "The URL to make the request to",
					"type": "string"
				},
				"method": {
					"description": "The HTTP method",
					"type": "string",
					"oneOf": [
						{
							"enum": [
								"GET",
								"POST"
							],
							"default": "GET"
						},
						{
							"$ref": "#/definitions/simpleBinding"
						}
					]
				},
				"parameters": {
					"description": "Represents the request parameters. If it is a POST request the parameters will be put as key/value pairs into the body of the request",
					"$ref": "#/definitions/parameters"
				},
				"headers": {
					"description": "Represents HTTP headers",
					"type": "object",
					"additionalProperties": true
				},
				"withCredentials": {
					"description": "Indicates whether cross-site requests should be made using credentials.",
					"oneOf": [
						{ "type": "boolean", "default": false },
						{ "$ref": "#/definitions/simpleBinding" }
					]
				}
			}
		},
		"field": {
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"label": {
					"description": "Represents language-dependent label of the field",
					"type": "string"
				},
				"value": {
					"type": "string",
					"description": "The value of the field"
				}
			}
		},
		"i18n_key": {
			"type": "string",
			"pattern": "^\\{\\{[\\w][\\w\\.\\-]*\\}\\}$"
		},
		"simpleBinding": {
			"type": "string",
			"pattern": "\\{.*\\}"
		},
		"action": {
			"description": "Represents actions that can be applied on card elements",
			"type": "object",
			"required": [
				"type"
			],
			"additionalProperties": false,
			"properties": {
				"type": {
					"description": "The type of the action",
					"type": "string",
					"oneOf": [
						{
							"enum": [
								"Navigation",
								"Submit"
							]
						},
						{
							"$ref": "#/definitions/simpleBinding"
						}
					]
				},
				"enabled": {
					"description": "Represents the state of the action",
					"oneOf": [
						{ "type": "boolean" },
						{ "$ref": "#/definitions/simpleBinding" }
					]
				},
				"service": {
					"$ref": "#/definitions/service"
				},
				"url": {
					"description": "Represents the URL that will be used as navigation target if no service is provided",
					"type": "string"
				},
				"parameters": {
					"$ref": "#/definitions/parameters"
				},
				"target": {
					"description": "Specifies where to open the 'url', if it is provided.",
					"type": "string",
					"oneOf": [
						{
							"$ref": "#/definitions/target"
						},
						{
							"$ref": "#/definitions/simpleBinding"
						}
					]
				}
			}
		},
		"parameters": {
			"description": "Represents parameters that are passed in the actions",
			"type": "object",
			"additionalProperties": true
		},
		"state": {
			"description": "Represents state of an entity",
			"type": "string",
			"enum": [
				"Error",
				"Success",
				"Warning",
				"None",
				"Information"
			],
			"default": "None"
		},
		"textAlign": {
			"description": "Represents options for text alignments",
			"type": "string",
			"enum": [
				"Begin",
				"Center",
				"End",
				"Initial",
				"Left",
				"Right"
			],
			"default": "Begin"
		},
		"service": {
			"description": "Represents service that will be used for an actions",
			"oneOf": [
				{
					"description": "Represents name of the Service to be used for the action",
					"type": "string"
				},
				{
					"type": "object",
					"additionalProperties": false,
					"properties": {
						"name": {
							"description": "Represents name of the Service to be used for the action",
							"type": "string"
						},
						"parameters": {
							"$ref": "#/definitions/parameters"
						}
					}
				}
			]
		},
		"target": {
			"description": "Specifies where to open an URL",
			"type": "string",
			"enum": [
				"_blank",
				"_self"
			],
			"default": "_blank"
		},
		"identifier": {
			"description": "Represents identifier",
			"oneOf": [
				{
					"type": "boolean",
					"default": false
				},
				{
					"type": "object",
					"additionalProperties": false,
					"properties": {
						"url": {
							"type": "string"
						},
						"target": {
							"$ref": "#/definitions/target"
						}
					}
				}
			]
		},
		"Configuration.Parameter": {
			"description": "Represents configuration parameter.",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"value": {
					"description": "The value of the parameter."
				},
				"type": {
					"description": "The type of the value for the parameter.",
					"type": "string",
					"enum": [
						"string",
						"integer",
						"number",
						"boolean",
						"date",
						"datetime"
					]
				},
				"label": {
					"description": "Label for the parameter for user-friendly visualization in the design-time editor.",
					"type": "string"
				},
				"description": {
					"description": "Description of the parameter for user-friendly visualization in the design-time editor.",
					"type": "string"
				}
			}
		},
		"Configuration.Destinations": {
			"description": "Represents a configuration for a cloud platform destination.",
			"type": "object",
			"additionalProperties": false,
			"properties": {
				"name": {
					"description": "The name of the destination. Use the same name which is used in Cloud Platform.",
					"type": "string"
				},
				"label": {
					"description": "Label for the destination for user-friendly visualization in the design-time editor.",
					"type": "string"
				},
				"description": {
					"description": "Description of the destination for user-friendly visualization in the design-time editor.",
					"type": "string"
				},
				"defaultUrl": {
					"description": "A default url which will be used if there is no Host associated with the card.",
					"type": "string"
				}
			}
		}
	}
}