diff --git a/BotProject/CSharp/Tests/InputsTests.cs b/BotProject/CSharp/Tests/InputsTests.cs index e3a3c7f65f..a893278ca3 100644 --- a/BotProject/CSharp/Tests/InputsTests.cs +++ b/BotProject/CSharp/Tests/InputsTests.cs @@ -52,7 +52,7 @@ public async Task Inputs_01TextInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-04{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)) + .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-07{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)) .Send("01") .AssertReply("Hello, I'm Zoidberg. What is your name? (This can't be interrupted)") .Send("02") @@ -67,7 +67,7 @@ public async Task Inputs_02NumberInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-04{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)) + .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-07{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)) .Send("02") .AssertReply("What is your age?") .Send("18") @@ -83,7 +83,7 @@ public async Task Inputs_03ConfirmInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-04{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)) + .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-07{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)) .Send("03") .AssertReply("yes or no (1) Yes or (2) No") .Send("asdasd") @@ -98,7 +98,7 @@ public async Task Inputs_04ChoiceInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-04{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)).Send("04") + .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-07{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)).Send("04") .AssertReply("Please select a value from below:\n\n 1. Test1\n 2. Test2\n 3. Test3") .Send("Test1") .AssertReply("You select: Test1") @@ -110,7 +110,7 @@ public async Task Inputs_06DateTimeInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-04{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)).Send("06") + .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-07{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)).Send("06") .AssertReply("Please enter a date.") .Send("June 1st") .AssertReply("You entered: 2019-06-01") diff --git a/BotProject/CSharp/Tests/MessageTests.cs b/BotProject/CSharp/Tests/MessageTests.cs index 733d889f5c..c077c6a3b7 100644 --- a/BotProject/CSharp/Tests/MessageTests.cs +++ b/BotProject/CSharp/Tests/MessageTests.cs @@ -52,24 +52,21 @@ public async Task MessageTest() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. Text With LG\n 4. LGWithParam\n 5. LGComposition\n 6. Structured LG\n 7. MultiLineText\n 8. IfElseCondition\n 9. SwitchCondition") + .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. LGWithParam\n 4. LGComposition\n 5. Structured LG\n 6. MultiLineText\n 7. IfElseCondition\n 8. SwitchCondition") .Send("1") - .AssertReplyOneOf(new string[] { "Hello, this is a text with LG", "Hi, this is a text with LG", "Hey, this is a text with LG" }) - .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. Text With LG\n 4. LGWithParam\n 5. LGComposition\n 6. Structured LG\n 7. MultiLineText\n 8. IfElseCondition\n 9. SwitchCondition") + .AssertReplyOneOf(new string[] { "Hi, this is simple text", "Hey, this is simple text", "Hello, this is simple text" }) + .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. LGWithParam\n 4. LGComposition\n 5. Structured LG\n 6. MultiLineText\n 7. IfElseCondition\n 8. SwitchCondition") .Send("2") .AssertReply("This is a text saved in memory.") - .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. Text With LG\n 4. LGWithParam\n 5. LGComposition\n 6. Structured LG\n 7. MultiLineText\n 8. IfElseCondition\n 9. SwitchCondition") + .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. LGWithParam\n 4. LGComposition\n 5. Structured LG\n 6. MultiLineText\n 7. IfElseCondition\n 8. SwitchCondition") .Send("3") - .AssertReplyOneOf(new string[] { "Hello, this is a text with LG", "Hi, this is a text with LG", "Hey, this is a text with LG" }) - .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. Text With LG\n 4. LGWithParam\n 5. LGComposition\n 6. Structured LG\n 7. MultiLineText\n 8. IfElseCondition\n 9. SwitchCondition") - .Send("4") .AssertReply("Hello, I'm Zoidberg. What is your name?") .Send("luhan") .AssertReply("Hello luhan, nice to talk to you!") - .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. Text With LG\n 4. LGWithParam\n 5. LGComposition\n 6. Structured LG\n 7. MultiLineText\n 8. IfElseCondition\n 9. SwitchCondition") - .Send("5") + .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. LGWithParam\n 4. LGComposition\n 5. Structured LG\n 6. MultiLineText\n 7. IfElseCondition\n 8. SwitchCondition") + .Send("4") .AssertReply("luhan nice to talk to you!") - .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. Text With LG\n 4. LGWithParam\n 5. LGComposition\n 6. Structured LG\n 7. MultiLineText\n 8. IfElseCondition\n 9. SwitchCondition") + .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. LGWithParam\n 4. LGComposition\n 5. Structured LG\n 6. MultiLineText\n 7. IfElseCondition\n 8. SwitchCondition") .StartTestAsync(); } diff --git a/BotProject/Templates/CSharp/BotProject.csproj b/BotProject/Templates/CSharp/BotProject.csproj index 1409276cc5..05398bc44c 100644 --- a/BotProject/Templates/CSharp/BotProject.csproj +++ b/BotProject/Templates/CSharp/BotProject.csproj @@ -23,16 +23,16 @@ - - - - - - - - - - + + + + + + + + + + all diff --git a/BotProject/Templates/CSharp/Schemas/sdk.schema b/BotProject/Templates/CSharp/Schemas/sdk.schema index 57a748a677..0e6b7f0c65 100644 --- a/BotProject/Templates/CSharp/Schemas/sdk.schema +++ b/BotProject/Templates/CSharp/Schemas/sdk.schema @@ -1,6998 +1,8095 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/botbuilder-dotnet/4.Future/schemas/component.schema", - "$id": "sdk.schema", - "type": "object", - "title": "Component types", - "description": "These are all of the types that can be created by the loader.", - "oneOf": [ - { - "title": "Microsoft.ActivityTemplate", - "description": "", - "$ref": "#/definitions/Microsoft.ActivityTemplate" - }, - { - "title": "Microsoft.AdaptiveDialog", - "description": "Flexible, data driven dialog that can adapt to the conversation.", - "$ref": "#/definitions/Microsoft.AdaptiveDialog" - }, - { - "title": "Microsoft.AgeEntityRecognizer", - "description": "Recognizer which recognizes age.", - "$ref": "#/definitions/Microsoft.AgeEntityRecognizer" - }, - { - "title": "Microsoft.AttachmentInput", - "description": "Collect information - Ask for a file or image.", - "$ref": "#/definitions/Microsoft.AttachmentInput" - }, - { - "title": "Microsoft.BeginDialog", - "description": "Begin another dialog.", - "$ref": "#/definitions/Microsoft.BeginDialog" - }, - { - "title": "Microsoft.CancelAllDialogs", - "description": "Cancel all active dialogs. All dialogs in the dialog chain will need a trigger to capture the event configured in this action.", - "$ref": "#/definitions/Microsoft.CancelAllDialogs" - }, - { - "title": "Microsoft.ChoiceInput", - "description": "Collect information - Pick from a list of choices", - "$ref": "#/definitions/Microsoft.ChoiceInput" - }, - { - "title": "Microsoft.ConditionalSelector", - "description": "Use a rule selector based on a condition", - "$ref": "#/definitions/Microsoft.ConditionalSelector" - }, - { - "title": "Microsoft.ConfirmInput", - "description": "Collect information - Ask for confirmation (yes or no).", - "$ref": "#/definitions/Microsoft.ConfirmInput" - }, - { - "title": "Microsoft.ConfirmationEntityRecognizer", - "description": "Recognizer which recognizes confirmation choices (yes/no).", - "$ref": "#/definitions/Microsoft.ConfirmationEntityRecognizer" - }, - { - "title": "Microsoft.CurrencyEntityRecognizer", - "description": "Recognizer which recognizes currency.", - "$ref": "#/definitions/Microsoft.CurrencyEntityRecognizer" - }, - { - "title": "Microsoft.DateTimeEntityRecognizer", - "description": "Recognizer which recognizes dates and time fragments.", - "$ref": "#/definitions/Microsoft.DateTimeEntityRecognizer" - }, - { - "title": "Microsoft.DateTimeInput", - "description": "Collect information - Ask for date and/ or time", - "$ref": "#/definitions/Microsoft.DateTimeInput" - }, - { - "title": "Microsoft.DebugBreak", - "description": "If debugger is attached, stop the execution at this point in the conversation.", - "$ref": "#/definitions/Microsoft.DebugBreak" - }, - { - "title": "Microsoft.DeleteProperty", - "description": "Delete a property and any value it holds.", - "$ref": "#/definitions/Microsoft.DeleteProperty" - }, - { - "title": "Microsoft.DimensionEntityRecognizer", - "description": "Recognizer which recognizes dimension.", - "$ref": "#/definitions/Microsoft.DimensionEntityRecognizer" - }, - { - "title": "Microsoft.EditActions", - "description": "Edit the current list of actions.", - "$ref": "#/definitions/Microsoft.EditActions" - }, - { - "title": "Microsoft.EditArray", - "description": "Modify an array in memory", - "$ref": "#/definitions/Microsoft.EditArray" - }, - { - "title": "Microsoft.EmailEntityRecognizer", - "description": "Recognizer which recognizes email.", - "$ref": "#/definitions/Microsoft.EmailEntityRecognizer" - }, - { - "title": "Microsoft.EmitEvent", - "description": "Emit an event. Capture this event with a trigger.", - "$ref": "#/definitions/Microsoft.EmitEvent" - }, - { - "title": "Microsoft.EndDialog", - "description": "End this dialog.", - "$ref": "#/definitions/Microsoft.EndDialog" - }, - { - "title": "Microsoft.EndTurn", - "description": "End the current turn without ending the dialog.", - "$ref": "#/definitions/Microsoft.EndTurn" - }, - { - "title": "Microsoft.FirstSelector", - "description": "Selector for first true rule", - "$ref": "#/definitions/Microsoft.FirstSelector" - }, - { - "title": "Microsoft.Foreach", - "description": "Execute actions on each item in an a collection.", - "$ref": "#/definitions/Microsoft.Foreach" - }, - { - "title": "Microsoft.ForeachPage", - "description": "Execute actions on each page (collection of items) in an array.", - "$ref": "#/definitions/Microsoft.ForeachPage" - }, - { - "title": "Microsoft.GuidEntityRecognizer", - "description": "Recognizer which recognizes guids.", - "$ref": "#/definitions/Microsoft.GuidEntityRecognizer" - }, - { - "title": "Microsoft.HashtagEntityRecognizer", - "description": "Recognizer which recognizes Hashtags.", - "$ref": "#/definitions/Microsoft.HashtagEntityRecognizer" - }, - { - "title": "Microsoft.HttpRequest", - "description": "Make a HTTP request.", - "$ref": "#/definitions/Microsoft.HttpRequest" - }, - { - "title": "Microsoft.IfCondition", - "description": "Two-way branch the conversation flow based on a condition.", - "$ref": "#/definitions/Microsoft.IfCondition" - }, - { - "title": "Microsoft.InitProperty", - "description": "Define and initialize a property to be an array or object.", - "$ref": "#/definitions/Microsoft.InitProperty" - }, - { - "title": "Microsoft.IpEntityRecognizer", - "description": "Recognizer which recognizes internet IP patterns (like 192.1.1.1).", - "$ref": "#/definitions/Microsoft.IpEntityRecognizer" - }, - { - "title": "Microsoft.LanguagePolicy", - "description": "This represents a policy map for locales lookups to use for language", - "$ref": "#/definitions/Microsoft.LanguagePolicy" - }, - { - "title": "Microsoft.LogAction", - "description": "Log a message to the host application. Send a TraceActivity to Bot Framework Emulator (optional).", - "$ref": "#/definitions/Microsoft.LogAction" - }, - { - "title": "Microsoft.LuisRecognizer", - "description": "LUIS recognizer.", - "$ref": "#/definitions/Microsoft.LuisRecognizer" - }, - { - "title": "Microsoft.MentionEntityRecognizer", - "description": "Recognizer which recognizes @Mentions", - "$ref": "#/definitions/Microsoft.MentionEntityRecognizer" - }, - { - "title": "Microsoft.MostSpecificSelector", - "description": "Select most specific true events with optional additional selector", - "$ref": "#/definitions/Microsoft.MostSpecificSelector" - }, - { - "title": "Microsoft.MultiLanguageRecognizer", - "description": "Configure one recognizer per language and the specify the language fallback policy.", - "$ref": "#/definitions/Microsoft.MultiLanguageRecognizer" - }, - { - "title": "Microsoft.NumberEntityRecognizer", - "description": "Recognizer which recognizes numbers.", - "$ref": "#/definitions/Microsoft.NumberEntityRecognizer" - }, - { - "title": "Microsoft.NumberInput", - "description": "Collect information - Ask for a number.", - "$ref": "#/definitions/Microsoft.NumberInput" - }, - { - "title": "Microsoft.NumberRangeEntityRecognizer", - "description": "Recognizer which recognizes ranges of numbers (Example:2 to 5).", - "$ref": "#/definitions/Microsoft.NumberRangeEntityRecognizer" - }, - { - "title": "Microsoft.OAuthInput", - "description": "Collect login information.", - "$ref": "#/definitions/Microsoft.OAuthInput" - }, - { - "title": "Microsoft.OnActivity", - "description": "Actions to perform on receipt of a generic activity.", - "$ref": "#/definitions/Microsoft.OnActivity" - }, - { - "title": "Microsoft.OnBeginDialog", - "description": "Actions to perform when this dialog begins.", - "$ref": "#/definitions/Microsoft.OnBeginDialog" - }, - { - "title": "Microsoft.OnCancelDialog", - "description": "Actions to perform on cancel dialog event.", - "$ref": "#/definitions/Microsoft.OnCancelDialog" - }, - { - "title": "Microsoft.OnCondition", - "description": "Actions to perform when specified condition is true.", - "$ref": "#/definitions/Microsoft.OnCondition" - }, - { - "title": "Microsoft.OnConversationUpdateActivity", - "description": "Actions to perform on receipt of an activity with type 'ConversationUpdate'.", - "$ref": "#/definitions/Microsoft.OnConversationUpdateActivity" - }, - { - "title": "Microsoft.OnCustomEvent", - "description": "Actions to perform when a custom event is detected. Use 'Emit a custom event' action to raise a custom event.", - "$ref": "#/definitions/Microsoft.OnCustomEvent" - }, - { - "title": "Microsoft.OnDialogEvent", - "description": "Actions to perform when a specific dialog event occurs.", - "$ref": "#/definitions/Microsoft.OnDialogEvent" - }, - { - "title": "Microsoft.OnEndOfConversationActivity", - "description": "Actions to perform on receipt of an activity with type 'EndOfConversation'.", - "$ref": "#/definitions/Microsoft.OnEndOfConversationActivity" - }, - { - "title": "Microsoft.OnError", - "description": "Action to perform when an 'Error' dialog event occurs.", - "$ref": "#/definitions/Microsoft.OnError" - }, - { - "title": "Microsoft.OnEventActivity", - "description": "Actions to perform on receipt of an activity with type 'Event'.", - "$ref": "#/definitions/Microsoft.OnEventActivity" - }, - { - "title": "Microsoft.OnHandoffActivity", - "description": "Actions to perform on receipt of an activity with type 'HandOff'.", - "$ref": "#/definitions/Microsoft.OnHandoffActivity" - }, - { - "title": "Microsoft.OnIntent", - "description": "Actions to perform when specified intent is recognized.", - "$ref": "#/definitions/Microsoft.OnIntent" - }, - { - "title": "Microsoft.OnInvokeActivity", - "description": "Actions to perform on receipt of an activity with type 'Invoke'.", - "$ref": "#/definitions/Microsoft.OnInvokeActivity" - }, - { - "title": "Microsoft.OnMessageActivity", - "description": "Actions to perform on receipt of an activity with type 'Message'. Overrides Intent trigger.", - "$ref": "#/definitions/Microsoft.OnMessageActivity" - }, - { - "title": "Microsoft.OnMessageDeleteActivity", - "description": "Actions to perform on receipt of an activity with type 'MessageDelete'.", - "$ref": "#/definitions/Microsoft.OnMessageDeleteActivity" - }, - { - "title": "Microsoft.OnMessageReactionActivity", - "description": "Actions to perform on receipt of an activity with type 'MessageReaction'.", - "$ref": "#/definitions/Microsoft.OnMessageReactionActivity" - }, - { - "title": "Microsoft.OnMessageUpdateActivity", - "description": "Actions to perform on receipt of an activity with type 'MessageUpdate'.", - "$ref": "#/definitions/Microsoft.OnMessageUpdateActivity" - }, - { - "title": "Microsoft.OnRepromptDialog", - "description": "Actions to perform when 'RepromptDialog' event occurs.", - "$ref": "#/definitions/Microsoft.OnRepromptDialog" - }, - { - "title": "Microsoft.OnTypingActivity", - "description": "Actions to perform on receipt of an activity with type 'Typing'.", - "$ref": "#/definitions/Microsoft.OnTypingActivity" - }, - { - "title": "Microsoft.OnUnknownIntent", - "description": "Action to perform when user input is unrecognized and if none of the 'on intent recognition' triggers match recognized intent.", - "$ref": "#/definitions/Microsoft.OnUnknownIntent" - }, - { - "title": "Microsoft.OrdinalEntityRecognizer", - "description": "Recognizer which recognizes ordinals (example: first, second, 3rd).", - "$ref": "#/definitions/Microsoft.OrdinalEntityRecognizer" - }, - { - "title": "Microsoft.PercentageEntityRecognizer", - "description": "Recognizer which recognizes percentages.", - "$ref": "#/definitions/Microsoft.PercentageEntityRecognizer" - }, - { - "title": "Microsoft.PhoneNumberEntityRecognizer", - "description": "Recognizer which recognizes phone numbers.", - "$ref": "#/definitions/Microsoft.PhoneNumberEntityRecognizer" - }, - { - "title": "Microsoft.QnAMakerDialog", - "description": "Dialog which uses QnAMAker knowledge base to answer questions.", - "$ref": "#/definitions/Microsoft.QnAMakerDialog" - }, - { - "title": "Microsoft.RandomSelector", - "description": "Select most specific true rule", - "$ref": "#/definitions/Microsoft.RandomSelector" - }, - { - "title": "Microsoft.RegExEntityRecognizer", - "description": "Recognizer which recognizes patterns of input based on regex.", - "$ref": "#/definitions/Microsoft.RegExEntityRecognizer" - }, - { - "title": "Microsoft.RegexRecognizer", - "description": "Use regular expressions to recognize intents and entities from user input.", - "$ref": "#/definitions/Microsoft.RegexRecognizer" - }, - { - "title": "Microsoft.RepeatDialog", - "description": "Repeat current dialog.", - "$ref": "#/definitions/Microsoft.RepeatDialog" - }, - { - "title": "Microsoft.ReplaceDialog", - "description": "Replace current dialog with another dialog.", - "$ref": "#/definitions/Microsoft.ReplaceDialog" - }, - { - "title": "Microsoft.SendActivity", - "description": "Respond with an activity.", - "$ref": "#/definitions/Microsoft.SendActivity" - }, - { - "title": "Microsoft.SetProperty", - "description": "Set property to a value.", - "$ref": "#/definitions/Microsoft.SetProperty" - }, - { - "title": "Microsoft.StaticActivityTemplate", - "description": "This allows you to define a static Activity object", - "$ref": "#/definitions/Microsoft.StaticActivityTemplate" - }, - { - "title": "Microsoft.SwitchCondition", - "description": "Execute different actions based on the value of a property.", - "$ref": "#/definitions/Microsoft.SwitchCondition" - }, - { - "title": "Microsoft.TemperatureEntityRecognizer", - "description": "Recognizer which recognizes temperatures.", - "$ref": "#/definitions/Microsoft.TemperatureEntityRecognizer" - }, - { - "title": "Microsoft.TextInput", - "description": "Collection information - Ask for a word or sentence.", - "$ref": "#/definitions/Microsoft.TextInput" - }, - { - "title": "Microsoft.TextTemplate", - "description": "Lg tempalte to evaluate to create text", - "$ref": "#/definitions/Microsoft.TextTemplate" - }, - { - "title": "Microsoft.TraceActivity", - "description": "Send a trace activity to the transcript logger and/ or Bot Framework Emulator.", - "$ref": "#/definitions/Microsoft.TraceActivity" - }, - { - "title": "Microsoft.TrueSelector", - "description": "Selector for all true events", - "$ref": "#/definitions/Microsoft.TrueSelector" - }, - { - "title": "Microsoft.UrlEntityRecognizer", - "description": "Recognizer which recognizes urls (example: http://bing.com)", - "$ref": "#/definitions/Microsoft.UrlEntityRecognizer" - } - ], - "definitions": { - "Microsoft.ActivityTemplate": { - "$role": "unionType(Microsoft.IActivityTemplate)", - "title": "Microsoft ActivityTemplate", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.ActivityTemplate" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "template": { - "title": "Template", - "Description": "Language Generator template to use to create the activity", - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ + "$schema": "https://raw.githubusercontent.com/microsoft/botbuilder-dotnet/master/schemas/component.schema", + "$id": "sdk.schema", + "type": "object", + "title": "Component kinds", + "description": "These are all of the kinds that can be created by the loader.", + "oneOf": [ { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.ActivityTemplate", + "description": "", + "$ref": "#/definitions/Microsoft.ActivityTemplate" }, { - "title": "Type", - "required": [ - "template", - "$type" - ] - } - ] - }, - "Microsoft.AdaptiveDialog": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Adaptive Dialog", - "description": "Flexible, data driven dialog that can adapt to the conversation.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.AdaptiveDialog" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "Optional dialog ID." - }, - "autoEndDialog": { - "type": "boolean", - "title": "Auto end dialog", - "description": "If set to true the dialog will automatically end when there are no further actions. If set to false, remember to manually end the dialog using EndDialog action.", - "default": "true" - }, - "defaultResultProperty": { - "type": "string", - "title": "Default result property", - "description": "Value that will be passed back to the parent dialog.", - "default": "dialog.result" - }, - "recognizer": { - "$type": "Microsoft.IRecognizer", - "title": "Recognizer", - "description": "Language Understanding recognizer that interprets user input into intent and entities.", - "$ref": "#/definitions/Microsoft.IRecognizer" - }, - "generator": { - "$type": "Microsoft.ILanguageGenerator", - "title": "Language Generator", - "description": "Language generator that generates bot responses.", - "$ref": "#/definitions/Microsoft.ILanguageGenerator" - }, - "selector": { - "$type": "Microsoft.ITriggerSelector", - "title": "Selector", - "description": "Policy to determine which trigger is executed. Defaults to a 'best match' selector (optional).", - "$ref": "#/definitions/Microsoft.ITriggerSelector" - }, - "triggers": { - "type": "array", - "description": "List of triggers defined for this dialog.", - "title": "Triggers", - "items": { - "$type": "Microsoft.ITriggerCondition", - "$ref": "#/definitions/Microsoft.ITriggerCondition" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.AdaptiveDialog", + "description": "Flexible, data driven dialog that can adapt to the conversation.", + "$ref": "#/definitions/Microsoft.AdaptiveDialog" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.AgeEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "Age Entity Recognizer", - "description": "Recognizer which recognizes age.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.AgeEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.AgeEntityRecognizer", + "description": "Recognizer which recognizes age.", + "$ref": "#/definitions/Microsoft.AgeEntityRecognizer" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.AttachmentInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Attachment input dialog", - "description": "Collect information - Ask for a file or image.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.AttachmentInput" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "Optional id for the dialog" - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial prompt", - "description": "Message to send to collect information.", - "examples": [ - "What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized prompt", - "description": "Message to send if user response is not recognized.", - "examples": [ - "Sorry, I do not understand '{turn.activity.text'}. Let's try again. What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid prompt", - "description": "Message to send if user response is invalid. Relies on specified validation expressions.", - "examples": [ - "Sorry, '{this.value}' does not work. I need a number between 1-150. What is your age?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", - "title": "Default value response", - "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", - "examples": [ - "Sorry, I'm having trouble understanding you. I will just use {this.options.defaultValue} for now. You can say 'I'm 36 years old' to change it." - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max turn count", - "description": "Maximum number of re-prompt attempts to collect information.", - "default": 3, - "examples": [ - 3 - ] - }, - "validations": { - "type": "array", - "title": "Validation expressions", - "description": "Expression to validate user input.", - "examples": [ - "int(this.value) > 1 && int(this.value) <= 150", - "count(this.value) < 300" - ], - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "Property to store collected information. Input will be skipped if property has value (unless 'Always prompt' is true).", - "examples": [ - "$birthday", - "user.name", - "conversation.issueTitle", - "dialog.favColor" - ], - "type": "string" - }, - "defaultValue": { - "$role": "expression", - "title": "Default value", - "description": "Expression to examine on each turn of the conversation as possible value to the property.", - "examples": [ - "@userName", - "coalesce(@number, @partySize)" - ], - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always prompt", - "description": "Collect information even if the specified 'property' is not empty.", - "default": false, - "examples": [ - false - ] - }, - "allowInterruptions": { - "type": "string", - "title": "Allow Interruptions", - "description": "A boolean expression that determines whether the parent should be allowed to interrupt the input.", - "default": "true", - "examples": [ - "true" - ] - }, - "outputFormat": { - "type": "string", - "enum": [ - "all", - "first" - ], - "title": "Output format", - "description": "Attachment output format.", - "default": "first" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.AttachmentInput", + "description": "Collect information - Ask for a file or image.", + "$ref": "#/definitions/Microsoft.AttachmentInput" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.BeginDialog": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Begin a dialog", - "description": "Begin another dialog.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.BeginDialog" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "dialog": { - "$type": "Microsoft.IDialog", - "title": "Dialog name", - "description": "Name of the dialog to call.", - "examples": [ - "AddToDoDialog" - ], - "$ref": "#/definitions/Microsoft.IDialog" - }, - "options": { - "type": "object", - "title": "Options", - "description": "One or more options that are passed to the dialog that is called.", - "additionalProperties": { - "type": "string", - "title": "Options" - } - }, - "resultProperty": { - "$role": "expression", - "title": "Property", - "description": "Property to store any value returned by the dialog that is called.", - "examples": [ - "dialog.userName" - ], - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.BeginDialog", + "description": "Begin another dialog.", + "$ref": "#/definitions/Microsoft.BeginDialog" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.CancelAllDialogs": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Cancel all dialogs", - "description": "Cancel all active dialogs. All dialogs in the dialog chain will need a trigger to capture the event configured in this action.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.CancelAllDialogs" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "eventName": { - "title": "Event name", - "description": "Name of the event to emit.", - "type": "string" - }, - "eventValue": { - "type": "object", - "title": "Event value", - "description": "Value to emit with the event (optional).", - "additionalProperties": true - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.CancelAllDialogs", + "description": "Cancel all active dialogs. All dialogs in the dialog chain will need a trigger to capture the event configured in this action.", + "$ref": "#/definitions/Microsoft.CancelAllDialogs" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.ChoiceInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Choice input dialog", - "description": "Collect information - Pick from a list of choices", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.ChoiceInput" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "Optional id for the dialog" - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial prompt", - "description": "Message to send to collect information.", - "examples": [ - "What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized prompt", - "description": "Message to send if user response is not recognized.", - "examples": [ - "Sorry, I do not understand '{turn.activity.text'}. Let's try again. What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid prompt", - "description": "Message to send if user response is invalid. Relies on specified validation expressions.", - "examples": [ - "Sorry, '{this.value}' does not work. I need a number between 1-150. What is your age?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", - "title": "Default value response", - "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", - "examples": [ - "Sorry, I'm having trouble understanding you. I will just use {this.options.defaultValue} for now. You can say 'I'm 36 years old' to change it." - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max turn count", - "description": "Maximum number of re-prompt attempts to collect information.", - "default": 3, - "examples": [ - 3 - ] - }, - "validations": { - "type": "array", - "title": "Validation expressions", - "description": "Expression to validate user input.", - "examples": [ - "int(this.value) > 1 && int(this.value) <= 150", - "count(this.value) < 300" - ], - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "Property to store collected information. Input will be skipped if property has value (unless 'Always prompt' is true).", - "examples": [ - "$birthday", - "user.name", - "conversation.issueTitle", - "dialog.favColor" - ], - "type": "string" - }, - "defaultValue": { - "$role": "expression", - "title": "Default value", - "description": "Expression to examine on each turn of the conversation as possible value to the property.", - "examples": [ - "@userName", - "coalesce(@number, @partySize)" - ], - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always prompt", - "description": "Collect information even if the specified 'property' is not empty.", - "default": false, - "examples": [ - false - ] - }, - "allowInterruptions": { - "type": "string", - "title": "Allow Interruptions", - "description": "A boolean expression that determines whether the parent should be allowed to interrupt the input.", - "default": "true", - "examples": [ - "true" - ] - }, - "outputFormat": { - "type": "string", - "enum": [ - "value", - "index" - ], - "title": "Output format", - "description": "Choice output format.", - "default": "value" - }, - "choices": { - "anyOf": [ - { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - }, - { - "type": "array", - "items": [ - { - "type": "string" - } - ] - }, - { - "type": "array", - "items": [ - { - "title": "Choice", - "type": "object", - "properties": { - "value": { - "type": "string", - "title": "Value", - "description": "Value to return when this choice is selected." - }, - "action": { - "type": "object", - "title": "Action", - "description": "Card action for the choice." - }, - "synonyms": { - "type": "array", - "title": "Synonyms", - "description": "List of synonyms to recognize in addition to the value (optional).", - "items": { - "type": "string" - } - } - } - } - ] - } - ] - }, - "appendChoices": { - "type": "boolean", - "title": "Append choices", - "description": "Compose an output activity containing a set of choices", - "default": "true" - }, - "defaultLocale": { - "type": "string", - "title": "Default locale", - "description": "Default locale.", - "default": "en-us" - }, - "style": { - "type": "string", - "enum": [ - "None", - "Auto", - "Inline", - "List", - "SuggestedAction", - "HeroCard" - ], - "title": "List style", - "description": "Style to render choices.", - "default": "Auto" - }, - "choiceOptions": { - "type": "object", - "properties": { - "inlineSeparator": { - "type": "string", - "title": "Inline separator", - "description": "Character used to separate individual choices when there are more than 2 choices", - "default": ", " - }, - "inlineOr": { - "type": "string", - "title": "Inline or", - "description": "Separator inserted between the choices when there are only 2 choices", - "default": " or " - }, - "inlineOrMore": { - "type": "string", - "title": "Inline or more", - "description": "Separator inserted between the last 2 choices when their are more than 2 choices.", - "default": ", or " - }, - "includeNumbers": { - "type": "boolean", - "title": "Include numbers", - "description": "If true, 'inline' and 'list' list style will be prefixed with the index of the choice.", - "default": true - } - } - }, - "recognizerOptions": { - "type": "object", - "properties": { - "noValue": { - "type": "boolean", - "title": "No value", - "description": "If true, the choices value field will NOT be search over", - "default": false - }, - "noAction": { - "type": "boolean", - "title": "No action", - "description": "If true, the the choices action.title field will NOT be searched over", - "default": false - } - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.ChoiceInput", + "description": "Collect information - Pick from a list of choices", + "$ref": "#/definitions/Microsoft.ChoiceInput" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.ConditionalSelector": { - "$role": "unionType(Microsoft.ITriggerSelector)", - "title": "Condtional Trigger Selector", - "description": "Use a rule selector based on a condition", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.ConditionalSelector" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - }, - "ifTrue": { - "$type": "Microsoft.ITriggerSelector", - "$ref": "#/definitions/Microsoft.ITriggerSelector" - }, - "ifFalse": { - "$type": "Microsoft.ITriggerSelector", - "$ref": "#/definitions/Microsoft.ITriggerSelector" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.ConditionalSelector", + "description": "Use a rule selector based on a condition", + "$ref": "#/definitions/Microsoft.ConditionalSelector" }, { - "title": "Type", - "required": [ - "condition", - "ifTrue", - "ifFalse", - "$type" - ] - } - ] - }, - "Microsoft.ConfirmInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Confirm input dialog", - "description": "Collect information - Ask for confirmation (yes or no).", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.ConfirmInput" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "Optional id for the dialog" - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial prompt", - "description": "Message to send to collect information.", - "examples": [ - "What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized prompt", - "description": "Message to send if user response is not recognized.", - "examples": [ - "Sorry, I do not understand '{turn.activity.text'}. Let's try again. What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid prompt", - "description": "Message to send if user response is invalid. Relies on specified validation expressions.", - "examples": [ - "Sorry, '{this.value}' does not work. I need a number between 1-150. What is your age?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", - "title": "Default value response", - "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", - "examples": [ - "Sorry, I'm having trouble understanding you. I will just use {this.options.defaultValue} for now. You can say 'I'm 36 years old' to change it." - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max turn count", - "description": "Maximum number of re-prompt attempts to collect information.", - "default": 3, - "examples": [ - 3 - ] - }, - "validations": { - "type": "array", - "title": "Validation expressions", - "description": "Expression to validate user input.", - "examples": [ - "int(this.value) > 1 && int(this.value) <= 150", - "count(this.value) < 300" - ], - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "Property to store collected information. Input will be skipped if property has value (unless 'Always prompt' is true).", - "examples": [ - "$birthday", - "user.name", - "conversation.issueTitle", - "dialog.favColor" - ], - "type": "string" - }, - "defaultValue": { - "$role": "expression", - "title": "Default value", - "description": "Expression to examine on each turn of the conversation as possible value to the property.", - "examples": [ - "@userName", - "coalesce(@number, @partySize)" - ], - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always prompt", - "description": "Collect information even if the specified 'property' is not empty.", - "default": false, - "examples": [ - false - ] - }, - "allowInterruptions": { - "type": "string", - "title": "Allow Interruptions", - "description": "A boolean expression that determines whether the parent should be allowed to interrupt the input.", - "default": "true", - "examples": [ - "true" - ] - }, - "defaultLocale": { - "type": "string", - "title": "Default locale", - "description": "Default locale.", - "default": "en-us" - }, - "style": { - "type": "string", - "enum": [ - "None", - "Auto", - "Inline", - "List", - "SuggestedAction", - "HeroCard" - ], - "title": "List style", - "description": "Style to render choices.", - "default": "Auto" - }, - "choiceOptions": { - "type": "object", - "properties": { - "inlineSeparator": { - "type": "string", - "title": "Inline separator", - "description": "Character used to separate individual choices when there are more than 2 choices", - "default": ", " - }, - "inlineOr": { - "type": "string", - "title": "Inline or", - "description": "Separator inserted between the choices when their are only 2 choices", - "default": " or " - }, - "inlineOrMore": { - "type": "string", - "title": "Inline or more", - "description": "Separator inserted between the last 2 choices when their are more than 2 choices.", - "default": ", or " - }, - "includeNumbers": { - "type": "boolean", - "title": "Include numbers", - "description": "If true, inline and list style choices will be prefixed with the index of the choice.", - "default": true - } - } - }, - "confirmChoices": { - "type": "array", - "items": [ - { - "type": "object", - "properties": { - "value": { - "type": "string", - "title": "Value", - "description": "Value to return when this choice is selected." - }, - "action": { - "type": "object", - "title": "Action", - "description": "Card action for the choice" - }, - "synonyms": { - "type": "array", - "title": "Synonyms", - "description": "List of synonyms to recognize in addition to the value (optional)", - "items": { - "type": "string" - } - } - } - } - ] - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.ConfirmInput", + "description": "Collect information - Ask for confirmation (yes or no).", + "$ref": "#/definitions/Microsoft.ConfirmInput" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.ConfirmationEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "Confirmation Entity Recognizer", - "description": "Recognizer which recognizes confirmation choices (yes/no).", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.ConfirmationEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.ConfirmationEntityRecognizer", + "description": "Recognizer which recognizes confirmation choices (yes/no).", + "$ref": "#/definitions/Microsoft.ConfirmationEntityRecognizer" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.CurrencyEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "Currency Entity Recognizer", - "description": "Recognizer which recognizes currency.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.CurrencyEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.CurrencyEntityRecognizer", + "description": "Recognizer which recognizes currency.", + "$ref": "#/definitions/Microsoft.CurrencyEntityRecognizer" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.DateTimeEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "DateTime Entity Recognizer", - "description": "Recognizer which recognizes dates and time fragments.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.DateTimeEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.DateTimeEntityRecognizer", + "description": "Recognizer which recognizes dates and time fragments.", + "$ref": "#/definitions/Microsoft.DateTimeEntityRecognizer" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.DateTimeInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Date/time input dialog", - "description": "Collect information - Ask for date and/ or time", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.DateTimeInput" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "Optional id for the dialog" - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial prompt", - "description": "Message to send to collect information.", - "examples": [ - "What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized prompt", - "description": "Message to send if user response is not recognized.", - "examples": [ - "Sorry, I do not understand '{turn.activity.text'}. Let's try again. What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid prompt", - "description": "Message to send if user response is invalid. Relies on specified validation expressions.", - "examples": [ - "Sorry, '{this.value}' does not work. I need a number between 1-150. What is your age?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", - "title": "Default value response", - "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", - "examples": [ - "Sorry, I'm having trouble understanding you. I will just use {this.options.defaultValue} for now. You can say 'I'm 36 years old' to change it." - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max turn count", - "description": "Maximum number of re-prompt attempts to collect information.", - "default": 3, - "examples": [ - 3 - ] - }, - "validations": { - "type": "array", - "title": "Validation expressions", - "description": "Expression to validate user input.", - "examples": [ - "int(this.value) > 1 && int(this.value) <= 150", - "count(this.value) < 300" - ], - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "Property to store collected information. Input will be skipped if property has value (unless 'Always prompt' is true).", - "examples": [ - "$birthday", - "user.name", - "conversation.issueTitle", - "dialog.favColor" - ], - "type": "string" - }, - "defaultValue": { - "$role": "expression", - "title": "Default value", - "description": "Expression to examine on each turn of the conversation as possible value to the property.", - "examples": [ - "@userName", - "coalesce(@number, @partySize)" - ], - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always prompt", - "description": "Collect information even if the specified 'property' is not empty.", - "default": false, - "examples": [ - false - ] - }, - "allowInterruptions": { - "type": "string", - "title": "Allow Interruptions", - "description": "A boolean expression that determines whether the parent should be allowed to interrupt the input.", - "default": "true", - "examples": [ - "true" - ] - }, - "defaultLocale": { - "type": "string", - "title": "Default locale", - "description": "Default locale.", - "default": "en-us" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.DateTimeInput", + "description": "Collect information - Ask for date and/ or time", + "$ref": "#/definitions/Microsoft.DateTimeInput" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.DebugBreak": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Debugger break", - "description": "If debugger is attached, stop the execution at this point in the conversation.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.DebugBreak" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.DebugBreak", + "description": "If debugger is attached, stop the execution at this point in the conversation.", + "$ref": "#/definitions/Microsoft.DebugBreak" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.DeleteProperty": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Delete Property", - "description": "Delete a property and any value it holds.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.DeleteProperty" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "Property to delete.", - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.DeleteProperties", + "description": "Delete multiple properties and any value it holds.", + "$ref": "#/definitions/Microsoft.DeleteProperties" }, { - "title": "Type", - "required": [ - "property", - "$type" - ] - } - ] - }, - "Microsoft.DimensionEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "Dimension Entity Recognizer", - "description": "Recognizer which recognizes dimension.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.DimensionEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.DeleteProperty", + "description": "Delete a property and any value it holds.", + "$ref": "#/definitions/Microsoft.DeleteProperty" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.EditActions": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Edit actions.", - "description": "Edit the current list of actions.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EditActions" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "changeType": { - "type": "string", - "title": "Type of change", - "description": "Type of change to apply to the current actions.", - "enum": [ - "InsertActions", - "InsertActionsBeforeTags", - "AppendActions", - "EndSequence", - "ReplaceSequence" - ] - }, - "actions": { - "type": "array", - "title": "Actions", - "description": "Actions to apply.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.DimensionEntityRecognizer", + "description": "Recognizer which recognizes dimension.", + "$ref": "#/definitions/Microsoft.DimensionEntityRecognizer" }, { - "title": "Type", - "required": [ - "changeType", - "actions", - "$type" - ] - } - ] - }, - "Microsoft.EditArray": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Edit array", - "description": "Modify an array in memory", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EditArray" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "changeType": { - "type": "string", - "title": "Type of change", - "description": "Type of change to the array in memory.", - "enum": [ - "Push", - "Pop", - "Take", - "Remove", - "Clear" - ] - }, - "itemsProperty": { - "$role": "expression", - "title": "Items property", - "description": "Property that holds the array to update.", - "type": "string" - }, - "resultProperty": { - "$role": "expression", - "title": "Result Property", - "description": "Property to store the result of this action.", - "type": "string" - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "New value or expression.", - "examples": [ - "'milk'", - "dialog.favColor", - "dialog.favColor == 'red'" - ], - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.EditActions", + "description": "Edit the current list of actions.", + "$ref": "#/definitions/Microsoft.EditActions" }, { - "title": "Type", - "required": [ - "changeType", - "itemsProperty", - "$type" - ] - } - ] - }, - "Microsoft.EmailEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "Email Entity Recognizer", - "description": "Recognizer which recognizes email.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EmailEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.EditArray", + "description": "Modify an array in memory", + "$ref": "#/definitions/Microsoft.EditArray" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.EmitEvent": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Emit a custom event", - "description": "Emit an event. Capture this event with a trigger.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EmitEvent" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "eventName": { - "title": "Event name", - "description": "Name of the event to emit.", - "anyOf": [ - { - "enum": [ - "beginDialog", - "resumeDialog", - "repromptDialog", - "cancelDialog", - "endDialog", - "activityReceived", - "recognizedIntent", - "unknownIntent", - "actionsStarted", - "actionsSaved", - "actionsEnded", - "actionsResumed" - ] - }, - { - "type": "string" - } - ] - }, - "eventValue": { - "type": "object", - "title": "Event value", - "description": "Value to emit with the event (optional).", - "additionalProperties": true - }, - "bubbleEvent": { - "type": "boolean", - "title": "Bubble event", - "description": "If true this event is passed on to parent dialogs." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.EmailEntityRecognizer", + "description": "Recognizer which recognizes email.", + "$ref": "#/definitions/Microsoft.EmailEntityRecognizer" }, { - "title": "Type", - "required": [ - "eventName", - "$type" - ] - } - ] - }, - "Microsoft.EndDialog": { - "$role": "unionType(Microsoft.IDialog)", - "title": "End dialog", - "description": "End this dialog.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EndDialog" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "Result value returned to the parent dialog.", - "examples": [ - "dialog.userName", - "'tomato'" - ], - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.EmitEvent", + "description": "Emit an event. Capture this event with a trigger.", + "$ref": "#/definitions/Microsoft.EmitEvent" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.EndTurn": { - "$role": "unionType(Microsoft.IDialog)", - "title": "End turn", - "description": "End the current turn without ending the dialog.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EndTurn" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.EndDialog", + "description": "End this dialog.", + "$ref": "#/definitions/Microsoft.EndDialog" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.EntityRecognizers": { - "$role": "unionType", - "title": "Entity Recognizers", - "description": "Union of components which derive from EntityRecognizer abstract class.", - "type": "object", - "oneOf": [ - { - "title": "Microsoft.AgeEntityRecognizer", - "description": "Recognizer which recognizes age.", - "$ref": "#/definitions/Microsoft.AgeEntityRecognizer" + "title": "Microsoft.EndTurn", + "description": "End the current turn without ending the dialog.", + "$ref": "#/definitions/Microsoft.EndTurn" }, { - "title": "Microsoft.ConfirmationEntityRecognizer", - "description": "Recognizer which recognizes confirmation choices (yes/no).", - "$ref": "#/definitions/Microsoft.ConfirmationEntityRecognizer" + "title": "Microsoft.FirstSelector", + "description": "Selector for first true rule", + "$ref": "#/definitions/Microsoft.FirstSelector" }, { - "title": "Microsoft.CurrencyEntityRecognizer", - "description": "Recognizer which recognizes currency.", - "$ref": "#/definitions/Microsoft.CurrencyEntityRecognizer" + "title": "Microsoft.Foreach", + "description": "Execute actions on each item in an a collection.", + "$ref": "#/definitions/Microsoft.Foreach" }, { - "title": "Microsoft.DateTimeEntityRecognizer", - "description": "Recognizer which recognizes dates and time fragments.", - "$ref": "#/definitions/Microsoft.DateTimeEntityRecognizer" + "title": "Microsoft.ForeachPage", + "description": "Execute actions on each page (collection of items) in an array.", + "$ref": "#/definitions/Microsoft.ForeachPage" }, { - "title": "Microsoft.DimensionEntityRecognizer", - "description": "Recognizer which recognizes dimension.", - "$ref": "#/definitions/Microsoft.DimensionEntityRecognizer" + "title": "Microsoft.GuidEntityRecognizer", + "description": "Recognizer which recognizes guids.", + "$ref": "#/definitions/Microsoft.GuidEntityRecognizer" }, { - "title": "Microsoft.EmailEntityRecognizer", - "description": "Recognizer which recognizes email.", - "$ref": "#/definitions/Microsoft.EmailEntityRecognizer" + "title": "Microsoft.HashtagEntityRecognizer", + "description": "Recognizer which recognizes Hashtags.", + "$ref": "#/definitions/Microsoft.HashtagEntityRecognizer" }, { - "title": "Microsoft.GuidEntityRecognizer", - "description": "Recognizer which recognizes guids.", - "$ref": "#/definitions/Microsoft.GuidEntityRecognizer" + "title": "Microsoft.HttpRequest", + "description": "Make a HTTP request.", + "$ref": "#/definitions/Microsoft.HttpRequest" }, { - "title": "Microsoft.HashtagEntityRecognizer", - "description": "Recognizer which recognizes Hashtags.", - "$ref": "#/definitions/Microsoft.HashtagEntityRecognizer" + "title": "Microsoft.IfCondition", + "description": "Two-way branch the conversation flow based on a condition.", + "$ref": "#/definitions/Microsoft.IfCondition" }, { - "title": "Microsoft.IpEntityRecognizer", - "description": "Recognizer which recognizes internet IP patterns (like 192.1.1.1).", - "$ref": "#/definitions/Microsoft.IpEntityRecognizer" + "title": "Microsoft.InitProperty", + "description": "Define and initialize a property to be an array or object.", + "$ref": "#/definitions/Microsoft.InitProperty" }, { - "title": "Microsoft.MentionEntityRecognizer", - "description": "Recognizer which recognizes @Mentions", - "$ref": "#/definitions/Microsoft.MentionEntityRecognizer" + "title": "Microsoft.IpEntityRecognizer", + "description": "Recognizer which recognizes internet IP patterns (like 192.1.1.1).", + "$ref": "#/definitions/Microsoft.IpEntityRecognizer" }, { - "title": "Microsoft.NumberEntityRecognizer", - "description": "Recognizer which recognizes numbers.", - "$ref": "#/definitions/Microsoft.NumberEntityRecognizer" + "title": "Microsoft.LanguagePolicy", + "description": "This represents a policy map for locales lookups to use for language", + "$ref": "#/definitions/Microsoft.LanguagePolicy" }, { - "title": "Microsoft.NumberRangeEntityRecognizer", - "description": "Recognizer which recognizes ranges of numbers (Example:2 to 5).", - "$ref": "#/definitions/Microsoft.NumberRangeEntityRecognizer" + "title": "Microsoft.LogAction", + "description": "Log a message to the host application. Send a TraceActivity to Bot Framework Emulator (optional).", + "$ref": "#/definitions/Microsoft.LogAction" }, { - "title": "Microsoft.OrdinalEntityRecognizer", - "description": "Recognizer which recognizes ordinals (example: first, second, 3rd).", - "$ref": "#/definitions/Microsoft.OrdinalEntityRecognizer" + "title": "Microsoft.LuisRecognizer", + "description": "LUIS recognizer.", + "$ref": "#/definitions/Microsoft.LuisRecognizer" }, { - "title": "Microsoft.PercentageEntityRecognizer", - "description": "Recognizer which recognizes percentages.", - "$ref": "#/definitions/Microsoft.PercentageEntityRecognizer" + "title": "Microsoft.MentionEntityRecognizer", + "description": "Recognizer which recognizes @Mentions", + "$ref": "#/definitions/Microsoft.MentionEntityRecognizer" }, { - "title": "Microsoft.PhoneNumberEntityRecognizer", - "description": "Recognizer which recognizes phone numbers.", - "$ref": "#/definitions/Microsoft.PhoneNumberEntityRecognizer" + "title": "Microsoft.MostSpecificSelector", + "description": "Select most specific true events with optional additional selector", + "$ref": "#/definitions/Microsoft.MostSpecificSelector" }, { - "title": "Microsoft.RegExEntityRecognizer", - "description": "Recognizer which recognizes patterns of input based on regex.", - "$ref": "#/definitions/Microsoft.RegExEntityRecognizer" + "title": "Microsoft.MultiLanguageRecognizer", + "description": "Configure one recognizer per language and the specify the language fallback policy.", + "$ref": "#/definitions/Microsoft.MultiLanguageRecognizer" }, { - "title": "Microsoft.TemperatureEntityRecognizer", - "description": "Recognizer which recognizes temperatures.", - "$ref": "#/definitions/Microsoft.TemperatureEntityRecognizer" + "title": "Microsoft.NumberEntityRecognizer", + "description": "Recognizer which recognizes numbers.", + "$ref": "#/definitions/Microsoft.NumberEntityRecognizer" }, { - "title": "Microsoft.UrlEntityRecognizer", - "description": "Recognizer which recognizes urls (example: http://bing.com)", - "$ref": "#/definitions/Microsoft.UrlEntityRecognizer" - } - ] - }, - "Microsoft.FirstSelector": { - "$role": "unionType(Microsoft.ITriggerSelector)", - "title": "First Trigger Selector", - "description": "Selector for first true rule", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.FirstSelector" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.NumberInput", + "description": "Collect information - Ask for a number.", + "$ref": "#/definitions/Microsoft.NumberInput" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.Foreach": { - "$role": "unionType(Microsoft.IDialog)", - "title": "For each item", - "description": "Execute actions on each item in an a collection.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.Foreach" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "itemsProperty": { - "$role": "expression", - "title": "Items property", - "description": "Property that holds the array.", - "examples": [ - "user.todoList" - ], - "type": "string" - }, - "actions": { - "type": "array", - "title": "Actions", - "description": "Actions to execute for each item. Use '$foreach.value' to access the value of each item. Use '$foreach.index' to access the index of each item.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.NumberRangeEntityRecognizer", + "description": "Recognizer which recognizes ranges of numbers (Example:2 to 5).", + "$ref": "#/definitions/Microsoft.NumberRangeEntityRecognizer" }, { - "title": "Type", - "required": [ - "itemsProperty", - "actions", - "$type" - ] - } - ] - }, - "Microsoft.ForeachPage": { - "$role": "unionType(Microsoft.IDialog)", - "title": "For each page", - "description": "Execute actions on each page (collection of items) in an array.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.ForeachPage" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "itemsProperty": { - "$role": "expression", - "title": "Items property", - "description": "Property that holds the array.", - "examples": [ - "user.todoList" - ], - "type": "string" - }, - "actions": { - "type": "array", - "title": "Actions", - "description": "Actions to execute for each page. Use '$foreach.page' to access each page.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "pageSize": { - "type": "integer", - "title": "Page size", - "description": "Number of items in each page.", - "default": 10 - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.OAuthInput", + "description": "Collect login information.", + "$ref": "#/definitions/Microsoft.OAuthInput" }, { - "title": "Type", - "required": [ - "itemsProperty", - "actions", - "$type" - ] - } - ] - }, - "Microsoft.GuidEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "Guid Entity Recognizer", - "description": "Recognizer which recognizes guids.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.GuidEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.OnActivity", + "description": "Actions to perform on receipt of a generic activity.", + "$ref": "#/definitions/Microsoft.OnActivity" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.HashtagEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "Hashtag Entity Recognizer", - "description": "Recognizer which recognizes Hashtags.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.HashtagEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.OnBeginDialog", + "description": "Actions to perform when this dialog begins.", + "$ref": "#/definitions/Microsoft.OnBeginDialog" }, { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.HttpRequest": { - "$role": "unionType(Microsoft.IDialog)", - "type": "object", - "title": "HTTP request", - "description": "Make a HTTP request.", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.HttpRequest" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "method": { - "type": "string", - "title": "HTTP method", - "description": "HTTP method to use.", - "enum": [ - "GET", - "POST", - "PATCH", - "PUT", - "DELETE" - ], - "examples": [ - "GET", - "POST" - ] - }, - "url": { - "type": "string", - "title": "Url", - "description": "URL to call (supports data binding).", - "examples": [ - "https://contoso.com" - ] - }, - "body": { - "type": "object", - "title": "Body", - "description": "Body to include in the HTTP call (supports data binding).", - "additionalProperties": true - }, - "resultProperty": { - "$role": "expression", - "title": "Result property", - "description": "Property to store the result of this action. The result includes 4 properties from the http response: statusCode, reasonPhrase, content and headers. If the content is json it will be a deserialized object.", - "examples": [ - "dialog.contosodata" - ], - "type": "string" - }, - "headers": { - "type": "object", - "additionProperties": true, - "title": "Headers", - "description": "One or more headers to include in the request (supports data binding)." - }, - "responseType": { - "type": "string", - "title": "Response type", - "description": "Defines the type of HTTP response. Automatically calls the 'Send a response' action if set to 'Activity' or 'Activities'.", - "enum": [ - "None", - "Json", - "Activity", - "Activities" - ], - "default": "Json" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "title": "Microsoft.OnCancelDialog", + "description": "Actions to perform on cancel dialog event.", + "$ref": "#/definitions/Microsoft.OnCancelDialog" }, { - "title": "Type", - "required": [ - "url", - "method", - "$type" - ] - } - ] - }, - "Microsoft.IActivityTemplate": { - "title": "Microsoft ActivityTemplates", - "description": "Components which are IActivityTemplates", - "$role": "unionType", - "oneOf": [ - { - "title": "Microsoft.ActivityTemplate", - "description": "", - "$ref": "#/definitions/Microsoft.ActivityTemplate" + "title": "Microsoft.OnCondition", + "description": "Actions to perform when specified condition is true.", + "$ref": "#/definitions/Microsoft.OnCondition" }, { - "title": "Microsoft.StaticActivityTemplate", - "description": "This allows you to define a static Activity object", - "$ref": "#/definitions/Microsoft.StaticActivityTemplate" + "title": "Microsoft.OnConversationUpdateActivity", + "description": "Actions to perform on receipt of an activity with type 'ConversationUpdate'.", + "$ref": "#/definitions/Microsoft.OnConversationUpdateActivity" }, { - "type": "string", - "title": "string" - } - ] - }, - "Microsoft.IDialog": { - "title": "Microsoft Dialogs", - "description": "Union of components which implement the Dialog contract", - "$role": "unionType", - "oneOf": [ - { - "title": "Microsoft.AdaptiveDialog", - "description": "Flexible, data driven dialog that can adapt to the conversation.", - "$ref": "#/definitions/Microsoft.AdaptiveDialog" + "title": "Microsoft.OnCustomEvent", + "description": "Actions to perform when a custom event is detected. Use 'Emit a custom event' action to raise a custom event.", + "$ref": "#/definitions/Microsoft.OnCustomEvent" }, { - "title": "Microsoft.AttachmentInput", - "description": "Collect information - Ask for a file or image.", - "$ref": "#/definitions/Microsoft.AttachmentInput" + "title": "Microsoft.OnDialogEvent", + "description": "Actions to perform when a specific dialog event occurs.", + "$ref": "#/definitions/Microsoft.OnDialogEvent" }, { - "title": "Microsoft.BeginDialog", - "description": "Begin another dialog.", - "$ref": "#/definitions/Microsoft.BeginDialog" + "title": "Microsoft.OnEndOfConversationActivity", + "description": "Actions to perform on receipt of an activity with type 'EndOfConversation'.", + "$ref": "#/definitions/Microsoft.OnEndOfConversationActivity" }, { - "title": "Microsoft.CancelAllDialogs", - "description": "Cancel all active dialogs. All dialogs in the dialog chain will need a trigger to capture the event configured in this action.", - "$ref": "#/definitions/Microsoft.CancelAllDialogs" + "title": "Microsoft.OnError", + "description": "Action to perform when an 'Error' dialog event occurs.", + "$ref": "#/definitions/Microsoft.OnError" }, { - "title": "Microsoft.ChoiceInput", - "description": "Collect information - Pick from a list of choices", - "$ref": "#/definitions/Microsoft.ChoiceInput" + "title": "Microsoft.OnEventActivity", + "description": "Actions to perform on receipt of an activity with type 'Event'.", + "$ref": "#/definitions/Microsoft.OnEventActivity" }, { - "title": "Microsoft.ConfirmInput", - "description": "Collect information - Ask for confirmation (yes or no).", - "$ref": "#/definitions/Microsoft.ConfirmInput" + "title": "Microsoft.OnHandoffActivity", + "description": "Actions to perform on receipt of an activity with type 'HandOff'.", + "$ref": "#/definitions/Microsoft.OnHandoffActivity" }, { - "title": "Microsoft.DateTimeInput", - "description": "Collect information - Ask for date and/ or time", - "$ref": "#/definitions/Microsoft.DateTimeInput" + "title": "Microsoft.OnIntent", + "description": "Actions to perform when specified intent is recognized.", + "$ref": "#/definitions/Microsoft.OnIntent" }, { - "title": "Microsoft.DebugBreak", - "description": "If debugger is attached, stop the execution at this point in the conversation.", - "$ref": "#/definitions/Microsoft.DebugBreak" + "title": "Microsoft.OnInvokeActivity", + "description": "Actions to perform on receipt of an activity with type 'Invoke'.", + "$ref": "#/definitions/Microsoft.OnInvokeActivity" }, { - "title": "Microsoft.DeleteProperty", - "description": "Delete a property and any value it holds.", - "$ref": "#/definitions/Microsoft.DeleteProperty" + "title": "Microsoft.OnMessageActivity", + "description": "Actions to perform on receipt of an activity with type 'Message'. Overrides Intent trigger.", + "$ref": "#/definitions/Microsoft.OnMessageActivity" }, { - "title": "Microsoft.EditActions", - "description": "Edit the current list of actions.", - "$ref": "#/definitions/Microsoft.EditActions" + "title": "Microsoft.OnMessageDeleteActivity", + "description": "Actions to perform on receipt of an activity with type 'MessageDelete'.", + "$ref": "#/definitions/Microsoft.OnMessageDeleteActivity" }, { - "title": "Microsoft.EditArray", - "description": "Modify an array in memory", - "$ref": "#/definitions/Microsoft.EditArray" + "title": "Microsoft.OnMessageReactionActivity", + "description": "Actions to perform on receipt of an activity with type 'MessageReaction'.", + "$ref": "#/definitions/Microsoft.OnMessageReactionActivity" }, { - "title": "Microsoft.EmitEvent", - "description": "Emit an event. Capture this event with a trigger.", - "$ref": "#/definitions/Microsoft.EmitEvent" + "title": "Microsoft.OnMessageUpdateActivity", + "description": "Actions to perform on receipt of an activity with type 'MessageUpdate'.", + "$ref": "#/definitions/Microsoft.OnMessageUpdateActivity" }, { - "title": "Microsoft.EndDialog", - "description": "End this dialog.", - "$ref": "#/definitions/Microsoft.EndDialog" + "title": "Microsoft.OnRepromptDialog", + "description": "Actions to perform when 'RepromptDialog' event occurs.", + "$ref": "#/definitions/Microsoft.OnRepromptDialog" }, { - "title": "Microsoft.EndTurn", - "description": "End the current turn without ending the dialog.", - "$ref": "#/definitions/Microsoft.EndTurn" + "title": "Microsoft.OnTypingActivity", + "description": "Actions to perform on receipt of an activity with type 'Typing'.", + "$ref": "#/definitions/Microsoft.OnTypingActivity" }, { - "title": "Microsoft.Foreach", - "description": "Execute actions on each item in an a collection.", - "$ref": "#/definitions/Microsoft.Foreach" + "title": "Microsoft.OnUnknownIntent", + "description": "Action to perform when user input is unrecognized and if none of the 'on intent recognition' triggers match recognized intent.", + "$ref": "#/definitions/Microsoft.OnUnknownIntent" }, { - "title": "Microsoft.ForeachPage", - "description": "Execute actions on each page (collection of items) in an array.", - "$ref": "#/definitions/Microsoft.ForeachPage" + "title": "Microsoft.OrdinalEntityRecognizer", + "description": "Recognizer which recognizes ordinals (example: first, second, 3rd).", + "$ref": "#/definitions/Microsoft.OrdinalEntityRecognizer" }, { - "title": "Microsoft.HttpRequest", - "description": "Make a HTTP request.", - "$ref": "#/definitions/Microsoft.HttpRequest" + "title": "Microsoft.PercentageEntityRecognizer", + "description": "Recognizer which recognizes percentages.", + "$ref": "#/definitions/Microsoft.PercentageEntityRecognizer" }, { - "title": "Microsoft.IfCondition", - "description": "Two-way branch the conversation flow based on a condition.", - "$ref": "#/definitions/Microsoft.IfCondition" + "title": "Microsoft.PhoneNumberEntityRecognizer", + "description": "Recognizer which recognizes phone numbers.", + "$ref": "#/definitions/Microsoft.PhoneNumberEntityRecognizer" }, { - "title": "Microsoft.InitProperty", - "description": "Define and initialize a property to be an array or object.", - "$ref": "#/definitions/Microsoft.InitProperty" + "title": "Microsoft.QnAMakerDialog", + "description": "Dialog which uses QnAMAker knowledge base to answer questions.", + "$ref": "#/definitions/Microsoft.QnAMakerDialog" }, { - "title": "Microsoft.LogAction", - "description": "Log a message to the host application. Send a TraceActivity to Bot Framework Emulator (optional).", - "$ref": "#/definitions/Microsoft.LogAction" + "title": "Microsoft.RandomSelector", + "description": "Select most specific true rule", + "$ref": "#/definitions/Microsoft.RandomSelector" }, { - "title": "Microsoft.NumberInput", - "description": "Collect information - Ask for a number.", - "$ref": "#/definitions/Microsoft.NumberInput" + "title": "Microsoft.RegExEntityRecognizer", + "description": "Recognizer which recognizes patterns of input based on regex.", + "$ref": "#/definitions/Microsoft.RegExEntityRecognizer" }, { - "title": "Microsoft.OAuthInput", - "description": "Collect login information.", - "$ref": "#/definitions/Microsoft.OAuthInput" + "title": "Microsoft.RegexRecognizer", + "description": "Use regular expressions to recognize intents and entities from user input.", + "$ref": "#/definitions/Microsoft.RegexRecognizer" }, { - "title": "Microsoft.QnAMakerDialog", - "description": "Dialog which uses QnAMAker knowledge base to answer questions.", - "$ref": "#/definitions/Microsoft.QnAMakerDialog" + "title": "Microsoft.RepeatDialog", + "description": "Repeat current dialog.", + "$ref": "#/definitions/Microsoft.RepeatDialog" }, { - "title": "Microsoft.RepeatDialog", - "description": "Repeat current dialog.", - "$ref": "#/definitions/Microsoft.RepeatDialog" + "title": "Microsoft.ReplaceDialog", + "description": "Replace current dialog with another dialog.", + "$ref": "#/definitions/Microsoft.ReplaceDialog" }, { - "title": "Microsoft.ReplaceDialog", - "description": "Replace current dialog with another dialog.", - "$ref": "#/definitions/Microsoft.ReplaceDialog" + "title": "Microsoft.SendActivity", + "description": "Respond with an activity.", + "$ref": "#/definitions/Microsoft.SendActivity" }, { - "title": "Microsoft.SendActivity", - "description": "Respond with an activity.", - "$ref": "#/definitions/Microsoft.SendActivity" + "title": "Microsoft.SetProperties", + "description": "Set one or more property values.", + "$ref": "#/definitions/Microsoft.SetProperties" }, { - "title": "Microsoft.SetProperty", - "description": "Set property to a value.", - "$ref": "#/definitions/Microsoft.SetProperty" + "title": "Microsoft.SetProperty", + "description": "Set property to a value.", + "$ref": "#/definitions/Microsoft.SetProperty" }, { - "title": "Microsoft.SwitchCondition", - "description": "Execute different actions based on the value of a property.", - "$ref": "#/definitions/Microsoft.SwitchCondition" + "title": "Microsoft.StaticActivityTemplate", + "description": "This allows you to define a static Activity object", + "$ref": "#/definitions/Microsoft.StaticActivityTemplate" }, { - "title": "Microsoft.TextInput", - "description": "Collection information - Ask for a word or sentence.", - "$ref": "#/definitions/Microsoft.TextInput" + "title": "Microsoft.SwitchCondition", + "description": "Execute different actions based on the value of a property.", + "$ref": "#/definitions/Microsoft.SwitchCondition" }, { - "title": "Microsoft.TraceActivity", - "description": "Send a trace activity to the transcript logger and/ or Bot Framework Emulator.", - "$ref": "#/definitions/Microsoft.TraceActivity" + "title": "Microsoft.TemperatureEntityRecognizer", + "description": "Recognizer which recognizes temperatures.", + "$ref": "#/definitions/Microsoft.TemperatureEntityRecognizer" }, { - "type": "string", - "title": "string" - } - ] - }, - "Microsoft.ILanguageGenerator": { - "title": "Microsoft ILanguageGenerator", - "description": "Union of components which implement the ILanguageGenerator interface", - "$role": "unionType", - "oneOf": [ - { - "type": "string", - "title": "string" - } - ] - }, - "Microsoft.IRecognizer": { - "title": "Microsoft IRecognizer", - "description": "Union of components which implement the IRecognizer interface", - "$role": "unionType", - "oneOf": [ - { - "title": "Microsoft.LuisRecognizer", - "description": "LUIS recognizer.", - "$ref": "#/definitions/Microsoft.LuisRecognizer" + "title": "Microsoft.Test.AssertCondition", + "description": "Assert condition is true.", + "$ref": "#/definitions/Microsoft.Test.AssertCondition" }, { - "title": "Microsoft.MultiLanguageRecognizer", - "description": "Configure one recognizer per language and the specify the language fallback policy.", - "$ref": "#/definitions/Microsoft.MultiLanguageRecognizer" + "title": "Microsoft.Test.AssertReply", + "description": "Asserts that a reply text is valid.", + "$ref": "#/definitions/Microsoft.Test.AssertReply" }, { - "title": "Microsoft.RegexRecognizer", - "description": "Use regular expressions to recognize intents and entities from user input.", - "$ref": "#/definitions/Microsoft.RegexRecognizer" + "title": "Microsoft.Test.AssertReplyActivity", + "description": "Asserts that a reply activity is valid.", + "$ref": "#/definitions/Microsoft.Test.AssertReplyActivity" }, { - "type": "string", - "title": "string" - } - ] - }, - "Microsoft.ITextTemplate": { - "title": "Microsoft TextTemplate", - "description": "Union of components which implement the TextTemplate", - "$role": "unionType", - "oneOf": [ - { - "title": "Microsoft.TextTemplate", - "description": "Lg tempalte to evaluate to create text", - "$ref": "#/definitions/Microsoft.TextTemplate" + "title": "Microsoft.Test.AssertReplyOneOf", + "description": "Asserts that a reply text is one of multiple optional responses.", + "$ref": "#/definitions/Microsoft.Test.AssertReplyOneOf" }, { - "type": "string", - "title": "string" - } - ] - }, - "Microsoft.ITriggerCondition": { - "$role": "unionType", - "title": "Microsoft Triggers", - "description": "Union of components which implement the OnCondition", - "oneOf": [ - { - "title": "Microsoft.OnActivity", - "description": "Actions to perform on receipt of a generic activity.", - "$ref": "#/definitions/Microsoft.OnActivity" + "title": "Microsoft.Test.Script", + "description": "Defines a sequence of test actions to perform to validate the behavior of dialogs.", + "$ref": "#/definitions/Microsoft.Test.Script" }, { - "title": "Microsoft.OnBeginDialog", - "description": "Actions to perform when this dialog begins.", - "$ref": "#/definitions/Microsoft.OnBeginDialog" + "title": "Microsoft.Test.UserActivity", + "description": "Sends activity to the bot.", + "$ref": "#/definitions/Microsoft.Test.UserActivity" }, { - "title": "Microsoft.OnCancelDialog", - "description": "Actions to perform on cancel dialog event.", - "$ref": "#/definitions/Microsoft.OnCancelDialog" + "title": "Microsoft.Test.UserConversationUpdate", + "description": "Sends ConversationUpdate activity to the bot.", + "$ref": "#/definitions/Microsoft.Test.UserConversationUpdate" }, { - "title": "Microsoft.OnCondition", - "description": "Actions to perform when specified condition is true.", - "$ref": "#/definitions/Microsoft.OnCondition" + "title": "Microsoft.Test.UserDelay", + "description": "Delays text script for time period.", + "$ref": "#/definitions/Microsoft.Test.UserDelay" }, { - "title": "Microsoft.OnConversationUpdateActivity", - "description": "Actions to perform on receipt of an activity with type 'ConversationUpdate'.", - "$ref": "#/definitions/Microsoft.OnConversationUpdateActivity" + "title": "Microsoft.Test.UserSays", + "description": "Sends text to the bot from the user.", + "$ref": "#/definitions/Microsoft.Test.UserSays" }, { - "title": "Microsoft.OnCustomEvent", - "description": "Actions to perform when a custom event is detected. Use 'Emit a custom event' action to raise a custom event.", - "$ref": "#/definitions/Microsoft.OnCustomEvent" + "title": "Microsoft.Test.UserTyping", + "description": "Sends typing activity to the bot.", + "$ref": "#/definitions/Microsoft.Test.UserTyping" }, { - "title": "Microsoft.OnDialogEvent", - "description": "Actions to perform when a specific dialog event occurs.", - "$ref": "#/definitions/Microsoft.OnDialogEvent" + "title": "Microsoft.TextInput", + "description": "Collection information - Ask for a word or sentence.", + "$ref": "#/definitions/Microsoft.TextInput" }, { - "title": "Microsoft.OnEndOfConversationActivity", - "description": "Actions to perform on receipt of an activity with type 'EndOfConversation'.", - "$ref": "#/definitions/Microsoft.OnEndOfConversationActivity" + "title": "Microsoft.TextTemplate", + "description": "Lg tempalte to evaluate to create text", + "$ref": "#/definitions/Microsoft.TextTemplate" }, { - "title": "Microsoft.OnError", - "description": "Action to perform when an 'Error' dialog event occurs.", - "$ref": "#/definitions/Microsoft.OnError" + "title": "Microsoft.TraceActivity", + "description": "Send a trace activity to the transcript logger and/ or Bot Framework Emulator.", + "$ref": "#/definitions/Microsoft.TraceActivity" }, { - "title": "Microsoft.OnEventActivity", - "description": "Actions to perform on receipt of an activity with type 'Event'.", - "$ref": "#/definitions/Microsoft.OnEventActivity" + "title": "Microsoft.TrueSelector", + "description": "Selector for all true events", + "$ref": "#/definitions/Microsoft.TrueSelector" }, { - "title": "Microsoft.OnHandoffActivity", - "description": "Actions to perform on receipt of an activity with type 'HandOff'.", - "$ref": "#/definitions/Microsoft.OnHandoffActivity" + "title": "Microsoft.UrlEntityRecognizer", + "description": "Recognizer which recognizes urls (example: http://bing.com)", + "$ref": "#/definitions/Microsoft.UrlEntityRecognizer" + } + ], + "definitions": { + "Microsoft.ActivityTemplate": { + "$role": "union(Microsoft.IActivityTemplate)", + "title": "Microsoft ActivityTemplate", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.ActivityTemplate" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "template": { + "title": "Template", + "Description": "Language Generator template to use to create the activity", + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "template", + "$kind" + ] + } + ] }, - { - "title": "Microsoft.OnIntent", - "description": "Actions to perform when specified intent is recognized.", - "$ref": "#/definitions/Microsoft.OnIntent" + "Microsoft.AdaptiveDialog": { + "$role": "union(Microsoft.IDialog)", + "title": "Adaptive Dialog", + "description": "Flexible, data driven dialog that can adapt to the conversation.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.AdaptiveDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "Optional dialog ID." + }, + "autoEndDialog": { + "type": "boolean", + "title": "Auto end dialog", + "description": "If set to true the dialog will automatically end when there are no further actions. If set to false, remember to manually end the dialog using EndDialog action.", + "default": "true" + }, + "defaultResultProperty": { + "type": "string", + "title": "Default result property", + "description": "Value that will be passed back to the parent dialog.", + "default": "dialog.result" + }, + "recognizer": { + "$kind": "Microsoft.IRecognizer", + "title": "Recognizer", + "description": "Language Understanding recognizer that interprets user input into intent and entities.", + "$ref": "#/definitions/Microsoft.IRecognizer" + }, + "generator": { + "$kind": "Microsoft.ILanguageGenerator", + "title": "Language Generator", + "description": "Language generator that generates bot responses.", + "$ref": "#/definitions/Microsoft.ILanguageGenerator" + }, + "selector": { + "$kind": "Microsoft.ITriggerSelector", + "title": "Selector", + "description": "Policy to determine which trigger is executed. Defaults to a 'best match' selector (optional).", + "$ref": "#/definitions/Microsoft.ITriggerSelector" + }, + "triggers": { + "type": "array", + "description": "List of triggers defined for this dialog.", + "title": "Triggers", + "items": { + "$kind": "Microsoft.ITriggerCondition", + "$ref": "#/definitions/Microsoft.ITriggerCondition" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Microsoft.OnInvokeActivity", - "description": "Actions to perform on receipt of an activity with type 'Invoke'.", - "$ref": "#/definitions/Microsoft.OnInvokeActivity" + "Microsoft.AgeEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "Age Entity Recognizer", + "description": "Recognizer which recognizes age.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.AgeEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Microsoft.OnMessageActivity", - "description": "Actions to perform on receipt of an activity with type 'Message'. Overrides Intent trigger.", - "$ref": "#/definitions/Microsoft.OnMessageActivity" + "Microsoft.AttachmentInput": { + "$role": "union(Microsoft.IDialog)", + "title": "Attachment input dialog", + "description": "Collect information - Ask for a file or image.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.AttachmentInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "Optional id for the dialog" + }, + "prompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Initial prompt", + "description": "Message to send to collect information.", + "examples": [ + "What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "unrecognizedPrompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Unrecognized prompt", + "description": "Message to send if user response is not recognized.", + "examples": [ + "Sorry, I do not understand '{turn.activity.text'}. Let's try again. What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "invalidPrompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Invalid prompt", + "description": "Message to send if user response is invalid. Relies on specified validation expressions.", + "examples": [ + "Sorry, '{this.value}' does not work. I need a number between 1-150. What is your age?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "defaultValueResponse": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Default value response", + "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", + "examples": [ + "Sorry, I'm having trouble understanding you. I will just use {this.options.defaultValue} for now. You can say 'I'm 36 years old' to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "maxTurnCount": { + "type": "integer", + "title": "Max turn count", + "description": "Maximum number of re-prompt attempts to collect information.", + "default": 3, + "examples": [ + 3 + ] + }, + "validations": { + "type": "array", + "title": "Validation expressions", + "description": "Expression to validate user input.", + "examples": [ + "int(this.value) > 1 && int(this.value) <= 150", + "count(this.value) < 300" + ], + "items": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + } + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property to store collected information. Input will be skipped if property has value (unless 'Always prompt' is true).", + "examples": [ + "$birthday", + "user.name", + "conversation.issueTitle", + "dialog.favColor" + ], + "type": "string" + }, + "defaultValue": { + "$role": "expression", + "title": "Default value", + "description": "Expression to examine on each turn of the conversation as possible value to the property.", + "examples": [ + "@userName", + "coalesce(@number, @partySize)" + ], + "type": "string" + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "Gets or sets a value expression which can be used to intialize the input prompt.", + "examples": [ + "@userName" + ], + "type": "string" + }, + "alwaysPrompt": { + "type": "boolean", + "title": "Always prompt", + "description": "Collect information even if the specified 'property' is not empty.", + "default": false, + "examples": [ + false + ] + }, + "allowInterruptions": { + "$role": "expression", + "title": "Allow Interruptions", + "description": "A boolean expression that determines whether the parent should be allowed to interrupt the input.", + "default": "true", + "examples": [ + "true" + ], + "type": "string" + }, + "outputFormat": { + "type": "string", + "enum": [ + "all", + "first" + ], + "title": "Output format", + "description": "Attachment output format.", + "default": "first" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Microsoft.OnMessageDeleteActivity", - "description": "Actions to perform on receipt of an activity with type 'MessageDelete'.", - "$ref": "#/definitions/Microsoft.OnMessageDeleteActivity" + "Microsoft.BeginDialog": { + "$role": "union(Microsoft.IDialog)", + "title": "Begin a dialog", + "description": "Begin another dialog.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.BeginDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "dialog": { + "$kind": "Microsoft.IDialog", + "title": "Dialog name", + "description": "Name of the dialog to call.", + "examples": [ + "AddToDoDialog" + ], + "$ref": "#/definitions/Microsoft.IDialog" + }, + "options": { + "type": "object", + "title": "Options", + "description": "One or more options that are passed to the dialog that is called.", + "additionalProperties": { + "type": "string", + "title": "Options" + } + }, + "includeActivity": { + "type": "boolean", + "title": "Include Activity", + "description": "When set to true, dialog that is called can process the current activity.", + "default": false + }, + "resultProperty": { + "$role": "expression", + "title": "Property", + "description": "Property to store any value returned by the dialog that is called.", + "examples": [ + "dialog.userName" + ], + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Microsoft.OnMessageReactionActivity", - "description": "Actions to perform on receipt of an activity with type 'MessageReaction'.", - "$ref": "#/definitions/Microsoft.OnMessageReactionActivity" + "Microsoft.CancelAllDialogs": { + "$role": "union(Microsoft.IDialog)", + "title": "Cancel all dialogs", + "description": "Cancel all active dialogs. All dialogs in the dialog chain will need a trigger to capture the event configured in this action.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.CancelAllDialogs" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "eventName": { + "title": "Event name", + "description": "Name of the event to emit.", + "type": "string" + }, + "eventValue": { + "type": "object", + "title": "Event value", + "description": "Value to emit with the event (optional).", + "additionalProperties": true + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Microsoft.OnMessageUpdateActivity", - "description": "Actions to perform on receipt of an activity with type 'MessageUpdate'.", - "$ref": "#/definitions/Microsoft.OnMessageUpdateActivity" + "Microsoft.ChoiceInput": { + "$role": "union(Microsoft.IDialog)", + "title": "Choice input dialog", + "description": "Collect information - Pick from a list of choices", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.ChoiceInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "Optional id for the dialog" + }, + "prompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Initial prompt", + "description": "Message to send to collect information.", + "examples": [ + "What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "unrecognizedPrompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Unrecognized prompt", + "description": "Message to send if user response is not recognized.", + "examples": [ + "Sorry, I do not understand '{turn.activity.text'}. Let's try again. What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "invalidPrompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Invalid prompt", + "description": "Message to send if user response is invalid. Relies on specified validation expressions.", + "examples": [ + "Sorry, '{this.value}' does not work. I need a number between 1-150. What is your age?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "defaultValueResponse": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Default value response", + "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", + "examples": [ + "Sorry, I'm having trouble understanding you. I will just use {this.options.defaultValue} for now. You can say 'I'm 36 years old' to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "maxTurnCount": { + "type": "integer", + "title": "Max turn count", + "description": "Maximum number of re-prompt attempts to collect information.", + "default": 3, + "examples": [ + 3 + ] + }, + "validations": { + "type": "array", + "title": "Validation expressions", + "description": "Expression to validate user input.", + "examples": [ + "int(this.value) > 1 && int(this.value) <= 150", + "count(this.value) < 300" + ], + "items": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + } + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property to store collected information. Input will be skipped if property has value (unless 'Always prompt' is true).", + "examples": [ + "$birthday", + "user.name", + "conversation.issueTitle", + "dialog.favColor" + ], + "type": "string" + }, + "defaultValue": { + "$role": "expression", + "title": "Default value", + "description": "Expression to examine on each turn of the conversation as possible value to the property.", + "examples": [ + "@userName", + "coalesce(@number, @partySize)" + ], + "type": "string" + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "Gets or sets a value expression which can be used to intialize the input prompt.", + "examples": [ + "@userName" + ], + "type": "string" + }, + "alwaysPrompt": { + "type": "boolean", + "title": "Always prompt", + "description": "Collect information even if the specified 'property' is not empty.", + "default": false, + "examples": [ + false + ] + }, + "allowInterruptions": { + "$role": "expression", + "title": "Allow Interruptions", + "description": "A boolean expression that determines whether the parent should be allowed to interrupt the input.", + "default": "true", + "examples": [ + "true" + ], + "type": "string" + }, + "outputFormat": { + "type": "string", + "enum": [ + "value", + "index" + ], + "title": "Output format", + "description": "Choice output format.", + "default": "value" + }, + "choices": { + "anyOf": [ + { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + }, + { + "type": "array", + "items": [ + { + "type": "string" + } + ] + }, + { + "type": "array", + "items": [ + { + "title": "Choice", + "type": "object", + "properties": { + "value": { + "type": "string", + "title": "Value", + "description": "Value to return when this choice is selected." + }, + "action": { + "type": "object", + "title": "Action", + "description": "Card action for the choice." + }, + "synonyms": { + "type": "array", + "title": "Synonyms", + "description": "List of synonyms to recognize in addition to the value (optional).", + "items": { + "type": "string" + } + } + } + } + ] + } + ] + }, + "appendChoices": { + "type": "boolean", + "title": "Append choices", + "description": "Compose an output activity containing a set of choices", + "default": "true" + }, + "defaultLocale": { + "type": "string", + "title": "Default locale", + "description": "Default locale.", + "default": "en-us" + }, + "style": { + "type": "string", + "enum": [ + "None", + "Auto", + "Inline", + "List", + "SuggestedAction", + "HeroCard" + ], + "title": "List style", + "description": "Style to render choices.", + "default": "Auto" + }, + "choiceOptions": { + "type": "object", + "properties": { + "inlineSeparator": { + "type": "string", + "title": "Inline separator", + "description": "Character used to separate individual choices when there are more than 2 choices", + "default": ", " + }, + "inlineOr": { + "type": "string", + "title": "Inline or", + "description": "Separator inserted between the choices when there are only 2 choices", + "default": " or " + }, + "inlineOrMore": { + "type": "string", + "title": "Inline or more", + "description": "Separator inserted between the last 2 choices when their are more than 2 choices.", + "default": ", or " + }, + "includeNumbers": { + "type": "boolean", + "title": "Include numbers", + "description": "If true, 'inline' and 'list' list style will be prefixed with the index of the choice.", + "default": true + } + } + }, + "recognizerOptions": { + "type": "object", + "properties": { + "noValue": { + "type": "boolean", + "title": "No value", + "description": "If true, the choices value field will NOT be search over", + "default": false + }, + "noAction": { + "type": "boolean", + "title": "No action", + "description": "If true, the the choices action.title field will NOT be searched over", + "default": false + } + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.ConditionalSelector": { + "$role": "union(Microsoft.ITriggerSelector)", + "title": "Condtional Trigger Selector", + "description": "Use a rule selector based on a condition", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.ConditionalSelector" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + }, + "ifTrue": { + "$kind": "Microsoft.ITriggerSelector", + "$ref": "#/definitions/Microsoft.ITriggerSelector" + }, + "ifFalse": { + "$kind": "Microsoft.ITriggerSelector", + "$ref": "#/definitions/Microsoft.ITriggerSelector" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "condition", + "ifTrue", + "ifFalse", + "$kind" + ] + } + ] + }, + "Microsoft.ConfirmInput": { + "$role": "union(Microsoft.IDialog)", + "title": "Confirm input dialog", + "description": "Collect information - Ask for confirmation (yes or no).", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.ConfirmInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "Optional id for the dialog" + }, + "prompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Initial prompt", + "description": "Message to send to collect information.", + "examples": [ + "What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "unrecognizedPrompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Unrecognized prompt", + "description": "Message to send if user response is not recognized.", + "examples": [ + "Sorry, I do not understand '{turn.activity.text'}. Let's try again. What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "invalidPrompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Invalid prompt", + "description": "Message to send if user response is invalid. Relies on specified validation expressions.", + "examples": [ + "Sorry, '{this.value}' does not work. I need a number between 1-150. What is your age?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "defaultValueResponse": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Default value response", + "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", + "examples": [ + "Sorry, I'm having trouble understanding you. I will just use {this.options.defaultValue} for now. You can say 'I'm 36 years old' to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "maxTurnCount": { + "type": "integer", + "title": "Max turn count", + "description": "Maximum number of re-prompt attempts to collect information.", + "default": 3, + "examples": [ + 3 + ] + }, + "validations": { + "type": "array", + "title": "Validation expressions", + "description": "Expression to validate user input.", + "examples": [ + "int(this.value) > 1 && int(this.value) <= 150", + "count(this.value) < 300" + ], + "items": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + } + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property to store collected information. Input will be skipped if property has value (unless 'Always prompt' is true).", + "examples": [ + "$birthday", + "user.name", + "conversation.issueTitle", + "dialog.favColor" + ], + "type": "string" + }, + "defaultValue": { + "$role": "expression", + "title": "Default value", + "description": "Expression to examine on each turn of the conversation as possible value to the property.", + "examples": [ + "@userName", + "coalesce(@number, @partySize)" + ], + "type": "string" + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "Gets or sets a value expression which can be used to intialize the input prompt.", + "examples": [ + "@userName" + ], + "type": "string" + }, + "alwaysPrompt": { + "type": "boolean", + "title": "Always prompt", + "description": "Collect information even if the specified 'property' is not empty.", + "default": false, + "examples": [ + false + ] + }, + "allowInterruptions": { + "$role": "expression", + "title": "Allow Interruptions", + "description": "A boolean expression that determines whether the parent should be allowed to interrupt the input.", + "default": "true", + "examples": [ + "true" + ], + "type": "string" + }, + "outputFormat": { + "$role": "expression", + "title": "Output format", + "description": "Expression to format the confirm output.", + "examples": [ + "concat('confirmation:', this.value)" + ], + "type": "string" + }, + "defaultLocale": { + "type": "string", + "title": "Default locale", + "description": "Default locale.", + "default": "en-us" + }, + "style": { + "type": "string", + "enum": [ + "None", + "Auto", + "Inline", + "List", + "SuggestedAction", + "HeroCard" + ], + "title": "List style", + "description": "Style to render choices.", + "default": "Auto" + }, + "choiceOptions": { + "type": "object", + "properties": { + "inlineSeparator": { + "type": "string", + "title": "Inline separator", + "description": "Character used to separate individual choices when there are more than 2 choices", + "default": ", " + }, + "inlineOr": { + "type": "string", + "title": "Inline or", + "description": "Separator inserted between the choices when their are only 2 choices", + "default": " or " + }, + "inlineOrMore": { + "type": "string", + "title": "Inline or more", + "description": "Separator inserted between the last 2 choices when their are more than 2 choices.", + "default": ", or " + }, + "includeNumbers": { + "type": "boolean", + "title": "Include numbers", + "description": "If true, inline and list style choices will be prefixed with the index of the choice.", + "default": true + } + } + }, + "confirmChoices": { + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "value": { + "type": "string", + "title": "Value", + "description": "Value to return when this choice is selected." + }, + "action": { + "type": "object", + "title": "Action", + "description": "Card action for the choice" + }, + "synonyms": { + "type": "array", + "title": "Synonyms", + "description": "List of synonyms to recognize in addition to the value (optional)", + "items": { + "type": "string" + } + } + } + } + ] + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.ConfirmationEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "Confirmation Entity Recognizer", + "description": "Recognizer which recognizes confirmation choices (yes/no).", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.ConfirmationEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.CurrencyEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "Currency Entity Recognizer", + "description": "Recognizer which recognizes currency.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.CurrencyEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.DateTimeEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "DateTime Entity Recognizer", + "description": "Recognizer which recognizes dates and time fragments.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.DateTimeEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.DateTimeInput": { + "$role": "union(Microsoft.IDialog)", + "title": "Date/time input dialog", + "description": "Collect information - Ask for date and/ or time", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.DateTimeInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "Optional id for the dialog" + }, + "prompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Initial prompt", + "description": "Message to send to collect information.", + "examples": [ + "What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "unrecognizedPrompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Unrecognized prompt", + "description": "Message to send if user response is not recognized.", + "examples": [ + "Sorry, I do not understand '{turn.activity.text'}. Let's try again. What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "invalidPrompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Invalid prompt", + "description": "Message to send if user response is invalid. Relies on specified validation expressions.", + "examples": [ + "Sorry, '{this.value}' does not work. I need a number between 1-150. What is your age?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "defaultValueResponse": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Default value response", + "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", + "examples": [ + "Sorry, I'm having trouble understanding you. I will just use {this.options.defaultValue} for now. You can say 'I'm 36 years old' to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "maxTurnCount": { + "type": "integer", + "title": "Max turn count", + "description": "Maximum number of re-prompt attempts to collect information.", + "default": 3, + "examples": [ + 3 + ] + }, + "validations": { + "type": "array", + "title": "Validation expressions", + "description": "Expression to validate user input.", + "examples": [ + "int(this.value) > 1 && int(this.value) <= 150", + "count(this.value) < 300" + ], + "items": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + } + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property to store collected information. Input will be skipped if property has value (unless 'Always prompt' is true).", + "examples": [ + "$birthday", + "user.name", + "conversation.issueTitle", + "dialog.favColor" + ], + "type": "string" + }, + "defaultValue": { + "$role": "expression", + "title": "Default value", + "description": "Expression to examine on each turn of the conversation as possible value to the property.", + "examples": [ + "@userName", + "coalesce(@number, @partySize)" + ], + "type": "string" + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "Gets or sets a value expression which can be used to intialize the input prompt.", + "examples": [ + "@userName" + ], + "type": "string" + }, + "alwaysPrompt": { + "type": "boolean", + "title": "Always prompt", + "description": "Collect information even if the specified 'property' is not empty.", + "default": false, + "examples": [ + false + ] + }, + "allowInterruptions": { + "$role": "expression", + "title": "Allow Interruptions", + "description": "A boolean expression that determines whether the parent should be allowed to interrupt the input.", + "default": "true", + "examples": [ + "true" + ], + "type": "string" + }, + "outputFormat": { + "$role": "expression", + "title": "Output format", + "description": "Expression to format the datetime output.", + "examples": [ + "this.value[0].Value" + ], + "type": "string" + }, + "defaultLocale": { + "type": "string", + "title": "Default locale", + "description": "Default locale.", + "default": "en-us" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.DebugBreak": { + "$role": "union(Microsoft.IDialog)", + "title": "Debugger break", + "description": "If debugger is attached, stop the execution at this point in the conversation.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.DebugBreak" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.DeleteProperties": { + "$role": "union(Microsoft.IDialog)", + "title": "Delete Properties", + "description": "Delete multiple properties and any value it holds.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.DeleteProperties" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "properties": { + "type": "array", + "title": "Properties", + "description": "Properties to delete.", + "items": { + "$role": "expression", + "title": "Property", + "description": "Property to delete.", + "type": "string" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "properties", + "$kind" + ] + } + ] + }, + "Microsoft.DeleteProperty": { + "$role": "union(Microsoft.IDialog)", + "title": "Delete Property", + "description": "Delete a property and any value it holds.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.DeleteProperty" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property to delete.", + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "property", + "$kind" + ] + } + ] + }, + "Microsoft.DimensionEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "Dimension Entity Recognizer", + "description": "Recognizer which recognizes dimension.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.DimensionEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.EditActions": { + "$role": "union(Microsoft.IDialog)", + "title": "Edit actions.", + "description": "Edit the current list of actions.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.EditActions" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "changeType": { + "type": "string", + "title": "Type of change", + "description": "Type of change to apply to the current actions.", + "enum": [ + "InsertActions", + "InsertActionsBeforeTags", + "AppendActions", + "EndSequence", + "ReplaceSequence" + ] + }, + "actions": { + "type": "array", + "title": "Actions", + "description": "Actions to apply.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "changeType", + "actions", + "$kind" + ] + } + ] + }, + "Microsoft.EditArray": { + "$role": "union(Microsoft.IDialog)", + "title": "Edit array", + "description": "Modify an array in memory", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.EditArray" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "changeType": { + "type": "string", + "title": "Type of change", + "description": "Type of change to the array in memory.", + "enum": [ + "Push", + "Pop", + "Take", + "Remove", + "Clear" + ] + }, + "itemsProperty": { + "$role": "expression", + "title": "Items property", + "description": "Property that holds the array to update.", + "type": "string" + }, + "resultProperty": { + "$role": "expression", + "title": "Result Property", + "description": "Property to store the result of this action.", + "type": "string" + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "New value or expression.", + "examples": [ + "'milk'", + "dialog.favColor", + "dialog.favColor == 'red'" + ], + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "changeType", + "itemsProperty", + "$kind" + ] + } + ] + }, + "Microsoft.EmailEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "Email Entity Recognizer", + "description": "Recognizer which recognizes email.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.EmailEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.EmitEvent": { + "$role": "union(Microsoft.IDialog)", + "title": "Emit a custom event", + "description": "Emit an event. Capture this event with a trigger.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.EmitEvent" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "eventName": { + "title": "Event name", + "description": "Name of the event to emit.", + "anyOf": [ + { + "enum": [ + "beginDialog", + "resumeDialog", + "repromptDialog", + "cancelDialog", + "endDialog", + "activityReceived", + "recognizedIntent", + "unknownIntent", + "actionsStarted", + "actionsSaved", + "actionsEnded", + "actionsResumed" + ] + }, + { + "type": "string" + } + ] + }, + "eventValue": { + "$role": "expression", + "title": "Event value", + "description": "Value to emit with the event (optional).", + "type": "string" + }, + "bubbleEvent": { + "type": "boolean", + "title": "Bubble event", + "description": "If true this event is passed on to parent dialogs." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "eventName", + "$kind" + ] + } + ] + }, + "Microsoft.EndDialog": { + "$role": "union(Microsoft.IDialog)", + "title": "End dialog", + "description": "End this dialog.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.EndDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "Result value returned to the parent dialog.", + "examples": [ + "dialog.userName", + "'tomato'" + ], + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.EndTurn": { + "$role": "union(Microsoft.IDialog)", + "title": "End turn", + "description": "End the current turn without ending the dialog.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.EndTurn" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.EntityRecognizers": { + "$role": "union", + "title": "Entity Recognizers", + "description": "Union of components which derive from EntityRecognizer abstract class.", + "type": "object", + "oneOf": [ + { + "title": "Microsoft.AgeEntityRecognizer", + "description": "Recognizer which recognizes age.", + "$ref": "#/definitions/Microsoft.AgeEntityRecognizer" + }, + { + "title": "Microsoft.ConfirmationEntityRecognizer", + "description": "Recognizer which recognizes confirmation choices (yes/no).", + "$ref": "#/definitions/Microsoft.ConfirmationEntityRecognizer" + }, + { + "title": "Microsoft.CurrencyEntityRecognizer", + "description": "Recognizer which recognizes currency.", + "$ref": "#/definitions/Microsoft.CurrencyEntityRecognizer" + }, + { + "title": "Microsoft.DateTimeEntityRecognizer", + "description": "Recognizer which recognizes dates and time fragments.", + "$ref": "#/definitions/Microsoft.DateTimeEntityRecognizer" + }, + { + "title": "Microsoft.DimensionEntityRecognizer", + "description": "Recognizer which recognizes dimension.", + "$ref": "#/definitions/Microsoft.DimensionEntityRecognizer" + }, + { + "title": "Microsoft.EmailEntityRecognizer", + "description": "Recognizer which recognizes email.", + "$ref": "#/definitions/Microsoft.EmailEntityRecognizer" + }, + { + "title": "Microsoft.GuidEntityRecognizer", + "description": "Recognizer which recognizes guids.", + "$ref": "#/definitions/Microsoft.GuidEntityRecognizer" + }, + { + "title": "Microsoft.HashtagEntityRecognizer", + "description": "Recognizer which recognizes Hashtags.", + "$ref": "#/definitions/Microsoft.HashtagEntityRecognizer" + }, + { + "title": "Microsoft.IpEntityRecognizer", + "description": "Recognizer which recognizes internet IP patterns (like 192.1.1.1).", + "$ref": "#/definitions/Microsoft.IpEntityRecognizer" + }, + { + "title": "Microsoft.MentionEntityRecognizer", + "description": "Recognizer which recognizes @Mentions", + "$ref": "#/definitions/Microsoft.MentionEntityRecognizer" + }, + { + "title": "Microsoft.NumberEntityRecognizer", + "description": "Recognizer which recognizes numbers.", + "$ref": "#/definitions/Microsoft.NumberEntityRecognizer" + }, + { + "title": "Microsoft.NumberRangeEntityRecognizer", + "description": "Recognizer which recognizes ranges of numbers (Example:2 to 5).", + "$ref": "#/definitions/Microsoft.NumberRangeEntityRecognizer" + }, + { + "title": "Microsoft.OrdinalEntityRecognizer", + "description": "Recognizer which recognizes ordinals (example: first, second, 3rd).", + "$ref": "#/definitions/Microsoft.OrdinalEntityRecognizer" + }, + { + "title": "Microsoft.PercentageEntityRecognizer", + "description": "Recognizer which recognizes percentages.", + "$ref": "#/definitions/Microsoft.PercentageEntityRecognizer" + }, + { + "title": "Microsoft.PhoneNumberEntityRecognizer", + "description": "Recognizer which recognizes phone numbers.", + "$ref": "#/definitions/Microsoft.PhoneNumberEntityRecognizer" + }, + { + "title": "Microsoft.RegExEntityRecognizer", + "description": "Recognizer which recognizes patterns of input based on regex.", + "$ref": "#/definitions/Microsoft.RegExEntityRecognizer" + }, + { + "title": "Microsoft.TemperatureEntityRecognizer", + "description": "Recognizer which recognizes temperatures.", + "$ref": "#/definitions/Microsoft.TemperatureEntityRecognizer" + }, + { + "title": "Microsoft.UrlEntityRecognizer", + "description": "Recognizer which recognizes urls (example: http://bing.com)", + "$ref": "#/definitions/Microsoft.UrlEntityRecognizer" + } + ] + }, + "Microsoft.FirstSelector": { + "$role": "union(Microsoft.ITriggerSelector)", + "title": "First Trigger Selector", + "description": "Selector for first true rule", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.FirstSelector" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.Foreach": { + "$role": "union(Microsoft.IDialog)", + "title": "For each item", + "description": "Execute actions on each item in an a collection.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Foreach" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "itemsProperty": { + "$role": "expression", + "title": "Items property", + "description": "Property that holds the array.", + "examples": [ + "user.todoList" + ], + "type": "string" + }, + "actions": { + "type": "array", + "title": "Actions", + "description": "Actions to execute for each item. Use '$foreach.value' to access the value of each item. Use '$foreach.index' to access the index of each item.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "itemsProperty", + "actions", + "$kind" + ] + } + ] + }, + "Microsoft.ForeachPage": { + "$role": "union(Microsoft.IDialog)", + "title": "For each page", + "description": "Execute actions on each page (collection of items) in an array.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.ForeachPage" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "itemsProperty": { + "$role": "expression", + "title": "Items property", + "description": "Property that holds the array.", + "examples": [ + "user.todoList" + ], + "type": "string" + }, + "actions": { + "type": "array", + "title": "Actions", + "description": "Actions to execute for each page. Use '$foreach.page' to access each page.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + }, + "pageSize": { + "type": "integer", + "title": "Page size", + "description": "Number of items in each page.", + "default": 10 + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "itemsProperty", + "actions", + "$kind" + ] + } + ] + }, + "Microsoft.GuidEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "Guid Entity Recognizer", + "description": "Recognizer which recognizes guids.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.GuidEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.HashtagEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "Hashtag Entity Recognizer", + "description": "Recognizer which recognizes Hashtags.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.HashtagEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.HttpRequest": { + "$role": "union(Microsoft.IDialog)", + "type": "object", + "title": "HTTP request", + "description": "Make a HTTP request.", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.HttpRequest" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "method": { + "type": "string", + "title": "HTTP method", + "description": "HTTP method to use.", + "enum": [ + "GET", + "POST", + "PATCH", + "PUT", + "DELETE" + ], + "examples": [ + "GET", + "POST" + ] + }, + "url": { + "type": "string", + "title": "Url", + "description": "URL to call (supports data binding).", + "examples": [ + "https://contoso.com" + ] + }, + "body": { + "type": "object", + "title": "Body", + "description": "Body to include in the HTTP call (supports data binding).", + "additionalProperties": true + }, + "resultProperty": { + "$role": "expression", + "title": "Result property", + "description": "Property to store the result of this action. The result includes 4 properties from the http response: statusCode, reasonPhrase, content and headers. If the content is json it will be a deserialized object.", + "examples": [ + "dialog.contosodata" + ], + "type": "string" + }, + "headers": { + "type": "object", + "additionProperties": true, + "title": "Headers", + "description": "One or more headers to include in the request (supports data binding)." + }, + "responseType": { + "type": "string", + "title": "Response type", + "description": "Defines the type of HTTP response. Automatically calls the 'Send a response' action if set to 'Activity' or 'Activities'.", + "enum": [ + "None", + "Json", + "Activity", + "Activities" + ], + "default": "Json" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "url", + "method", + "$kind" + ] + } + ] + }, + "Microsoft.IActivityTemplate": { + "title": "Microsoft ActivityTemplates", + "description": "Components which are IActivityTemplates", + "$role": "union", + "oneOf": [ + { + "title": "Microsoft.ActivityTemplate", + "description": "", + "$ref": "#/definitions/Microsoft.ActivityTemplate" + }, + { + "title": "Microsoft.StaticActivityTemplate", + "description": "This allows you to define a static Activity object", + "$ref": "#/definitions/Microsoft.StaticActivityTemplate" + }, + { + "type": "string", + "title": "string" + } + ] + }, + "Microsoft.IDialog": { + "title": "Microsoft Dialogs", + "description": "Union of components which implement the Dialog contract", + "$role": "union", + "oneOf": [ + { + "title": "Microsoft.AdaptiveDialog", + "description": "Flexible, data driven dialog that can adapt to the conversation.", + "$ref": "#/definitions/Microsoft.AdaptiveDialog" + }, + { + "title": "Microsoft.AttachmentInput", + "description": "Collect information - Ask for a file or image.", + "$ref": "#/definitions/Microsoft.AttachmentInput" + }, + { + "title": "Microsoft.BeginDialog", + "description": "Begin another dialog.", + "$ref": "#/definitions/Microsoft.BeginDialog" + }, + { + "title": "Microsoft.CancelAllDialogs", + "description": "Cancel all active dialogs. All dialogs in the dialog chain will need a trigger to capture the event configured in this action.", + "$ref": "#/definitions/Microsoft.CancelAllDialogs" + }, + { + "title": "Microsoft.ChoiceInput", + "description": "Collect information - Pick from a list of choices", + "$ref": "#/definitions/Microsoft.ChoiceInput" + }, + { + "title": "Microsoft.ConfirmInput", + "description": "Collect information - Ask for confirmation (yes or no).", + "$ref": "#/definitions/Microsoft.ConfirmInput" + }, + { + "title": "Microsoft.DateTimeInput", + "description": "Collect information - Ask for date and/ or time", + "$ref": "#/definitions/Microsoft.DateTimeInput" + }, + { + "title": "Microsoft.DebugBreak", + "description": "If debugger is attached, stop the execution at this point in the conversation.", + "$ref": "#/definitions/Microsoft.DebugBreak" + }, + { + "title": "Microsoft.DeleteProperties", + "description": "Delete multiple properties and any value it holds.", + "$ref": "#/definitions/Microsoft.DeleteProperties" + }, + { + "title": "Microsoft.DeleteProperty", + "description": "Delete a property and any value it holds.", + "$ref": "#/definitions/Microsoft.DeleteProperty" + }, + { + "title": "Microsoft.EditActions", + "description": "Edit the current list of actions.", + "$ref": "#/definitions/Microsoft.EditActions" + }, + { + "title": "Microsoft.EditArray", + "description": "Modify an array in memory", + "$ref": "#/definitions/Microsoft.EditArray" + }, + { + "title": "Microsoft.EmitEvent", + "description": "Emit an event. Capture this event with a trigger.", + "$ref": "#/definitions/Microsoft.EmitEvent" + }, + { + "title": "Microsoft.EndDialog", + "description": "End this dialog.", + "$ref": "#/definitions/Microsoft.EndDialog" + }, + { + "title": "Microsoft.EndTurn", + "description": "End the current turn without ending the dialog.", + "$ref": "#/definitions/Microsoft.EndTurn" + }, + { + "title": "Microsoft.Foreach", + "description": "Execute actions on each item in an a collection.", + "$ref": "#/definitions/Microsoft.Foreach" + }, + { + "title": "Microsoft.ForeachPage", + "description": "Execute actions on each page (collection of items) in an array.", + "$ref": "#/definitions/Microsoft.ForeachPage" + }, + { + "title": "Microsoft.HttpRequest", + "description": "Make a HTTP request.", + "$ref": "#/definitions/Microsoft.HttpRequest" + }, + { + "title": "Microsoft.IfCondition", + "description": "Two-way branch the conversation flow based on a condition.", + "$ref": "#/definitions/Microsoft.IfCondition" + }, + { + "title": "Microsoft.InitProperty", + "description": "Define and initialize a property to be an array or object.", + "$ref": "#/definitions/Microsoft.InitProperty" + }, + { + "title": "Microsoft.LogAction", + "description": "Log a message to the host application. Send a TraceActivity to Bot Framework Emulator (optional).", + "$ref": "#/definitions/Microsoft.LogAction" + }, + { + "title": "Microsoft.NumberInput", + "description": "Collect information - Ask for a number.", + "$ref": "#/definitions/Microsoft.NumberInput" + }, + { + "title": "Microsoft.OAuthInput", + "description": "Collect login information.", + "$ref": "#/definitions/Microsoft.OAuthInput" + }, + { + "title": "Microsoft.QnAMakerDialog", + "description": "Dialog which uses QnAMAker knowledge base to answer questions.", + "$ref": "#/definitions/Microsoft.QnAMakerDialog" + }, + { + "title": "Microsoft.RepeatDialog", + "description": "Repeat current dialog.", + "$ref": "#/definitions/Microsoft.RepeatDialog" + }, + { + "title": "Microsoft.ReplaceDialog", + "description": "Replace current dialog with another dialog.", + "$ref": "#/definitions/Microsoft.ReplaceDialog" + }, + { + "title": "Microsoft.SendActivity", + "description": "Respond with an activity.", + "$ref": "#/definitions/Microsoft.SendActivity" + }, + { + "title": "Microsoft.SetProperties", + "description": "Set one or more property values.", + "$ref": "#/definitions/Microsoft.SetProperties" + }, + { + "title": "Microsoft.SetProperty", + "description": "Set property to a value.", + "$ref": "#/definitions/Microsoft.SetProperty" + }, + { + "title": "Microsoft.SwitchCondition", + "description": "Execute different actions based on the value of a property.", + "$ref": "#/definitions/Microsoft.SwitchCondition" + }, + { + "title": "Microsoft.Test.AssertCondition", + "description": "Assert condition is true.", + "$ref": "#/definitions/Microsoft.Test.AssertCondition" + }, + { + "title": "Microsoft.TextInput", + "description": "Collection information - Ask for a word or sentence.", + "$ref": "#/definitions/Microsoft.TextInput" + }, + { + "title": "Microsoft.TraceActivity", + "description": "Send a trace activity to the transcript logger and/ or Bot Framework Emulator.", + "$ref": "#/definitions/Microsoft.TraceActivity" + }, + { + "type": "string", + "title": "string" + } + ] + }, + "Microsoft.ILanguageGenerator": { + "title": "Microsoft ILanguageGenerator", + "description": "Union of components which implement the ILanguageGenerator interface", + "$role": "union", + "oneOf": [ + { + "type": "string", + "title": "string" + } + ] + }, + "Microsoft.IRecognizer": { + "title": "Microsoft IRecognizer", + "description": "Union of components which implement the IRecognizer interface", + "$role": "union", + "oneOf": [ + { + "title": "Microsoft.LuisRecognizer", + "description": "LUIS recognizer.", + "$ref": "#/definitions/Microsoft.LuisRecognizer" + }, + { + "title": "Microsoft.MultiLanguageRecognizer", + "description": "Configure one recognizer per language and the specify the language fallback policy.", + "$ref": "#/definitions/Microsoft.MultiLanguageRecognizer" + }, + { + "title": "Microsoft.RegexRecognizer", + "description": "Use regular expressions to recognize intents and entities from user input.", + "$ref": "#/definitions/Microsoft.RegexRecognizer" + }, + { + "type": "string", + "title": "string" + } + ] + }, + "Microsoft.ITextTemplate": { + "title": "Microsoft TextTemplate", + "description": "Union of components which implement the TextTemplate", + "$role": "union", + "oneOf": [ + { + "title": "Microsoft.TextTemplate", + "description": "Lg tempalte to evaluate to create text", + "$ref": "#/definitions/Microsoft.TextTemplate" + }, + { + "type": "string", + "title": "string" + } + ] + }, + "Microsoft.ITriggerCondition": { + "$role": "union", + "title": "Microsoft Triggers", + "description": "Union of components which implement the OnCondition", + "oneOf": [ + { + "title": "Microsoft.OnActivity", + "description": "Actions to perform on receipt of a generic activity.", + "$ref": "#/definitions/Microsoft.OnActivity" + }, + { + "title": "Microsoft.OnBeginDialog", + "description": "Actions to perform when this dialog begins.", + "$ref": "#/definitions/Microsoft.OnBeginDialog" + }, + { + "title": "Microsoft.OnCancelDialog", + "description": "Actions to perform on cancel dialog event.", + "$ref": "#/definitions/Microsoft.OnCancelDialog" + }, + { + "title": "Microsoft.OnCondition", + "description": "Actions to perform when specified condition is true.", + "$ref": "#/definitions/Microsoft.OnCondition" + }, + { + "title": "Microsoft.OnConversationUpdateActivity", + "description": "Actions to perform on receipt of an activity with type 'ConversationUpdate'.", + "$ref": "#/definitions/Microsoft.OnConversationUpdateActivity" + }, + { + "title": "Microsoft.OnCustomEvent", + "description": "Actions to perform when a custom event is detected. Use 'Emit a custom event' action to raise a custom event.", + "$ref": "#/definitions/Microsoft.OnCustomEvent" + }, + { + "title": "Microsoft.OnDialogEvent", + "description": "Actions to perform when a specific dialog event occurs.", + "$ref": "#/definitions/Microsoft.OnDialogEvent" + }, + { + "title": "Microsoft.OnEndOfConversationActivity", + "description": "Actions to perform on receipt of an activity with type 'EndOfConversation'.", + "$ref": "#/definitions/Microsoft.OnEndOfConversationActivity" + }, + { + "title": "Microsoft.OnError", + "description": "Action to perform when an 'Error' dialog event occurs.", + "$ref": "#/definitions/Microsoft.OnError" + }, + { + "title": "Microsoft.OnEventActivity", + "description": "Actions to perform on receipt of an activity with type 'Event'.", + "$ref": "#/definitions/Microsoft.OnEventActivity" + }, + { + "title": "Microsoft.OnHandoffActivity", + "description": "Actions to perform on receipt of an activity with type 'HandOff'.", + "$ref": "#/definitions/Microsoft.OnHandoffActivity" + }, + { + "title": "Microsoft.OnIntent", + "description": "Actions to perform when specified intent is recognized.", + "$ref": "#/definitions/Microsoft.OnIntent" + }, + { + "title": "Microsoft.OnInvokeActivity", + "description": "Actions to perform on receipt of an activity with type 'Invoke'.", + "$ref": "#/definitions/Microsoft.OnInvokeActivity" + }, + { + "title": "Microsoft.OnMessageActivity", + "description": "Actions to perform on receipt of an activity with type 'Message'. Overrides Intent trigger.", + "$ref": "#/definitions/Microsoft.OnMessageActivity" + }, + { + "title": "Microsoft.OnMessageDeleteActivity", + "description": "Actions to perform on receipt of an activity with type 'MessageDelete'.", + "$ref": "#/definitions/Microsoft.OnMessageDeleteActivity" + }, + { + "title": "Microsoft.OnMessageReactionActivity", + "description": "Actions to perform on receipt of an activity with type 'MessageReaction'.", + "$ref": "#/definitions/Microsoft.OnMessageReactionActivity" + }, + { + "title": "Microsoft.OnMessageUpdateActivity", + "description": "Actions to perform on receipt of an activity with type 'MessageUpdate'.", + "$ref": "#/definitions/Microsoft.OnMessageUpdateActivity" + }, + { + "title": "Microsoft.OnRepromptDialog", + "description": "Actions to perform when 'RepromptDialog' event occurs.", + "$ref": "#/definitions/Microsoft.OnRepromptDialog" + }, + { + "title": "Microsoft.OnTypingActivity", + "description": "Actions to perform on receipt of an activity with type 'Typing'.", + "$ref": "#/definitions/Microsoft.OnTypingActivity" + }, + { + "title": "Microsoft.OnUnknownIntent", + "description": "Action to perform when user input is unrecognized and if none of the 'on intent recognition' triggers match recognized intent.", + "$ref": "#/definitions/Microsoft.OnUnknownIntent" + } + ] + }, + "Microsoft.ITriggerSelector": { + "$role": "union", + "title": "Selectors", + "description": "Union of components which are trigger selectors", + "oneOf": [ + { + "title": "Microsoft.ConditionalSelector", + "description": "Use a rule selector based on a condition", + "$ref": "#/definitions/Microsoft.ConditionalSelector" + }, + { + "title": "Microsoft.FirstSelector", + "description": "Selector for first true rule", + "$ref": "#/definitions/Microsoft.FirstSelector" + }, + { + "title": "Microsoft.MostSpecificSelector", + "description": "Select most specific true events with optional additional selector", + "$ref": "#/definitions/Microsoft.MostSpecificSelector" + }, + { + "title": "Microsoft.RandomSelector", + "description": "Select most specific true rule", + "$ref": "#/definitions/Microsoft.RandomSelector" + }, + { + "title": "Microsoft.TrueSelector", + "description": "Selector for all true events", + "$ref": "#/definitions/Microsoft.TrueSelector" + } + ] + }, + "Microsoft.IfCondition": { + "$role": "union(Microsoft.IDialog)", + "title": "If condition", + "description": "Two-way branch the conversation flow based on a condition.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.IfCondition" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Expression to evaluate.", + "examples": [ + "user.age > 3" + ], + "type": "string" + }, + "actions": { + "type": "array", + "title": "Actions", + "description": "Actions to execute if condition is true.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + }, + "elseActions": { + "type": "array", + "title": "Else", + "description": "Actions to execute if condition is false.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "condition", + "actions", + "$kind" + ] + } + ] + }, + "Microsoft.InitProperty": { + "$role": "union(Microsoft.IDialog)", + "title": "Initialize property", + "description": "Define and initialize a property to be an array or object.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.InitProperty" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property (named location to store information).", + "examples": [ + "user.age" + ], + "type": "string" + }, + "type": { + "type": "string", + "title": "Type", + "description": "Type of value.", + "enum": [ + "object", + "array" + ] + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "property", + "type", + "$kind" + ] + } + ] + }, + "Microsoft.IpEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "Ip Entity Recognizer", + "description": "Recognizer which recognizes internet IP patterns (like 192.1.1.1).", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.IpEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.LanguagePolicy": { + "title": "Language Policy", + "description": "This represents a policy map for locales lookups to use for language", + "type": "object", + "additionalProperties": false, + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.LanguagePolicy" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.LogAction": { + "$role": "union(Microsoft.IDialog)", + "title": "Log to console", + "description": "Log a message to the host application. Send a TraceActivity to Bot Framework Emulator (optional).", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.LogAction" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "text": { + "type": "string", + "title": "Text", + "description": "Information to log." + }, + "traceActivity": { + "type": "boolean", + "title": "Send Trace Activity", + "description": "If true, automatically sends a TraceActivity (view in Bot Framework Emulator).", + "default": false + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "text", + "$kind" + ] + } + ] + }, + "Microsoft.LuisRecognizer": { + "$role": "union(Microsoft.IRecognizer)", + "title": "LUIS Recognizer", + "description": "LUIS recognizer.", + "type": "object", + "additionalProperties": false, + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.LuisRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "applicationId": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "endpointKey": { + "type": "string" + } + }, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "applicationId", + "endpoint", + "endpointKey", + "$kind" + ] + } + ] + }, + "Microsoft.MentionEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "Mentions Entity Recognizer", + "description": "Recognizer which recognizes @Mentions", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.MentionEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.MostSpecificSelector": { + "$role": "union(Microsoft.ITriggerSelector)", + "title": "Most Specific Trigger Selector", + "description": "Select most specific true events with optional additional selector", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.MostSpecificSelector" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "selector": { + "$kind": "Microsoft.ITriggerSelector", + "$ref": "#/definitions/Microsoft.ITriggerSelector" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.MultiLanguageRecognizer": { + "$role": "union(Microsoft.IRecognizer)", + "title": "Multi-language recognizer", + "description": "Configure one recognizer per language and the specify the language fallback policy.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.MultiLanguageRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "languagePolicy": { + "$kind": "Microsoft.LanguagePolicy", + "type": "object", + "title": "Language policy", + "description": "Defines fall back languages to try per user input language.", + "$ref": "#/definitions/Microsoft.LanguagePolicy" + }, + "recognizers": { + "type": "object", + "title": "Recognizers", + "description": "Map of language -> IRecognizer", + "additionalProperties": { + "$kind": "Microsoft.IRecognizer", + "$ref": "#/definitions/Microsoft.IRecognizer" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "recognizers", + "$kind" + ] + } + ] }, - { - "title": "Microsoft.OnRepromptDialog", - "description": "Actions to perform when 'RepromptDialog' event occurs.", - "$ref": "#/definitions/Microsoft.OnRepromptDialog" + "Microsoft.NumberEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "Number Entity Recognizer", + "description": "Recognizer which recognizes numbers.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.NumberEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Microsoft.OnTypingActivity", - "description": "Actions to perform on receipt of an activity with type 'Typing'.", - "$ref": "#/definitions/Microsoft.OnTypingActivity" + "Microsoft.NumberInput": { + "$role": "union(Microsoft.IDialog)", + "title": "Number input dialog", + "description": "Collect information - Ask for a number.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.NumberInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "Optional id for the dialog" + }, + "prompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Initial prompt", + "description": "Message to send to collect information.", + "examples": [ + "What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "unrecognizedPrompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Unrecognized prompt", + "description": "Message to send if user response is not recognized.", + "examples": [ + "Sorry, I do not understand '{turn.activity.text'}. Let's try again. What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "invalidPrompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Invalid prompt", + "description": "Message to send if user response is invalid. Relies on specified validation expressions.", + "examples": [ + "Sorry, '{this.value}' does not work. I need a number between 1-150. What is your age?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "defaultValueResponse": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Default value response", + "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", + "examples": [ + "Sorry, I'm having trouble understanding you. I will just use {this.options.defaultValue} for now. You can say 'I'm 36 years old' to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "maxTurnCount": { + "type": "integer", + "title": "Max turn count", + "description": "Maximum number of re-prompt attempts to collect information.", + "default": 3, + "examples": [ + 3 + ] + }, + "validations": { + "type": "array", + "title": "Validation expressions", + "description": "Expression to validate user input.", + "examples": [ + "int(this.value) > 1 && int(this.value) <= 150", + "count(this.value) < 300" + ], + "items": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + } + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property to store collected information. Input will be skipped if property has value (unless 'Always prompt' is true).", + "examples": [ + "$birthday", + "user.name", + "conversation.issueTitle", + "dialog.favColor" + ], + "type": "string" + }, + "defaultValue": { + "$role": "expression", + "title": "Default value", + "description": "Expression to examine on each turn of the conversation as possible value to the property.", + "examples": [ + "@userName", + "coalesce(@number, @partySize)" + ], + "type": "string" + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "Gets or sets a value expression which can be used to intialize the input prompt.", + "examples": [ + "@userName" + ], + "type": "string" + }, + "alwaysPrompt": { + "type": "boolean", + "title": "Always prompt", + "description": "Collect information even if the specified 'property' is not empty.", + "default": false, + "examples": [ + false + ] + }, + "allowInterruptions": { + "$role": "expression", + "title": "Allow Interruptions", + "description": "A boolean expression that determines whether the parent should be allowed to interrupt the input.", + "default": "true", + "examples": [ + "true" + ], + "type": "string" + }, + "outputFormat": { + "$role": "expression", + "title": "Output format", + "description": "Expression to format the number output.", + "examples": [ + "int(this.value)" + ], + "type": "string" + }, + "defaultLocale": { + "type": "string", + "title": "Default locale", + "description": "Default locale.", + "default": "en-us" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Microsoft.OnUnknownIntent", - "description": "Action to perform when user input is unrecognized and if none of the 'on intent recognition' triggers match recognized intent.", - "$ref": "#/definitions/Microsoft.OnUnknownIntent" - } - ] - }, - "Microsoft.ITriggerSelector": { - "$role": "unionType", - "title": "Selectors", - "description": "Union of components which are trigger selectors", - "oneOf": [ - { - "title": "Microsoft.ConditionalSelector", - "description": "Use a rule selector based on a condition", - "$ref": "#/definitions/Microsoft.ConditionalSelector" + "Microsoft.NumberRangeEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "NumberRange Entity Recognizer", + "description": "Recognizer which recognizes ranges of numbers (Example:2 to 5).", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.NumberRangeEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Microsoft.FirstSelector", - "description": "Selector for first true rule", - "$ref": "#/definitions/Microsoft.FirstSelector" + "Microsoft.OAuthInput": { + "$role": "union(Microsoft.IDialog)", + "title": "OAuthInput Dialog", + "description": "Collect login information.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OAuthInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "connectionName": { + "type": "string", + "title": "Connection name", + "description": "The connection name configured in Azure Web App Bot OAuth settings.", + "examples": [ + "msgraphOAuthConnection" + ] + }, + "text": { + "type": "string", + "title": "Text", + "description": "Text shown in the OAuth signin card.", + "examples": [ + "Please sign in. " + ] + }, + "title": { + "type": "string", + "title": "Title", + "description": "Title shown in the OAuth signin card.", + "examples": [ + "Login" + ] + }, + "timeout": { + "type": "integer", + "title": "Timeout", + "description": "Time out setting for the OAuth signin card.", + "default": "900000" + }, + "tokenProperty": { + "$role": "expression", + "title": "Token property", + "description": "Property to store the OAuth token result.", + "examples": [ + "dialog.token" + ], + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "connectionName", + "$kind" + ] + } + ] }, - { - "title": "Microsoft.MostSpecificSelector", - "description": "Select most specific true events with optional additional selector", - "$ref": "#/definitions/Microsoft.MostSpecificSelector" + "Microsoft.OnActivity": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On activity", + "description": "Actions to perform on receipt of a generic activity.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + }, + "type": { + "type": "string", + "title": "Activity type", + "description": "The Activity.Type to match" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "type", + "$kind" + ] + } + ] }, - { - "title": "Microsoft.RandomSelector", - "description": "Select most specific true rule", - "$ref": "#/definitions/Microsoft.RandomSelector" + "Microsoft.OnBeginDialog": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On begin dialog", + "description": "Actions to perform when this dialog begins.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnBeginDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$kind" + ] + } + ] }, - { - "title": "Microsoft.TrueSelector", - "description": "Selector for all true events", - "$ref": "#/definitions/Microsoft.TrueSelector" - } - ] - }, - "Microsoft.IfCondition": { - "$role": "unionType(Microsoft.IDialog)", - "title": "If condition", - "description": "Two-way branch the conversation flow based on a condition.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.IfCondition" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Expression to evaluate.", - "examples": [ - "user.age > 3" - ], - "type": "string" - }, - "actions": { - "type": "array", - "title": "Actions", - "description": "Actions to execute if condition is true.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "elseActions": { - "type": "array", - "title": "Else", - "description": "Actions to execute if condition is false.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnCancelDialog": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On cancel dialog", + "description": "Actions to perform on cancel dialog event.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnCancelDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "condition", - "actions", - "$type" - ] - } - ] - }, - "Microsoft.InitProperty": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Initialize property", - "description": "Define and initialize a property to be an array or object.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.InitProperty" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "Property (named location to store information).", - "examples": [ - "user.age" - ], - "type": "string" - }, - "type": { - "type": "string", - "title": "Type", - "description": "Type of value.", - "enum": [ - "object", - "array" - ] - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnCondition": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On condition", + "description": "Actions to perform when specified condition is true.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnCondition" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "property", - "type", - "$type" - ] - } - ] - }, - "Microsoft.IpEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "Ip Entity Recognizer", - "description": "Recognizer which recognizes internet IP patterns (like 192.1.1.1).", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.IpEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnConversationUpdateActivity": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On ConversationUpdate activity", + "description": "Actions to perform on receipt of an activity with type 'ConversationUpdate'.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnConversationUpdateActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.LanguagePolicy": { - "title": "Language Policy", - "description": "This represents a policy map for locales lookups to use for language", - "type": "object", - "additionalProperties": false, - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.LanguagePolicy" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnCustomEvent": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On custom event", + "description": "Actions to perform when a custom event is detected. Use 'Emit a custom event' action to raise a custom event.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnCustomEvent" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + }, + "event": { + "type": "string", + "title": "Custom event name", + "description": "Name of the custom event." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "event", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.LogAction": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Log to console", - "description": "Log a message to the host application. Send a TraceActivity to Bot Framework Emulator (optional).", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.LogAction" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "text": { - "type": "string", - "title": "Text", - "description": "Information to log." - }, - "traceActivity": { - "type": "boolean", - "title": "Send Trace Activity", - "description": "If true, automatically sends a TraceActivity (view in Bot Framework Emulator).", - "default": false - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnDialogEvent": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On dialog event", + "description": "Actions to perform when a specific dialog event occurs.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnDialogEvent" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + }, + "event": { + "type": "string", + "title": "Dialog event name", + "description": "Name of dialog event." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "event", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "text", - "$type" - ] - } - ] - }, - "Microsoft.LuisRecognizer": { - "$role": "unionType(Microsoft.IRecognizer)", - "title": "LUIS Recognizer", - "description": "LUIS recognizer.", - "type": "object", - "additionalProperties": false, - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.LuisRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "applicationId": { - "type": "string" - }, - "endpoint": { - "type": "string" - }, - "endpointKey": { - "type": "string" - } - }, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnEndOfConversationActivity": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On EndOfConversation activity", + "description": "Actions to perform on receipt of an activity with type 'EndOfConversation'.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnEndOfConversationActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "applicationId", - "endpoint", - "endpointKey", - "$type" - ] - } - ] - }, - "Microsoft.MentionEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "Mentions Entity Recognizer", - "description": "Recognizer which recognizes @Mentions", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.MentionEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnError": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On Error", + "description": "Action to perform when an 'Error' dialog event occurs.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnError" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.MostSpecificSelector": { - "$role": "unionType(Microsoft.ITriggerSelector)", - "title": "Most Specific Trigger Selector", - "description": "Select most specific true events with optional additional selector", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.MostSpecificSelector" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "selector": { - "$type": "Microsoft.ITriggerSelector", - "$ref": "#/definitions/Microsoft.ITriggerSelector" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnEventActivity": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On Event activity", + "description": "Actions to perform on receipt of an activity with type 'Event'.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnEventActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.MultiLanguageRecognizer": { - "$role": "unionType(Microsoft.IRecognizer)", - "title": "Multi-language recognizer", - "description": "Configure one recognizer per language and the specify the language fallback policy.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.MultiLanguageRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "languagePolicy": { - "$type": "Microsoft.LanguagePolicy", - "type": "object", - "title": "Language policy", - "description": "Defines fall back languages to try per user input language.", - "$ref": "#/definitions/Microsoft.LanguagePolicy" - }, - "recognizers": { - "type": "object", - "title": "Recognizers", - "description": "Map of language -> IRecognizer", - "additionalProperties": { - "$type": "Microsoft.IRecognizer", - "$ref": "#/definitions/Microsoft.IRecognizer" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnHandoffActivity": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On Handoff activity", + "description": "Actions to perform on receipt of an activity with type 'HandOff'.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnHandoffActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "recognizers", - "$type" - ] - } - ] - }, - "Microsoft.NumberEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "Number Entity Recognizer", - "description": "Recognizer which recognizes numbers.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.NumberEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnIntent": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On intent recognition", + "description": "Actions to perform when specified intent is recognized.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnIntent" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + }, + "intent": { + "type": "string", + "title": "Intent", + "description": "Name of intent." + }, + "entities": { + "type": "array", + "title": "Entities", + "description": "Required entities.", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "intent", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.NumberInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Number input dialog", - "description": "Collect information - Ask for a number.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.NumberInput" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "Optional id for the dialog" - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial prompt", - "description": "Message to send to collect information.", - "examples": [ - "What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized prompt", - "description": "Message to send if user response is not recognized.", - "examples": [ - "Sorry, I do not understand '{turn.activity.text'}. Let's try again. What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid prompt", - "description": "Message to send if user response is invalid. Relies on specified validation expressions.", - "examples": [ - "Sorry, '{this.value}' does not work. I need a number between 1-150. What is your age?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", - "title": "Default value response", - "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", - "examples": [ - "Sorry, I'm having trouble understanding you. I will just use {this.options.defaultValue} for now. You can say 'I'm 36 years old' to change it." - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max turn count", - "description": "Maximum number of re-prompt attempts to collect information.", - "default": 3, - "examples": [ - 3 - ] - }, - "validations": { - "type": "array", - "title": "Validation expressions", - "description": "Expression to validate user input.", - "examples": [ - "int(this.value) > 1 && int(this.value) <= 150", - "count(this.value) < 300" - ], - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "Property to store collected information. Input will be skipped if property has value (unless 'Always prompt' is true).", - "examples": [ - "$birthday", - "user.name", - "conversation.issueTitle", - "dialog.favColor" - ], - "type": "string" - }, - "defaultValue": { - "$role": "expression", - "title": "Default value", - "description": "Expression to examine on each turn of the conversation as possible value to the property.", - "examples": [ - "@userName", - "coalesce(@number, @partySize)" - ], - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always prompt", - "description": "Collect information even if the specified 'property' is not empty.", - "default": false, - "examples": [ - false - ] - }, - "allowInterruptions": { - "type": "string", - "title": "Allow Interruptions", - "description": "A boolean expression that determines whether the parent should be allowed to interrupt the input.", - "default": "true", - "examples": [ - "true" - ] - }, - "outputFormat": { - "type": "string", - "enum": [ - "float", - "integer" - ], - "title": "Output format", - "description": "Number output format.", - "default": "float" - }, - "defaultLocale": { - "type": "string", - "title": "Default locale", - "description": "Default locale.", - "default": "en-us" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnInvokeActivity": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On Invoke activity", + "description": "Actions to perform on receipt of an activity with type 'Invoke'.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnInvokeActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.NumberRangeEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "NumberRange Entity Recognizer", - "description": "Recognizer which recognizes ranges of numbers (Example:2 to 5).", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.NumberRangeEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnMessageActivity": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On Message activity", + "description": "Actions to perform on receipt of an activity with type 'Message'. Overrides Intent trigger.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnMessageActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.OAuthInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "OAuthInput Dialog", - "description": "Collect login information.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OAuthInput" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "connectionName": { - "type": "string", - "title": "Connection name", - "description": "The connection name configured in Azure Web App Bot OAuth settings.", - "examples": [ - "msgraphOAuthConnection" - ] - }, - "text": { - "type": "string", - "title": "Text", - "description": "Text shown in the OAuth signin card.", - "examples": [ - "Please sign in. " - ] - }, - "title": { - "type": "string", - "title": "Title", - "description": "Title shown in the OAuth signin card.", - "examples": [ - "Login" - ] - }, - "timeout": { - "type": "integer", - "title": "Timeout", - "description": "Time out setting for the OAuth signin card.", - "default": "900000" - }, - "tokenProperty": { - "$role": "expression", - "title": "Token property", - "description": "Property to store the OAuth token result.", - "examples": [ - "dialog.token" - ], - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnMessageDeleteActivity": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On MessageDelete activity", + "description": "Actions to perform on receipt of an activity with type 'MessageDelete'.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnMessageDeleteActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "connectionName", - "$type" - ] - } - ] - }, - "Microsoft.OnActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On activity", - "description": "Actions to perform on receipt of a generic activity.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnActivity" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "type": { - "type": "string", - "title": "Activity type", - "description": "The Activity.Type to match" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnMessageReactionActivity": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On MessageReaction activity", + "description": "Actions to perform on receipt of an activity with type 'MessageReaction'.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnMessageReactionActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "type", - "$type" - ] - } - ] - }, - "Microsoft.OnBeginDialog": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On begin dialog", - "description": "Actions to perform when this dialog begins.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnBeginDialog" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnMessageUpdateActivity": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On MessageUpdate activity", + "description": "Actions to perform on receipt of an activity with type 'MessageUpdate'.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnMessageUpdateActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] - }, - "Microsoft.OnCancelDialog": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On cancel dialog", - "description": "Actions to perform on cancel dialog event.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnCancelDialog" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnRepromptDialog": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On RepromptDialog", + "description": "Actions to perform when 'RepromptDialog' event occurs.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnRepromptDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] - }, - "Microsoft.OnCondition": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On condition", - "description": "Actions to perform when specified condition is true.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnCondition" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnTypingActivity": { + "$role": "union(Microsoft.ITriggerCondition)", + "title": "On Typing activity", + "description": "Actions to perform on receipt of an activity with type 'Typing'.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnTypingActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] - }, - "Microsoft.OnConversationUpdateActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On ConversationUpdate activity", - "description": "Actions to perform on receipt of an activity with type 'ConversationUpdate'.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnConversationUpdateActivity" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OnUnknownIntent": { + "title": "On unknown intent", + "description": "Action to perform when user input is unrecognized and if none of the 'on intent recognition' triggers match recognized intent.", + "type": "object", + "$role": "union(Microsoft.ITriggerCondition)", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnUnknownIntent" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Condition (expression).", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] - }, - "Microsoft.OnCustomEvent": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On custom event", - "description": "Actions to perform when a custom event is detected. Use 'Emit a custom event' action to raise a custom event.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnCustomEvent" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "event": { - "type": "string", - "title": "Custom event name", - "description": "Name of the custom event." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.OrdinalEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "Ordinal Entity Recognizer", + "description": "Recognizer which recognizes ordinals (example: first, second, 3rd).", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OrdinalEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "event", - "$type" - ] - } - ] - }, - "Microsoft.OnDialogEvent": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On dialog event", - "description": "Actions to perform when a specific dialog event occurs.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnDialogEvent" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "event": { - "type": "string", - "title": "Dialog event name", - "description": "Name of dialog event." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.PercentageEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "Percentage Entity Recognizer", + "description": "Recognizer which recognizes percentages.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.PercentageEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "event", - "$type" - ] - } - ] - }, - "Microsoft.OnEndOfConversationActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On EndOfConversation activity", - "description": "Actions to perform on receipt of an activity with type 'EndOfConversation'.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnEndOfConversationActivity" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.PhoneNumberEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "Phone Number Entity Recognizer", + "description": "Recognizer which recognizes phone numbers.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.PhoneNumberEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] - }, - "Microsoft.OnError": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On Error", - "description": "Action to perform when an 'Error' dialog event occurs.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnError" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.QnAMakerDialog": { + "$role": "union(Microsoft.IDialog)", + "title": "QnAMaker Dialog", + "description": "Dialog which uses QnAMAker knowledge base to answer questions.", + "type": "object", + "additionalProperties": false, + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.QnAMakerDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "knowledgeBaseId": { + "$role": "expression", + "title": "KnowledgeBase Id", + "description": "KnowledgeBase Id of your QnA Maker KnowledgeBase.", + "default": "settings.qna.knowledgebaseid", + "type": "string" + }, + "endpointKey": { + "$role": "expression", + "title": "Endpoint Key", + "description": "Endpoint key for the QnA Maker KB.", + "default": "settings.qna.endpointkey", + "type": "string" + }, + "hostname": { + "$role": "expression", + "title": "Hostname", + "description": "Hostname for your QnA Maker service.", + "default": "settings.qna.hostname", + "examples": [ + "https://yourserver.azurewebsites.net/qnamaker" + ], + "type": "string" + }, + "noAnswer": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Fallback answer", + "description": "Default answer to return when none found in KB.", + "default": "Sorry, I did not find an answer.", + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "threshold": { + "type": "number", + "title": "Threshold", + "description": "Threshold score to filter results.", + "default": 0.3 + }, + "activeLearningCardTitle": { + "type": "string", + "title": "Active learning card title", + "description": "Title for active learning suggestions card.", + "default": "Did you mean:" + }, + "cardNoMatchText": { + "type": "string", + "title": "Card no match text", + "description": "Text for no match option.", + "default": "None of the above." + }, + "cardNoMatchResponse ": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Card no match response", + "description": "Custom response when no match option was selected.", + "default": "Thanks for the feedback.", + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "strictFilters": { + "type": "array", + "title": "Strict Filters", + "description": "Metadata filters to use when calling the QnA Maker KB.", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "Name", + "maximum": 100 + }, + "value": { + "type": "string", + "title": "Value", + "maximum": 100 + } + } + } + }, + "top": { + "type": "number", + "title": "Top", + "description": "The number of answers you want to retrieve.", + "default": 3 + } + }, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "knowledgeBaseId", + "endpointKey", + "hostname", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] - }, - "Microsoft.OnEventActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On Event activity", - "description": "Actions to perform on receipt of an activity with type 'Event'.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnEventActivity" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.RandomSelector": { + "$role": "union(Microsoft.ITriggerSelector)", + "title": "Random rule selector", + "description": "Select most specific true rule", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.RandomSelector" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "seed": { + "type": "integer" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] - }, - "Microsoft.OnHandoffActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On Handoff activity", - "description": "Actions to perform on receipt of an activity with type 'HandOff'.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnHandoffActivity" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.RegExEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "Regex Entity Recognizer", + "description": "Recognizer which recognizes patterns of input based on regex.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.RegExEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "name": { + "type": "string", + "title": "Name", + "description": "Name of the entity" + }, + "pattern": { + "type": "string", + "title": "Pattern", + "description": "Pattern expressed as regular expression." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "name", + "pattern", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] - }, - "Microsoft.OnIntent": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On intent recognition", - "description": "Actions to perform when specified intent is recognized.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnIntent" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "intent": { - "type": "string", - "title": "Intent", - "description": "Name of intent." - }, - "entities": { - "type": "array", - "title": "Entities", - "description": "Required entities.", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.RegexRecognizer": { + "$role": "union(Microsoft.IRecognizer)", + "title": "Regex recognizer", + "description": "Use regular expressions to recognize intents and entities from user input.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.RegexRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "intents": { + "type": "array", + "title": "RegEx patterns to intents", + "description": "Collection of patterns to match for an intent.", + "items": { + "type": "object", + "properties": { + "intent": { + "type": "string", + "title": "Intent", + "description": "The intent name." + }, + "pattern": { + "type": "string", + "title": "Pattern", + "description": "The regular expression pattern." + } + } + } + }, + "entities": { + "type": "array", + "title": "Entity recognizers", + "description": "Collection of entity recognizers to use.", + "items": { + "$kind": "Microsoft.EntityRecognizers", + "$ref": "#/definitions/Microsoft.EntityRecognizers" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "intents", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "intent", - "$type" - ] - } - ] - }, - "Microsoft.OnInvokeActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On Invoke activity", - "description": "Actions to perform on receipt of an activity with type 'Invoke'.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnInvokeActivity" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.RepeatDialog": { + "$role": "union(Microsoft.IDialog)", + "type": "object", + "title": "Repeat dialog", + "description": "Repeat current dialog.", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.RepeatDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "options": { + "type": "object", + "title": "Options", + "description": "One or more options that are passed to the dialog that is called.", + "additionalProperties": { + "type": "string", + "title": "Options" + } + }, + "includeActivity": { + "type": "boolean", + "title": "Include Activity", + "description": "When set to true, dialog that is called can process the current activity.", + "default": false + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] - }, - "Microsoft.OnMessageActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On Message activity", - "description": "Actions to perform on receipt of an activity with type 'Message'. Overrides Intent trigger.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnMessageActivity" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.ReplaceDialog": { + "$role": "union(Microsoft.IDialog)", + "type": "object", + "title": "Replace dialog", + "description": "Replace current dialog with another dialog.", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.ReplaceDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "dialog": { + "$kind": "Microsoft.IDialog", + "title": "Dialog name", + "description": "Name of the dialog to call.", + "examples": [ + "AddToDoDialog" + ], + "$ref": "#/definitions/Microsoft.IDialog" + }, + "options": { + "type": "object", + "title": "Options", + "description": "One or more options that are passed to the dialog that is called.", + "additionalProperties": { + "type": "string", + "title": "Options" + } + }, + "includeActivity": { + "type": "boolean", + "title": "Include Activity", + "description": "When set to true, dialog that is called can process the current activity.", + "default": false + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] - }, - "Microsoft.OnMessageDeleteActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On MessageDelete activity", - "description": "Actions to perform on receipt of an activity with type 'MessageDelete'.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnMessageDeleteActivity" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.SendActivity": { + "$role": "union(Microsoft.IDialog)", + "title": "Send an activity", + "description": "Respond with an activity.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.SendActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "activity": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Activity", + "description": "Activity to send.", + "$ref": "#/definitions/Microsoft.IActivityTemplate" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] - }, - "Microsoft.OnMessageReactionActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On MessageReaction activity", - "description": "Actions to perform on receipt of an activity with type 'MessageReaction'.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnMessageReactionActivity" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.SetProperties": { + "$role": "union(Microsoft.IDialog)", + "title": "Set property", + "description": "Set one or more property values.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.SetProperties" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "assignments": { + "type": "array", + "title": "Assignments", + "description": "Property value assignments to set.", + "items": { + "type": "object", + "properties": { + "property": { + "$role": "expression", + "title": "Property", + "description": "Property (named location to store information).", + "examples": [ + "user.age" + ], + "type": "string" + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "New value or expression.", + "examples": [ + "'milk'", + "dialog.favColor", + "dialog.favColor == 'red'" + ], + "type": "string" + } + } + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "assignments", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] - }, - "Microsoft.OnMessageUpdateActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On MessageUpdate activity", - "description": "Actions to perform on receipt of an activity with type 'MessageUpdate'.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnMessageUpdateActivity" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.SetProperty": { + "$role": "union(Microsoft.IDialog)", + "title": "Set property", + "description": "Set property to a value.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.SetProperty" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property (named location to store information).", + "examples": [ + "user.age" + ], + "type": "string" + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "New value or expression.", + "examples": [ + "'milk'", + "dialog.favColor", + "dialog.favColor == 'red'" + ], + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "property", + "value", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] - }, - "Microsoft.OnRepromptDialog": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On RepromptDialog", - "description": "Actions to perform when 'RepromptDialog' event occurs.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnRepromptDialog" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.StaticActivityTemplate": { + "$role": "union(Microsoft.IActivityTemplate)", + "title": "Microsoft Static Activity Template", + "description": "This allows you to define a static Activity object", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.StaticActivityTemplate" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "activity": { + "type": "object", + "title": "Activity", + "Description": "A static Activity to used" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "activity", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] - }, - "Microsoft.OnTypingActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", - "title": "On Typing activity", - "description": "Actions to perform on receipt of an activity with type 'Typing'.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnTypingActivity" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.SwitchCondition": { + "$role": "union(Microsoft.IDialog)", + "title": "Switch condition", + "description": "Execute different actions based on the value of a property.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.SwitchCondition" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Property to evaluate.", + "examples": [ + "user.favColor" + ], + "type": "string" + }, + "cases": { + "type": "array", + "title": "Cases", + "desc": "Actions for each possible condition.", + "items": { + "type": "object", + "required": [ + "value", + "case" + ], + "properties": { + "value": { + "$role": "expression", + "title": "Value", + "description": "Value.", + "examples": [ + "'red'", + "dialog.colors.red" + ], + "type": "string" + }, + "actions": { + "type": "array", + "title": "Actions", + "description": "Actions to execute.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + } + } + }, + "default": { + "type": "array", + "title": "Default", + "description": "Actions to execute if none of the cases meet the condition.", + "items": { + "$kind": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "condition", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] - }, - "Microsoft.OnUnknownIntent": { - "title": "On unknown intent", - "description": "Action to perform when user input is unrecognized and if none of the 'on intent recognition' triggers match recognized intent.", - "type": "object", - "$role": "unionType(Microsoft.ITriggerCondition)", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OnUnknownIntent" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Condition (expression).", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.TemperatureEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "Temperature Entity Recognizer", + "description": "Recognizer which recognizes temperatures.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.TemperatureEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] - }, - "Microsoft.OrdinalEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "Ordinal Entity Recognizer", - "description": "Recognizer which recognizes ordinals (example: first, second, 3rd).", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OrdinalEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.Test.AssertCondition": { + "$role": "union(Microsoft.IDialog)", + "title": "Assert Condition", + "description": "Assert condition is true.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.AssertCondition" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Expression to evalute", + "examples": [ + "user.age > 10" + ], + "type": "string" + }, + "description": { + "type": "string", + "title": "Description", + "description": "Description of what the condition is testing" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.PercentageEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "Percentage Entity Recognizer", - "description": "Recognizer which recognizes percentages.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.PercentageEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.Test.AssertReply": { + "$role": "union(Microsoft.Test.ITestAction)", + "title": "Assert Reply", + "description": "Asserts that a reply text is valid.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.AssertReply" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "text": { + "type": "string", + "title": "Reply Text", + "description": "Expected reply text" + }, + "exact": { + "type": "boolean", + "title": "Exact Match", + "description": "If true then an exact match must happen, if false then the reply activity.text must contain the reply text. [Default:false]" + }, + "description": { + "type": "string", + "title": "Description", + "description": "The description of what the assertion is testing" + }, + "timeout": { + "type": "number", + "title": "Timeout", + "description": "The amount of time in milliseconds to wait for a reply (default is 3000)" + }, + "assertions": { + "type": "array", + "title": "Assertions to perform to validate Activity that is sent by the dialog", + "description": "Sequence of expressions which must evaluate to true.", + "items": { + "$role": "expression", + "title": "Assertion", + "description": "Assertion as an expression, which must evaluate to true or it will fail the test script.", + "examples": [ + "user.vip == true" + ], + "type": "string" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "text", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.PhoneNumberEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "Phone Number Entity Recognizer", - "description": "Recognizer which recognizes phone numbers.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.PhoneNumberEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.Test.AssertReplyActivity": { + "$role": "union(Microsoft.Test.ITestAction)", + "title": "Assert Reply Activity", + "description": "Asserts that a reply activity is valid.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.AssertReplyActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "description": { + "type": "string", + "title": "Description", + "description": "The description of what the assertion is testing" + }, + "timeout": { + "type": "number", + "title": "Timeout", + "description": "The amount of time in milliseconds to wait for a reply (default is 3000)" + }, + "assertions": { + "type": "array", + "title": "Assertions to perform to validate Activity that is sent by the dialog", + "description": "Sequence of expressions which must evaluate to true.", + "items": { + "$role": "expression", + "title": "Assertion", + "description": "Assertion as an expression, which must evaluate to true or it will fail the test script.", + "examples": [ + "user.vip == true" + ], + "type": "string" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "assertions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.QnAMakerDialog": { - "$role": "unionType(Microsoft.IDialog)", - "title": "QnAMaker Dialog", - "description": "Dialog which uses QnAMAker knowledge base to answer questions.", - "type": "object", - "additionalProperties": false, - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.QnAMakerDialog" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "knowledgeBaseId": { - "$role": "expression", - "title": "KnowledgeBase Id", - "description": "KnowledgeBase Id of your QnA Maker KnowledgeBase.", - "default": "settings.qna.knowledgebaseid", - "type": "string" - }, - "endpointKey": { - "$role": "expression", - "title": "Endpoint Key", - "description": "Endpoint key for the QnA Maker KB.", - "default": "settings.qna.endpointkey", - "type": "string" - }, - "hostname": { - "$role": "expression", - "title": "Hostname", - "description": "Hostname for your QnA Maker service.", - "default": "settings.qna.hostname", - "examples": [ - "https://yourserver.azurewebsites.net/qnamaker" - ], - "type": "string" - }, - "noAnswer": { - "$type": "Microsoft.IActivityTemplate", - "title": "Fallback answer", - "description": "Default answer to return when none found in KB.", - "default": "Sorry, I did not find an answer.", - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "threshold": { - "type": "number", - "title": "Threshold", - "description": "Threshold score to filter results.", - "default": 0.3 - }, - "activeLearningCardTitle": { - "type": "string", - "title": "Active learning card title", - "description": "Title for active learning suggestions card.", - "default": "Did you mean:" - }, - "cardNoMatchText": { - "type": "string", - "title": "Card no match text", - "description": "Text for no match option.", - "default": "None of the above." - }, - "cardNoMatchResponse ": { - "$type": "Microsoft.IActivityTemplate", - "title": "Card no match response", - "description": "Custom response when no match option was selected.", - "default": "Thanks for the feedback.", - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "strictFilters": { - "type": "array", - "title": "Strict Filter Property", - "description": "Memory property that holds strict filters to use when calling the QnA Maker KB.", - "items": { - "type": "object" - } - } - }, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.Test.AssertReplyOneOf": { + "$role": "union(Microsoft.Test.ITestAction)", + "title": "Assert Reply OneOf", + "description": "Asserts that a reply text is one of multiple optional responses.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.AssertReplyOneOf" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "text": { + "type": "array", + "title": "Replies", + "description": "Expected replies (one of which must match", + "items": { + "type": "string" + } + }, + "exact": { + "type": "boolean", + "title": "Exact Match", + "description": "If true then an exact match must happen, if false then the reply activity.text must contain the reply text. [Default:false]" + }, + "description": { + "type": "string", + "title": "Description", + "description": "The description of what the assertion is testing" + }, + "timeout": { + "type": "number", + "title": "Timeout", + "description": "The amount of time in milliseconds to wait for a reply (default is 3000)" + }, + "assertions": { + "type": "array", + "title": "Assertions to perform to validate Activity that is sent by the dialog", + "description": "Sequence of expressions which must evaluate to true.", + "items": { + "$role": "expression", + "title": "Assertion", + "description": "Assertion as an expression, which must evaluate to true or it will fail the test script.", + "examples": [ + "user.vip == true" + ], + "type": "string" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "replies", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "knowledgeBaseId", - "endpointKey", - "hostname", - "$type" - ] - } - ] - }, - "Microsoft.RandomSelector": { - "$role": "unionType(Microsoft.ITriggerSelector)", - "title": "Random rule selector", - "description": "Select most specific true rule", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.RandomSelector" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "seed": { - "type": "integer" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.Test.ITestAction": { + "title": "Microsoft Test ITestAction", + "description": "Union of components which implement the Test.ITestAction interface", + "$role": "union", + "oneOf": [ + { + "title": "Microsoft.Test.AssertReply", + "description": "Asserts that a reply text is valid.", + "$ref": "#/definitions/Microsoft.Test.AssertReply" + }, + { + "title": "Microsoft.Test.AssertReplyActivity", + "description": "Asserts that a reply activity is valid.", + "$ref": "#/definitions/Microsoft.Test.AssertReplyActivity" + }, + { + "title": "Microsoft.Test.AssertReplyOneOf", + "description": "Asserts that a reply text is one of multiple optional responses.", + "$ref": "#/definitions/Microsoft.Test.AssertReplyOneOf" + }, + { + "title": "Microsoft.Test.UserActivity", + "description": "Sends activity to the bot.", + "$ref": "#/definitions/Microsoft.Test.UserActivity" + }, + { + "title": "Microsoft.Test.UserConversationUpdate", + "description": "Sends ConversationUpdate activity to the bot.", + "$ref": "#/definitions/Microsoft.Test.UserConversationUpdate" + }, + { + "title": "Microsoft.Test.UserDelay", + "description": "Delays text script for time period.", + "$ref": "#/definitions/Microsoft.Test.UserDelay" + }, + { + "title": "Microsoft.Test.UserSays", + "description": "Sends text to the bot from the user.", + "$ref": "#/definitions/Microsoft.Test.UserSays" + }, + { + "title": "Microsoft.Test.UserTyping", + "description": "Sends typing activity to the bot.", + "$ref": "#/definitions/Microsoft.Test.UserTyping" + } + ] }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.RegExEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "Regex Entity Recognizer", - "description": "Recognizer which recognizes patterns of input based on regex.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.RegExEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "name": { - "type": "string", - "title": "Name", - "description": "Name of the entity" - }, - "pattern": { - "type": "string", - "title": "Pattern", - "description": "Pattern expressed as regular expression." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.Test.Script": { + "title": "Test Script", + "description": "Defines a sequence of test actions to perform to validate the behavior of dialogs.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.Script" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "dialog": { + "$kind": "Microsoft.IDialog", + "title": "Dialog", + "description": "The root dialog to execute the test script against.", + "$ref": "#/definitions/Microsoft.IDialog" + }, + "description": { + "type": "string", + "title": "Description", + "description": "Description of the test script" + }, + "script": { + "type": "array", + "description": "Sequence of test actions to execute.", + "items": { + "$kind": "Microsoft.Test.ITestAction", + "$ref": "#/definitions/Microsoft.Test.ITestAction" + } + }, + "enableTrace": { + "type": "boolean", + "title": "Enable Trace Activity", + "description": "Enable trace activities in the unit test (default is false)", + "default": false + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "dialog", + "testActions", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "name", - "pattern", - "$type" - ] - } - ] - }, - "Microsoft.RegexRecognizer": { - "$role": "unionType(Microsoft.IRecognizer)", - "title": "Regex recognizer", - "description": "Use regular expressions to recognize intents and entities from user input.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.RegexRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "intents": { - "type": "array", - "title": "RegEx patterns to intents", - "description": "Collection of patterns to match for an intent.", - "items": { + "Microsoft.Test.UserActivity": { + "$role": "union(Microsoft.Test.ITestAction)", + "title": "Send Activity", + "description": "Sends activity to the bot.", "type": "object", "properties": { - "intent": { - "type": "string", - "title": "Intent", - "description": "The intent name." - }, - "pattern": { - "type": "string", - "title": "Pattern", - "description": "The regular expression pattern." - } - } - } - }, - "entities": { - "type": "array", - "title": "Entity recognizers", - "description": "Collection of entity recognizers to use.", - "items": { - "$type": "Microsoft.EntityRecognizers", - "$ref": "#/definitions/Microsoft.EntityRecognizers" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "intents", - "$type" - ] - } - ] - }, - "Microsoft.RepeatDialog": { - "$role": "unionType(Microsoft.IDialog)", - "type": "object", - "title": "Repeat dialog", - "description": "Repeat current dialog.", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.RepeatDialog" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.ReplaceDialog": { - "$role": "unionType(Microsoft.IDialog)", - "type": "object", - "title": "Replace dialog", - "description": "Replace current dialog with another dialog.", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.ReplaceDialog" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "dialog": { - "$type": "Microsoft.IDialog", - "title": "Dialog name", - "description": "Current dialog will be replaced by this dialog.", - "$ref": "#/definitions/Microsoft.IDialog" - }, - "options": { - "type": "object", - "title": "Options", - "description": "One or more options that are passed to the dialog that is called.", - "additionalProperties": { - "type": "string", - "title": "Options" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.SendActivity": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Send an activity", - "description": "Respond with an activity.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.SendActivity" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "activity": { - "$type": "Microsoft.IActivityTemplate", - "title": "Activity", - "description": "Activity to send.", - "$ref": "#/definitions/Microsoft.IActivityTemplate" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.SetProperty": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Set property", - "description": "Set property to a value.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.SetProperty" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "Property (named location to store information).", - "examples": [ - "user.age" - ], - "type": "string" - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "New value or expression.", - "examples": [ - "'milk'", - "dialog.favColor", - "dialog.favColor == 'red'" - ], - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.UserActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "activity": { + "type": "object", + "additionalProperties": true + }, + "user": { + "type": "string", + "title": "User Name", + "description": "The activity.from.id and activity.from.name will be this if specified." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "activity", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "property", - "value", - "$type" - ] - } - ] - }, - "Microsoft.StaticActivityTemplate": { - "$role": "unionType(Microsoft.IActivityTemplate)", - "title": "Microsoft Static Activity Template", - "description": "This allows you to define a static Activity object", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.StaticActivityTemplate" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "activity": { - "type": "object", - "title": "Activity", - "Description": "A static Activity to used" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.Test.UserConversationUpdate": { + "$role": "union(Microsoft.Test.ITestAction)", + "title": "Send ConversationUpdate", + "description": "Sends ConversationUpdate activity to the bot.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.UserConversationUpdate" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "membersAdded": { + "type": "array", + "title": "Members Added", + "description": "Names of the members to add", + "items": { + "type": "string" + } + }, + "membersRemoved": { + "type": "array", + "title": "Members Removed", + "description": "Names of the members to remove", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "activity", - "$type" - ] - } - ] - }, - "Microsoft.SwitchCondition": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Switch condition", - "description": "Execute different actions based on the value of a property.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.SwitchCondition" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Property to evaluate.", - "examples": [ - "user.favColor" - ], - "type": "string" - }, - "cases": { - "type": "array", - "title": "Cases", - "desc": "Actions for each possible condition.", - "items": { + "Microsoft.Test.UserDelay": { + "$role": "union(Microsoft.Test.ITestAction)", + "title": "Delay Execution", + "description": "Delays text script for time period.", "type": "object", - "required": [ - "value", - "case" - ], "properties": { - "value": { - "$role": "expression", - "title": "Value", - "description": "Value.", - "examples": [ - "'red'", - "dialog.colors.red" - ], - "type": "string" - }, - "actions": { - "type": "array", - "title": "Actions", - "description": "Actions to execute.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - } - } - }, - "default": { - "type": "array", - "title": "Default", - "description": "Actions to execute if none of the cases meet the condition.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.UserDelay" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "timespan": { + "type": "number", + "title": "Timespan", + "description": "The amount of time in milliseconds to delay the execution of the test script" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "timespan", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "condition", - "$type" - ] - } - ] - }, - "Microsoft.TemperatureEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "Temperature Entity Recognizer", - "description": "Recognizer which recognizes temperatures.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.TemperatureEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.Test.UserSays": { + "$role": "union(Microsoft.Test.ITestAction)", + "title": "User Text", + "description": "Sends text to the bot from the user.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.UserSays" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "text": { + "type": "string", + "title": "Text", + "description": "Text to send to the bot." + }, + "user": { + "type": "string", + "title": "User Name", + "description": "The activity.from.id and activity.from.name will be this if specified." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "text", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.TextInput": { - "$role": "unionType(Microsoft.IDialog)", - "type": "object", - "title": "Text input dialog", - "description": "Collection information - Ask for a word or sentence.", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.TextInput" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "Optional id for the dialog" - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial prompt", - "description": "Message to send to collect information.", - "examples": [ - "What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized prompt", - "description": "Message to send if user response is not recognized.", - "examples": [ - "Sorry, I do not understand '{turn.activity.text'}. Let's try again. What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid prompt", - "description": "Message to send if user response is invalid. Relies on specified validation expressions.", - "examples": [ - "Sorry, '{this.value}' does not work. I need a number between 1-150. What is your age?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", - "title": "Default value response", - "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", - "examples": [ - "Sorry, I'm having trouble understanding you. I will just use {this.options.defaultValue} for now. You can say 'I'm 36 years old' to change it." - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max turn count", - "description": "Maximum number of re-prompt attempts to collect information.", - "default": 3, - "examples": [ - 3 - ] - }, - "validations": { - "type": "array", - "title": "Validation expressions", - "description": "Expression to validate user input.", - "examples": [ - "int(this.value) > 1 && int(this.value) <= 150", - "count(this.value) < 300" - ], - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "Property to store collected information. Input will be skipped if property has value (unless 'Always prompt' is true).", - "examples": [ - "$birthday", - "user.name", - "conversation.issueTitle", - "dialog.favColor" - ], - "type": "string" - }, - "defaultValue": { - "$role": "expression", - "title": "Default value", - "description": "Expression to examine on each turn of the conversation as possible value to the property.", - "examples": [ - "@userName", - "coalesce(@number, @partySize)" - ], - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always prompt", - "description": "Collect information even if the specified 'property' is not empty.", - "default": false, - "examples": [ - false - ] - }, - "allowInterruptions": { - "type": "string", - "title": "Allow Interruptions", - "description": "A boolean expression that determines whether the parent should be allowed to interrupt the input.", - "default": "true", - "examples": [ - "true" - ] - }, - "outputFormat": { - "type": "string", - "enum": [ - "none", - "trim", - "lowercase", - "uppercase" - ], - "title": "Output format", - "description": "Format of output.", - "default": "none" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.Test.UserTyping": { + "$role": "union(Microsoft.Test.ITestAction)", + "title": "Send Typing", + "description": "Sends typing activity to the bot.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.UserTyping" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "user": { + "type": "string", + "title": "User Name", + "description": "The activity.from.id and activity.from.name will be this if specified." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.TextTemplate": { - "$role": "unionType(Microsoft.ITextTemplate)", - "title": "Microsoft TextTemplate", - "description": "Lg tempalte to evaluate to create text", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.TextTemplate" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "template": { - "title": "Template", - "Description": "Language Generator template to evaluate to create the text", - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.TextInput": { + "$role": "union(Microsoft.IDialog)", + "type": "object", + "title": "Text input dialog", + "description": "Collection information - Ask for a word or sentence.", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.TextInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "Optional id for the dialog" + }, + "prompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Initial prompt", + "description": "Message to send to collect information.", + "examples": [ + "What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "unrecognizedPrompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Unrecognized prompt", + "description": "Message to send if user response is not recognized.", + "examples": [ + "Sorry, I do not understand '{turn.activity.text'}. Let's try again. What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "invalidPrompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Invalid prompt", + "description": "Message to send if user response is invalid. Relies on specified validation expressions.", + "examples": [ + "Sorry, '{this.value}' does not work. I need a number between 1-150. What is your age?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "defaultValueResponse": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Default value response", + "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", + "examples": [ + "Sorry, I'm having trouble understanding you. I will just use {this.options.defaultValue} for now. You can say 'I'm 36 years old' to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "maxTurnCount": { + "type": "integer", + "title": "Max turn count", + "description": "Maximum number of re-prompt attempts to collect information.", + "default": 3, + "examples": [ + 3 + ] + }, + "validations": { + "type": "array", + "title": "Validation expressions", + "description": "Expression to validate user input.", + "examples": [ + "int(this.value) > 1 && int(this.value) <= 150", + "count(this.value) < 300" + ], + "items": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + } + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property to store collected information. Input will be skipped if property has value (unless 'Always prompt' is true).", + "examples": [ + "$birthday", + "user.name", + "conversation.issueTitle", + "dialog.favColor" + ], + "type": "string" + }, + "defaultValue": { + "$role": "expression", + "title": "Default value", + "description": "Expression to examine on each turn of the conversation as possible value to the property.", + "examples": [ + "@userName", + "coalesce(@number, @partySize)" + ], + "type": "string" + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "Gets or sets a value expression which can be used to intialize the input prompt.", + "examples": [ + "@userName" + ], + "type": "string" + }, + "alwaysPrompt": { + "type": "boolean", + "title": "Always prompt", + "description": "Collect information even if the specified 'property' is not empty.", + "default": false, + "examples": [ + false + ] + }, + "allowInterruptions": { + "$role": "expression", + "title": "Allow Interruptions", + "description": "A boolean expression that determines whether the parent should be allowed to interrupt the input.", + "default": "true", + "examples": [ + "true" + ], + "type": "string" + }, + "outputFormat": { + "$role": "expression", + "title": "Output format", + "description": "Expression to format the output.", + "examples": [ + "toUpper(this.value)" + ], + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "template", - "$type" - ] - } - ] - }, - "Microsoft.TraceActivity": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Send a TraceActivity", - "description": "Send a trace activity to the transcript logger and/ or Bot Framework Emulator.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.TraceActivity" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "name": { - "type": "string", - "title": "Name", - "description": "Name of the trace activity" - }, - "valueType": { - "type": "string", - "title": "Value type", - "description": "Type of value" - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "Property that holds the value to send as trace activity.", - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.TextTemplate": { + "$role": "union(Microsoft.ITextTemplate)", + "title": "Microsoft TextTemplate", + "description": "Lg tempalte to evaluate to create text", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.TextTemplate" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "template": { + "title": "Template", + "Description": "Language Generator template to evaluate to create the text", + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "template", + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.TrueSelector": { - "$role": "unionType(Microsoft.ITriggerSelector)", - "title": "True Trigger Selector", - "description": "Selector for all true events", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.TrueSelector" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.TraceActivity": { + "$role": "union(Microsoft.IDialog)", + "title": "Send a TraceActivity", + "description": "Send a trace activity to the transcript logger and/ or Bot Framework Emulator.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.TraceActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "name": { + "type": "string", + "title": "Name", + "description": "Name of the trace activity" + }, + "valueType": { + "type": "string", + "title": "Value type", + "description": "Type of value" + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "Property that holds the value to send as trace activity.", + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.UrlEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", - "title": "Url Entity Recognizer", - "description": "Recognizer which recognizes urls (example: http://bing.com)", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.UrlEntityRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Designer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] + "Microsoft.TrueSelector": { + "$role": "union(Microsoft.ITriggerSelector)", + "title": "True Trigger Selector", + "description": "Selector for all true events", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.TrueSelector" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] }, - { - "title": "Type", - "required": [ - "$type" - ] + "Microsoft.UrlEntityRecognizer": { + "$role": "union(Microsoft.EntityRecognizers)", + "title": "Url Entity Recognizer", + "description": "Recognizer which recognizes urls (example: http://bing.com)", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.UrlEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] } - ] } - } } diff --git a/BotProject/Templates/CSharp/Tests/InputsTests.cs b/BotProject/Templates/CSharp/Tests/InputsTests.cs index f72f0a28eb..0bf735d2fe 100644 --- a/BotProject/Templates/CSharp/Tests/InputsTests.cs +++ b/BotProject/Templates/CSharp/Tests/InputsTests.cs @@ -49,7 +49,7 @@ public async Task Inputs_01TextInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-04{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)) + .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-07{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)) .Send("01") .AssertReply("Hello, I'm Zoidberg. What is your name? (This can't be interrupted)") .Send("02") @@ -64,7 +64,7 @@ public async Task Inputs_02NumberInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-04{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)) + .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-07{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)) .Send("02") .AssertReply("What is your age?") .Send("18") @@ -80,7 +80,7 @@ public async Task Inputs_03ConfirmInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-04{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)) + .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-07{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)) .Send("03") .AssertReply("yes or no (1) Yes or (2) No") .Send("asdasd") @@ -95,7 +95,7 @@ public async Task Inputs_04ChoiceInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-04{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)).Send("04") + .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-07{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)).Send("04") .AssertReply("Please select a value from below:\n\n 1. Test1\n 2. Test2\n 3. Test3") .Send("Test1") .AssertReply("You select: Test1") @@ -107,7 +107,7 @@ public async Task Inputs_06DateTimeInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-04{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)).Send("06") + .AssertReply(String.Format("Welcome to Input Sample Bot.{0}I can show you examples on how to use actions, You can enter number 01-07{0}01 - TextInput{0}02 - NumberInput{0}03 - ConfirmInput{0}04 - ChoiceInput{0}05 - AttachmentInput{0}06 - DateTimeInput{0}07 - OAuthInput{0}", Environment.NewLine)).Send("06") .AssertReply("Please enter a date.") .Send("June 1st") .AssertReply("You entered: 2019-06-01") diff --git a/BotProject/Templates/CSharp/Tests/MessageTests.cs b/BotProject/Templates/CSharp/Tests/MessageTests.cs index 7421dba46d..d5fb6dc42c 100644 --- a/BotProject/Templates/CSharp/Tests/MessageTests.cs +++ b/BotProject/Templates/CSharp/Tests/MessageTests.cs @@ -52,24 +52,21 @@ public async Task MessageTest() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. Text With LG\n 4. LGWithParam\n 5. LGComposition\n 6. Structured LG\n 7. MultiLineText\n 8. IfElseCondition\n 9. SwitchCondition") + .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. LGWithParam\n 4. LGComposition\n 5. Structured LG\n 6. MultiLineText\n 7. IfElseCondition\n 8. SwitchCondition") .Send("1") - .AssertReplyOneOf(new string[] { "Hello, this is a text with LG", "Hi, this is a text with LG", "Hey, this is a text with LG" }) - .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. Text With LG\n 4. LGWithParam\n 5. LGComposition\n 6. Structured LG\n 7. MultiLineText\n 8. IfElseCondition\n 9. SwitchCondition") + .AssertReplyOneOf(new string[] { "Hi, this is simple text", "Hey, this is simple text", "Hello, this is simple text" }) + .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. LGWithParam\n 4. LGComposition\n 5. Structured LG\n 6. MultiLineText\n 7. IfElseCondition\n 8. SwitchCondition") .Send("2") .AssertReply("This is a text saved in memory.") - .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. Text With LG\n 4. LGWithParam\n 5. LGComposition\n 6. Structured LG\n 7. MultiLineText\n 8. IfElseCondition\n 9. SwitchCondition") + .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. LGWithParam\n 4. LGComposition\n 5. Structured LG\n 6. MultiLineText\n 7. IfElseCondition\n 8. SwitchCondition") .Send("3") - .AssertReplyOneOf(new string[] { "Hello, this is a text with LG", "Hi, this is a text with LG", "Hey, this is a text with LG" }) - .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. Text With LG\n 4. LGWithParam\n 5. LGComposition\n 6. Structured LG\n 7. MultiLineText\n 8. IfElseCondition\n 9. SwitchCondition") - .Send("4") .AssertReply("Hello, I'm Zoidberg. What is your name?") .Send("luhan") .AssertReply("Hello luhan, nice to talk to you!") - .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. Text With LG\n 4. LGWithParam\n 5. LGComposition\n 6. Structured LG\n 7. MultiLineText\n 8. IfElseCondition\n 9. SwitchCondition") - .Send("5") + .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. LGWithParam\n 4. LGComposition\n 5. Structured LG\n 6. MultiLineText\n 7. IfElseCondition\n 8. SwitchCondition") + .Send("4") .AssertReply("luhan nice to talk to you!") - .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. Text With LG\n 4. LGWithParam\n 5. LGComposition\n 6. Structured LG\n 7. MultiLineText\n 8. IfElseCondition\n 9. SwitchCondition") + .AssertReply("What type of message would you like to send?\n\n 1. Simple Text\n 2. Text With Memory\n 3. LGWithParam\n 4. LGComposition\n 5. Structured LG\n 6. MultiLineText\n 7. IfElseCondition\n 8. SwitchCondition") .StartTestAsync(); } diff --git a/Composer/packages/extensions/obiformeditor/demo/src/editorschema.json b/Composer/packages/extensions/obiformeditor/demo/src/editorschema.json index 73819db9c2..7875250f47 100644 --- a/Composer/packages/extensions/obiformeditor/demo/src/editorschema.json +++ b/Composer/packages/extensions/obiformeditor/demo/src/editorschema.json @@ -36,6 +36,9 @@ "Microsoft.DeleteProperty": { "title": "Delete a Property" }, + "Microsoft.DeleteProperties": { + "title": "Delete Properties" + }, "Microsoft.EditArray": { "title": "Edit an Array Property" }, @@ -128,6 +131,9 @@ "Microsoft.SetProperty": { "title": "Set a Property" }, + "Microsoft.SetProperties": { + "title": "Set Properties" + }, "Microsoft.SwitchCondition": { "title": "Branch: Switch" }, diff --git a/Composer/packages/extensions/obiformeditor/src/Form/fields/PromptField/UserInput.tsx b/Composer/packages/extensions/obiformeditor/src/Form/fields/PromptField/UserInput.tsx index 2f6e01d125..44aac5ef1f 100644 --- a/Composer/packages/extensions/obiformeditor/src/Form/fields/PromptField/UserInput.tsx +++ b/Composer/packages/extensions/obiformeditor/src/Form/fields/PromptField/UserInput.tsx @@ -47,7 +47,7 @@ export const UserInput: React.FC = props => { {getSchema('outputFormat') && (
- = props => { label={formatMessage('Output Format')} formContext={props.formContext} rawErrors={errorSchema.outputFormat && errorSchema.outputFormat.__errors} - options={{ enumOptions: getOptions(getSchema('outputFormat')) }} />
)} diff --git a/Composer/packages/extensions/obiformeditor/src/schema/uischema.ts b/Composer/packages/extensions/obiformeditor/src/schema/uischema.ts index d3825e4fd1..2105df6b6b 100644 --- a/Composer/packages/extensions/obiformeditor/src/schema/uischema.ts +++ b/Composer/packages/extensions/obiformeditor/src/schema/uischema.ts @@ -56,7 +56,7 @@ export const uiSchema: { [key in SDKTypes]?: UiSchema } = { options: { 'ui:field': 'CustomObjectField', }, - 'ui:order': ['dialog', 'property', '*'], + 'ui:order': ['dialog', 'options', 'resultProperty', 'includeActivity', '*'], }, [SDKTypes.CancelAllDialogs]: { eventValue: { @@ -78,11 +78,6 @@ export const uiSchema: { [key in SDKTypes]?: UiSchema } = { 'ui:field': 'StepsField', }, }, - [SDKTypes.EmitEvent]: { - eventValue: { - 'ui:field': 'CustomObjectField', - }, - }, [SDKTypes.Foreach]: { 'ui:order': ['itemsProperty', 'actions', '*'], 'ui:hidden': ['actions'], @@ -103,12 +98,40 @@ export const uiSchema: { [key in SDKTypes]?: UiSchema } = { [SDKTypes.IfCondition]: { 'ui:hidden': ['actions', 'elseActions', ...globalHidden], }, + [SDKTypes.SetProperties]: { + assignments: { + 'ui:options': { + object: true, + }, + items: { + 'ui:options': { + hideDescription: true, + inline: true, + }, + property: { + 'ui:options': { + hideLabel: true, + transparentBorder: true, + }, + }, + value: { + 'ui:options': { + hideLabel: true, + transparentBorder: true, + }, + }, + }, + }, + }, [SDKTypes.OnActivity]: { ...triggerUiSchema, }, [SDKTypes.OnBeginDialog]: { ...triggerUiSchema, }, + [SDKTypes.OnCancelDialog]: { + ...triggerUiSchema, + }, [SDKTypes.OnCondition]: { ...triggerUiSchema, }, @@ -124,6 +147,9 @@ export const uiSchema: { [key in SDKTypes]?: UiSchema } = { [SDKTypes.OnEndOfConversationActivity]: { ...triggerUiSchema, }, + [SDKTypes.OnError]: { + ...triggerUiSchema, + }, [SDKTypes.OnEventActivity]: { ...triggerUiSchema, }, @@ -152,6 +178,9 @@ export const uiSchema: { [key in SDKTypes]?: UiSchema } = { [SDKTypes.OnMessageUpdateActivity]: { ...triggerUiSchema, }, + [SDKTypes.OnRepromptDialog]: { + ...triggerUiSchema, + }, [SDKTypes.OnTypingActivity]: { ...triggerUiSchema, }, @@ -177,7 +206,29 @@ export const uiSchema: { [key in SDKTypes]?: UiSchema } = { 'ui:order': ['connectionName', '*'], }, [SDKTypes.QnAMakerDialog]: { - 'ui:hidden': ['strictFilters'], + strictFilters: { + 'ui:options': { + object: true, + }, + items: { + 'ui:options': { + hideDescription: true, + inline: true, + }, + name: { + 'ui:options': { + hideLabel: true, + transparentBorder: true, + }, + }, + value: { + 'ui:options': { + hideLabel: true, + transparentBorder: true, + }, + }, + }, + }, }, [SDKTypes.ReplaceDialog]: { dialog: { @@ -187,6 +238,14 @@ export const uiSchema: { [key in SDKTypes]?: UiSchema } = { 'ui:field': 'CustomObjectField', }, 'ui:hidden': [...globalHidden], + 'ui:order': ['dialog', 'options', 'includeActivity', '*'], + }, + [SDKTypes.RepeatDialog]: { + options: { + 'ui:field': 'CustomObjectField', + }, + 'ui:hidden': [...globalHidden], + 'ui:order': ['options', 'includeActivity', '*'], }, [SDKTypes.SwitchCondition]: { cases: { diff --git a/Composer/packages/extensions/visual-designer/src/components/nodes/steps/DefaultRenderer.tsx b/Composer/packages/extensions/visual-designer/src/components/nodes/steps/DefaultRenderer.tsx index bf9797e9cc..e7c6da3fc0 100644 --- a/Composer/packages/extensions/visual-designer/src/components/nodes/steps/DefaultRenderer.tsx +++ b/Composer/packages/extensions/visual-designer/src/components/nodes/steps/DefaultRenderer.tsx @@ -24,6 +24,10 @@ function makeLabel(data) { switch (data.$type) { case ObiTypes.SetProperty: return `{${data.property || '?'}} = ${data.value || '?'}`; + case ObiTypes.SetProperties: + return `Set ${Array.isArray(data.assignments) ? data.assignments.length : 0} property values`; + case ObiTypes.DeleteProperties: + return `Delete ${Array.isArray(data.properties) ? data.properties.length : 0} properties`; case ObiTypes.InitProperty: return `{${data.property || '?'}} = new ${data.type || '?'}`; case ObiTypes.EditArray: diff --git a/Composer/packages/lib/shared/src/appschema.ts b/Composer/packages/lib/shared/src/appschema.ts index f41f569b82..c5cb6704bc 100644 --- a/Composer/packages/lib/shared/src/appschema.ts +++ b/Composer/packages/lib/shared/src/appschema.ts @@ -258,6 +258,13 @@ export const appschema: OBISchema = { description: 'One or more options that are passed to the dialog that is called.', additionalProperties: true, }, + includeActivity: { + type: 'boolean', + title: 'Include Activity', + description: 'When set to true, dialog that is called can process the current activity.', + default: false, + examples: [false], + }, resultProperty: { $role: 'expression', title: 'Property', @@ -620,6 +627,12 @@ export const appschema: OBISchema = { default: 'true', examples: ['true'], }, + outputFormat: { + $role: 'expression', + type: 'string', + title: 'Output format', + description: 'confirm output format.', + }, defaultLocale: { type: 'string', title: 'Default Locale', @@ -816,6 +829,12 @@ export const appschema: OBISchema = { default: 'true', examples: ['true'], }, + outputFormat: { + $role: 'expression', + type: 'string', + title: 'Output format', + description: 'Date time output format.', + }, defaultLocale: { type: 'string', title: 'Default locale', @@ -848,6 +867,26 @@ export const appschema: OBISchema = { }, }, }, + 'Microsoft.DeleteProperties': { + $role: 'unionType(Microsoft.IDialog)', + title: 'Delete Properties', + description: 'Delete multiple properties and any value it holds.', + type: 'object', + properties: { + ...$properties(SDKTypes.DeleteProperties), + properties: { + type: 'array', + title: 'Properties', + description: 'Properties to delete.', + items: { + $role: 'expression', + title: 'Property', + description: 'Property to delete.', + type: 'string', + }, + }, + }, + }, 'Microsoft.DimensionEntityRecognizer': { $role: 'unionType(Microsoft.EntityRecognizers)', title: 'Dimension Entity Recognizer', @@ -959,10 +998,10 @@ export const appschema: OBISchema = { // ], }, eventValue: { - type: 'object', + $role: 'expression', + type: 'string', title: 'Event value', description: 'Value to emit with the event (optional).', - additionalProperties: true, }, bubbleEvent: { type: 'boolean', @@ -1301,6 +1340,16 @@ export const appschema: OBISchema = { description: 'Delete a property and any value it holds.', $ref: '#/definitions/Microsoft.DeleteProperty', }, + { + title: 'Microsoft.DeleteProperty', + description: 'Delete a property and any value it holds.', + $ref: '#/definitions/Microsoft.DeleteProperty', + }, + { + title: 'Microsoft.DeleteProperties', + description: 'Delete multiple properties and any value it holds.', + $ref: '#/definitions/Microsoft.DeleteProperties', + }, { title: 'Microsoft.EditActions', description: 'Edit the current list of actions.', @@ -1392,6 +1441,11 @@ export const appschema: OBISchema = { description: 'Set property to a value.', $ref: '#/definitions/Microsoft.SetProperty', }, + { + title: 'Microsoft.SetProperties', + description: 'Set one or more property values.', + $ref: '#/definitions/Microsoft.SetProperties', + }, { title: 'Microsoft.SwitchCondition', description: 'Execute different actions based on the value of a property.', @@ -1875,11 +1929,10 @@ export const appschema: OBISchema = { examples: ['true'], }, outputFormat: { + $role: 'expression', type: 'string', - enum: ['float', 'integer'], title: 'Output format', description: 'Number output format.', - default: 'float', }, defaultLocale: { type: 'string', @@ -2553,12 +2606,30 @@ export const appschema: OBISchema = { }, strictFilters: { type: 'array', - title: 'Strict Filter Property', - description: 'Memory property that holds strict filters to use when calling the QnA Maker KB.', + title: 'Strict Filters', + description: 'Metadata filters to use when calling the QnA Maker KB.', items: { type: 'object', + properties: { + name: { + type: 'string', + title: 'Name', + maximum: 100, + }, + value: { + type: 'string', + title: 'Value', + maximum: 100, + }, + }, }, }, + top: { + type: 'number', + title: 'Top', + description: 'The number of answers you want to retrieve.', + default: 3, + }, }, }, 'Microsoft.RandomSelector': { @@ -2637,6 +2708,19 @@ export const appschema: OBISchema = { description: 'Repeat current dialog.', properties: { ...$properties(SDKTypes.RepeatDialog), + options: { + type: 'object', + title: 'Options', + description: 'One or more options that are passed to the dialog that is called.', + additionalProperties: true, + }, + includeActivity: { + type: 'boolean', + title: 'Include Activity', + description: 'When set to true, dialog that is called can process the current activity.', + default: false, + examples: [false], + }, }, }, 'Microsoft.ReplaceDialog': { @@ -2658,6 +2742,13 @@ export const appschema: OBISchema = { description: 'One or more options that are passed to the dialog that is called.', additionalProperties: true, }, + includeActivity: { + type: 'boolean', + title: 'Include Activity', + description: 'When set to true, dialog that is called can process the current activity.', + default: false, + examples: [false], + }, }, }, 'Microsoft.SendActivity': { @@ -2698,6 +2789,39 @@ export const appschema: OBISchema = { }, }, }, + 'Microsoft.SetProperties': { + $role: 'unionType(Microsoft.IDialog)', + title: 'Set properties', + description: 'Set one or more property values.', + type: 'object', + properties: { + ...$properties(SDKTypes.SetProperties), + assignments: { + type: 'array', + title: 'Assignments', + description: 'Property value assignments to set.', + items: { + type: 'object', + properties: { + property: { + $role: 'expression', + title: 'Property', + description: 'Property (named location to store information).', + examples: ['user.age'], + type: 'string', + }, + value: { + $role: 'expression', + title: 'Value', + description: 'New value or expression.', + examples: ['"milk"', 'dialog.favColor', 'dialog.favColor == "red"'], + type: 'string', + }, + }, + }, + }, + }, + }, 'Microsoft.StaticActivityTemplate': { $role: 'unionType(Microsoft.IActivityTemplate)', title: 'Microsoft Static Activity Template', @@ -2874,11 +2998,10 @@ export const appschema: OBISchema = { examples: ['true'], }, outputFormat: { + $role: 'expression', type: 'string', - enum: ['none', 'trim', 'lowercase', 'uppercase'], title: 'Output format', description: 'Format of output.', - default: 'none', }, }, }, diff --git a/Composer/packages/lib/shared/src/labelMap.ts b/Composer/packages/lib/shared/src/labelMap.ts index d57c715f97..48712512cd 100644 --- a/Composer/packages/lib/shared/src/labelMap.ts +++ b/Composer/packages/lib/shared/src/labelMap.ts @@ -58,6 +58,9 @@ export const ConceptLabels: { [key in ConceptLabelKey]?: LabelOverride } = { [SDKTypes.DeleteProperty]: { title: formatMessage('Delete a property'), }, + [SDKTypes.DeleteProperties]: { + title: formatMessage('Delete properties'), + }, [SDKTypes.EditActions]: { title: formatMessage('Modify this dialog'), }, @@ -221,6 +224,9 @@ export const ConceptLabels: { [key in ConceptLabelKey]?: LabelOverride } = { [SDKTypes.SetProperty]: { title: formatMessage('Set a property'), }, + [SDKTypes.SetProperties]: { + title: formatMessage('Set properties'), + }, [SDKTypes.SwitchCondition]: { title: formatMessage('Branch: switch (multiple options)'), }, diff --git a/Composer/packages/lib/shared/src/types/schema.ts b/Composer/packages/lib/shared/src/types/schema.ts index 6398d5e2d7..37221d09c8 100644 --- a/Composer/packages/lib/shared/src/types/schema.ts +++ b/Composer/packages/lib/shared/src/types/schema.ts @@ -34,6 +34,7 @@ export enum SDKTypes { DateTimeInput = 'Microsoft.DateTimeInput', DebugBreak = 'Microsoft.DebugBreak', DeleteProperty = 'Microsoft.DeleteProperty', + DeleteProperties = 'Microsoft.DeleteProperties', DimensionEntityRecognizer = 'Microsoft.DimensionEntityRecognizer', EditActions = 'Microsoft.EditActions', EditArray = 'Microsoft.EditArray', @@ -91,6 +92,7 @@ export enum SDKTypes { ReplaceDialog = 'Microsoft.ReplaceDialog', SendActivity = 'Microsoft.SendActivity', SetProperty = 'Microsoft.SetProperty', + SetProperties = 'Microsoft.SetProperties', StaticActivityTemplate = 'Microsoft.StaticActivityTemplate', SwitchCondition = 'Microsoft.SwitchCondition', TemperatureEntityRecognizer = 'Microsoft.TemperatureEntityRecognizer', diff --git a/Composer/packages/lib/shared/src/viewUtils.ts b/Composer/packages/lib/shared/src/viewUtils.ts index 5a59ce4c15..402ae904b7 100644 --- a/Composer/packages/lib/shared/src/viewUtils.ts +++ b/Composer/packages/lib/shared/src/viewUtils.ts @@ -65,7 +65,14 @@ export const dialogGroups: DialogGroupsMap = { }, [DialogGroup.MEMORY]: { label: 'Manage properties', - types: [SDKTypes.SetProperty, SDKTypes.InitProperty, SDKTypes.DeleteProperty, SDKTypes.EditArray], + types: [ + SDKTypes.SetProperty, + SDKTypes.SetProperties, + SDKTypes.InitProperty, + SDKTypes.DeleteProperty, + SDKTypes.DeleteProperties, + SDKTypes.EditArray, + ], }, [DialogGroup.STEP]: { label: 'Dialog management', diff --git a/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/EndDialog/EndDialog.dialog b/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/EndDialog/EndDialog.dialog index 8876e80791..9c23494d0b 100644 --- a/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/EndDialog/EndDialog.dialog +++ b/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/EndDialog/EndDialog.dialog @@ -63,10 +63,9 @@ }, "property": "user.name", "prompt": "Hello, I'm Zoidberg. What is your name?", - "maxTurnCount": 2147483647, + "maxTurnCount": 3, "alwaysPrompt": false, - "allowInterruptions": "true", - "outputFormat": "none" + "allowInterruptions": "true" } ] }, diff --git a/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/HttpRequest/HttpRequest.dialog b/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/HttpRequest/HttpRequest.dialog index 70543204f3..5e0f3edfd9 100644 --- a/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/HttpRequest/HttpRequest.dialog +++ b/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/HttpRequest/HttpRequest.dialog @@ -19,10 +19,9 @@ }, "property": "user.petname", "prompt": "Welcome! Here is a http request sample, please enter a name for you visual pet.", - "maxTurnCount": 2147483647, + "maxTurnCount": 3, "alwaysPrompt": false, - "allowInterruptions": "true", - "outputFormat": "none" + "allowInterruptions": "true" }, { "$type": "Microsoft.SendActivity", @@ -40,8 +39,7 @@ "prompt": "Now please enter the id of your pet, this could help you find your pet later.", "maxTurnCount": 3, "alwaysPrompt": false, - "allowInterruptions": "false", - "outputFormat": "none" + "allowInterruptions": "false" }, { "$type": "Microsoft.HttpRequest", @@ -90,8 +88,7 @@ "prompt": "Now try to specify the id of your pet, and I will help your find it out from the store.", "maxTurnCount": 3, "alwaysPrompt": false, - "allowInterruptions": "false", - "outputFormat": "none" + "allowInterruptions": "false" }, { "$type": "Microsoft.HttpRequest", diff --git a/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/IfCondition/IfCondition.dialog b/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/IfCondition/IfCondition.dialog index 54ba0e40dc..635f9b7e19 100644 --- a/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/IfCondition/IfCondition.dialog +++ b/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/IfCondition/IfCondition.dialog @@ -26,10 +26,9 @@ }, "property": "user.name", "prompt": "Hello, I'm Zoidberg. What is your name?", - "maxTurnCount": 2147483647, + "maxTurnCount": 3, "alwaysPrompt": false, - "allowInterruptions": "true", - "outputFormat": "none" + "allowInterruptions": "true" } ] }, diff --git a/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/ReplaceDialog/Replace.dialog b/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/ReplaceDialog/Replace.dialog index 9ae29812a1..90c31e3373 100644 --- a/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/ReplaceDialog/Replace.dialog +++ b/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/ReplaceDialog/Replace.dialog @@ -68,8 +68,7 @@ "prompt": "Hello, I'm Zoidberg. What is your name?", "maxTurnCount": 2147483647, "alwaysPrompt": false, - "allowInterruptions": "true", - "outputFormat": "none" + "allowInterruptions": "true" } ] }, diff --git a/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/TraceAndLog/TraceAndLog.dialog b/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/TraceAndLog/TraceAndLog.dialog index 1208070b31..03e6d5c262 100644 --- a/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/TraceAndLog/TraceAndLog.dialog +++ b/Composer/packages/server/assets/projects/ActionsSample/ComposerDialogs/TraceAndLog/TraceAndLog.dialog @@ -22,8 +22,7 @@ "prompt": "Hello, what is your name?", "maxTurnCount": 3, "alwaysPrompt": false, - "allowInterruptions": "false", - "outputFormat": "none" + "allowInterruptions": "false" }, { "$type": "Microsoft.TraceActivity", diff --git a/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/AttachmentInput/AttachmentInput.dialog b/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/AttachmentInput/AttachmentInput.dialog index db93d72c61..408608382d 100644 --- a/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/AttachmentInput/AttachmentInput.dialog +++ b/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/AttachmentInput/AttachmentInput.dialog @@ -22,7 +22,7 @@ "maxTurnCount": 3, "alwaysPrompt": false, "allowInterruptions": "false", - "outputFormat": "All" + "outputFormat": "all" }, { "$type": "Microsoft.SendActivity", diff --git a/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/ChoiceInput/ChoiceInput.dialog b/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/ChoiceInput/ChoiceInput.dialog index 846a335a0a..0c3f251c7b 100644 --- a/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/ChoiceInput/ChoiceInput.dialog +++ b/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/ChoiceInput/ChoiceInput.dialog @@ -20,7 +20,7 @@ }, "property": "user.style", "prompt": "Please select a value from below:", - "maxTurnCount": "2147483647", + "maxTurnCount": 3, "alwaysPrompt": true, "allowInterruptions": "false", "outputFormat": "value", diff --git a/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/NumberInput/NumberInput.dialog b/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/NumberInput/NumberInput.dialog index d8213b08d1..69e21fc1fc 100644 --- a/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/NumberInput/NumberInput.dialog +++ b/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/NumberInput/NumberInput.dialog @@ -23,7 +23,6 @@ "maxTurnCount": 2, "alwaysPrompt": true, "allowInterruptions": false, - "outputFormat": "float", "defaultLocale": "en-us" }, { @@ -43,7 +42,6 @@ "maxTurnCount": 2147483647, "alwaysPrompt": true, "allowInterruptions": "false", - "outputFormat": "float", "defaultLocale": "en-us" }, { diff --git a/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/TextInput/TextInput.dialog b/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/TextInput/TextInput.dialog index 4198a235c0..5efba0332d 100644 --- a/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/TextInput/TextInput.dialog +++ b/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/TextInput/TextInput.dialog @@ -21,8 +21,7 @@ "prompt": "Hello, I'm Zoidberg. What is your name? (This can't be interrupted)", "maxTurnCount": 2147483647, "alwaysPrompt": true, - "allowInterruptions": "false", - "outputFormat": "none" + "allowInterruptions": "false" }, { "$type": "Microsoft.SendActivity", diff --git a/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/common/common.lg b/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/common/common.lg index 65389ff0db..c80c508aa9 100644 --- a/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/common/common.lg +++ b/Composer/packages/server/assets/projects/AskingQuestionsSample/ComposerDialogs/common/common.lg @@ -1,6 +1,6 @@ # help -```Welcome to Input Sample Bot. -I can show you examples on how to use actions, You can enter number 01-04 +I can show you examples on how to use actions, You can enter number 01-07 01 - TextInput 02 - NumberInput 03 - ConfirmInput diff --git a/Composer/packages/server/assets/projects/ControllingConversationFlowSample/ComposerDialogs/ForeachPageStep/ForeachPageStep.dialog b/Composer/packages/server/assets/projects/ControllingConversationFlowSample/ComposerDialogs/ForeachPageStep/ForeachPageStep.dialog index ef083457b6..079497c022 100644 --- a/Composer/packages/server/assets/projects/ControllingConversationFlowSample/ComposerDialogs/ForeachPageStep/ForeachPageStep.dialog +++ b/Composer/packages/server/assets/projects/ControllingConversationFlowSample/ComposerDialogs/ForeachPageStep/ForeachPageStep.dialog @@ -77,7 +77,7 @@ "actions": [ { "$type": "Microsoft.SendActivity", - "activity": "{dialog.foreach.index}: {dialog.foreach.value}" + "activity": "@{dialog.foreach.index}: @{dialog.foreach.value}" } ] } diff --git a/Composer/packages/server/assets/projects/ControllingConversationFlowSample/ComposerDialogs/IfCondition/IfCondition.dialog b/Composer/packages/server/assets/projects/ControllingConversationFlowSample/ComposerDialogs/IfCondition/IfCondition.dialog index cc91f1fba2..d39bb1f887 100644 --- a/Composer/packages/server/assets/projects/ControllingConversationFlowSample/ComposerDialogs/IfCondition/IfCondition.dialog +++ b/Composer/packages/server/assets/projects/ControllingConversationFlowSample/ComposerDialogs/IfCondition/IfCondition.dialog @@ -21,8 +21,7 @@ "prompt": "Hello, What's your age?", "maxTurnCount": 3, "alwaysPrompt": false, - "allowInterruptions": false, - "outputFormat": "float", + "allowInterruptions": "false", "defaultLocale": "en-us" }, { diff --git a/Composer/packages/server/assets/projects/InterruptionSample/ComposerDialogs/GetProfile/GetProfile.dialog b/Composer/packages/server/assets/projects/InterruptionSample/ComposerDialogs/GetProfile/GetProfile.dialog index 21142b8654..41e21e6cb6 100644 --- a/Composer/packages/server/assets/projects/InterruptionSample/ComposerDialogs/GetProfile/GetProfile.dialog +++ b/Composer/packages/server/assets/projects/InterruptionSample/ComposerDialogs/GetProfile/GetProfile.dialog @@ -32,7 +32,7 @@ "value": "@userName", "alwaysPrompt": false, "allowInterruptions": "true", - "outputFormat": "trim" + "outputFormat": "trim(this.value)" }, { "$type": "Microsoft.NumberInput", @@ -53,7 +53,6 @@ "value": "@userAge", "alwaysPrompt": false, "allowInterruptions": "true", - "outputFormat": "float", "defaultLocale": "en-us" }, { diff --git a/Composer/packages/server/assets/projects/InterruptionSample/ComposerDialogs/common/common.lg b/Composer/packages/server/assets/projects/InterruptionSample/ComposerDialogs/common/common.lg index 9bc3ca3466..ed15fa139f 100644 --- a/Composer/packages/server/assets/projects/InterruptionSample/ComposerDialogs/common/common.lg +++ b/Composer/packages/server/assets/projects/InterruptionSample/ComposerDialogs/common/common.lg @@ -29,13 +29,22 @@ Here's what I know about you - - Sure, I've cancelled that. # bfdactivity-296924 -- Hello @{user.profile.name}, I have your age as @{user.profile.age}. \n \[Suggestions=Reset profile] +[Activity + Text = Hello @{user.profile.name}, I have your age as @{user.profile.age}. + SuggestedActions = Reset profile +] # bfdactivity-907674 -- I need your age to customize recommediations. \n \[Suggestions=No age | Reset profile | Cancel] +[Activity + Text = I need your age to customize recommediations. + SuggestedActions = No age | Reset profile | Cancel +] # bfdactivity-558329 -- I need your name to address you correctly! \n \[Suggestions=No name | Reset profile | Cancel] +[Activity + Text = I need your name to address you correctly! + SuggestedActions = No name | Reset profile | Cancel +] # bfdactivity-074631 - No worries. I'll set your age to 30 for now. @@ -47,13 +56,25 @@ Here's what I know about you - - @{user.profile.name} # bfdactivity-924700 -- Hello, I'm the interruption sample bot! \n \[Suggestions=Get started | Reset profile | Cancel | Show profile] +[Activity + Text = Hello, I'm the interruption sample bot! + SuggestedActions = Get started | Reset profile | Cancel | Show profile +] # bfdactivity-032735 -- I've reset your profile. \n \[Suggestions=Get started] +[Activity + Text = I've reset your profile. + SuggestedActions = Get started +] # bfdinvalidPrompt-362298 -- Sorry, '@{this.value}' does not work. I'm looking for 2-150 characters. What is your name? \n \[Suggestions=Why? | No name | Cancel | Reset profile\] +[Activity + Text = Sorry, '@{this.value}' does not work. I'm looking for 2-150 characters. What is your name? + SuggestedActions = Why? | No name | Cancel | Reset profile +] # bfdinvalidPrompt-005947 -- Sorry, @{this.value} does not work. I'm looking for a value between 1-150. What is your age? \n \[Suggestions=Why? | Reset profile | Cancel | No age\] +[Activity + Text = Sorry, @{this.value} does not work. I'm looking for a value between 1-150. What is your age? + SuggestedActions = Why? | Reset profile | Cancel | No age +] diff --git a/Composer/packages/server/assets/projects/RespondingWithCardsSample/ComposerDialogs/Main/Main.dialog b/Composer/packages/server/assets/projects/RespondingWithCardsSample/ComposerDialogs/Main/Main.dialog index bce5d5bdab..2c9d241ba4 100644 --- a/Composer/packages/server/assets/projects/RespondingWithCardsSample/ComposerDialogs/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/RespondingWithCardsSample/ComposerDialogs/Main/Main.dialog @@ -97,8 +97,7 @@ "maxTurnCount": 3, "property": "user.name", "alwaysPrompt": false, - "allowInterruptions": "false", - "outputFormat": "none" + "allowInterruptions": "false" }, { "$type": "Microsoft.SendActivity", diff --git a/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/LGComposition/LGComposition.dialog b/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/LGComposition/LGComposition.dialog index bce57460d9..a029b5f924 100644 --- a/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/LGComposition/LGComposition.dialog +++ b/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/LGComposition/LGComposition.dialog @@ -21,8 +21,7 @@ "prompt": "Hello, I'm Zoidberg. What is your name?", "maxTurnCount": 3, "alwaysPrompt": false, - "allowInterruptions": "false", - "outputFormat": "none" + "allowInterruptions": "false" }, { "$type": "Microsoft.SendActivity", diff --git a/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/LGWithParam/LGWithParam.dialog b/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/LGWithParam/LGWithParam.dialog index f101c6e796..c8d22d97da 100644 --- a/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/LGWithParam/LGWithParam.dialog +++ b/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/LGWithParam/LGWithParam.dialog @@ -21,8 +21,7 @@ "prompt": "Hello, I'm Zoidberg. What is your name?", "maxTurnCount": 3, "alwaysPrompt": false, - "allowInterruptions": "false", - "outputFormat": "none" + "allowInterruptions": "false" }, { "$type": "Microsoft.SendActivity", diff --git a/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/Main/Main.dialog b/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/Main/Main.dialog index 9d62115f40..63d2e00286 100644 --- a/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/Main/Main.dialog @@ -60,9 +60,6 @@ { "value": "Text With Memory" }, - { - "value": "Text With LG" - }, { "value": "LGWithParam" }, @@ -126,18 +123,6 @@ } ] }, - { - "value": "Text With LG", - "actions": [ - { - "$type": "Microsoft.BeginDialog", - "$designer": { - "id": "791050" - }, - "dialog": "TextWithLG" - } - ] - }, { "value": "LGWithParam", "actions": [ diff --git a/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/TextWithLG/TextWithLG.dialog b/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/TextWithLG/TextWithLG.dialog deleted file mode 100644 index cb13cb2749..0000000000 --- a/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/TextWithLG/TextWithLG.dialog +++ /dev/null @@ -1,28 +0,0 @@ -{ - "$type": "Microsoft.AdaptiveDialog", - "$designer": { - "id": "620760" - }, - "autoEndDialog": true, - "defaultResultProperty": "dialog.result", - "triggers": [ - { - "$type": "Microsoft.OnBeginDialog", - "$designer": { - "id": "105188" - }, - "actions": [ - { - "$type": "Microsoft.SendActivity", - "$designer": { - "id": "739923", - "name": "Send a response" - }, - "activity": "@{bfdactivity-739923()}" - } - ] - } - ], - "generator": "common.lg", - "$schema": "https://raw.githubusercontent.com/microsoft/BotFramework-Composer/stable/Composer/packages/server/schemas/sdk.schema" -} diff --git a/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/TextWithLG/TextWithLG.lu b/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/TextWithLG/TextWithLG.lu deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/common/common.lg b/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/common/common.lg index 006e2005bd..0725aa8b3e 100644 --- a/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/common/common.lg +++ b/Composer/packages/server/assets/projects/RespondingWithTextSample/ComposerDialogs/common/common.lg @@ -7,10 +7,10 @@ # LGWithParam(user) - Hello @{user.name}, nice to talk to you! -# TextWithLG -- Hi, this is a text with LG -- Hey, this is a text with LG -- Hello, this is a text with LG +# SimpleText +- Hi, this is simple text +- Hey, this is simple text +- Hello, this is simple text # help - ``` @@ -24,7 +24,7 @@ -@{LGWithParam(user)} # bfdactivity-219943 --@{TextWithLG()} +-@{SimpleText()} # bfdactivity-822060 -@{user.message} @@ -44,9 +44,6 @@ -DEFAULT: - Working day! -# bfdactivity-739923 -- @{TextWithLG()} - # bfdactivity-853358 - @{multilineText()} diff --git a/Composer/packages/server/assets/projects/ToDoBotWithLuisSample/ComposerDialogs/Main/Main.dialog b/Composer/packages/server/assets/projects/ToDoBotWithLuisSample/ComposerDialogs/Main/Main.dialog index b4145fe895..79a8298821 100644 --- a/Composer/packages/server/assets/projects/ToDoBotWithLuisSample/ComposerDialogs/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/ToDoBotWithLuisSample/ComposerDialogs/Main/Main.dialog @@ -181,7 +181,6 @@ "property": "dialog.item", "alwaysPrompt": false, "allowInterruptions": "turn.recognized.score > 0.7 && !#AddItem && !@itemTitle", - "outputFormat": "none", "value": "@itemTitle" }, { @@ -348,7 +347,6 @@ "property": "dialog.item", "alwaysPrompt": false, "allowInterruptions": "turn.recognized.score > 0.7 && !#DeleteItem && !@itemTitle", - "outputFormat": "none", "value": "@itemTitle" }, { diff --git a/Composer/packages/server/assets/projects/TodoSample/ComposerDialogs/AddToDo/AddToDo.dialog b/Composer/packages/server/assets/projects/TodoSample/ComposerDialogs/AddToDo/AddToDo.dialog index 7a57ef1ce2..ab0890fad1 100644 --- a/Composer/packages/server/assets/projects/TodoSample/ComposerDialogs/AddToDo/AddToDo.dialog +++ b/Composer/packages/server/assets/projects/TodoSample/ComposerDialogs/AddToDo/AddToDo.dialog @@ -29,8 +29,7 @@ "prompt": "OK, please enter the title of your todo.", "maxTurnCount": 3, "alwaysPrompt": false, - "allowInterruptions": "true", - "outputFormat": "none" + "allowInterruptions": "true" }, { "$type": "Microsoft.IfCondition", diff --git a/Composer/packages/server/assets/projects/TodoSample/ComposerDialogs/DeleteToDo/DeleteToDo.dialog b/Composer/packages/server/assets/projects/TodoSample/ComposerDialogs/DeleteToDo/DeleteToDo.dialog index 0e7a864ccd..d8f69a0bec 100644 --- a/Composer/packages/server/assets/projects/TodoSample/ComposerDialogs/DeleteToDo/DeleteToDo.dialog +++ b/Composer/packages/server/assets/projects/TodoSample/ComposerDialogs/DeleteToDo/DeleteToDo.dialog @@ -29,8 +29,7 @@ "prompt": "OK, please enter the title of the todo you want to remove.", "maxTurnCount": 3, "alwaysPrompt": false, - "allowInterruptions": "false", - "outputFormat": "none" + "allowInterruptions": "false" }, { "$type": "Microsoft.EditArray", diff --git a/Composer/packages/server/schemas/editor.schema b/Composer/packages/server/schemas/editor.schema index cd539e9cf5..73fe98a25a 100644 --- a/Composer/packages/server/schemas/editor.schema +++ b/Composer/packages/server/schemas/editor.schema @@ -64,6 +64,11 @@ "helpLink": "https://aka.ms/bfc-using-memory", "helpLinkText": "Learn more" }, + "Microsoft.DeleteProperties": { + "title": "Delete Properties", + "helpLink": "https://aka.ms/bfc-using-memory", + "helpLinkText": "Learn more" + }, "Microsoft.EditActions": { "title": "Modify active dialog" }, @@ -264,6 +269,11 @@ "helpLink": "https://aka.ms/bfc-using-memory", "helpLinkText": "Learn more" }, + "Microsoft.SetProperties": { + "title": "Delete Properties", + "helpLink": "https://aka.ms/bfc-using-memory", + "helpLinkText": "Learn more" + }, "Microsoft.SwitchCondition": { "title": "Branch: Switch", "helpLink": "https://aka.ms/bfc-controlling-conversation-flow", diff --git a/Composer/packages/server/schemas/sdk.schema b/Composer/packages/server/schemas/sdk.schema index 7cd2d33c71..0e6b7f0c65 100644 --- a/Composer/packages/server/schemas/sdk.schema +++ b/Composer/packages/server/schemas/sdk.schema @@ -2,8 +2,8 @@ "$schema": "https://raw.githubusercontent.com/microsoft/botbuilder-dotnet/master/schemas/component.schema", "$id": "sdk.schema", "type": "object", - "title": "Component types", - "description": "These are all of the types that can be created by the loader.", + "title": "Component kinds", + "description": "These are all of the kinds that can be created by the loader.", "oneOf": [ { "title": "Microsoft.ActivityTemplate", @@ -75,6 +75,11 @@ "description": "If debugger is attached, stop the execution at this point in the conversation.", "$ref": "#/definitions/Microsoft.DebugBreak" }, + { + "title": "Microsoft.DeleteProperties", + "description": "Delete multiple properties and any value it holds.", + "$ref": "#/definitions/Microsoft.DeleteProperties" + }, { "title": "Microsoft.DeleteProperty", "description": "Delete a property and any value it holds.", @@ -360,6 +365,11 @@ "description": "Respond with an activity.", "$ref": "#/definitions/Microsoft.SendActivity" }, + { + "title": "Microsoft.SetProperties", + "description": "Set one or more property values.", + "$ref": "#/definitions/Microsoft.SetProperties" + }, { "title": "Microsoft.SetProperty", "description": "Set property to a value.", @@ -380,6 +390,56 @@ "description": "Recognizer which recognizes temperatures.", "$ref": "#/definitions/Microsoft.TemperatureEntityRecognizer" }, + { + "title": "Microsoft.Test.AssertCondition", + "description": "Assert condition is true.", + "$ref": "#/definitions/Microsoft.Test.AssertCondition" + }, + { + "title": "Microsoft.Test.AssertReply", + "description": "Asserts that a reply text is valid.", + "$ref": "#/definitions/Microsoft.Test.AssertReply" + }, + { + "title": "Microsoft.Test.AssertReplyActivity", + "description": "Asserts that a reply activity is valid.", + "$ref": "#/definitions/Microsoft.Test.AssertReplyActivity" + }, + { + "title": "Microsoft.Test.AssertReplyOneOf", + "description": "Asserts that a reply text is one of multiple optional responses.", + "$ref": "#/definitions/Microsoft.Test.AssertReplyOneOf" + }, + { + "title": "Microsoft.Test.Script", + "description": "Defines a sequence of test actions to perform to validate the behavior of dialogs.", + "$ref": "#/definitions/Microsoft.Test.Script" + }, + { + "title": "Microsoft.Test.UserActivity", + "description": "Sends activity to the bot.", + "$ref": "#/definitions/Microsoft.Test.UserActivity" + }, + { + "title": "Microsoft.Test.UserConversationUpdate", + "description": "Sends ConversationUpdate activity to the bot.", + "$ref": "#/definitions/Microsoft.Test.UserConversationUpdate" + }, + { + "title": "Microsoft.Test.UserDelay", + "description": "Delays text script for time period.", + "$ref": "#/definitions/Microsoft.Test.UserDelay" + }, + { + "title": "Microsoft.Test.UserSays", + "description": "Sends text to the bot from the user.", + "$ref": "#/definitions/Microsoft.Test.UserSays" + }, + { + "title": "Microsoft.Test.UserTyping", + "description": "Sends typing activity to the bot.", + "$ref": "#/definitions/Microsoft.Test.UserTyping" + }, { "title": "Microsoft.TextInput", "description": "Collection information - Ask for a word or sentence.", @@ -408,12 +468,12 @@ ], "definitions": { "Microsoft.ActivityTemplate": { - "$role": "unionType(Microsoft.IActivityTemplate)", + "$role": "union(Microsoft.IActivityTemplate)", "title": "Microsoft ActivityTemplate", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -459,19 +519,19 @@ "title": "Type", "required": [ "template", - "$type" + "$kind" ] } ] }, "Microsoft.AdaptiveDialog": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Adaptive Dialog", "description": "Flexible, data driven dialog that can adapt to the conversation.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -512,19 +572,19 @@ "default": "dialog.result" }, "recognizer": { - "$type": "Microsoft.IRecognizer", + "$kind": "Microsoft.IRecognizer", "title": "Recognizer", "description": "Language Understanding recognizer that interprets user input into intent and entities.", "$ref": "#/definitions/Microsoft.IRecognizer" }, "generator": { - "$type": "Microsoft.ILanguageGenerator", + "$kind": "Microsoft.ILanguageGenerator", "title": "Language Generator", "description": "Language generator that generates bot responses.", "$ref": "#/definitions/Microsoft.ILanguageGenerator" }, "selector": { - "$type": "Microsoft.ITriggerSelector", + "$kind": "Microsoft.ITriggerSelector", "title": "Selector", "description": "Policy to determine which trigger is executed. Defaults to a 'best match' selector (optional).", "$ref": "#/definitions/Microsoft.ITriggerSelector" @@ -534,7 +594,7 @@ "description": "List of triggers defined for this dialog.", "title": "Triggers", "items": { - "$type": "Microsoft.ITriggerCondition", + "$kind": "Microsoft.ITriggerCondition", "$ref": "#/definitions/Microsoft.ITriggerCondition" } } @@ -555,19 +615,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.AgeEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "Age Entity Recognizer", "description": "Recognizer which recognizes age.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -607,19 +667,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.AttachmentInput": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Attachment input dialog", "description": "Collect information - Ask for a file or image.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -648,7 +708,7 @@ "description": "Optional id for the dialog" }, "prompt": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Initial prompt", "description": "Message to send to collect information.", "examples": [ @@ -657,7 +717,7 @@ "$ref": "#/definitions/Microsoft.IActivityTemplate" }, "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Unrecognized prompt", "description": "Message to send if user response is not recognized.", "examples": [ @@ -666,7 +726,7 @@ "$ref": "#/definitions/Microsoft.IActivityTemplate" }, "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Invalid prompt", "description": "Message to send if user response is invalid. Relies on specified validation expressions.", "examples": [ @@ -675,7 +735,7 @@ "$ref": "#/definitions/Microsoft.IActivityTemplate" }, "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Default value response", "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", "examples": [ @@ -783,19 +843,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.BeginDialog": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Begin a dialog", "description": "Begin another dialog.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -819,7 +879,7 @@ "description": "Extra information for the Bot Framework Designer." }, "dialog": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "title": "Dialog name", "description": "Name of the dialog to call.", "examples": [ @@ -836,6 +896,12 @@ "title": "Options" } }, + "includeActivity": { + "type": "boolean", + "title": "Include Activity", + "description": "When set to true, dialog that is called can process the current activity.", + "default": false + }, "resultProperty": { "$role": "expression", "title": "Property", @@ -862,19 +928,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.CancelAllDialogs": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Cancel all dialogs", "description": "Cancel all active dialogs. All dialogs in the dialog chain will need a trigger to capture the event configured in this action.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -925,19 +991,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.ChoiceInput": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Choice input dialog", "description": "Collect information - Pick from a list of choices", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -966,7 +1032,7 @@ "description": "Optional id for the dialog" }, "prompt": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Initial prompt", "description": "Message to send to collect information.", "examples": [ @@ -975,7 +1041,7 @@ "$ref": "#/definitions/Microsoft.IActivityTemplate" }, "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Unrecognized prompt", "description": "Message to send if user response is not recognized.", "examples": [ @@ -984,7 +1050,7 @@ "$ref": "#/definitions/Microsoft.IActivityTemplate" }, "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Invalid prompt", "description": "Message to send if user response is invalid. Relies on specified validation expressions.", "examples": [ @@ -993,7 +1059,7 @@ "$ref": "#/definitions/Microsoft.IActivityTemplate" }, "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Default value response", "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", "examples": [ @@ -1219,19 +1285,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.ConditionalSelector": { - "$role": "unionType(Microsoft.ITriggerSelector)", + "$role": "union(Microsoft.ITriggerSelector)", "title": "Condtional Trigger Selector", "description": "Use a rule selector based on a condition", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -1260,11 +1326,11 @@ "description": "String must contain an expression." }, "ifTrue": { - "$type": "Microsoft.ITriggerSelector", + "$kind": "Microsoft.ITriggerSelector", "$ref": "#/definitions/Microsoft.ITriggerSelector" }, "ifFalse": { - "$type": "Microsoft.ITriggerSelector", + "$kind": "Microsoft.ITriggerSelector", "$ref": "#/definitions/Microsoft.ITriggerSelector" } }, @@ -1287,19 +1353,19 @@ "condition", "ifTrue", "ifFalse", - "$type" + "$kind" ] } ] }, "Microsoft.ConfirmInput": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Confirm input dialog", "description": "Collect information - Ask for confirmation (yes or no).", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -1328,7 +1394,7 @@ "description": "Optional id for the dialog" }, "prompt": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Initial prompt", "description": "Message to send to collect information.", "examples": [ @@ -1337,7 +1403,7 @@ "$ref": "#/definitions/Microsoft.IActivityTemplate" }, "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Unrecognized prompt", "description": "Message to send if user response is not recognized.", "examples": [ @@ -1346,7 +1412,7 @@ "$ref": "#/definitions/Microsoft.IActivityTemplate" }, "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Invalid prompt", "description": "Message to send if user response is invalid. Relies on specified validation expressions.", "examples": [ @@ -1355,7 +1421,7 @@ "$ref": "#/definitions/Microsoft.IActivityTemplate" }, "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Default value response", "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", "examples": [ @@ -1436,6 +1502,15 @@ ], "type": "string" }, + "outputFormat": { + "$role": "expression", + "title": "Output format", + "description": "Expression to format the confirm output.", + "examples": [ + "concat('confirmation:', this.value)" + ], + "type": "string" + }, "defaultLocale": { "type": "string", "title": "Default locale", @@ -1530,19 +1605,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.ConfirmationEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "Confirmation Entity Recognizer", "description": "Recognizer which recognizes confirmation choices (yes/no).", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -1582,19 +1657,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.CurrencyEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "Currency Entity Recognizer", "description": "Recognizer which recognizes currency.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -1634,19 +1709,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.DateTimeEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "DateTime Entity Recognizer", "description": "Recognizer which recognizes dates and time fragments.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -1686,19 +1761,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.DateTimeInput": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Date/time input dialog", "description": "Collect information - Ask for date and/ or time", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -1727,7 +1802,7 @@ "description": "Optional id for the dialog" }, "prompt": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Initial prompt", "description": "Message to send to collect information.", "examples": [ @@ -1736,7 +1811,7 @@ "$ref": "#/definitions/Microsoft.IActivityTemplate" }, "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Unrecognized prompt", "description": "Message to send if user response is not recognized.", "examples": [ @@ -1745,7 +1820,7 @@ "$ref": "#/definitions/Microsoft.IActivityTemplate" }, "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Invalid prompt", "description": "Message to send if user response is invalid. Relies on specified validation expressions.", "examples": [ @@ -1754,7 +1829,7 @@ "$ref": "#/definitions/Microsoft.IActivityTemplate" }, "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Default value response", "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", "examples": [ @@ -1835,6 +1910,15 @@ ], "type": "string" }, + "outputFormat": { + "$role": "expression", + "title": "Output format", + "description": "Expression to format the datetime output.", + "examples": [ + "this.value[0].Value" + ], + "type": "string" + }, "defaultLocale": { "type": "string", "title": "Default locale", @@ -1858,19 +1942,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.DebugBreak": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Debugger break", "description": "If debugger is attached, stop the execution at this point in the conversation.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -1910,19 +1994,83 @@ { "title": "Type", "required": [ - "$type" + "$kind" + ] + } + ] + }, + "Microsoft.DeleteProperties": { + "$role": "union(Microsoft.IDialog)", + "title": "Delete Properties", + "description": "Delete multiple properties and any value it holds.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.DeleteProperties" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "properties": { + "type": "array", + "title": "Properties", + "description": "Properties to delete.", + "items": { + "$role": "expression", + "title": "Property", + "description": "Property to delete.", + "type": "string" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "properties", + "$kind" ] } ] }, "Microsoft.DeleteProperty": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Delete Property", "description": "Delete a property and any value it holds.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -1969,19 +2117,19 @@ "title": "Type", "required": [ "property", - "$type" + "$kind" ] } ] }, "Microsoft.DimensionEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "Dimension Entity Recognizer", "description": "Recognizer which recognizes dimension.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -2021,19 +2169,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.EditActions": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Edit actions.", "description": "Edit the current list of actions.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -2073,7 +2221,7 @@ "title": "Actions", "description": "Actions to apply.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -2096,19 +2244,19 @@ "required": [ "changeType", "actions", - "$type" + "$kind" ] } ] }, "Microsoft.EditArray": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Edit array", "description": "Modify an array in memory", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -2185,19 +2333,19 @@ "required": [ "changeType", "itemsProperty", - "$type" + "$kind" ] } ] }, "Microsoft.EmailEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "Email Entity Recognizer", "description": "Recognizer which recognizes email.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -2237,19 +2385,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.EmitEvent": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Emit a custom event", "description": "Emit an event. Capture this event with a trigger.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -2298,10 +2446,10 @@ ] }, "eventValue": { - "type": "object", + "$role": "expression", "title": "Event value", "description": "Value to emit with the event (optional).", - "additionalProperties": true + "type": "string" }, "bubbleEvent": { "type": "boolean", @@ -2326,19 +2474,19 @@ "title": "Type", "required": [ "eventName", - "$type" + "$kind" ] } ] }, "Microsoft.EndDialog": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "End dialog", "description": "End this dialog.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -2388,19 +2536,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.EndTurn": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "End turn", "description": "End the current turn without ending the dialog.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -2440,13 +2588,13 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.EntityRecognizers": { - "$role": "unionType", + "$role": "union", "title": "Entity Recognizers", "description": "Union of components which derive from EntityRecognizer abstract class.", "type": "object", @@ -2544,13 +2692,13 @@ ] }, "Microsoft.FirstSelector": { - "$role": "unionType(Microsoft.ITriggerSelector)", + "$role": "union(Microsoft.ITriggerSelector)", "title": "First Trigger Selector", "description": "Selector for first true rule", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -2590,19 +2738,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.Foreach": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "For each item", "description": "Execute actions on each item in an a collection.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -2639,7 +2787,7 @@ "title": "Actions", "description": "Actions to execute for each item. Use '$foreach.value' to access the value of each item. Use '$foreach.index' to access the index of each item.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -2662,19 +2810,19 @@ "required": [ "itemsProperty", "actions", - "$type" + "$kind" ] } ] }, "Microsoft.ForeachPage": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "For each page", "description": "Execute actions on each page (collection of items) in an array.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -2711,7 +2859,7 @@ "title": "Actions", "description": "Actions to execute for each page. Use '$foreach.page' to access each page.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } }, @@ -2740,19 +2888,19 @@ "required": [ "itemsProperty", "actions", - "$type" + "$kind" ] } ] }, "Microsoft.GuidEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "Guid Entity Recognizer", "description": "Recognizer which recognizes guids.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -2792,19 +2940,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.HashtagEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "Hashtag Entity Recognizer", "description": "Recognizer which recognizes Hashtags.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -2844,19 +2992,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.HttpRequest": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "type": "object", "title": "HTTP request", "description": "Make a HTTP request.", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -2955,7 +3103,7 @@ "required": [ "url", "method", - "$type" + "$kind" ] } ] @@ -2963,7 +3111,7 @@ "Microsoft.IActivityTemplate": { "title": "Microsoft ActivityTemplates", "description": "Components which are IActivityTemplates", - "$role": "unionType", + "$role": "union", "oneOf": [ { "title": "Microsoft.ActivityTemplate", @@ -2984,7 +3132,7 @@ "Microsoft.IDialog": { "title": "Microsoft Dialogs", "description": "Union of components which implement the Dialog contract", - "$role": "unionType", + "$role": "union", "oneOf": [ { "title": "Microsoft.AdaptiveDialog", @@ -3026,6 +3174,11 @@ "description": "If debugger is attached, stop the execution at this point in the conversation.", "$ref": "#/definitions/Microsoft.DebugBreak" }, + { + "title": "Microsoft.DeleteProperties", + "description": "Delete multiple properties and any value it holds.", + "$ref": "#/definitions/Microsoft.DeleteProperties" + }, { "title": "Microsoft.DeleteProperty", "description": "Delete a property and any value it holds.", @@ -3116,6 +3269,11 @@ "description": "Respond with an activity.", "$ref": "#/definitions/Microsoft.SendActivity" }, + { + "title": "Microsoft.SetProperties", + "description": "Set one or more property values.", + "$ref": "#/definitions/Microsoft.SetProperties" + }, { "title": "Microsoft.SetProperty", "description": "Set property to a value.", @@ -3126,6 +3284,11 @@ "description": "Execute different actions based on the value of a property.", "$ref": "#/definitions/Microsoft.SwitchCondition" }, + { + "title": "Microsoft.Test.AssertCondition", + "description": "Assert condition is true.", + "$ref": "#/definitions/Microsoft.Test.AssertCondition" + }, { "title": "Microsoft.TextInput", "description": "Collection information - Ask for a word or sentence.", @@ -3145,7 +3308,7 @@ "Microsoft.ILanguageGenerator": { "title": "Microsoft ILanguageGenerator", "description": "Union of components which implement the ILanguageGenerator interface", - "$role": "unionType", + "$role": "union", "oneOf": [ { "type": "string", @@ -3156,7 +3319,7 @@ "Microsoft.IRecognizer": { "title": "Microsoft IRecognizer", "description": "Union of components which implement the IRecognizer interface", - "$role": "unionType", + "$role": "union", "oneOf": [ { "title": "Microsoft.LuisRecognizer", @@ -3182,7 +3345,7 @@ "Microsoft.ITextTemplate": { "title": "Microsoft TextTemplate", "description": "Union of components which implement the TextTemplate", - "$role": "unionType", + "$role": "union", "oneOf": [ { "title": "Microsoft.TextTemplate", @@ -3196,7 +3359,7 @@ ] }, "Microsoft.ITriggerCondition": { - "$role": "unionType", + "$role": "union", "title": "Microsoft Triggers", "description": "Union of components which implement the OnCondition", "oneOf": [ @@ -3303,7 +3466,7 @@ ] }, "Microsoft.ITriggerSelector": { - "$role": "unionType", + "$role": "union", "title": "Selectors", "description": "Union of components which are trigger selectors", "oneOf": [ @@ -3335,13 +3498,13 @@ ] }, "Microsoft.IfCondition": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "If condition", "description": "Two-way branch the conversation flow based on a condition.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -3378,7 +3541,7 @@ "title": "Actions", "description": "Actions to execute if condition is true.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } }, @@ -3387,7 +3550,7 @@ "title": "Else", "description": "Actions to execute if condition is false.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -3410,19 +3573,19 @@ "required": [ "condition", "actions", - "$type" + "$kind" ] } ] }, "Microsoft.InitProperty": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Initialize property", "description": "Define and initialize a property to be an array or object.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -3482,19 +3645,19 @@ "required": [ "property", "type", - "$type" + "$kind" ] } ] }, "Microsoft.IpEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "Ip Entity Recognizer", "description": "Recognizer which recognizes internet IP patterns (like 192.1.1.1).", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -3534,7 +3697,7 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] @@ -3545,8 +3708,8 @@ "type": "object", "additionalProperties": false, "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -3585,19 +3748,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.LogAction": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Log to console", "description": "Log a message to the host application. Send a TraceActivity to Bot Framework Emulator (optional).", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -3649,20 +3812,20 @@ "title": "Type", "required": [ "text", - "$type" + "$kind" ] } ] }, "Microsoft.LuisRecognizer": { - "$role": "unionType(Microsoft.IRecognizer)", + "$role": "union(Microsoft.IRecognizer)", "title": "LUIS Recognizer", "description": "LUIS recognizer.", "type": "object", "additionalProperties": false, "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -3713,19 +3876,19 @@ "applicationId", "endpoint", "endpointKey", - "$type" + "$kind" ] } ] }, "Microsoft.MentionEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "Mentions Entity Recognizer", "description": "Recognizer which recognizes @Mentions", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -3765,19 +3928,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.MostSpecificSelector": { - "$role": "unionType(Microsoft.ITriggerSelector)", + "$role": "union(Microsoft.ITriggerSelector)", "title": "Most Specific Trigger Selector", "description": "Select most specific true events with optional additional selector", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -3801,7 +3964,7 @@ "description": "Extra information for the Bot Framework Designer." }, "selector": { - "$type": "Microsoft.ITriggerSelector", + "$kind": "Microsoft.ITriggerSelector", "$ref": "#/definitions/Microsoft.ITriggerSelector" } }, @@ -3821,19 +3984,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.MultiLanguageRecognizer": { - "$role": "unionType(Microsoft.IRecognizer)", + "$role": "union(Microsoft.IRecognizer)", "title": "Multi-language recognizer", "description": "Configure one recognizer per language and the specify the language fallback policy.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -3857,7 +4020,7 @@ "description": "Extra information for the Bot Framework Designer." }, "languagePolicy": { - "$type": "Microsoft.LanguagePolicy", + "$kind": "Microsoft.LanguagePolicy", "type": "object", "title": "Language policy", "description": "Defines fall back languages to try per user input language.", @@ -3868,7 +4031,7 @@ "title": "Recognizers", "description": "Map of language -> IRecognizer", "additionalProperties": { - "$type": "Microsoft.IRecognizer", + "$kind": "Microsoft.IRecognizer", "$ref": "#/definitions/Microsoft.IRecognizer" } } @@ -3890,19 +4053,19 @@ "title": "Type", "required": [ "recognizers", - "$type" + "$kind" ] } ] }, "Microsoft.NumberEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "Number Entity Recognizer", "description": "Recognizer which recognizes numbers.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -3942,19 +4105,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.NumberInput": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Number input dialog", "description": "Collect information - Ask for a number.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -3983,7 +4146,7 @@ "description": "Optional id for the dialog" }, "prompt": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Initial prompt", "description": "Message to send to collect information.", "examples": [ @@ -3992,7 +4155,7 @@ "$ref": "#/definitions/Microsoft.IActivityTemplate" }, "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Unrecognized prompt", "description": "Message to send if user response is not recognized.", "examples": [ @@ -4001,7 +4164,7 @@ "$ref": "#/definitions/Microsoft.IActivityTemplate" }, "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Invalid prompt", "description": "Message to send if user response is invalid. Relies on specified validation expressions.", "examples": [ @@ -4010,7 +4173,7 @@ "$ref": "#/definitions/Microsoft.IActivityTemplate" }, "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Default value response", "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", "examples": [ @@ -4092,14 +4255,13 @@ "type": "string" }, "outputFormat": { - "type": "string", - "enum": [ - "float", - "integer" - ], + "$role": "expression", "title": "Output format", - "description": "Number output format.", - "default": "float" + "description": "Expression to format the number output.", + "examples": [ + "int(this.value)" + ], + "type": "string" }, "defaultLocale": { "type": "string", @@ -4124,19 +4286,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.NumberRangeEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "NumberRange Entity Recognizer", "description": "Recognizer which recognizes ranges of numbers (Example:2 to 5).", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -4176,19 +4338,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.OAuthInput": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "OAuthInput Dialog", "description": "Collect login information.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -4268,19 +4430,19 @@ "title": "Type", "required": [ "connectionName", - "$type" + "$kind" ] } ] }, "Microsoft.OnActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On activity", "description": "Actions to perform on receipt of a generic activity.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -4316,7 +4478,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } }, @@ -4344,19 +4506,19 @@ "required": [ "actions", "type", - "$type" + "$kind" ] } ] }, "Microsoft.OnBeginDialog": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On begin dialog", "description": "Actions to perform when this dialog begins.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -4392,7 +4554,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -4414,19 +4576,19 @@ "title": "Type", "required": [ "actions", - "$type" + "$kind" ] } ] }, "Microsoft.OnCancelDialog": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On cancel dialog", "description": "Actions to perform on cancel dialog event.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -4462,7 +4624,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -4484,19 +4646,19 @@ "title": "Type", "required": [ "actions", - "$type" + "$kind" ] } ] }, "Microsoft.OnCondition": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On condition", "description": "Actions to perform when specified condition is true.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -4532,7 +4694,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -4554,19 +4716,19 @@ "title": "Type", "required": [ "actions", - "$type" + "$kind" ] } ] }, "Microsoft.OnConversationUpdateActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On ConversationUpdate activity", "description": "Actions to perform on receipt of an activity with type 'ConversationUpdate'.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -4602,7 +4764,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -4624,19 +4786,19 @@ "title": "Type", "required": [ "actions", - "$type" + "$kind" ] } ] }, "Microsoft.OnCustomEvent": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On custom event", "description": "Actions to perform when a custom event is detected. Use 'Emit a custom event' action to raise a custom event.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -4672,7 +4834,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } }, @@ -4700,19 +4862,19 @@ "required": [ "actions", "event", - "$type" + "$kind" ] } ] }, "Microsoft.OnDialogEvent": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On dialog event", "description": "Actions to perform when a specific dialog event occurs.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -4748,7 +4910,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } }, @@ -4776,19 +4938,19 @@ "required": [ "actions", "event", - "$type" + "$kind" ] } ] }, "Microsoft.OnEndOfConversationActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On EndOfConversation activity", "description": "Actions to perform on receipt of an activity with type 'EndOfConversation'.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -4824,7 +4986,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -4846,19 +5008,19 @@ "title": "Type", "required": [ "actions", - "$type" + "$kind" ] } ] }, "Microsoft.OnError": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On Error", "description": "Action to perform when an 'Error' dialog event occurs.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -4894,7 +5056,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -4916,19 +5078,19 @@ "title": "Type", "required": [ "actions", - "$type" + "$kind" ] } ] }, "Microsoft.OnEventActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On Event activity", "description": "Actions to perform on receipt of an activity with type 'Event'.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -4964,7 +5126,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -4986,19 +5148,19 @@ "title": "Type", "required": [ "actions", - "$type" + "$kind" ] } ] }, "Microsoft.OnHandoffActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On Handoff activity", "description": "Actions to perform on receipt of an activity with type 'HandOff'.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -5034,7 +5196,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -5056,19 +5218,19 @@ "title": "Type", "required": [ "actions", - "$type" + "$kind" ] } ] }, "Microsoft.OnIntent": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On intent recognition", "description": "Actions to perform when specified intent is recognized.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -5104,7 +5266,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } }, @@ -5140,19 +5302,19 @@ "required": [ "actions", "intent", - "$type" + "$kind" ] } ] }, "Microsoft.OnInvokeActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On Invoke activity", "description": "Actions to perform on receipt of an activity with type 'Invoke'.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -5188,7 +5350,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -5210,19 +5372,19 @@ "title": "Type", "required": [ "actions", - "$type" + "$kind" ] } ] }, "Microsoft.OnMessageActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On Message activity", "description": "Actions to perform on receipt of an activity with type 'Message'. Overrides Intent trigger.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -5258,7 +5420,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -5280,19 +5442,19 @@ "title": "Type", "required": [ "actions", - "$type" + "$kind" ] } ] }, "Microsoft.OnMessageDeleteActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On MessageDelete activity", "description": "Actions to perform on receipt of an activity with type 'MessageDelete'.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -5328,7 +5490,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -5350,19 +5512,19 @@ "title": "Type", "required": [ "actions", - "$type" + "$kind" ] } ] }, "Microsoft.OnMessageReactionActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On MessageReaction activity", "description": "Actions to perform on receipt of an activity with type 'MessageReaction'.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -5398,7 +5560,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -5420,19 +5582,19 @@ "title": "Type", "required": [ "actions", - "$type" + "$kind" ] } ] }, "Microsoft.OnMessageUpdateActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On MessageUpdate activity", "description": "Actions to perform on receipt of an activity with type 'MessageUpdate'.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -5468,7 +5630,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -5490,19 +5652,19 @@ "title": "Type", "required": [ "actions", - "$type" + "$kind" ] } ] }, "Microsoft.OnRepromptDialog": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On RepromptDialog", "description": "Actions to perform when 'RepromptDialog' event occurs.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -5538,7 +5700,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -5560,19 +5722,19 @@ "title": "Type", "required": [ "actions", - "$type" + "$kind" ] } ] }, "Microsoft.OnTypingActivity": { - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "title": "On Typing activity", "description": "Actions to perform on receipt of an activity with type 'Typing'.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -5608,7 +5770,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -5630,7 +5792,7 @@ "title": "Type", "required": [ "actions", - "$type" + "$kind" ] } ] @@ -5639,10 +5801,10 @@ "title": "On unknown intent", "description": "Action to perform when user input is unrecognized and if none of the 'on intent recognition' triggers match recognized intent.", "type": "object", - "$role": "unionType(Microsoft.ITriggerCondition)", + "$role": "union(Microsoft.ITriggerCondition)", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -5678,7 +5840,7 @@ "type": "array", "description": "Sequence of actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -5700,19 +5862,19 @@ "title": "Type", "required": [ "actions", - "$type" + "$kind" ] } ] }, "Microsoft.OrdinalEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "Ordinal Entity Recognizer", "description": "Recognizer which recognizes ordinals (example: first, second, 3rd).", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -5752,19 +5914,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.PercentageEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "Percentage Entity Recognizer", "description": "Recognizer which recognizes percentages.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -5804,19 +5966,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.PhoneNumberEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "Phone Number Entity Recognizer", "description": "Recognizer which recognizes phone numbers.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -5856,20 +6018,20 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.QnAMakerDialog": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "QnAMaker Dialog", "description": "Dialog which uses QnAMAker knowledge base to answer questions.", "type": "object", "additionalProperties": false, "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -5917,7 +6079,7 @@ "type": "string" }, "noAnswer": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Fallback answer", "description": "Default answer to return when none found in KB.", "default": "Sorry, I did not find an answer.", @@ -5942,7 +6104,7 @@ "default": "None of the above." }, "cardNoMatchResponse ": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Card no match response", "description": "Custom response when no match option was selected.", "default": "Thanks for the feedback.", @@ -5950,11 +6112,29 @@ }, "strictFilters": { "type": "array", - "title": "Strict Filter Property", - "description": "Memory property that holds strict filters to use when calling the QnA Maker KB.", + "title": "Strict Filters", + "description": "Metadata filters to use when calling the QnA Maker KB.", "items": { - "type": "object" + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "Name", + "maximum": 100 + }, + "value": { + "type": "string", + "title": "Value", + "maximum": 100 + } + } } + }, + "top": { + "type": "number", + "title": "Top", + "description": "The number of answers you want to retrieve.", + "default": 3 } }, "patternProperties": { @@ -5975,19 +6155,19 @@ "knowledgeBaseId", "endpointKey", "hostname", - "$type" + "$kind" ] } ] }, "Microsoft.RandomSelector": { - "$role": "unionType(Microsoft.ITriggerSelector)", + "$role": "union(Microsoft.ITriggerSelector)", "title": "Random rule selector", "description": "Select most specific true rule", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -6030,19 +6210,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.RegExEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "Regex Entity Recognizer", "description": "Recognizer which recognizes patterns of input based on regex.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -6094,19 +6274,19 @@ "required": [ "name", "pattern", - "$type" + "$kind" ] } ] }, "Microsoft.RegexRecognizer": { - "$role": "unionType(Microsoft.IRecognizer)", + "$role": "union(Microsoft.IRecognizer)", "title": "Regex recognizer", "description": "Use regular expressions to recognize intents and entities from user input.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -6154,7 +6334,7 @@ "title": "Entity recognizers", "description": "Collection of entity recognizers to use.", "items": { - "$type": "Microsoft.EntityRecognizers", + "$kind": "Microsoft.EntityRecognizers", "$ref": "#/definitions/Microsoft.EntityRecognizers" } } @@ -6176,19 +6356,19 @@ "title": "Type", "required": [ "intents", - "$type" + "$kind" ] } ] }, "Microsoft.RepeatDialog": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "type": "object", "title": "Repeat dialog", "description": "Repeat current dialog.", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -6210,6 +6390,21 @@ "title": "$designer", "type": "object", "description": "Extra information for the Bot Framework Designer." + }, + "options": { + "type": "object", + "title": "Options", + "description": "One or more options that are passed to the dialog that is called.", + "additionalProperties": { + "type": "string", + "title": "Options" + } + }, + "includeActivity": { + "type": "boolean", + "title": "Include Activity", + "description": "When set to true, dialog that is called can process the current activity.", + "default": false } }, "additionalProperties": false, @@ -6228,19 +6423,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.ReplaceDialog": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "type": "object", "title": "Replace dialog", "description": "Replace current dialog with another dialog.", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -6264,9 +6459,12 @@ "description": "Extra information for the Bot Framework Designer." }, "dialog": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "title": "Dialog name", - "description": "Current dialog will be replaced by this dialog.", + "description": "Name of the dialog to call.", + "examples": [ + "AddToDoDialog" + ], "$ref": "#/definitions/Microsoft.IDialog" }, "options": { @@ -6277,6 +6475,12 @@ "type": "string", "title": "Options" } + }, + "includeActivity": { + "type": "boolean", + "title": "Include Activity", + "description": "When set to true, dialog that is called can process the current activity.", + "default": false } }, "additionalProperties": false, @@ -6295,19 +6499,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.SendActivity": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Send an activity", "description": "Respond with an activity.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -6331,7 +6535,7 @@ "description": "Extra information for the Bot Framework Designer." }, "activity": { - "$type": "Microsoft.IActivityTemplate", + "$kind": "Microsoft.IActivityTemplate", "title": "Activity", "description": "Activity to send.", "$ref": "#/definitions/Microsoft.IActivityTemplate" @@ -6353,19 +6557,102 @@ { "title": "Type", "required": [ - "$type" + "$kind" + ] + } + ] + }, + "Microsoft.SetProperties": { + "$role": "union(Microsoft.IDialog)", + "title": "Set property", + "description": "Set one or more property values.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.SetProperties" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "assignments": { + "type": "array", + "title": "Assignments", + "description": "Property value assignments to set.", + "items": { + "type": "object", + "properties": { + "property": { + "$role": "expression", + "title": "Property", + "description": "Property (named location to store information).", + "examples": [ + "user.age" + ], + "type": "string" + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "New value or expression.", + "examples": [ + "'milk'", + "dialog.favColor", + "dialog.favColor == 'red'" + ], + "type": "string" + } + } + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "assignments", + "$kind" ] } ] }, "Microsoft.SetProperty": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Set property", "description": "Set property to a value.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -6427,19 +6714,19 @@ "required": [ "property", "value", - "$type" + "$kind" ] } ] }, "Microsoft.StaticActivityTemplate": { - "$role": "unionType(Microsoft.IActivityTemplate)", + "$role": "union(Microsoft.IActivityTemplate)", "title": "Microsoft Static Activity Template", "description": "This allows you to define a static Activity object", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -6485,19 +6772,19 @@ "title": "Type", "required": [ "activity", - "$type" + "$kind" ] } ] }, "Microsoft.SwitchCondition": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Switch condition", "description": "Execute different actions based on the value of a property.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -6555,7 +6842,7 @@ "title": "Actions", "description": "Actions to execute.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -6567,7 +6854,7 @@ "title": "Default", "description": "Actions to execute if none of the cases meet the condition.", "items": { - "$type": "Microsoft.IDialog", + "$kind": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } } @@ -6589,19 +6876,19 @@ "title": "Type", "required": [ "condition", - "$type" + "$kind" ] } ] }, "Microsoft.TemperatureEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "Temperature Entity Recognizer", "description": "Recognizer which recognizes temperatures.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -6641,23 +6928,23 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, - "Microsoft.TextInput": { - "$role": "unionType(Microsoft.IDialog)", + "Microsoft.Test.AssertCondition": { + "$role": "union(Microsoft.IDialog)", + "title": "Assert Condition", + "description": "Assert condition is true.", "type": "object", - "title": "Text input dialog", - "description": "Collection information - Ask for a word or sentence.", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.TextInput" + "const": "Microsoft.Test.AssertCondition" }, "$copy": { "title": "$copy", @@ -6676,45 +6963,798 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "id": { - "type": "string", - "title": "Id", - "description": "Optional id for the dialog" - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial prompt", - "description": "Message to send to collect information.", - "examples": [ - "What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized prompt", - "description": "Message to send if user response is not recognized.", + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Expression to evalute", "examples": [ - "Sorry, I do not understand '{turn.activity.text'}. Let's try again. What is your birth date?" + "user.age > 10" ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" + "type": "string" }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid prompt", - "description": "Message to send if user response is invalid. Relies on specified validation expressions.", - "examples": [ - "Sorry, '{this.value}' does not work. I need a number between 1-150. What is your age?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" + "description": { + "type": "string", + "title": "Description", + "description": "Description of what the condition is testing" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] }, - "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", - "title": "Default value response", - "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", - "examples": [ - "Sorry, I'm having trouble understanding you. I will just use {this.options.defaultValue} for now. You can say 'I'm 36 years old' to change it." - ], + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.Test.AssertReply": { + "$role": "union(Microsoft.Test.ITestAction)", + "title": "Assert Reply", + "description": "Asserts that a reply text is valid.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.AssertReply" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "text": { + "type": "string", + "title": "Reply Text", + "description": "Expected reply text" + }, + "exact": { + "type": "boolean", + "title": "Exact Match", + "description": "If true then an exact match must happen, if false then the reply activity.text must contain the reply text. [Default:false]" + }, + "description": { + "type": "string", + "title": "Description", + "description": "The description of what the assertion is testing" + }, + "timeout": { + "type": "number", + "title": "Timeout", + "description": "The amount of time in milliseconds to wait for a reply (default is 3000)" + }, + "assertions": { + "type": "array", + "title": "Assertions to perform to validate Activity that is sent by the dialog", + "description": "Sequence of expressions which must evaluate to true.", + "items": { + "$role": "expression", + "title": "Assertion", + "description": "Assertion as an expression, which must evaluate to true or it will fail the test script.", + "examples": [ + "user.vip == true" + ], + "type": "string" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "text", + "$kind" + ] + } + ] + }, + "Microsoft.Test.AssertReplyActivity": { + "$role": "union(Microsoft.Test.ITestAction)", + "title": "Assert Reply Activity", + "description": "Asserts that a reply activity is valid.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.AssertReplyActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "description": { + "type": "string", + "title": "Description", + "description": "The description of what the assertion is testing" + }, + "timeout": { + "type": "number", + "title": "Timeout", + "description": "The amount of time in milliseconds to wait for a reply (default is 3000)" + }, + "assertions": { + "type": "array", + "title": "Assertions to perform to validate Activity that is sent by the dialog", + "description": "Sequence of expressions which must evaluate to true.", + "items": { + "$role": "expression", + "title": "Assertion", + "description": "Assertion as an expression, which must evaluate to true or it will fail the test script.", + "examples": [ + "user.vip == true" + ], + "type": "string" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "assertions", + "$kind" + ] + } + ] + }, + "Microsoft.Test.AssertReplyOneOf": { + "$role": "union(Microsoft.Test.ITestAction)", + "title": "Assert Reply OneOf", + "description": "Asserts that a reply text is one of multiple optional responses.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.AssertReplyOneOf" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "text": { + "type": "array", + "title": "Replies", + "description": "Expected replies (one of which must match", + "items": { + "type": "string" + } + }, + "exact": { + "type": "boolean", + "title": "Exact Match", + "description": "If true then an exact match must happen, if false then the reply activity.text must contain the reply text. [Default:false]" + }, + "description": { + "type": "string", + "title": "Description", + "description": "The description of what the assertion is testing" + }, + "timeout": { + "type": "number", + "title": "Timeout", + "description": "The amount of time in milliseconds to wait for a reply (default is 3000)" + }, + "assertions": { + "type": "array", + "title": "Assertions to perform to validate Activity that is sent by the dialog", + "description": "Sequence of expressions which must evaluate to true.", + "items": { + "$role": "expression", + "title": "Assertion", + "description": "Assertion as an expression, which must evaluate to true or it will fail the test script.", + "examples": [ + "user.vip == true" + ], + "type": "string" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "replies", + "$kind" + ] + } + ] + }, + "Microsoft.Test.ITestAction": { + "title": "Microsoft Test ITestAction", + "description": "Union of components which implement the Test.ITestAction interface", + "$role": "union", + "oneOf": [ + { + "title": "Microsoft.Test.AssertReply", + "description": "Asserts that a reply text is valid.", + "$ref": "#/definitions/Microsoft.Test.AssertReply" + }, + { + "title": "Microsoft.Test.AssertReplyActivity", + "description": "Asserts that a reply activity is valid.", + "$ref": "#/definitions/Microsoft.Test.AssertReplyActivity" + }, + { + "title": "Microsoft.Test.AssertReplyOneOf", + "description": "Asserts that a reply text is one of multiple optional responses.", + "$ref": "#/definitions/Microsoft.Test.AssertReplyOneOf" + }, + { + "title": "Microsoft.Test.UserActivity", + "description": "Sends activity to the bot.", + "$ref": "#/definitions/Microsoft.Test.UserActivity" + }, + { + "title": "Microsoft.Test.UserConversationUpdate", + "description": "Sends ConversationUpdate activity to the bot.", + "$ref": "#/definitions/Microsoft.Test.UserConversationUpdate" + }, + { + "title": "Microsoft.Test.UserDelay", + "description": "Delays text script for time period.", + "$ref": "#/definitions/Microsoft.Test.UserDelay" + }, + { + "title": "Microsoft.Test.UserSays", + "description": "Sends text to the bot from the user.", + "$ref": "#/definitions/Microsoft.Test.UserSays" + }, + { + "title": "Microsoft.Test.UserTyping", + "description": "Sends typing activity to the bot.", + "$ref": "#/definitions/Microsoft.Test.UserTyping" + } + ] + }, + "Microsoft.Test.Script": { + "title": "Test Script", + "description": "Defines a sequence of test actions to perform to validate the behavior of dialogs.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.Script" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "dialog": { + "$kind": "Microsoft.IDialog", + "title": "Dialog", + "description": "The root dialog to execute the test script against.", + "$ref": "#/definitions/Microsoft.IDialog" + }, + "description": { + "type": "string", + "title": "Description", + "description": "Description of the test script" + }, + "script": { + "type": "array", + "description": "Sequence of test actions to execute.", + "items": { + "$kind": "Microsoft.Test.ITestAction", + "$ref": "#/definitions/Microsoft.Test.ITestAction" + } + }, + "enableTrace": { + "type": "boolean", + "title": "Enable Trace Activity", + "description": "Enable trace activities in the unit test (default is false)", + "default": false + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "dialog", + "testActions", + "$kind" + ] + } + ] + }, + "Microsoft.Test.UserActivity": { + "$role": "union(Microsoft.Test.ITestAction)", + "title": "Send Activity", + "description": "Sends activity to the bot.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.UserActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "activity": { + "type": "object", + "additionalProperties": true + }, + "user": { + "type": "string", + "title": "User Name", + "description": "The activity.from.id and activity.from.name will be this if specified." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "activity", + "$kind" + ] + } + ] + }, + "Microsoft.Test.UserConversationUpdate": { + "$role": "union(Microsoft.Test.ITestAction)", + "title": "Send ConversationUpdate", + "description": "Sends ConversationUpdate activity to the bot.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.UserConversationUpdate" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "membersAdded": { + "type": "array", + "title": "Members Added", + "description": "Names of the members to add", + "items": { + "type": "string" + } + }, + "membersRemoved": { + "type": "array", + "title": "Members Removed", + "description": "Names of the members to remove", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.Test.UserDelay": { + "$role": "union(Microsoft.Test.ITestAction)", + "title": "Delay Execution", + "description": "Delays text script for time period.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.UserDelay" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "timespan": { + "type": "number", + "title": "Timespan", + "description": "The amount of time in milliseconds to delay the execution of the test script" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "timespan", + "$kind" + ] + } + ] + }, + "Microsoft.Test.UserSays": { + "$role": "union(Microsoft.Test.ITestAction)", + "title": "User Text", + "description": "Sends text to the bot from the user.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.UserSays" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "text": { + "type": "string", + "title": "Text", + "description": "Text to send to the bot." + }, + "user": { + "type": "string", + "title": "User Name", + "description": "The activity.from.id and activity.from.name will be this if specified." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "text", + "$kind" + ] + } + ] + }, + "Microsoft.Test.UserTyping": { + "$role": "union(Microsoft.Test.ITestAction)", + "title": "Send Typing", + "description": "Sends typing activity to the bot.", + "type": "object", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Test.UserTyping" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "user": { + "type": "string", + "title": "User Name", + "description": "The activity.from.id and activity.from.name will be this if specified." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$kind" + ] + } + ] + }, + "Microsoft.TextInput": { + "$role": "union(Microsoft.IDialog)", + "type": "object", + "title": "Text input dialog", + "description": "Collection information - Ask for a word or sentence.", + "properties": { + "$kind": { + "title": "$kind", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.TextInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "Optional id for the dialog" + }, + "prompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Initial prompt", + "description": "Message to send to collect information.", + "examples": [ + "What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "unrecognizedPrompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Unrecognized prompt", + "description": "Message to send if user response is not recognized.", + "examples": [ + "Sorry, I do not understand '{turn.activity.text'}. Let's try again. What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "invalidPrompt": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Invalid prompt", + "description": "Message to send if user response is invalid. Relies on specified validation expressions.", + "examples": [ + "Sorry, '{this.value}' does not work. I need a number between 1-150. What is your age?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "defaultValueResponse": { + "$kind": "Microsoft.IActivityTemplate", + "title": "Default value response", + "description": "Message to send when max turn count (if specified) has been exceeded and the default value is selected as the value.", + "examples": [ + "Sorry, I'm having trouble understanding you. I will just use {this.options.defaultValue} for now. You can say 'I'm 36 years old' to change it." + ], "$ref": "#/definitions/Microsoft.IActivityTemplate" }, "maxTurnCount": { @@ -6791,16 +7831,13 @@ "type": "string" }, "outputFormat": { - "type": "string", - "enum": [ - "none", - "trim", - "lowercase", - "uppercase" - ], + "$role": "expression", "title": "Output format", - "description": "Format of output.", - "default": "none" + "description": "Expression to format the output.", + "examples": [ + "toUpper(this.value)" + ], + "type": "string" } }, "additionalProperties": false, @@ -6819,19 +7856,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.TextTemplate": { - "$role": "unionType(Microsoft.ITextTemplate)", + "$role": "union(Microsoft.ITextTemplate)", "title": "Microsoft TextTemplate", "description": "Lg tempalte to evaluate to create text", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -6877,19 +7914,19 @@ "title": "Type", "required": [ "template", - "$type" + "$kind" ] } ] }, "Microsoft.TraceActivity": { - "$role": "unionType(Microsoft.IDialog)", + "$role": "union(Microsoft.IDialog)", "title": "Send a TraceActivity", "description": "Send a trace activity to the transcript logger and/ or Bot Framework Emulator.", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -6945,19 +7982,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.TrueSelector": { - "$role": "unionType(Microsoft.ITriggerSelector)", + "$role": "union(Microsoft.ITriggerSelector)", "title": "True Trigger Selector", "description": "Selector for all true events", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -6997,19 +8034,19 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ] }, "Microsoft.UrlEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizers)", + "$role": "union(Microsoft.EntityRecognizers)", "title": "Url Entity Recognizer", "description": "Recognizer which recognizes urls (example: http://bing.com)", "type": "object", "properties": { - "$type": { - "title": "$type", + "$kind": { + "title": "$kind", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", @@ -7049,7 +8086,7 @@ { "title": "Type", "required": [ - "$type" + "$kind" ] } ]