From ed04e4b993af3e8264f3b9e8e6910e16b2abf409 Mon Sep 17 00:00:00 2001 From: Qi Kang Date: Thu, 17 Oct 2019 17:45:44 +0800 Subject: [PATCH 1/2] update template sdk version. --- BotProject/Templates/CSharp/BotProject.csproj | 20 +- BotProject/Templates/CSharp/ComposerBot.cs | 12 +- .../Templates/CSharp/Schemas/sdk.schema | 13726 ++++++++-------- BotProject/Templates/CSharp/Startup.cs | 15 +- .../Templates/CSharp/Tests/ActionsTests.cs | 404 +- .../Tests/ControllingConversationTests.cs | 7 +- .../Templates/CSharp/Tests/InputsTests.cs | 25 +- .../Templates/CSharp/Tests/MessageTests.cs | 7 +- .../Templates/CSharp/Tests/ToDoBotTests.cs | 11 +- 9 files changed, 7020 insertions(+), 7207 deletions(-) diff --git a/BotProject/Templates/CSharp/BotProject.csproj b/BotProject/Templates/CSharp/BotProject.csproj index eb3905b88c..986046aab1 100644 --- a/BotProject/Templates/CSharp/BotProject.csproj +++ b/BotProject/Templates/CSharp/BotProject.csproj @@ -15,16 +15,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/BotProject/Templates/CSharp/ComposerBot.cs b/BotProject/Templates/CSharp/ComposerBot.cs index 0260fa63eb..6fa783fd53 100644 --- a/BotProject/Templates/CSharp/ComposerBot.cs +++ b/BotProject/Templates/CSharp/ComposerBot.cs @@ -12,10 +12,13 @@ using Microsoft.Bot.Builder.Dialogs.Debugging; using Microsoft.Bot.Builder.Dialogs.Declarative; using Microsoft.Bot.Builder.Dialogs.Declarative.Resources; +using Microsoft.Bot.Builder.Dialogs.Debugging; +using Microsoft.Bot.Builder.LanguageGeneration; using Microsoft.Bot.Schema; using Microsoft.Extensions.Configuration; using Microsoft.Recognizers.Text; using Newtonsoft.Json; +using Microsoft.Bot.Builder.AI.QnA; namespace Microsoft.Bot.Builder.ComposerBot.json @@ -28,19 +31,20 @@ public class ComposerBot : ActivityHandler private DialogManager dialogManager; private ConversationState conversationState; private IStatePropertyAccessor dialogState; - private Source.IRegistry registry; + private ISourceMap sourceMap; private string rootDialogFile { get; set; } private IBotTelemetryClient telemetryClient; - public ComposerBot(string rootDialogFile, ConversationState conversationState, UserState userState, ResourceExplorer resourceExplorer, Source.IRegistry registry, IBotTelemetryClient telemetryClient) + public ComposerBot(string rootDialogFile, ConversationState conversationState, UserState userState, ResourceExplorer resourceExplorer, ISourceMap sourceMap, IBotTelemetryClient telemetryClient) { this.conversationState = conversationState; this.userState = userState; this.dialogState = conversationState.CreateProperty("DialogState"); - this.registry = registry; + this.sourceMap = sourceMap; this.resourceExplorer = resourceExplorer; this.rootDialogFile = rootDialogFile; this.telemetryClient = telemetryClient; + DeclarativeTypeLoader.AddComponent(new QnAMakerComponentRegistration()); LoadRootDialogAsync(); } @@ -48,7 +52,7 @@ public ComposerBot(string rootDialogFile, ConversationState conversationState, U private void LoadRootDialogAsync() { var rootFile = resourceExplorer.GetResource(rootDialogFile); - rootDialog = DeclarativeTypeLoader.Load(rootFile, resourceExplorer, registry); + rootDialog = DeclarativeTypeLoader.Load(rootFile, resourceExplorer, sourceMap); this.dialogManager = new DialogManager(rootDialog); } diff --git a/BotProject/Templates/CSharp/Schemas/sdk.schema b/BotProject/Templates/CSharp/Schemas/sdk.schema index c071385d77..57a748a677 100644 --- a/BotProject/Templates/CSharp/Schemas/sdk.schema +++ b/BotProject/Templates/CSharp/Schemas/sdk.schema @@ -1,7174 +1,6998 @@ { - "$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": [ + "$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": [ { - "title": "Microsoft.AdaptiveDialog", - "description": "Configures a data driven dialog via a collection of actions/dialogs.", - "$ref": "#/definitions/Microsoft.AdaptiveDialog" + "title": "Reference", + "required": [ + "$copy" + ] }, { - "title": "Microsoft.AgeEntityRecognizer", - "description": "Recognizer which recognizes age.", - "$ref": "#/definitions/Microsoft.AgeEntityRecognizer" + "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.AttachmentInput", - "description": "This represents a dialog which gathers an attachment such as image or music", - "$ref": "#/definitions/Microsoft.AttachmentInput" + "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.BeginDialog", - "description": "Action which begins another dialog (and when that dialog is done, it will return the caller).", - "$ref": "#/definitions/Microsoft.BeginDialog" + "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.CancelAllDialogs", - "description": "Command to cancel all of the current dialogs by emitting an event which must be caught to prevent cancelation from propagating.", - "$ref": "#/definitions/Microsoft.CancelAllDialogs" + "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.ChoiceInput", - "description": "This represents a dialog which gathers a choice responses", - "$ref": "#/definitions/Microsoft.ChoiceInput" + "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.ConditionalSelector", - "description": "Use a rule selector based on a condition", - "$ref": "#/definitions/Microsoft.ConditionalSelector" + "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.ConfirmInput", - "description": "This represents a dialog which gathers a yes/no style responses", - "$ref": "#/definitions/Microsoft.ConfirmInput" + "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.ConfirmationEntityRecognizer", - "description": "Recognizer which recognizes confirmation choices (yes/no).", - "$ref": "#/definitions/Microsoft.ConfirmationEntityRecognizer" + "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.CurrencyEntityRecognizer", - "description": "Recognizer which recognizes currency.", - "$ref": "#/definitions/Microsoft.CurrencyEntityRecognizer" + "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.DateTimeEntityRecognizer", - "description": "Recognizer which recognizes dates and time fragments.", - "$ref": "#/definitions/Microsoft.DateTimeEntityRecognizer" + "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.DateTimeInput", - "description": "This represents a dialog which gathers Date or Time or DateTime from the user", - "$ref": "#/definitions/Microsoft.DateTimeInput" + "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.DebugBreak", - "description": "If debugger is attached, do a debugger break at this point", - "$ref": "#/definitions/Microsoft.DebugBreak" + "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.DeleteProperty", - "description": "This is a action which allows you to remove a property from memory", - "$ref": "#/definitions/Microsoft.DeleteProperty" + "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.DimensionEntityRecognizer", - "description": "Recognizer which recognizes dimension.", - "$ref": "#/definitions/Microsoft.DimensionEntityRecognizer" + "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.EditActions", - "description": "Edit current dialog with changeType and Actions", - "$ref": "#/definitions/Microsoft.EditActions" + "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.EditArray", - "description": "This is a action which allows you to modify an array in memory", - "$ref": "#/definitions/Microsoft.EditArray" + "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.EmailEntityRecognizer", - "description": "Recognizer which recognizes email.", - "$ref": "#/definitions/Microsoft.EmailEntityRecognizer" + "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.EmitEvent", - "description": "This is a action which allows you to emit an event", - "$ref": "#/definitions/Microsoft.EmitEvent" + "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.EndDialog", - "description": "Command which ends the current dialog, returning the resultProperty as the result of the dialog.", - "$ref": "#/definitions/Microsoft.EndDialog" + "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.EndTurn", - "description": "End the current turn without ending the dialog.", - "$ref": "#/definitions/Microsoft.EndTurn" + "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.FirstSelector", - "description": "Selector for first true rule", - "$ref": "#/definitions/Microsoft.FirstSelector" + "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.Foreach", - "description": "Action which executes actions per item in a collection.", - "$ref": "#/definitions/Microsoft.Foreach" + "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.ForeachPage", - "description": "Action which execute actions per item page in a collection.", - "$ref": "#/definitions/Microsoft.ForeachPage" + "title": "Microsoft.ConfirmationEntityRecognizer", + "description": "Recognizer which recognizes confirmation choices (yes/no).", + "$ref": "#/definitions/Microsoft.ConfirmationEntityRecognizer" }, { - "title": "Microsoft.GuidEntityRecognizer", - "description": "Recognizer which recognizes guids.", - "$ref": "#/definitions/Microsoft.GuidEntityRecognizer" + "title": "Microsoft.CurrencyEntityRecognizer", + "description": "Recognizer which recognizes currency.", + "$ref": "#/definitions/Microsoft.CurrencyEntityRecognizer" }, { - "title": "Microsoft.HashtagEntityRecognizer", - "description": "Recognizer which recognizes Hashtags.", - "$ref": "#/definitions/Microsoft.HashtagEntityRecognizer" + "title": "Microsoft.DateTimeEntityRecognizer", + "description": "Recognizer which recognizes dates and time fragments.", + "$ref": "#/definitions/Microsoft.DateTimeEntityRecognizer" }, { - "title": "Microsoft.HttpRequest", - "description": "This is a action which replaces the current dialog with the target dialog", - "$ref": "#/definitions/Microsoft.HttpRequest" + "title": "Microsoft.DimensionEntityRecognizer", + "description": "Recognizer which recognizes dimension.", + "$ref": "#/definitions/Microsoft.DimensionEntityRecognizer" }, { - "title": "Microsoft.IfCondition", - "description": "Action which conditionally decides which action to execute next.", - "$ref": "#/definitions/Microsoft.IfCondition" + "title": "Microsoft.EmailEntityRecognizer", + "description": "Recognizer which recognizes email.", + "$ref": "#/definitions/Microsoft.EmailEntityRecognizer" }, { - "title": "Microsoft.InitProperty", - "description": "This action allows you to innitial a property to either an object or array", - "$ref": "#/definitions/Microsoft.InitProperty" + "title": "Microsoft.GuidEntityRecognizer", + "description": "Recognizer which recognizes guids.", + "$ref": "#/definitions/Microsoft.GuidEntityRecognizer" }, { - "title": "Microsoft.IpEntityRecognizer", - "description": "Recognizer which recognizes internet IP patterns (like 192.1.1.1).", - "$ref": "#/definitions/Microsoft.IpEntityRecognizer" + "title": "Microsoft.HashtagEntityRecognizer", + "description": "Recognizer which recognizes Hashtags.", + "$ref": "#/definitions/Microsoft.HashtagEntityRecognizer" }, { - "title": "Microsoft.LanguagePolicy", - "description": "This represents a dialog which gathers a DateTime in a specified range", - "$ref": "#/definitions/Microsoft.LanguagePolicy" + "title": "Microsoft.IpEntityRecognizer", + "description": "Recognizer which recognizes internet IP patterns (like 192.1.1.1).", + "$ref": "#/definitions/Microsoft.IpEntityRecognizer" }, { - "title": "Microsoft.LogAction", - "description": "This is a action which writes to console.log and optional creates a TraceActivity around a text binding", - "$ref": "#/definitions/Microsoft.LogAction" + "title": "Microsoft.MentionEntityRecognizer", + "description": "Recognizer which recognizes @Mentions", + "$ref": "#/definitions/Microsoft.MentionEntityRecognizer" }, { - "title": "Microsoft.LuisRecognizer", - "description": "LUIS recognizer.", - "$ref": "#/definitions/Microsoft.LuisRecognizer" + "title": "Microsoft.NumberEntityRecognizer", + "description": "Recognizer which recognizes numbers.", + "$ref": "#/definitions/Microsoft.NumberEntityRecognizer" }, { - "title": "Microsoft.MentionEntityRecognizer", - "description": "Recognizer which recognizes @Mentions", - "$ref": "#/definitions/Microsoft.MentionEntityRecognizer" + "title": "Microsoft.NumberRangeEntityRecognizer", + "description": "Recognizer which recognizes ranges of numbers (Example:2 to 5).", + "$ref": "#/definitions/Microsoft.NumberRangeEntityRecognizer" }, { - "title": "Microsoft.MostSpecificSelector", - "description": "Select most specific true events with optional additional selector", - "$ref": "#/definitions/Microsoft.MostSpecificSelector" + "title": "Microsoft.OrdinalEntityRecognizer", + "description": "Recognizer which recognizes ordinals (example: first, second, 3rd).", + "$ref": "#/definitions/Microsoft.OrdinalEntityRecognizer" }, { - "title": "Microsoft.MultiLanguageRecognizer", - "description": "Recognizer which allows you to configure the recognizer per language, and to define the policy for using them", - "$ref": "#/definitions/Microsoft.MultiLanguageRecognizer" + "title": "Microsoft.PercentageEntityRecognizer", + "description": "Recognizer which recognizes percentages.", + "$ref": "#/definitions/Microsoft.PercentageEntityRecognizer" }, { - "title": "Microsoft.NumberEntityRecognizer", - "description": "Recognizer which recognizes numbers.", - "$ref": "#/definitions/Microsoft.NumberEntityRecognizer" + "title": "Microsoft.PhoneNumberEntityRecognizer", + "description": "Recognizer which recognizes phone numbers.", + "$ref": "#/definitions/Microsoft.PhoneNumberEntityRecognizer" }, { - "title": "Microsoft.NumberInput", - "description": "This represents a dialog which gathers a decimal number in a specified range", - "$ref": "#/definitions/Microsoft.NumberInput" + "title": "Microsoft.RegExEntityRecognizer", + "description": "Recognizer which recognizes patterns of input based on regex.", + "$ref": "#/definitions/Microsoft.RegExEntityRecognizer" }, { - "title": "Microsoft.NumberRangeEntityRecognizer", - "description": "Recognizer which recognizes ranges of numbers (Example:2 to 5).", - "$ref": "#/definitions/Microsoft.NumberRangeEntityRecognizer" + "title": "Microsoft.TemperatureEntityRecognizer", + "description": "Recognizer which recognizes temperatures.", + "$ref": "#/definitions/Microsoft.TemperatureEntityRecognizer" }, { - "title": "Microsoft.OAuthInput", - "description": "This represents a dialog which gathers an OAuth token from user", - "$ref": "#/definitions/Microsoft.OAuthInput" + "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.OnActivity", - "description": "This defines the actions to take when an custom activity is received", - "$ref": "#/definitions/Microsoft.OnActivity" + "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.OnBeginDialog", - "description": "This defines the actions to take when a dialog is started via BeginDialog()", - "$ref": "#/definitions/Microsoft.OnBeginDialog" + "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.OnConversationUpdateActivity", - "description": "This defines the actions to take when an ConversationUpdate activity is received", - "$ref": "#/definitions/Microsoft.OnConversationUpdateActivity" + "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.OnDialogEvent", - "description": "Defines a rule for an event which is triggered by some source", - "$ref": "#/definitions/Microsoft.OnDialogEvent" + "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.OnEndOfConversationActivity", - "description": "This defines the actions to take when an EndOfConversation Activity is received", - "$ref": "#/definitions/Microsoft.OnEndOfConversationActivity" + "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.OnEvent", - "description": "Defines a rule for an event which is triggered by some source", - "$ref": "#/definitions/Microsoft.OnEvent" + "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.OnEventActivity", - "description": "This defines the actions to take when an Event activity is received", - "$ref": "#/definitions/Microsoft.OnEventActivity" + "title": "Microsoft.StaticActivityTemplate", + "description": "This allows you to define a static Activity object", + "$ref": "#/definitions/Microsoft.StaticActivityTemplate" }, { - "title": "Microsoft.OnHandoffActivity", - "description": "This defines the actions to take when an Handoff activity is received", - "$ref": "#/definitions/Microsoft.OnHandoffActivity" + "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.OnIntent", - "description": "This defines the actions to take when an Intent is recognized (and optionally entities)", - "$ref": "#/definitions/Microsoft.OnIntent" + "title": "Microsoft.AttachmentInput", + "description": "Collect information - Ask for a file or image.", + "$ref": "#/definitions/Microsoft.AttachmentInput" }, { - "title": "Microsoft.OnInvokeActivity", - "description": "This defines the actions to take when an Invoke activity is received", - "$ref": "#/definitions/Microsoft.OnInvokeActivity" + "title": "Microsoft.BeginDialog", + "description": "Begin another dialog.", + "$ref": "#/definitions/Microsoft.BeginDialog" }, { - "title": "Microsoft.OnMessageActivity", - "description": "This defines the actions to take when an Message activity is received. NOTE: If this triggers it will override any Recognizer/Intent rule calculation", - "$ref": "#/definitions/Microsoft.OnMessageActivity" + "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.OnMessageDeleteActivity", - "description": "This defines the actions to take when an MessageDelete activity is received", - "$ref": "#/definitions/Microsoft.OnMessageDeleteActivity" + "title": "Microsoft.ChoiceInput", + "description": "Collect information - Pick from a list of choices", + "$ref": "#/definitions/Microsoft.ChoiceInput" }, { - "title": "Microsoft.OnMessageReactionActivity", - "description": "This defines the actions to take when a MessageReaction activity is received", - "$ref": "#/definitions/Microsoft.OnMessageReactionActivity" + "title": "Microsoft.ConfirmInput", + "description": "Collect information - Ask for confirmation (yes or no).", + "$ref": "#/definitions/Microsoft.ConfirmInput" }, { - "title": "Microsoft.OnMessageUpdateActivity", - "description": "This defines the actions to take when an MessageUpdate ctivity is received", - "$ref": "#/definitions/Microsoft.OnMessageUpdateActivity" + "title": "Microsoft.DateTimeInput", + "description": "Collect information - Ask for date and/ or time", + "$ref": "#/definitions/Microsoft.DateTimeInput" }, { - "title": "Microsoft.OnTypingActivity", - "description": "This defines the actions to take when a Typing activity is received", - "$ref": "#/definitions/Microsoft.OnTypingActivity" + "title": "Microsoft.DebugBreak", + "description": "If debugger is attached, stop the execution at this point in the conversation.", + "$ref": "#/definitions/Microsoft.DebugBreak" }, { - "title": "Microsoft.OnUnknownIntent", - "description": "This defines the actions to take when an utterence is not recognized (aka, the None Intent). NOTE: UnknownIntent will defer to any specific intent that fires in a parent dialog", - "$ref": "#/definitions/Microsoft.OnUnknownIntent" + "title": "Microsoft.DeleteProperty", + "description": "Delete a property and any value it holds.", + "$ref": "#/definitions/Microsoft.DeleteProperty" }, { - "title": "Microsoft.OrdinalEntityRecognizer", - "description": "Recognizer which recognizes ordinals (example: first, second, 3rd).", - "$ref": "#/definitions/Microsoft.OrdinalEntityRecognizer" + "title": "Microsoft.EditActions", + "description": "Edit the current list of actions.", + "$ref": "#/definitions/Microsoft.EditActions" }, { - "title": "Microsoft.PercentageEntityRecognizer", - "description": "Recognizer which recognizes percentages.", - "$ref": "#/definitions/Microsoft.PercentageEntityRecognizer" + "title": "Microsoft.EditArray", + "description": "Modify an array in memory", + "$ref": "#/definitions/Microsoft.EditArray" }, { - "title": "Microsoft.PhoneNumberEntityRecognizer", - "description": "Recognizer which recognizes phone numbers.", - "$ref": "#/definitions/Microsoft.PhoneNumberEntityRecognizer" + "title": "Microsoft.EmitEvent", + "description": "Emit an event. Capture this event with a trigger.", + "$ref": "#/definitions/Microsoft.EmitEvent" }, { - "title": "Microsoft.QnAMakerDialog", - "description": "This represents a dialog which is driven by a call to QnAMaker.ai knowledge base", - "$ref": "#/definitions/Microsoft.QnAMakerDialog" + "title": "Microsoft.EndDialog", + "description": "End this dialog.", + "$ref": "#/definitions/Microsoft.EndDialog" }, { - "title": "Microsoft.RandomSelector", - "description": "Select most specific true rule", - "$ref": "#/definitions/Microsoft.RandomSelector" + "title": "Microsoft.EndTurn", + "description": "End the current turn without ending the dialog.", + "$ref": "#/definitions/Microsoft.EndTurn" }, { - "title": "Microsoft.RegexEntityRecognizer", - "description": "Recognizer which recognizes patterns of input based on regex.", - "$ref": "#/definitions/Microsoft.RegexEntityRecognizer" + "title": "Microsoft.Foreach", + "description": "Execute actions on each item in an a collection.", + "$ref": "#/definitions/Microsoft.Foreach" }, { - "title": "Microsoft.RegexRecognizer", - "description": "Recognizer which uses regex expressions to generate intents and entities.", - "$ref": "#/definitions/Microsoft.RegexRecognizer" + "title": "Microsoft.ForeachPage", + "description": "Execute actions on each page (collection of items) in an array.", + "$ref": "#/definitions/Microsoft.ForeachPage" }, { - "title": "Microsoft.RepeatDialog", - "description": "This is a action which repeats the current dialog with the same dialog.", - "$ref": "#/definitions/Microsoft.RepeatDialog" + "title": "Microsoft.HttpRequest", + "description": "Make a HTTP request.", + "$ref": "#/definitions/Microsoft.HttpRequest" }, { - "title": "Microsoft.ReplaceDialog", - "description": "This is a action which replaces the current dialog with the target dialog", - "$ref": "#/definitions/Microsoft.ReplaceDialog" + "title": "Microsoft.IfCondition", + "description": "Two-way branch the conversation flow based on a condition.", + "$ref": "#/definitions/Microsoft.IfCondition" }, { - "title": "Microsoft.SendActivity", - "description": "This is a action which sends an activity to the user", - "$ref": "#/definitions/Microsoft.SendActivity" + "title": "Microsoft.InitProperty", + "description": "Define and initialize a property to be an array or object.", + "$ref": "#/definitions/Microsoft.InitProperty" }, { - "title": "Microsoft.SetProperty", - "description": "This action allows you to set memory to the value of an expression", - "$ref": "#/definitions/Microsoft.SetProperty" + "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.SwitchCondition", - "description": "Action which conditionally decides which action to execute next.", - "$ref": "#/definitions/Microsoft.SwitchCondition" + "title": "Microsoft.NumberInput", + "description": "Collect information - Ask for a number.", + "$ref": "#/definitions/Microsoft.NumberInput" }, { - "title": "Microsoft.TemperatureEntityRecognizer", - "description": "Recognizer which recognizes temperatures.", - "$ref": "#/definitions/Microsoft.TemperatureEntityRecognizer" + "title": "Microsoft.OAuthInput", + "description": "Collect login information.", + "$ref": "#/definitions/Microsoft.OAuthInput" }, { - "title": "Microsoft.TextInput", - "description": "This represents a dialog which gathers a text from the user", - "$ref": "#/definitions/Microsoft.TextInput" + "title": "Microsoft.QnAMakerDialog", + "description": "Dialog which uses QnAMAker knowledge base to answer questions.", + "$ref": "#/definitions/Microsoft.QnAMakerDialog" }, { - "title": "Microsoft.TraceActivity", - "description": "This is a action which sends an TraceActivity to the transcript", - "$ref": "#/definitions/Microsoft.TraceActivity" + "title": "Microsoft.RepeatDialog", + "description": "Repeat current dialog.", + "$ref": "#/definitions/Microsoft.RepeatDialog" }, { - "title": "Microsoft.TrueSelector", - "description": "Selector for all true events", - "$ref": "#/definitions/Microsoft.TrueSelector" + "title": "Microsoft.ReplaceDialog", + "description": "Replace current dialog with another dialog.", + "$ref": "#/definitions/Microsoft.ReplaceDialog" }, { - "title": "Microsoft.UrlEntityRecognizer", - "description": "Recognizer which recognizes urls (example: http://bing.com)", - "$ref": "#/definitions/Microsoft.UrlEntityRecognizer" - } - ], - "definitions": { - "Microsoft.AdaptiveDialog": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Adaptive Dialog", - "description": "Configures a data driven dialog via a collection of actions/dialogs.", - "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "inputBindings": { - "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", - "examples": [ - "value.birthday" - ], - "additionalProperties": { - "type": "string" - } - }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": [ - "value.birthday" - ], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "autoEndDialog": { - "type": "boolean", - "title": "Auto End Dialog", - "description": "If this is true the dialog will automatically end when there are no more actions to run. If this is false it is the responsbility of the author to call EndDialog at an appropriate time.", - "default": "true" - }, - "defaultResultProperty": { - "type": "string", - "title": "Default Result Property", - "description": "Property path to the memory to return as the result of this dialog ending because AutoEndDialog is true and there are no more actions to execute.", - "default": "dialog.result" - }, - "recognizer": { - "$type": "Microsoft.IRecognizer", - "title": "Recognizer", - "description": "Configured recognizer to generate intent and entites from user utterance", - "$ref": "#/definitions/Microsoft.IRecognizer" - }, - "generator": { - "$type": "Microsoft.ILanguageGenerator", - "title": "Language Generator", - "description": "Language generator to use for this dialog. (aka: LG file)", - "$ref": "#/definitions/Microsoft.ILanguageGenerator" - }, - "selector": { - "$type": "Microsoft.IEventSelector", - "title": "Selector", - "description": "Policy for how to select rule to execute next", - "$ref": "#/definitions/Microsoft.IEventSelector" - }, - "events": { - "type": "array", - "description": "Events to use to evaluate conversation", - "items": { - "$type": "Microsoft.IOnEvent", - "$ref": "#/definitions/Microsoft.IOnEvent" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + "title": "Microsoft.SendActivity", + "description": "Respond with an activity.", + "$ref": "#/definitions/Microsoft.SendActivity" }, - "Microsoft.AgeEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "title": "Microsoft.SetProperty", + "description": "Set property to a value.", + "$ref": "#/definitions/Microsoft.SetProperty" }, - "Microsoft.AttachmentInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "AttachmentInput Dialog", - "description": "This represents a dialog which gathers an attachment such as image or music", - "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial Prompt", - "description": "The message to send to as prompt for this input.", - "examples": [ - "What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized Prompt", - "description": "The message to send if the last input is not recognized.", - "examples": [ - "Let's try again. What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid Prompt", - "description": "The message to send to when then input was not valid for the input type.", - "examples": [ - "No date was recognized" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", - "title": "Default Value Response", - "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", - "examples": [ - "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max Turn Count", - "description": "The max retry count for this prompt.", - "default": 2147483647, - "examples": [ - 3 - ] - }, - "validations": { - "type": "array", - "title": "Validation Expressions", - "description": "Expressions to validate an input.", - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "The expression that you evaluated for input.", - "type": "string" - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "Property that this input dialog is bound to", - "examples": [ - "$birthday" - ], - "type": "string" - }, - "defaultValue": { - "$role": "expression", - "title": "Default Value", - "description": "Value to return if the value expression can't be evaluated.", - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always Prompt", - "description": "If set to true this will always prompt the user regardless if you already have the value or not.", - "default": false, - "examples": [ - false - ] - }, - "allowInterruptions": { - "type": "string", - "enum": [ - "always", - "never", - "notRecognized" - ], - "title": "Allow Interruptions", - "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - "default": "notRecognized", - "examples": [ - "notRecognized" - ] - }, - "outputFormat": { - "type": "string", - "enum": [ - "all", - "first" - ], - "title": "Output Format", - "description": "The attachment output format.", - "default": "first" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "title": "Microsoft.SwitchCondition", + "description": "Execute different actions based on the value of a property.", + "$ref": "#/definitions/Microsoft.SwitchCondition" }, - "Microsoft.BeginDialog": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Begin Dialog", - "description": "Action which begins another dialog (and when that dialog is done, it will return the caller).", - "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "dialog": { - "$type": "Microsoft.IDialog", - "title": "Dialog", - "description": "This is the dialog to call.", - "$ref": "#/definitions/Microsoft.IDialog" - }, - "options": { - "type": "object", - "title": "Options binding", - "description": "Bindings to configure the options object to pass to the dialog.", - "additionalProperties": { - "type": "string", - "title": "Options" - } - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "The property to bind to the dialog and store the result in", - "examples": [ - "user.name" - ], - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "title": "Microsoft.TextInput", + "description": "Collection information - Ask for a word or sentence.", + "$ref": "#/definitions/Microsoft.TextInput" }, - "Microsoft.CancelAllDialogs": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Cancel All Dialogs", - "description": "Command to cancel all of the current dialogs by emitting an event which must be caught to prevent cancelation from propagating.", - "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "eventName": { - "title": "Event Name", - "description": "The name of event to emit", - "type": "string" - }, - "eventValue": { - "type": "object", - "title": "Event Value", - "description": "Optional value to emit along with the event", - "additionalProperties": true - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "title": "Microsoft.TraceActivity", + "description": "Send a trace activity to the transcript logger and/ or Bot Framework Emulator.", + "$ref": "#/definitions/Microsoft.TraceActivity" }, - "Microsoft.ChoiceInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "ChoiceInput Dialog", - "description": "This represents a dialog which gathers a choice responses", - "type": "object", - "definitions": { - "choice": { - "type": "object", - "properties": { - "value": { - "type": "string", - "title": "Value", - "description": "the value to return when selected." - }, - "action": { - "title": "Action", - "description": "Card action for the choice", - "type": "object" - }, - "synonyms": { - "type": "array", - "title": "Synonyms", - "description": "the list of synonyms to recognize in addition to the value. This is optional.", - "items": { - "type": "string" - } - } - } - }, - "cardAction": { - "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial Prompt", - "description": "The message to send to as prompt for this input.", - "examples": [ - "What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized Prompt", - "description": "The message to send if the last input is not recognized.", - "examples": [ - "Let's try again. What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid Prompt", - "description": "The message to send to when then input was not valid for the input type.", - "examples": [ - "No date was recognized" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", - "title": "Default Value Response", - "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", - "examples": [ - "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max Turn Count", - "description": "The max retry count for this prompt.", - "default": 2147483647, - "examples": [ - 3 - ] - }, - "validations": { - "type": "array", - "title": "Validation Expressions", - "description": "Expressions to validate an input.", - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "The expression that you evaluated for input.", - "type": "string" - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "Property that this input dialog is bound to", - "examples": [ - "$birthday" - ], - "type": "string" - }, - "defaultValue": { - "$role": "expression", - "title": "Default Value", - "description": "Value to return if the value expression can't be evaluated.", - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always Prompt", - "description": "If set to true this will always prompt the user regardless if you already have the value or not.", - "default": false, - "examples": [ - false - ] - }, - "allowInterruptions": { - "type": "string", - "enum": [ - "always", - "never", - "notRecognized" - ], - "title": "Allow Interruptions", - "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - "default": "notRecognized", - "examples": [ - "notRecognized" - ] - }, - "outputFormat": { - "type": "string", - "enum": [ - "value", - "index" - ], - "title": "Output Format", - "description": "The output format.", - "default": "value" - }, - "choices": { - "type": "array", - "items": [ - { - "type": "object", - "properties": { - "value": { - "type": "string", - "title": "Value", - "description": "the value to return when selected." - }, - "action": { - "title": "Action", - "description": "Card action for the choice", - "type": "object" - }, - "synonyms": { - "type": "array", - "title": "Synonyms", - "description": "the list of synonyms to recognize in addition to the value. This is 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": "The prompts default locale that should be recognized.", - "default": "en-us" - }, - "style": { - "type": "string", - "enum": [ - "None", - "Auto", - "Inline", - "List", - "SuggestedAction", - "HeroCard" - ], - "title": "List Style", - "description": "The kind of choice list style to generate", - "default": "Auto" - }, - "choiceOptions": { - "type": "object", - "properties": { - "inlineSeparator": { - "type": "string", - "title": "Inline Seperator", - "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 OrMore", - "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 - } - } - }, - "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": [ - "$type" - ] - } - ] - }, - "Microsoft.ConditionalSelector": { - "$role": "unionType(Microsoft.IEventSelector)", - "title": "Condtional Event 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 Composer." - }, - "condition": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - }, - "ifTrue": { - "$type": "Microsoft.IEventSelector", - "$ref": "#/definitions/Microsoft.IEventSelector" - }, - "ifFalse": { - "$type": "Microsoft.IEventSelector", - "$ref": "#/definitions/Microsoft.IEventSelector" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "condition", - "ifTrue", - "ifFalse", - "$type" - ] - } - ] - }, - "Microsoft.ConfirmInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "ConfirmInput Dialog", - "description": "This represents a dialog which gathers a yes/no style responses", - "type": "object", - "definitions": { - "choice": { - "type": "object", - "properties": { - "value": { - "type": "string", - "title": "Value", - "description": "the value to return when selected." - }, - "action": { - "title": "Action", - "description": "Card action for the choice", - "type": "object" - }, - "synonyms": { - "type": "array", - "title": "Synonyms", - "description": "The list of synonyms to recognize in addition to the value. This is optional.", - "items": { - "type": "string" - } - } - } - }, - "CardAction": { - "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial Prompt", - "description": "The message to send to as prompt for this input.", - "examples": [ - "What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized Prompt", - "description": "The message to send if the last input is not recognized.", - "examples": [ - "Let's try again. What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid Prompt", - "description": "The message to send to when then input was not valid for the input type.", - "examples": [ - "No date was recognized" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", - "title": "Default Value Response", - "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", - "examples": [ - "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max Turn Count", - "description": "The max retry count for this prompt.", - "default": 2147483647, - "examples": [ - 3 - ] - }, - "validations": { - "type": "array", - "title": "Validation Expressions", - "description": "Expressions to validate an input.", - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "The expression that you evaluated for input.", - "type": "string" - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "Property that this input dialog is bound to", - "examples": [ - "$birthday" - ], - "type": "string" - }, - "defaultValue": { - "$role": "expression", - "title": "Default Value", - "description": "Value to return if the value expression can't be evaluated.", - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always Prompt", - "description": "If set to true this will always prompt the user regardless if you already have the value or not.", - "default": false, - "examples": [ - false - ] - }, - "allowInterruptions": { - "type": "string", - "enum": [ - "always", - "never", - "notRecognized" - ], - "title": "Allow Interruptions", - "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - "default": "notRecognized", - "examples": [ - "notRecognized" - ] - }, - "defaultLocale": { - "type": "string", - "title": "Default Locale", - "description": "The prompts default locale that should be recognized.", - "default": "en-us" - }, - "style": { - "type": "string", - "enum": [ - "None", - "Auto", - "Inline", - "List", - "SuggestedAction", - "HeroCard" - ], - "title": "List Style", - "description": "The kind of choice list style to generate", - "default": "Auto" - }, - "choiceOptions": { - "type": "object", - "properties": { - "inlineSeparator": { - "type": "string", - "title": "Inline Seperator", - "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 OrMore", - "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": "the value to return when selected." - }, - "action": { - "title": "Action", - "description": "Card action for the choice", - "type": "object" - }, - "synonyms": { - "type": "array", - "title": "Synonyms", - "description": "The list of synonyms to recognize in addition to the value. This is optional.", - "items": { - "type": "string" - } - } - } - } - ] - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.ConfirmationEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.CurrencyEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.DateTimeEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.DateTimeInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "DateTimeInput Dialog", - "description": "This represents a dialog which gathers Date or Time or DateTime from the user", - "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial Prompt", - "description": "The message to send to as prompt for this input.", - "examples": [ - "What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized Prompt", - "description": "The message to send if the last input is not recognized.", - "examples": [ - "Let's try again. What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid Prompt", - "description": "The message to send to when then input was not valid for the input type.", - "examples": [ - "No date was recognized" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", - "title": "Default Value Response", - "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", - "examples": [ - "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max Turn Count", - "description": "The max retry count for this prompt.", - "default": 2147483647, - "examples": [ - 3 - ] - }, - "validations": { - "type": "array", - "title": "Validation Expressions", - "description": "Expressions to validate an input.", - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "The expression that you evaluated for input.", - "type": "string" - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "Property that this input dialog is bound to", - "examples": [ - "$birthday" - ], - "type": "string" - }, - "defaultValue": { - "$role": "expression", - "title": "Default Value", - "description": "Value to return if the value expression can't be evaluated.", - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always Prompt", - "description": "If set to true this will always prompt the user regardless if you already have the value or not.", - "default": false, - "examples": [ - false - ] - }, - "allowInterruptions": { - "type": "string", - "enum": [ - "always", - "never", - "notRecognized" - ], - "title": "Allow Interruptions", - "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - "default": "notRecognized", - "examples": [ - "notRecognized" - ] - }, - "defaultLocale": { - "type": "string", - "title": "Default Locale", - "description": "The prompts default locale that should be recognized.", - "default": "en-us" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.DebugBreak": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Debugger Break Action", - "description": "If debugger is attached, do a debugger break at this point", - "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.DeleteProperty": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Delete Property", - "description": "This is a action which allows you to remove a property from 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.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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "The Memory property path to delete", - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "property", - "$type" - ] - } - ] - }, - "Microsoft.DimensionEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] - }, - "Microsoft.EditActions": { - "$role": "unionType(Microsoft.IDialog)", - "title": "EditActions Action", - "description": "Edit current dialog with changeType and 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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "changeType": { - "type": "string", - "title": "Change Type", - "description": "The change type to apply to current dialog", - "enum": [ - "InsertActions", - "InsertActionsBeforeTags", - "AppendActions", - "EndSequence", - "ReplaceSequence" - ] - }, - "actions": { - "type": "array", - "title": "Actions", - "description": "Actions to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "changeType", - "actions", - "$type" - ] - } - ] - }, - "Microsoft.EditArray": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Edit Array Action", - "description": "This is a action which allows you to 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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "changeType": { - "type": "string", - "title": "Change Type", - "description": "The array operation to perform", - "enum": [ - "Push", - "Pop", - "Take", - "Remove", - "Clear" - ] - }, - "arrayProperty": { - "$role": "expression", - "title": "Array Property", - "description": "Memory expression of the array to manipulate.", - "type": "string" - }, - "resultProperty": { - "$role": "expression", - "title": "Result Property", - "description": "Memory expression of the result of this action.", - "type": "string" - }, - "value": { - "$role": "expression", - "title": "Value of the Item", - "description": "Expression to evaluate.", - "examples": [ - "dialog.todo" - ], - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "changeType", - "arrayProperty", - "$type" - ] - } - ] + { + "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" }, - "Microsoft.EmailEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "title": "Microsoft.MultiLanguageRecognizer", + "description": "Configure one recognizer per language and the specify the language fallback policy.", + "$ref": "#/definitions/Microsoft.MultiLanguageRecognizer" }, - "Microsoft.EmitEvent": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Emit Event Action", - "description": "This is a action which allows you to emit an 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.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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "eventName": { - "title": "Event Name", - "description": "The name of 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": "Optional value to emit along with the event", - "additionalProperties": true - }, - "bubbleEvent": { - "type": "boolean", - "title": "Bubble Event", - "description": "If true this event should propagate to parent dialogs" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "eventName", - "$type" - ] - } - ] + { + "title": "Microsoft.RegexRecognizer", + "description": "Use regular expressions to recognize intents and entities from user input.", + "$ref": "#/definitions/Microsoft.RegexRecognizer" }, - "Microsoft.EndDialog": { - "$role": "unionType(Microsoft.IDialog)", - "title": "End Dialog", - "description": "Command which ends the current dialog, returning the resultProperty as the result of 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.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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "property": { - "$role": "expression", - "description": "Specifies a path to memory should be returned as the result to the calling dialog.", - "examples": [ - "dialog.name" - ], - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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" }, - "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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" }, - "Microsoft.EntityRecognizer": { - "$role": "unionType", - "title": "Entity Recognizer", - "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" - } - ] + { + "title": "Microsoft.OnBeginDialog", + "description": "Actions to perform when this dialog begins.", + "$ref": "#/definitions/Microsoft.OnBeginDialog" }, - "Microsoft.FirstSelector": { - "$role": "unionType(Microsoft.IEventSelector)", - "title": "First Event 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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "title": "Microsoft.OnCancelDialog", + "description": "Actions to perform on cancel dialog event.", + "$ref": "#/definitions/Microsoft.OnCancelDialog" }, - "Microsoft.Foreach": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Foreach Action", - "description": "Action which executes actions per item in 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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "listProperty": { - "$role": "expression", - "title": "ListProperty", - "description": "Expression to evaluate.", - "examples": [ - "user.todoList" - ], - "type": "string" - }, - "actions": { - "type": "array", - "title": "Actions", - "description": "Actions to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "indexProperty": { - "$role": "expression", - "title": "Index Property", - "description": "The memory path which refers to the index of the item", - "default": "dialog.index", - "type": "string" - }, - "valueProperty": { - "$role": "expression", - "title": "Value Property", - "description": "The memory path which refers to the value of the item", - "default": "dialog.value", - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "listProperty", - "actions", - "$type" - ] - } - ] + { + "title": "Microsoft.OnCondition", + "description": "Actions to perform when specified condition is true.", + "$ref": "#/definitions/Microsoft.OnCondition" }, - "Microsoft.ForeachPage": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Foreach Page Action", - "description": "Action which execute actions per item page in 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.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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "listProperty": { - "$role": "expression", - "title": "ListProperty", - "description": "Expression to evaluate.", - "examples": [ - "user.todoList" - ], - "type": "string" - }, - "actions": { - "type": "array", - "title": "Actions", - "description": "Actions to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "pageSize": { - "type": "integer", - "title": "Page Size", - "description": "The page size", - "default": 10 - }, - "valueProperty": { - "$role": "expression", - "title": "Value Property", - "description": "The memory path which refers to the value of the item", - "default": "dialog.value", - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "listProperty", - "actions", - "$type" - ] - } - ] + { + "title": "Microsoft.OnConversationUpdateActivity", + "description": "Actions to perform on receipt of an activity with type 'ConversationUpdate'.", + "$ref": "#/definitions/Microsoft.OnConversationUpdateActivity" }, - "Microsoft.GuidEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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" }, - "Microsoft.HashtagEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "title": "Microsoft.OnDialogEvent", + "description": "Actions to perform when a specific dialog event occurs.", + "$ref": "#/definitions/Microsoft.OnDialogEvent" }, - "Microsoft.HttpRequest": { - "$role": "unionType(Microsoft.IDialog)", - "type": "object", - "title": "Http Request", - "description": "This is a action which replaces the current dialog with the target 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.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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "method": { - "type": "string", - "title": "Method", - "description": "The HTTP method to use", - "enum": [ - "GET", - "POST" - ], - "examples": [ - "GET", - "POST" - ] - }, - "url": { - "type": "string", - "title": "Url", - "description": "The url to call (supports data binding)", - "examples": [ - "https://contoso.com" - ] - }, - "body": { - "type": "object", - "title": "Body", - "description": "The body to send in the HTTP call (supports data binding)", - "additionalProperties": true - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "The property to store the result of the HTTP call in. The result will have 4 properties from the http response: statusCode|reasonPhrase|content|headers. If the content is json it will be an deserialized object, otherwise it will be a string", - "examples": [ - "dialog.contosodata" - ], - "type": "string" - }, - "headers": { - "type": "object", - "additionProperties": true, - "title": "Http headers", - "description": "Http headers to include with the HTTP request (supports data binding)" - }, - "responseType": { - "type": "string", - "title": "Response Type", - "description": "Describes how to parse the response from the http request. If Activity or Activities, then the they will be sent to the user.", - "enum": [ - "None", - "Json", - "Activity", - "Activities" - ], - "default": "Json" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "url", - "method", - "$type" - ] - } - ] + { + "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" }, - "Microsoft.IActivityTemplate": { - "title": "Microsoft ActivityTemplate", - "description": "Union of components which implement the IActivityTemplate interface", - "$role": "unionType", - "oneOf": [ - { - "$role": "lg", - "type": "string", - "description": "String is used for language generation.", - "title": "string" - } - ] + { + "title": "Microsoft.OnEventActivity", + "description": "Actions to perform on receipt of an activity with type 'Event'.", + "$ref": "#/definitions/Microsoft.OnEventActivity" }, - "Microsoft.IDialog": { - "title": "Microsoft IDialog", - "description": "Union of components which implement the IDialog interface", - "$role": "unionType", - "oneOf": [ - { - "title": "Microsoft.AdaptiveDialog", - "description": "Configures a data driven dialog via a collection of actions/dialogs.", - "$ref": "#/definitions/Microsoft.AdaptiveDialog" - }, - { - "title": "Microsoft.AttachmentInput", - "description": "This represents a dialog which gathers an attachment such as image or music", - "$ref": "#/definitions/Microsoft.AttachmentInput" - }, - { - "title": "Microsoft.BeginDialog", - "description": "Action which begins another dialog (and when that dialog is done, it will return the caller).", - "$ref": "#/definitions/Microsoft.BeginDialog" - }, - { - "title": "Microsoft.CancelAllDialogs", - "description": "Command to cancel all of the current dialogs by emitting an event which must be caught to prevent cancelation from propagating.", - "$ref": "#/definitions/Microsoft.CancelAllDialogs" - }, - { - "title": "Microsoft.ChoiceInput", - "description": "This represents a dialog which gathers a choice responses", - "$ref": "#/definitions/Microsoft.ChoiceInput" - }, - { - "title": "Microsoft.ConfirmInput", - "description": "This represents a dialog which gathers a yes/no style responses", - "$ref": "#/definitions/Microsoft.ConfirmInput" - }, - { - "title": "Microsoft.DateTimeInput", - "description": "This represents a dialog which gathers Date or Time or DateTime from the user", - "$ref": "#/definitions/Microsoft.DateTimeInput" - }, - { - "title": "Microsoft.DebugBreak", - "description": "If debugger is attached, do a debugger break at this point", - "$ref": "#/definitions/Microsoft.DebugBreak" - }, - { - "title": "Microsoft.DeleteProperty", - "description": "This is a action which allows you to remove a property from memory", - "$ref": "#/definitions/Microsoft.DeleteProperty" - }, - { - "title": "Microsoft.EditActions", - "description": "Edit current dialog with changeType and Actions", - "$ref": "#/definitions/Microsoft.EditActions" - }, - { - "title": "Microsoft.EditArray", - "description": "This is a action which allows you to modify an array in memory", - "$ref": "#/definitions/Microsoft.EditArray" - }, - { - "title": "Microsoft.EmitEvent", - "description": "This is a action which allows you to emit an event", - "$ref": "#/definitions/Microsoft.EmitEvent" - }, - { - "title": "Microsoft.EndDialog", - "description": "Command which ends the current dialog, returning the resultProperty as the result of the 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": "Action which executes actions per item in a collection.", - "$ref": "#/definitions/Microsoft.Foreach" - }, - { - "title": "Microsoft.ForeachPage", - "description": "Action which execute actions per item page in a collection.", - "$ref": "#/definitions/Microsoft.ForeachPage" - }, - { - "title": "Microsoft.HttpRequest", - "description": "This is a action which replaces the current dialog with the target dialog", - "$ref": "#/definitions/Microsoft.HttpRequest" - }, - { - "title": "Microsoft.IfCondition", - "description": "Action which conditionally decides which action to execute next.", - "$ref": "#/definitions/Microsoft.IfCondition" - }, - { - "title": "Microsoft.InitProperty", - "description": "This action allows you to innitial a property to either an object or array", - "$ref": "#/definitions/Microsoft.InitProperty" - }, - { - "title": "Microsoft.LogAction", - "description": "This is a action which writes to console.log and optional creates a TraceActivity around a text binding", - "$ref": "#/definitions/Microsoft.LogAction" - }, - { - "title": "Microsoft.NumberInput", - "description": "This represents a dialog which gathers a decimal number in a specified range", - "$ref": "#/definitions/Microsoft.NumberInput" - }, - { - "title": "Microsoft.OAuthInput", - "description": "This represents a dialog which gathers an OAuth token from user", - "$ref": "#/definitions/Microsoft.OAuthInput" - }, - { - "title": "Microsoft.QnAMakerDialog", - "description": "This represents a dialog which is driven by a call to QnAMaker.ai knowledge base", - "$ref": "#/definitions/Microsoft.QnAMakerDialog" - }, - { - "title": "Microsoft.RepeatDialog", - "description": "This is a action which repeats the current dialog with the same dialog.", - "$ref": "#/definitions/Microsoft.RepeatDialog" - }, - { - "title": "Microsoft.ReplaceDialog", - "description": "This is a action which replaces the current dialog with the target dialog", - "$ref": "#/definitions/Microsoft.ReplaceDialog" - }, - { - "title": "Microsoft.SendActivity", - "description": "This is a action which sends an activity to the user", - "$ref": "#/definitions/Microsoft.SendActivity" - }, - { - "title": "Microsoft.SetProperty", - "description": "This action allows you to set memory to the value of an expression", - "$ref": "#/definitions/Microsoft.SetProperty" - }, - { - "title": "Microsoft.SwitchCondition", - "description": "Action which conditionally decides which action to execute next.", - "$ref": "#/definitions/Microsoft.SwitchCondition" - }, - { - "title": "Microsoft.TextInput", - "description": "This represents a dialog which gathers a text from the user", - "$ref": "#/definitions/Microsoft.TextInput" - }, - { - "title": "Microsoft.TraceActivity", - "description": "This is a action which sends an TraceActivity to the transcript", - "$ref": "#/definitions/Microsoft.TraceActivity" - }, - { - "type": "string", - "title": "string" - } - ] + { + "title": "Microsoft.OnHandoffActivity", + "description": "Actions to perform on receipt of an activity with type 'HandOff'.", + "$ref": "#/definitions/Microsoft.OnHandoffActivity" }, - "Microsoft.IEventSelector": { - "title": "Microsoft IEventSelector", - "description": "Union of components which implement the IEventSelector interface", - "$role": "unionType", - "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" - } - ] + { + "title": "Microsoft.OnIntent", + "description": "Actions to perform when specified intent is recognized.", + "$ref": "#/definitions/Microsoft.OnIntent" }, - "Microsoft.ILanguageGenerator": { - "title": "Microsoft ILanguageGenerator", - "description": "Union of components which implement the ILanguageGenerator interface", - "$role": "unionType", - "oneOf": [ - { - "type": "string", - "title": "string" - } - ] + { + "title": "Microsoft.OnInvokeActivity", + "description": "Actions to perform on receipt of an activity with type 'Invoke'.", + "$ref": "#/definitions/Microsoft.OnInvokeActivity" }, - "Microsoft.ILanguagePolicy": { - "title": "Microsoft Language Policy", - "description": "Union of components which implement the ILanguagePolicy interface", - "$role": "unionType", - "oneOf": [ - { - "title": "Microsoft.LanguagePolicy", - "description": "This represents a dialog which gathers a DateTime in a specified range", - "$ref": "#/definitions/Microsoft.LanguagePolicy" - }, - { - "type": "string", - "title": "string" - } - ] + { + "title": "Microsoft.OnMessageActivity", + "description": "Actions to perform on receipt of an activity with type 'Message'. Overrides Intent trigger.", + "$ref": "#/definitions/Microsoft.OnMessageActivity" }, - "Microsoft.IOnEvent": { - "title": "Microsoft IOnEvent", - "description": "Union of components which implement the IOnEvent interface", - "$role": "unionType", - "oneOf": [ - { - "title": "Microsoft.OnActivity", - "description": "This defines the actions to take when an custom activity is received", - "$ref": "#/definitions/Microsoft.OnActivity" - }, - { - "title": "Microsoft.OnBeginDialog", - "description": "This defines the actions to take when a dialog is started via BeginDialog()", - "$ref": "#/definitions/Microsoft.OnBeginDialog" - }, - { - "title": "Microsoft.OnConversationUpdateActivity", - "description": "This defines the actions to take when an ConversationUpdate activity is received", - "$ref": "#/definitions/Microsoft.OnConversationUpdateActivity" - }, - { - "title": "Microsoft.OnDialogEvent", - "description": "Defines a rule for an event which is triggered by some source", - "$ref": "#/definitions/Microsoft.OnDialogEvent" - }, - { - "title": "Microsoft.OnEndOfConversationActivity", - "description": "This defines the actions to take when an EndOfConversation Activity is received", - "$ref": "#/definitions/Microsoft.OnEndOfConversationActivity" - }, - { - "title": "Microsoft.OnEvent", - "description": "Defines a rule for an event which is triggered by some source", - "$ref": "#/definitions/Microsoft.OnEvent" - }, - { - "title": "Microsoft.OnEventActivity", - "description": "This defines the actions to take when an Event activity is received", - "$ref": "#/definitions/Microsoft.OnEventActivity" - }, - { - "title": "Microsoft.OnHandoffActivity", - "description": "This defines the actions to take when an Handoff activity is received", - "$ref": "#/definitions/Microsoft.OnHandoffActivity" - }, - { - "title": "Microsoft.OnIntent", - "description": "This defines the actions to take when an Intent is recognized (and optionally entities)", - "$ref": "#/definitions/Microsoft.OnIntent" - }, - { - "title": "Microsoft.OnInvokeActivity", - "description": "This defines the actions to take when an Invoke activity is received", - "$ref": "#/definitions/Microsoft.OnInvokeActivity" - }, - { - "title": "Microsoft.OnMessageActivity", - "description": "This defines the actions to take when an Message activity is received. NOTE: If this triggers it will override any Recognizer/Intent rule calculation", - "$ref": "#/definitions/Microsoft.OnMessageActivity" - }, - { - "title": "Microsoft.OnMessageDeleteActivity", - "description": "This defines the actions to take when an MessageDelete activity is received", - "$ref": "#/definitions/Microsoft.OnMessageDeleteActivity" - }, - { - "title": "Microsoft.OnMessageReactionActivity", - "description": "This defines the actions to take when a MessageReaction activity is received", - "$ref": "#/definitions/Microsoft.OnMessageReactionActivity" - }, - { - "title": "Microsoft.OnMessageUpdateActivity", - "description": "This defines the actions to take when an MessageUpdate ctivity is received", - "$ref": "#/definitions/Microsoft.OnMessageUpdateActivity" - }, - { - "title": "Microsoft.OnTypingActivity", - "description": "This defines the actions to take when a Typing activity is received", - "$ref": "#/definitions/Microsoft.OnTypingActivity" - }, - { - "title": "Microsoft.OnUnknownIntent", - "description": "This defines the actions to take when an utterence is not recognized (aka, the None Intent). NOTE: UnknownIntent will defer to any specific intent that fires in a parent dialog", - "$ref": "#/definitions/Microsoft.OnUnknownIntent" - } - ] + { + "title": "Microsoft.OnMessageDeleteActivity", + "description": "Actions to perform on receipt of an activity with type 'MessageDelete'.", + "$ref": "#/definitions/Microsoft.OnMessageDeleteActivity" }, - "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.MultiLanguageRecognizer", - "description": "Recognizer which allows you to configure the recognizer per language, and to define the policy for using them", - "$ref": "#/definitions/Microsoft.MultiLanguageRecognizer" - }, - { - "title": "Microsoft.RegexRecognizer", - "description": "Recognizer which uses regex expressions to generate intents and entities.", - "$ref": "#/definitions/Microsoft.RegexRecognizer" - }, - { - "type": "string", - "title": "string" - } - ] + { + "title": "Microsoft.OnMessageReactionActivity", + "description": "Actions to perform on receipt of an activity with type 'MessageReaction'.", + "$ref": "#/definitions/Microsoft.OnMessageReactionActivity" }, - "Microsoft.ITextTemplate": { - "title": "Microsoft TextTemplate", - "description": "Union of components which implement the ITextTemplate interface", - "$role": "unionType", - "oneOf": [ - { - "type": "string", - "title": "string" - } - ] + { + "title": "Microsoft.OnMessageUpdateActivity", + "description": "Actions to perform on receipt of an activity with type 'MessageUpdate'.", + "$ref": "#/definitions/Microsoft.OnMessageUpdateActivity" }, - "Microsoft.IfCondition": { - "$role": "unionType(Microsoft.IDialog)", - "title": "If Condition Action", - "description": "Action which conditionally decides which action to execute next.", - "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Expression to evaluate.", - "examples": [ - "user.age > 3" - ], - "type": "string" - }, - "actions": { - "type": "array", - "title": "Actions", - "description": "Action to execute if condition is true.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "elseActions": { - "type": "array", - "title": "Else Actions", - "description": "Action to execute if condition is false.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "condition", - "actions", - "$type" - ] - } - ] + { + "title": "Microsoft.OnRepromptDialog", + "description": "Actions to perform when 'RepromptDialog' event occurs.", + "$ref": "#/definitions/Microsoft.OnRepromptDialog" }, - "Microsoft.InitProperty": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Init Property Action", - "description": "This action allows you to innitial a property to either an object or 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.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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "The property to set the value of", - "examples": [ - "user.age" - ], - "type": "string" - }, - "type": { - "type": "string", - "title": "type", - "description": "type of value to set the property to, object or array.", - "enum": [ - "object", - "array" - ] - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "property", - "type", - "$type" - ] - } - ] + { + "title": "Microsoft.OnTypingActivity", + "description": "Actions to perform on receipt of an activity with type 'Typing'.", + "$ref": "#/definitions/Microsoft.OnTypingActivity" }, - "Microsoft.IpEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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.LanguagePolicy": { - "$role": "unionType(Microsoft.ILanguagePolicy)", - "title": "Language Policy", - "description": "This represents a dialog which gathers a DateTime in a specified range", - "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 Composer." - } - }, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "title": "Microsoft.FirstSelector", + "description": "Selector for first true rule", + "$ref": "#/definitions/Microsoft.FirstSelector" }, - "Microsoft.LogAction": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Log Action", - "description": "This is a action which writes to console.log and optional creates a TraceActivity around a text binding", - "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "text": { - "type": "string", - "title": "Text", - "description": "LG Expression to write to the log" - }, - "traceActivity": { - "type": "boolean", - "title": "Send Trace Activity", - "description": "Set to true to also create a TraceActivity with the log text", - "default": false - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "text", - "$type" - ] - } - ] + { + "title": "Microsoft.MostSpecificSelector", + "description": "Select most specific true events with optional additional selector", + "$ref": "#/definitions/Microsoft.MostSpecificSelector" }, - "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 Composer." - }, - "applicationId": { - "type": "string" - }, - "endpoint": { - "type": "string" - }, - "endpointKey": { - "type": "string" - } - }, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "applicationId", - "endpoint", - "endpointKey", - "$type" - ] - } - ] + { + "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": "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.MentionEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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.MostSpecificSelector": { - "$role": "unionType(Microsoft.IEventSelector)", - "title": "Most Specific Event 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 Composer." - }, - "selector": { - "$type": "Microsoft.IEventSelector", - "$ref": "#/definitions/Microsoft.IEventSelector" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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.MultiLanguageRecognizer": { - "$role": "unionType(Microsoft.IRecognizer)", - "title": "Multi Language Recognizer", - "description": "Recognizer which allows you to configure the recognizer per language, and to define the policy for using them", - "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 Composer." - }, - "languagePolicy": { - "$type": "Microsoft.ILanguagePolicy", - "type": "object", - "title": "Language Policy", - "description": "Defines languages to try per language.", - "$ref": "#/definitions/Microsoft.ILanguagePolicy" - }, - "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" - ] - }, - { - "title": "Type", - "required": [ - "recognizers", - "$type" - ] - } - ] + { + "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.NumberEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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.NumberInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "NumberInput Dialog", - "description": "This represents a dialog which gathers a decimal number in a specified range", - "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial Prompt", - "description": "The message to send to as prompt for this input.", - "examples": [ - "What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized Prompt", - "description": "The message to send if the last input is not recognized.", - "examples": [ - "Let's try again. What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid Prompt", - "description": "The message to send to when then input was not valid for the input type.", - "examples": [ - "No date was recognized" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", - "title": "Default Value Response", - "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", - "examples": [ - "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max Turn Count", - "description": "The max retry count for this prompt.", - "default": 2147483647, - "examples": [ - 3 - ] - }, - "validations": { - "type": "array", - "title": "Validation Expressions", - "description": "Expressions to validate an input.", - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "The expression that you evaluated for input.", - "type": "string" - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "Property that this input dialog is bound to", - "examples": [ - "$birthday" - ], - "type": "string" - }, - "defaultValue": { - "$role": "expression", - "title": "Default Value", - "description": "Value to return if the value expression can't be evaluated.", - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always Prompt", - "description": "If set to true this will always prompt the user regardless if you already have the value or not.", - "default": false, - "examples": [ - false - ] - }, - "allowInterruptions": { - "type": "string", - "enum": [ - "always", - "never", - "notRecognized" - ], - "title": "Allow Interruptions", - "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - "default": "notRecognized", - "examples": [ - "notRecognized" - ] - }, - "outputFormat": { - "type": "string", - "enum": [ - "float", - "integer" - ], - "title": "Output Format", - "description": "The NumberInput output format.", - "default": "float" - }, - "defaultLocale": { - "type": "string", - "title": "Default Locale", - "description": "The prompts default locale that should be recognized.", - "default": "en-us" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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.NumberRangeEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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.OAuthInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "OAuthInput Dialog", - "description": "This represents a dialog which gathers an OAuth token from user", - "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial Prompt", - "description": "The message to send to as prompt for this input.", - "examples": [ - "What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized Prompt", - "description": "The message to send if the last input is not recognized.", - "examples": [ - "Let's try again. What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid Prompt", - "description": "The message to send to when then input was not valid for the input type.", - "examples": [ - "No date was recognized" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", - "title": "Default Value Response", - "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", - "examples": [ - "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max Turn Count", - "description": "The max retry count for this prompt.", - "default": 2147483647, - "examples": [ - 3 - ] - }, - "validations": { - "type": "array", - "title": "Validation Expressions", - "description": "Expressions to validate an input.", - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "The expression that you evaluated for input.", - "type": "string" - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "Property that this input dialog is bound to", - "examples": [ - "$birthday" - ], - "type": "string" - }, - "defaultValue": { - "$role": "expression", - "title": "Default Value", - "description": "Value to return if the value expression can't be evaluated.", - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always Prompt", - "description": "If set to true this will always prompt the user regardless if you already have the value or not.", - "default": false, - "examples": [ - false - ] - }, - "allowInterruptions": { - "type": "string", - "enum": [ - "always", - "never", - "notRecognized" - ], - "title": "Allow Interruptions", - "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - "default": "notRecognized", - "examples": [ - "notRecognized" - ] - }, - "connectionName": { - "type": "string", - "title": "Connection Name", - "description": "The connection name configured in Azure Web App Bot OAuth settings." - }, - "text": { - "type": "string", - "title": "Text", - "description": "Text shown in the OAuth signin card." - }, - "title": { - "type": "string", - "title": "Title", - "description": "Title shown in the OAuth signin card." - }, - "timeout": { - "type": "integer", - "title": "Timeout", - "description": "Time out setting for the OAuth signin card.", - "default": "900000" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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.OnActivity": { - "$role": "unionType(Microsoft.IOnEvent)", - "title": "OnActivity", - "description": "This defines the actions to take when an custom activity is received", - "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 Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "type": { - "type": "string", - "title": "Type", - "description": "Activity type" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "actions", - "type", - "$type" - ] - } - ] + { + "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.OnBeginDialog": { - "title": "OnBeginDialog", - "description": "This defines the actions to take when a dialog is started via BeginDialog()", - "$role": "unionType(Microsoft.IOnEvent)", - "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 Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] + { + "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.OnConversationUpdateActivity": { - "$role": "unionType(Microsoft.IOnEvent)", - "title": "OnConversationUpdateActivity", - "description": "This defines the actions to take when an ConversationUpdate activity is received", - "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 Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] + { + "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" + ] + }, + { + "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.OnDialogEvent": { - "title": "Event Event", - "description": "Defines a rule for an event which is triggered by some source", - "type": "object", - "$role": "unionType(Microsoft.IOnEvent)", - "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 Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "events": { - "type": "array", - "description": "Events to trigger this rule for", - "items": { - "type": "string", - "enum": [ - "beginDialog", - "consultDialog", - "cancelDialog", - "activityReceived", - "recognizedIntent", - "unknownIntent", - "actionsStarted", - "actionsSaved", - "actionsEnded", - "actionsResumed" - ] - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "actions", - "events", - "$type" - ] - } - ] + { + "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.OnEndOfConversationActivity": { - "$role": "unionType(Microsoft.IOnEvent)", - "title": "OnEndOfConversationActivity", - "description": "This defines the actions to take when an EndOfConversation Activity is received", - "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 Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] + { + "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.OnEvent": { - "$role": "unionType(Microsoft.IOnEvent)", - "title": "Event Event", - "description": "Defines a rule for an event which is triggered by some source", - "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.OnEvent" - }, - "$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 Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] + { + "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.OnEventActivity": { - "$role": "unionType(Microsoft.IOnEvent)", - "title": "OnEventActivity", - "description": "This defines the actions to take when an Event activity is received", - "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 Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] + { + "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.OnHandoffActivity": { - "$role": "unionType(Microsoft.IOnEvent)", - "title": "OnHandoffActivity", - "description": "This defines the actions to take when an Handoff activity is received", - "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 Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] + { + "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.OnIntent": { - "$role": "unionType(Microsoft.IOnEvent)", - "title": "Intent Event", - "description": "This defines the actions to take when an Intent is recognized (and optionally entities)", - "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 Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "intent": { - "type": "string", - "title": "Intent", - "description": "Intent name to trigger on" - }, - "entities": { - "type": "array", - "title": "Entities", - "description": "The entities required to trigger this rule", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "actions", - "intent", - "$type" - ] - } - ] + { + "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.OnInvokeActivity": { - "$role": "unionType(Microsoft.IOnEvent)", - "title": "OnInvokeActivity", - "description": "This defines the actions to take when an Invoke activity is received", - "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 Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] + { + "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.OnMessageActivity": { - "$role": "unionType(Microsoft.IOnEvent)", - "title": "OnMessageActivity", - "description": "This defines the actions to take when an Message activity is received. NOTE: If this triggers it will override any Recognizer/Intent rule calculation", - "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 Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] + { + "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.OnMessageDeleteActivity": { - "$role": "unionType(Microsoft.IOnEvent)", - "title": "MessageDeleteActivity", - "description": "This defines the actions to take when an MessageDelete activity is received", - "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 Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] + { + "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.OnMessageReactionActivity": { - "$role": "unionType(Microsoft.IOnEvent)", - "title": "MessageReactionActivity", - "description": "This defines the actions to take when a MessageReaction activity is received", - "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 Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] + { + "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" + ] + }, + { + "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" + ] + }, + { + "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" + ] + }, + { + "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.OnMessageUpdateActivity": { - "$role": "unionType(Microsoft.IOnEvent)", - "title": "MessageUpdateActivity", - "description": "This defines the actions to take when an MessageUpdate ctivity is received", - "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 Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] + { + "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.OnTypingActivity": { - "$role": "unionType(Microsoft.IOnEvent)", - "title": "TypingActivity", - "description": "This defines the actions to take when a Typing activity is received", - "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 Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "actions", - "$type" - ] - } - ] + { + "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.OnUnknownIntent": { - "title": "OnUnknownIntent", - "description": "This defines the actions to take when an utterence is not recognized (aka, the None Intent). NOTE: UnknownIntent will defer to any specific intent that fires in a parent dialog", - "$role": "unionType(Microsoft.IOnEvent)", - "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.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 Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "actions": { - "type": "array", - "description": "Sequence of actions or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "actions", - "type", - "$type" - ] - } - ] + { + "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.OrdinalEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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.PercentageEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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.PhoneNumberEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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.QnAMakerDialog": { - "$role": "unionType(Microsoft.IDialog)", - "title": "QnAMaker Dialog", - "description": "This represents a dialog which is driven by a call to QnAMaker.ai knowledge base", - "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 Composer." - }, - "endpoint": { - "type": "object", - "title": "Endpoint", - "description": "This is the QnAMaker endpoint to use", - "required": [ - "knowledgeBaseId", - "endpointKey", - "host" - ], - "properties": { - "knowledgeBaseId": { - "type": "string", - "title": "Knowledgebase Id", - "description": "the knowledge base ID." - }, - "endpointKey": { - "type": "string", - "title": "Endpoint Key", - "description": "sets the endpoint key for the knowledge base" - }, - "host": { - "type": "string", - "title": "Host", - "description": "sets the host path", - "examples": [ - "https://yourserver.azurewebsites.net/qnamaker" - ] - } - } - }, - "options": { - "type": "object", - "title": "Options", - "properties": { - "scoreThreshold": { - "type": "number", - "title": "Score Threshold", - "description": "\"sets the minimum score threshold, used to filter returned results. Scores are normalized to the range of 0.0 to 1.0" - } - } - } - }, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "endpoint", - "$type" - ] - } - ] + { + "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.RandomSelector": { - "$role": "unionType(Microsoft.IEventSelector)", - "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 Composer." - }, - "seed": { - "type": "integer" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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.RegexEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - }, - "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", - "$type" - ] - } - ] + { + "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.RegexRecognizer": { - "$role": "unionType(Microsoft.IRecognizer)", - "title": "Regex Recognizer", - "description": "Recognizer which uses regex expressions to generate intents and entities.", - "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 Composer." - }, - "intents": { - "type": "array", - "title": "RegEx patterns to intents", - "description": "Collection of patterns to match intents", - "items": { - "type": "object", - "properties": { - "intent": { - "type": "string", - "title": "Intent", - "description": "The intent name" - }, - "pattern": { - "type": "string", - "title": "Pattern", - "description": "The regular expression pattern for matching" - } - } - } - }, - "entities": { - "type": "array", - "title": "Entitie Recognizers", - "description": "Entity Recognizers to use", - "items": { - "$type": "Microsoft.EntityRecognizer", - "$ref": "#/definitions/Microsoft.EntityRecognizer" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "intents", - "$type" - ] - } - ] + { + "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.RepeatDialog": { - "$role": "unionType(Microsoft.IDialog)", - "type": "object", - "title": "Repeat Dialog", - "description": "This is a action which repeats the current dialog with the same 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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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" + ] + }, + { + "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" + ] + }, + { + "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" + ] + }, + { + "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.ReplaceDialog": { - "$role": "unionType(Microsoft.IDialog)", + { + "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": { "type": "object", - "title": "Replace Dialog", - "description": "This is a action which replaces the current dialog with the target 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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "dialog": { - "$type": "Microsoft.IDialog", - "title": "Dialog", - "description": "This is the dialog to switch to.", - "$ref": "#/definitions/Microsoft.IDialog" - }, - "options": { - "type": "object", - "title": "Options binding", - "description": "Bindings to configure the options object to pass to the dialog.", - "additionalProperties": { - "type": "string", - "title": "Options" - } - }, - "property": { - "$role": "expression", - "description": "The property to bind to the dialog and store the result in", - "examples": [ - "user.name" - ], - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + "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" + ] }, - "Microsoft.SendActivity": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Send Activity Action", - "description": "This is a action which sends an activity to the user", - "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "activity": { - "$type": "Microsoft.IActivityTemplate", - "title": "Activity", - "description": "Activity to send to the user", - "$ref": "#/definitions/Microsoft.IActivityTemplate" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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" + ] }, - "Microsoft.SetProperty": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Set Property Action", - "description": "This action allows you to set memory to the value of an expression", - "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "The property to set the value of", - "examples": [ - "user.age" - ], - "type": "string" - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "Expression against memory to use to get the value.", - "examples": [ - "dialog.result" - ], - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "property", - "value", - "$type" - ] - } - ] + { + "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" + ] }, - "Microsoft.SwitchCondition": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Switch Action", - "description": "Action which conditionally decides which action to execute next.", - "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Expression to evaluate to switch on.", - "examples": [ - "user.age > 3" - ], - "type": "string" - }, - "cases": { - "type": "array", - "title": "Cases", - "desc": "Cases to evaluate against condition", - "items": { - "type": "object", - "required": [ - "value", - "case" - ], - "properties": { - "value": { - "$role": "expression", - "title": "Value", - "description": "Value which must match the condition property", - "type": "string" - }, - "actions": { - "type": "array", - "title": "Actions", - "description": "Actions to execute if case is equal to condition", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - } - } - }, - "default": { - "type": "array", - "title": "Default", - "description": "Action to execute if no case is equal to condition", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "condition", - "$type" - ] - } - ] + { + "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" + ] }, - "Microsoft.TemperatureEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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" + ] }, - "Microsoft.TextInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "TextInput Dialog", - "description": "This represents a dialog which gathers a text from the user", - "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.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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial Prompt", - "description": "The message to send to as prompt for this input.", - "examples": [ - "What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized Prompt", - "description": "The message to send if the last input is not recognized.", - "examples": [ - "Let's try again. What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid Prompt", - "description": "The message to send to when then input was not valid for the input type.", - "examples": [ - "No date was recognized" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "defaultValueResponse": { - "$type": "Microsoft.IActivityTemplate", - "title": "Default Value Response", - "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", - "examples": [ - "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max Turn Count", - "description": "The max retry count for this prompt.", - "default": 2147483647, - "examples": [ - 3 - ] - }, - "validations": { - "type": "array", - "title": "Validation Expressions", - "description": "Expressions to validate an input.", - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "The expression that you evaluated for input.", - "type": "string" - }, - "property": { - "$role": "expression", - "title": "Property", - "description": "Property that this input dialog is bound to", - "examples": [ - "$birthday" - ], - "type": "string" - }, - "defaultValue": { - "$role": "expression", - "title": "Default Value", - "description": "Value to return if the value expression can't be evaluated.", - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always Prompt", - "description": "If set to true this will always prompt the user regardless if you already have the value or not.", - "default": false, - "examples": [ - false - ] - }, - "allowInterruptions": { - "type": "string", - "enum": [ - "always", - "never", - "notRecognized" - ], - "title": "Allow Interruptions", - "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - "default": "notRecognized", - "examples": [ - "notRecognized" - ] - }, - "outputFormat": { - "type": "string", - "enum": [ - "none", - "trim", - "lowercase", - "uppercase" - ], - "title": "Output Format", - "description": "The TextInput output format.", - "default": "none" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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.TraceActivity": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Trace Activity Action", - "description": "This is a action which sends an TraceActivity to the transcript", + { + "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": { "type": "object", + "required": [ + "value", + "case" + ], "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 Composer." - }, - "id": { - "type": "string", - "title": "Id", - "description": "(Optional) id for the dialog", - "examples": [ - "Dialog2" - ] - }, - "tags": { - "type": "array", - "title": "Tags", - "description": "Tags are optional strings that you can use to organize components", - "examples": [ - "input", - "confirmation" - ], - "items": { - "type": "string" - } - }, - "name": { - "type": "string", - "title": "Name", - "description": "Name of the trace activity" - }, - "valueType": { - "type": "string", - "title": "Value Type", - "description": "Value type of the trace activity" - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "Property path to memory object to send as the value of the trace activity", - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + "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" + ] }, - "Microsoft.TrueSelector": { - "$role": "unionType(Microsoft.IEventSelector)", - "title": "True Event 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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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.UrlEntityRecognizer": { - "$role": "unionType(Microsoft.EntityRecognizer)", - "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 Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] - }, - { - "title": "Type", - "required": [ - "$type" - ] - } - ] + { + "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" + ] + }, + { + "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" + ] + }, + { + "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" + ] + }, + { + "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" + ] + }, + { + "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" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] } + ] } + } } diff --git a/BotProject/Templates/CSharp/Startup.cs b/BotProject/Templates/CSharp/Startup.cs index 7ab8e47556..6dcf3090ee 100644 --- a/BotProject/Templates/CSharp/Startup.cs +++ b/BotProject/Templates/CSharp/Startup.cs @@ -33,6 +33,7 @@ using Microsoft.Bot.Builder.ApplicationInsights; using Microsoft.ApplicationInsights; using Microsoft.Bot.Builder.Integration.ApplicationInsights.Core; +using Microsoft.Bot.Builder.Dialogs.Adaptive; namespace Microsoft.Bot.Builder.ComposerBot.json { @@ -101,11 +102,13 @@ public void ConfigureServices(IServiceCollection services) { var adapter = new BotFrameworkHttpAdapter(new ConfigurationCredentialProvider(this.Configuration)); adapter - .UseStorage(storage) - .UseState(userState, conversationState) - .UseLanguageGeneration(resourceExplorer) - .Use(new InspectionMiddleware(inspectionState, userState, conversationState, credentials)) - .UseResourceExplorer(resourceExplorer); + .UseStorage(storage) + .UseState(userState, conversationState) + .UseAdaptiveDialogs() + .UseResourceExplorer(resourceExplorer) + .UseLanguageGeneration(resourceExplorer, "common.lg") + .Use(new RegisterClassMiddleware(Configuration)) + .Use(new InspectionMiddleware(inspectionState, userState, conversationState, credentials)); if (!string.IsNullOrEmpty(settings.BlobStorage.ConnectionString) && !string.IsNullOrEmpty(settings.BlobStorage.Container)) { @@ -128,7 +131,7 @@ public void ConfigureServices(IServiceCollection services) return adapter; }); - services.AddSingleton((sp) => new ComposerBot("Main.dialog", conversationState, userState, resourceExplorer, DebugSupport.SourceRegistry, telemetryClient)); + services.AddSingleton((sp) => new ComposerBot("Main.dialog", conversationState, userState, resourceExplorer, DebugSupport.SourceMap, telemetryClient)); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. diff --git a/BotProject/Templates/CSharp/Tests/ActionsTests.cs b/BotProject/Templates/CSharp/Tests/ActionsTests.cs index c1960690f1..2d80ec2732 100644 --- a/BotProject/Templates/CSharp/Tests/ActionsTests.cs +++ b/BotProject/Templates/CSharp/Tests/ActionsTests.cs @@ -6,243 +6,227 @@ using Microsoft.Bot.Builder.Dialogs.Declarative; using Microsoft.Bot.Builder.Dialogs.Declarative.Resources; using Microsoft.Bot.Builder.Dialogs.Declarative.Types; -using Microsoft.Bot.Builder.ComposerBot.json; using Microsoft.Bot.Schema; using Microsoft.Extensions.Configuration; using Microsoft.VisualStudio.TestTools.UnitTesting; using System; -using System.Collections.Generic; using System.IO; using System.Threading.Tasks; namespace Tests { - [TestClass] - public class ActionsTests - { - private static string getOsPath(string path) => Path.Combine(path.TrimEnd('\\').Split('\\')); + [TestClass] + public class ActionsTests + { + private static string getOsPath(string path) => Path.Combine(path.TrimEnd('\\').Split('\\')); - private static readonly string samplesDirectory = getOsPath(@"..\..\..\..\..\..\SampleBots"); + private static readonly string samplesDirectory = getOsPath(@"..\..\..\..\..\..\SampleBots"); - private static string getFolderPath(string path) - { - return Path.Combine(samplesDirectory, path); - } + private static string getFolderPath(string path) + { + return Path.Combine(samplesDirectory, path); + } - [ClassInitialize] - public static void ClassInitialize(TestContext context) - { - TypeFactory.Configuration = new ConfigurationBuilder().AddInMemoryCollection().Build(); - TypeFactory.RegisterAdaptiveTypes(); - string path = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, samplesDirectory)); - } + [ClassInitialize] + public static void ClassInitialize(TestContext context) + { + TypeFactory.Configuration = new ConfigurationBuilder().AddInMemoryCollection().Build(); + string path = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, samplesDirectory)); + } - public TestContext TestContext { get; set; } + public TestContext TestContext { get; set; } - [TestMethod] - public async Task Actions_01Actions() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("01") - .AssertReply("Step 1") - .AssertReply("Step 2") - .AssertReply("Step 3") - .AssertReply("user.age is set to 18") - .AssertReply("user.age is set to null") - .StartTestAsync(); - } + [TestMethod] + public async Task Actions_01Actions() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply(String.Format("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.{0}01 - Actions{0}02 - EndTurn{0}03 - IfCondiftion{0}04 - EditArray, Foreach{0}05 - EndDialog{0}06 - HttpRequest{0}07 - SwitchCondition{0}08 - RepeatDialog{0}09 - TraceAndLog{0}10 - EditActions{0}11 - ReplaceDialog{0}12 - EmitEvent{0}", Environment.NewLine)) + .Send("01") + .AssertReply("Step 1") + .AssertReply("Step 2") + .AssertReply("Step 3") + .AssertReply("user.age is set to 18") + .AssertReply("user.age is set to null") + .StartTestAsync(); + } - [TestMethod] - public async Task Actions_02EndTurn() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("02") - .AssertReply("What's up?") - .Send("Nothing") - .AssertReply("Oh I see!") - .StartTestAsync(); - } + [TestMethod] + public async Task Actions_02EndTurn() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply(String.Format("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.{0}01 - Actions{0}02 - EndTurn{0}03 - IfCondiftion{0}04 - EditArray, Foreach{0}05 - EndDialog{0}06 - HttpRequest{0}07 - SwitchCondition{0}08 - RepeatDialog{0}09 - TraceAndLog{0}10 - EditActions{0}11 - ReplaceDialog{0}12 - EmitEvent{0}", Environment.NewLine)) + .Send("02") + .AssertReply("What's up?") + .Send("Nothing") + .AssertReply("Oh I see!") + .StartTestAsync(); + } - [TestMethod] - public async Task Actions_03IfCondition() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("03") - .AssertReply("Hello, I'm Zoidberg. What is your name?") - .Send("Carlos") - .AssertReply("Hello Carlos, nice to talk to you!") - .StartTestAsync(); - } + [TestMethod] + public async Task Actions_03IfCondition() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply(String.Format("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.{0}01 - Actions{0}02 - EndTurn{0}03 - IfCondiftion{0}04 - EditArray, Foreach{0}05 - EndDialog{0}06 - HttpRequest{0}07 - SwitchCondition{0}08 - RepeatDialog{0}09 - TraceAndLog{0}10 - EditActions{0}11 - ReplaceDialog{0}12 - EmitEvent{0}", Environment.NewLine)).Send("03") + .AssertReply("Hello, I'm Zoidberg. What is your name?") + .Send("Carlos") + .AssertReply("Hello Carlos, nice to talk to you!") + .StartTestAsync(); + } - [TestMethod] - public async Task Actions_04EditArray() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("04") - .AssertReply("Here are the index and values in the array.") - .AssertReply("0: 11111") - .AssertReply("1: 40000") - .AssertReply("2: 222222") - .AssertReply("If each page shows two items, here are the index and values") - .AssertReply("0: 11111") - .AssertReply("1: 40000") - .AssertReply("0: 222222") - .StartTestAsync(); - } + [TestMethod] + public async Task Actions_04EditArray() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply(String.Format("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.{0}01 - Actions{0}02 - EndTurn{0}03 - IfCondiftion{0}04 - EditArray, Foreach{0}05 - EndDialog{0}06 - HttpRequest{0}07 - SwitchCondition{0}08 - RepeatDialog{0}09 - TraceAndLog{0}10 - EditActions{0}11 - ReplaceDialog{0}12 - EmitEvent{0}", Environment.NewLine)).Send("04") + .AssertReply("Here are the index and values in the array.") + .AssertReply("0: 11111") + .AssertReply("1: 40000") + .AssertReply("2: 222222") + .AssertReply("If each page shows two items, here are the index and values") + .AssertReply("0: 11111") + .AssertReply("1: 40000") + .AssertReply("0: 222222") + .StartTestAsync(); + } - [TestMethod] - public async Task Actions_05EndDialog() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("05") - .AssertReply("Hello, I'm Zoidberg. What is your name?") - .Send("luhan") - .AssertReply("Hello luhan, nice to talk to you!") - .AssertReply("I'm a joke bot. To get started say \"joke\".") - .Send("joke") - .AssertReply("Why did the chicken cross the road?") - .Send("I don't know") - .AssertReply("To get to the other side!") - .StartTestAsync(); - } + [TestMethod] + public async Task Actions_05EndDialog() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply(String.Format("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.{0}01 - Actions{0}02 - EndTurn{0}03 - IfCondiftion{0}04 - EditArray, Foreach{0}05 - EndDialog{0}06 - HttpRequest{0}07 - SwitchCondition{0}08 - RepeatDialog{0}09 - TraceAndLog{0}10 - EditActions{0}11 - ReplaceDialog{0}12 - EmitEvent{0}", Environment.NewLine)).Send("05") + .AssertReply("Hello, I'm Zoidberg. What is your name?") + .Send("luhan") + .AssertReply("Hello luhan, nice to talk to you!") + .AssertReply("I'm a joke bot. To get started say \"joke\".") + .Send("joke") + .AssertReply("Why did the chicken cross the road?") + .Send("I don't know") + .AssertReply("To get to the other side!") + .StartTestAsync(); + } - [TestMethod] - public async Task Actions_06SwitchCondition() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("07") - .AssertReply("Please select a value from below:\n\n 1. Test1\n 2. Test2\n 3. Test3") - .Send("Test1") - .AssertReply("You select: Test1") - .AssertReply("You select: 1") - .StartTestAsync(); - } + [TestMethod] + public async Task Actions_06SwitchCondition() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply(String.Format("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.{0}01 - Actions{0}02 - EndTurn{0}03 - IfCondiftion{0}04 - EditArray, Foreach{0}05 - EndDialog{0}06 - HttpRequest{0}07 - SwitchCondition{0}08 - RepeatDialog{0}09 - TraceAndLog{0}10 - EditActions{0}11 - ReplaceDialog{0}12 - EmitEvent{0}", Environment.NewLine)).Send("07") + .AssertReply("Please select a value from below:\n\n 1. Test1\n 2. Test2\n 3. Test3") + .Send("Test1") + .AssertReply("You select: Test1") + .AssertReply("You select: 1") + .StartTestAsync(); + } - [TestMethod] - public async Task Actions_07RepeatDialog() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("08") - .AssertReply("Hello, what is your name?") - .Send("luhan") - .AssertReply("Hello luhan, nice to meet you!") - .Send("hi") - .AssertReply("Hello, what is your name?") - .Send("luhan") - .AssertReply("Hello luhan, nice to meet you!") - .StartTestAsync(); - } + [TestMethod] + public async Task Actions_07RepeatDialog() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply(String.Format("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.{0}01 - Actions{0}02 - EndTurn{0}03 - IfCondiftion{0}04 - EditArray, Foreach{0}05 - EndDialog{0}06 - HttpRequest{0}07 - SwitchCondition{0}08 - RepeatDialog{0}09 - TraceAndLog{0}10 - EditActions{0}11 - ReplaceDialog{0}12 - EmitEvent{0}", Environment.NewLine)).Send("08") + .AssertReply("Do you want to repeat this dialog, yes to repeat, no to end this dialog (1) Yes or (2) No") + .Send("Yes") + .AssertReply("Do you want to repeat this dialog, yes to repeat, no to end this dialog (1) Yes or (2) No") + .Send("No") + .StartTestAsync(); + } - [TestMethod] - public async Task Actions_08TraceAndLog() - { - await BuildTestFlow(getFolderPath("Steps_Samples"), sendTrace: true) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("09") - .AssertReply("Hello, what is your name?") - .Send("luhan") - .AssertReply(activity => - { - var trace = (Activity)activity; - Assert.AreEqual(ActivityTypes.Trace, trace.Type, "should be trace activity"); - Assert.AreEqual("memory", trace.ValueType, "value type should be memory"); - }) - .StartTestAsync(); - } + [TestMethod] + public async Task Actions_08TraceAndLog() + { + await BuildTestFlow(getFolderPath("Steps_Samples"), sendTrace: true) + .SendConversationUpdate() + .AssertReply(String.Format("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.{0}01 - Actions{0}02 - EndTurn{0}03 - IfCondiftion{0}04 - EditArray, Foreach{0}05 - EndDialog{0}06 - HttpRequest{0}07 - SwitchCondition{0}08 - RepeatDialog{0}09 - TraceAndLog{0}10 - EditActions{0}11 - ReplaceDialog{0}12 - EmitEvent{0}", Environment.NewLine)).Send("09") + .Send("luhan") + .AssertReply(activity => + { + var trace = (Activity)activity; + Assert.AreEqual(ActivityTypes.Trace, trace.Type, "should be trace activity"); + }) + .StartTestAsync(); + } - [TestMethod] - public async Task Actions_09EditActions() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("10") - .AssertReply("Hello, I'm Zoidberg. What is your name?") - .Send("luhan") - .AssertReply("Hello luhan, nice to talk to you!") - .AssertReply("Goodbye!") - .StartTestAsync(); - } + [TestMethod] + public async Task Actions_09EditActions() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply(String.Format("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.{0}01 - Actions{0}02 - EndTurn{0}03 - IfCondiftion{0}04 - EditArray, Foreach{0}05 - EndDialog{0}06 - HttpRequest{0}07 - SwitchCondition{0}08 - RepeatDialog{0}09 - TraceAndLog{0}10 - EditActions{0}11 - ReplaceDialog{0}12 - EmitEvent{0}", Environment.NewLine)).Send("10") + .AssertReply("Hello, I'm Zoidberg. What is your name?") + .Send("luhan") + .AssertReply("Hello luhan, nice to talk to you!") + .AssertReply("Goodbye!") + .StartTestAsync(); + } - [TestMethod] - public async Task Actions_10ReplaceDialog() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("11") - .AssertReply("Hello, I'm Zoidberg. What is your name?") - .Send("luhan") - .AssertReply("Hello luhan, nice to talk to you!") - .Send("joke") - .AssertReply("Why did the chicken cross the road?") - .Send("Why?") - .AssertReply("To get to the other side!") - .Send("future") - .AssertReply("Seeing into your future...") - .AssertReply("I see great things in your future!") - .AssertReply("Potentially a successful demo") - .StartTestAsync(); - } + [TestMethod] + public async Task Actions_10ReplaceDialog() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply(String.Format("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.{0}01 - Actions{0}02 - EndTurn{0}03 - IfCondiftion{0}04 - EditArray, Foreach{0}05 - EndDialog{0}06 - HttpRequest{0}07 - SwitchCondition{0}08 - RepeatDialog{0}09 - TraceAndLog{0}10 - EditActions{0}11 - ReplaceDialog{0}12 - EmitEvent{0}", Environment.NewLine)).Send("11") + .AssertReply("Hello, I'm Zoidberg. What is your name?") + .Send("luhan") + .AssertReply("Hello luhan, nice to talk to you! Please either enter 'joke' or 'fortune' to replace the dialog you want.") + .Send("joke") + .AssertReply("Why did the chicken cross the road?") + .Send("Why?") + .AssertReply("To get to the other side!") + .Send("future") + .AssertReply("Seeing into your future...") + .AssertReply("I see great things in your future!") + .AssertReply("Potentially a successful demo") + .StartTestAsync(); + } - [TestMethod] - public async Task Actions_11EmitEvent() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("12") - .AssertReply("Say moo to get a response, say emit to emit a event.") - .Send("moo") - .AssertReply("Yippee ki-yay!") - .Send("emit") - .AssertReply("CustomEvent Fired.") - .StartTestAsync(); - } + [TestMethod] + public async Task Actions_11EmitEvent() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply(String.Format("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.{0}01 - Actions{0}02 - EndTurn{0}03 - IfCondiftion{0}04 - EditArray, Foreach{0}05 - EndDialog{0}06 - HttpRequest{0}07 - SwitchCondition{0}08 - RepeatDialog{0}09 - TraceAndLog{0}10 - EditActions{0}11 - ReplaceDialog{0}12 - EmitEvent{0}", Environment.NewLine)).Send("12") + .AssertReply("Say moo to get a response, say emit to emit a event.") + .Send("moo") + .AssertReply("Yippee ki-yay!") + .Send("emit") + .AssertReply("CustomEvent Fired.") + .StartTestAsync(); + } - private TestFlow BuildTestFlow(string folderPath, bool sendTrace = false) - { - TypeFactory.Configuration = new ConfigurationBuilder().Build(); - var storage = new MemoryStorage(); - var convoState = new ConversationState(storage); - var userState = new UserState(storage); - var adapter = new TestAdapter(TestAdapter.CreateConversation(TestContext.TestName), sendTrace); - var resourceExplorer = new ResourceExplorer(); - resourceExplorer.AddFolder(folderPath); - adapter - .UseStorage(storage) - .UseState(userState, convoState) - .UseLanguageGeneration(resourceExplorer) - .UseResourceExplorer(resourceExplorer) - .Use(new TranscriptLoggerMiddleware(new FileTranscriptLogger())); - - var resource = resourceExplorer.GetResource("Main.dialog"); - var dialog = DeclarativeTypeLoader.Load(resource, resourceExplorer, DebugSupport.SourceRegistry); - DialogManager dm = new DialogManager(dialog); - - return new TestFlow(adapter, async (turnContext, cancellationToken) => - { - if (dialog is AdaptiveDialog planningDialog) + private TestFlow BuildTestFlow(string folderPath, bool sendTrace = false) { - await dm.OnTurnAsync(turnContext, null, cancellationToken).ConfigureAwait(false); + TypeFactory.Configuration = new ConfigurationBuilder().Build(); + var storage = new MemoryStorage(); + var convoState = new ConversationState(storage); + var userState = new UserState(storage); + var adapter = new TestAdapter(TestAdapter.CreateConversation(TestContext.TestName), sendTrace); + var resourceExplorer = new ResourceExplorer(); + resourceExplorer.AddFolder(folderPath); + adapter + .UseStorage(storage) + .UseState(userState, convoState) + .UseAdaptiveDialogs() + .UseLanguageGeneration(resourceExplorer, "common.lg") + .UseResourceExplorer(resourceExplorer) + .Use(new TranscriptLoggerMiddleware(new FileTranscriptLogger())); + + var resource = resourceExplorer.GetResource("Main.dialog"); + var dialog = DeclarativeTypeLoader.Load(resource, resourceExplorer, DebugSupport.SourceMap); + DialogManager dm = new DialogManager(dialog); + + return new TestFlow(adapter, async (turnContext, cancellationToken) => + { + if (dialog is AdaptiveDialog planningDialog) + { + await dm.OnTurnAsync(turnContext, null, cancellationToken).ConfigureAwait(false); + } + }); } - }); } - } } diff --git a/BotProject/Templates/CSharp/Tests/ControllingConversationTests.cs b/BotProject/Templates/CSharp/Tests/ControllingConversationTests.cs index d91d4b873c..bd19f32374 100644 --- a/BotProject/Templates/CSharp/Tests/ControllingConversationTests.cs +++ b/BotProject/Templates/CSharp/Tests/ControllingConversationTests.cs @@ -6,6 +6,7 @@ using Microsoft.Bot.Builder.Dialogs.Declarative; using Microsoft.Bot.Builder.Dialogs.Declarative.Resources; using Microsoft.Bot.Builder.Dialogs.Declarative.Types; +using Microsoft.Bot.Builder.LanguageGeneration; using Microsoft.Bot.Builder.ComposerBot.json; using Microsoft.Bot.Schema; using Microsoft.Extensions.Configuration; @@ -31,7 +32,6 @@ public class ControllingConversationTests public static void ClassInitialize(TestContext context) { TypeFactory.Configuration = new ConfigurationBuilder().AddInMemoryCollection().Build(); - TypeFactory.RegisterAdaptiveTypes(); string path = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, samplesDirectory, "ControllingConversation")); resourceExplorer.AddFolder(path); } @@ -92,12 +92,13 @@ private TestFlow BuildTestFlow(bool sendTrace = false) adapter .UseStorage(storage) .UseState(userState, convoState) - .UseLanguageGeneration(resourceExplorer) + .UseAdaptiveDialogs() + .UseLanguageGeneration(resourceExplorer, "common.lg") .UseResourceExplorer(resourceExplorer) .Use(new TranscriptLoggerMiddleware(new FileTranscriptLogger())); var resource = resourceExplorer.GetResource("Main.dialog"); - var dialog = DeclarativeTypeLoader.Load(resource, resourceExplorer, DebugSupport.SourceRegistry); + var dialog = DeclarativeTypeLoader.Load(resource, resourceExplorer, DebugSupport.SourceMap); DialogManager dm = new DialogManager(dialog); return new TestFlow(adapter, async (turnContext, cancellationToken) => diff --git a/BotProject/Templates/CSharp/Tests/InputsTests.cs b/BotProject/Templates/CSharp/Tests/InputsTests.cs index 390836673b..4c586c8380 100644 --- a/BotProject/Templates/CSharp/Tests/InputsTests.cs +++ b/BotProject/Templates/CSharp/Tests/InputsTests.cs @@ -6,6 +6,7 @@ using Microsoft.Bot.Builder.Dialogs.Declarative; using Microsoft.Bot.Builder.Dialogs.Declarative.Resources; using Microsoft.Bot.Builder.Dialogs.Declarative.Types; +using Microsoft.Bot.Builder.LanguageGeneration; using Microsoft.Bot.Builder.ComposerBot.json; using Microsoft.Bot.Schema; using Microsoft.Extensions.Configuration; @@ -31,7 +32,6 @@ public class InputsTests public static void ClassInitialize(TestContext context) { TypeFactory.Configuration = new ConfigurationBuilder().AddInMemoryCollection().Build(); - TypeFactory.RegisterAdaptiveTypes(); string path = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, samplesDirectory, "Inputs_Samples")); resourceExplorer.AddFolder(path); } @@ -49,12 +49,11 @@ public async Task Inputs_01TextInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply("Welcome to Input Sample Bot.\nI can show you examples on how to use actions, You can enter number 01-04\n01 - TextInput\n02 - NumberInput\n03 - ConfirmInput\n04 - ChoiceInput\n05 - AttachmentInput\n06 - DateTimeInput\n07 - OAuthInput\n") + .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("01") - .AssertReply("Hello, I'm Zoidberg. What is your name?") + .AssertReply("Hello, I'm Zoidberg. What is your name? (This can't be interrupted)") .Send("02") .AssertReply("Hello 02, nice to talk to you!") - .AssertReply("Hello, I'm Zoidberg. What is your name?") .Send("02") .AssertReply("What is your age?") .StartTestAsync(); @@ -65,7 +64,7 @@ public async Task Inputs_02NumberInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply("Welcome to Input Sample Bot.\nI can show you examples on how to use actions, You can enter number 01-04\n01 - TextInput\n02 - NumberInput\n03 - ConfirmInput\n04 - ChoiceInput\n05 - AttachmentInput\n06 - DateTimeInput\n07 - OAuthInput\n") + .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("02") .AssertReply("What is your age?") .Send("18") @@ -81,16 +80,13 @@ public async Task Inputs_03ConfirmInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply("Welcome to Input Sample Bot.\nI can show you examples on how to use actions, You can enter number 01-04\n01 - TextInput\n02 - NumberInput\n03 - ConfirmInput\n04 - ChoiceInput\n05 - AttachmentInput\n06 - DateTimeInput\n07 - OAuthInput\n") + .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("03") .AssertReply("yes or no (1) Yes or (2) No") .Send("asdasd") .AssertReply("I need a yes or no. (1) Yes or (2) No") .Send("yes") .AssertReply("confirmation: True") - .AssertReply("yes or no (1) Yes or (2) No") - .Send("nope") - .AssertReply("confirmation: False") .StartTestAsync(); } @@ -99,8 +95,7 @@ public async Task Inputs_04ChoiceInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply("Welcome to Input Sample Bot.\nI can show you examples on how to use actions, You can enter number 01-04\n01 - TextInput\n02 - NumberInput\n03 - ConfirmInput\n04 - ChoiceInput\n05 - AttachmentInput\n06 - DateTimeInput\n07 - OAuthInput\n") - .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-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("Please select a value from below:\n\n 1. Test1\n 2. Test2\n 3. Test3") .Send("Test1") .AssertReply("You select: Test1") @@ -112,8 +107,7 @@ public async Task Inputs_06DateTimeInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply("Welcome to Input Sample Bot.\nI can show you examples on how to use actions, You can enter number 01-04\n01 - TextInput\n02 - NumberInput\n03 - ConfirmInput\n04 - ChoiceInput\n05 - AttachmentInput\n06 - DateTimeInput\n07 - OAuthInput\n") - .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-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("Please enter a date.") .Send("June 1st") .AssertReply("You entered: 2019-06-01") @@ -130,12 +124,13 @@ private TestFlow BuildTestFlow(bool sendTrace = false) adapter .UseStorage(storage) .UseState(userState, convoState) - .UseLanguageGeneration(resourceExplorer) + .UseAdaptiveDialogs() + .UseLanguageGeneration(resourceExplorer, "common.lg") .UseResourceExplorer(resourceExplorer) .Use(new TranscriptLoggerMiddleware(new FileTranscriptLogger())); var resource = resourceExplorer.GetResource("Main.dialog"); - var dialog = DeclarativeTypeLoader.Load(resource, resourceExplorer, DebugSupport.SourceRegistry); + var dialog = DeclarativeTypeLoader.Load(resource, resourceExplorer, DebugSupport.SourceMap); DialogManager dm = new DialogManager(dialog); return new TestFlow(adapter, async (turnContext, cancellationToken) => diff --git a/BotProject/Templates/CSharp/Tests/MessageTests.cs b/BotProject/Templates/CSharp/Tests/MessageTests.cs index f8022d680c..75e1275b5a 100644 --- a/BotProject/Templates/CSharp/Tests/MessageTests.cs +++ b/BotProject/Templates/CSharp/Tests/MessageTests.cs @@ -6,6 +6,7 @@ using Microsoft.Bot.Builder.Dialogs.Declarative; using Microsoft.Bot.Builder.Dialogs.Declarative.Resources; using Microsoft.Bot.Builder.Dialogs.Declarative.Types; +using Microsoft.Bot.Builder.LanguageGeneration; using Microsoft.Bot.Builder.ComposerBot.json; using Microsoft.Bot.Schema; using Microsoft.Extensions.Configuration; @@ -31,7 +32,6 @@ public class MessageTests public static void ClassInitialize(TestContext context) { TypeFactory.Configuration = new ConfigurationBuilder().AddInMemoryCollection().Build(); - TypeFactory.RegisterAdaptiveTypes(); string path = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, samplesDirectory, "Message_Samples")); resourceExplorer.AddFolder(path); } @@ -80,12 +80,13 @@ private TestFlow BuildTestFlow(bool sendTrace = false) adapter .UseStorage(storage) .UseState(userState, convoState) - .UseLanguageGeneration(resourceExplorer) + .UseAdaptiveDialogs() + .UseLanguageGeneration(resourceExplorer, "common.lg") .UseResourceExplorer(resourceExplorer) .Use(new TranscriptLoggerMiddleware(new FileTranscriptLogger())); var resource = resourceExplorer.GetResource("Main.dialog"); - var dialog = DeclarativeTypeLoader.Load(resource, resourceExplorer, DebugSupport.SourceRegistry); + var dialog = DeclarativeTypeLoader.Load(resource, resourceExplorer, DebugSupport.SourceMap); DialogManager dm = new DialogManager(dialog); return new TestFlow(adapter, async (turnContext, cancellationToken) => diff --git a/BotProject/Templates/CSharp/Tests/ToDoBotTests.cs b/BotProject/Templates/CSharp/Tests/ToDoBotTests.cs index 1b8c067039..70bc1a11cd 100644 --- a/BotProject/Templates/CSharp/Tests/ToDoBotTests.cs +++ b/BotProject/Templates/CSharp/Tests/ToDoBotTests.cs @@ -6,6 +6,7 @@ using Microsoft.Bot.Builder.Dialogs.Declarative; using Microsoft.Bot.Builder.Dialogs.Declarative.Resources; using Microsoft.Bot.Builder.Dialogs.Declarative.Types; +using Microsoft.Bot.Builder.LanguageGeneration; using Microsoft.Bot.Builder.ComposerBot.json; using Microsoft.Bot.Schema; using Microsoft.Extensions.Configuration; @@ -31,7 +32,6 @@ public class ToDoBotTests public static void ClassInitialize(TestContext context) { TypeFactory.Configuration = new ConfigurationBuilder().AddInMemoryCollection().Build(); - TypeFactory.RegisterAdaptiveTypes(); string path = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, samplesDirectory, "ToDoBot")); resourceExplorer.AddFolder(path); } @@ -59,11 +59,11 @@ await BuildTestFlow() .Send("third") .AssertReply("Successfully added a todo named third") .Send("show todos") - .AssertReply("Your most recent 3 tasks are\n* first\n* second\n* third\n") + .AssertReply(String.Format("Your most recent 3 tasks are{0}* first\n* second\n* third", Environment.NewLine)) .Send("delete todo named second") .AssertReply("Successfully removed a todo named second") .Send("show todos") - .AssertReply("Your most recent 2 tasks are\n* first\n* third\n") + .AssertReply(String.Format("Your most recent 2 tasks are{0}* first\n* third", Environment.NewLine)) .StartTestAsync(); } @@ -77,12 +77,13 @@ private TestFlow BuildTestFlow(bool sendTrace = false) adapter .UseStorage(storage) .UseState(userState, convoState) - .UseLanguageGeneration(resourceExplorer) + .UseAdaptiveDialogs() + .UseLanguageGeneration(resourceExplorer, "common.lg") .UseResourceExplorer(resourceExplorer) .Use(new TranscriptLoggerMiddleware(new FileTranscriptLogger())); var resource = resourceExplorer.GetResource("Main.dialog"); - var dialog = DeclarativeTypeLoader.Load(resource, resourceExplorer, DebugSupport.SourceRegistry); + var dialog = DeclarativeTypeLoader.Load(resource, resourceExplorer, DebugSupport.SourceMap); DialogManager dm = new DialogManager(dialog); return new TestFlow(adapter, async (turnContext, cancellationToken) => From 913bee9fa151485965234f6571e43ad2554aa915 Mon Sep 17 00:00:00 2001 From: Qi Kang Date: Fri, 18 Oct 2019 16:59:17 +0800 Subject: [PATCH 2/2] update nuget.config --- BotProject/Templates/CSharp/NuGet.Config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BotProject/Templates/CSharp/NuGet.Config b/BotProject/Templates/CSharp/NuGet.Config index 20835d4fdb..11ff1952c1 100644 --- a/BotProject/Templates/CSharp/NuGet.Config +++ b/BotProject/Templates/CSharp/NuGet.Config @@ -2,6 +2,6 @@ - +