diff --git a/schemas/skills/samples/complex-skillmanifest-2.0.0.json b/schemas/skills/samples/complex-skillmanifest-2.0.0.json index 9f570fc55..4031abd98 100644 --- a/schemas/skills/samples/complex-skillmanifest-2.0.0.json +++ b/schemas/skills/samples/complex-skillmanifest-2.0.0.json @@ -1,119 +1,119 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/skills/skill-manifest-2.0.0.json", - "$id": "SkillBot", - "name": "Sample skill definition that can handle multipe types of activities", - "version": "1.0", - "description": "This is a sample skill definition for multiple activity types", - "publisherName": "Microsoft", - "privacyUrl": "https://myskill.contoso.com/privacy.html", - "copyright": "Copyright (c) Microsoft Corporation. All rights reserved.", - "license": "", - "iconUrl": "https://myskill.contoso.com/icon.png", - "tags": [ - "sample", - "travel", - "weather" - ], - "endpoints": [ - { - "name": "americas", - "protocol": "BotFrameworkV3", - "description": "Production endpoint for SkillBot in the Americas", - "endpointUrl": "http://myskill.contoso.com/api/messages", - "msAppId": "00000000-0000-0000-0000-000000000000" - }, - { - "name": "eu", - "protocol": "BotFrameworkV3", - "description": "Production endpoint for SkillBot in Europe", - "endpointUrl": "http://myskill.contoso.com/api/messages", - "msAppId": "11111111-0000-0000-0000-000000000000" - } - ], - "activities": { - "bookFlight": { - "description": "Books a light", - "type": "event", - "name": "BookFlight", - "value": { - "$ref": "#/definitions/bookingInfo" - }, - "resultValue": { - "$ref": "#/definitions/bookingInfo" - } - }, - "getWeather": { - "description": "Retrieves and returns the weather for the user's location", - "type": "invoke", - "name": "GetWeather", - "value": { - "$ref": "#/definitions/location" - }, - "resultValue": { - "$ref": "#/definitions/weatherReport" - } - }, - "passthroughMessage": { - "type": "message", - "description": "Receives the user's' utterance and attempts to resolve it using the skill's LU models" - } - }, - "definitions": { - "localeValue": { - "type": "object", - "properties": { - "locale": { - "type": "string", - "description": "The current user's locale ISO code" - } - } - }, - "bookingInfo": { - "type": "object", - "required": [ - "origin" - ], - "properties": { - "origin": { - "type": "string", - "description": "this is the origin city for the flight" - }, - "destination": { - "type": "string", - "description": "this is the destination city for the flight" - }, - "date": { - "type": "string", - "description": "The date for the flight in YYYY-MM-DD format" - } - } - }, - "weatherReport": { - "type": "array", - "description": "Array of forecasts for the next week.", - "items": [ + "$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/skills/skill-manifest-2.0.0.json", + "$id": "SkillBot", + "name": "Sample skill definition that can handle multiple types of activities", + "version": "1.0", + "description": "This is a sample skill definition for multiple activity types", + "publisherName": "Microsoft", + "privacyUrl": "https://myskill.contoso.com/privacy.html", + "copyright": "Copyright (c) Microsoft Corporation. All rights reserved.", + "license": "", + "iconUrl": "https://myskill.contoso.com/icon.png", + "tags": [ + "sample", + "travel", + "weather" + ], + "endpoints": [ { - "type": "string" + "name": "americas", + "protocol": "BotFrameworkV3", + "description": "Production endpoint for SkillBot in the Americas", + "endpointUrl": "http://myskill.contoso.com/api/messages", + "msAppId": "00000000-0000-0000-0000-000000000000" + }, + { + "name": "eu", + "protocol": "BotFrameworkV3", + "description": "Production endpoint for SkillBot in Europe", + "endpointUrl": "http://myskill.contoso.com/api/messages", + "msAppId": "11111111-0000-0000-0000-000000000000" + } + ], + "activities": { + "bookFlight": { + "description": "Books a light", + "type": "event", + "name": "BookFlight", + "value": { + "$ref": "#/definitions/bookingInfo" + }, + "resultValue": { + "$ref": "#/definitions/bookingInfo" + } + }, + "getWeather": { + "description": "Retrieves and returns the weather for the user's location", + "type": "invoke", + "name": "GetWeather", + "value": { + "$ref": "#/definitions/location" + }, + "resultValue": { + "$ref": "#/definitions/weatherReport" + } + }, + "message": { + "type": "message", + "description": "Receives the user's' utterance and attempts to resolve it using the skill's LU models" } - ] }, - "location": { - "type": "object", - "description": "Location metadata", - "properties": { - "latitude": { - "type": "number", - "title": "Latitude" + "definitions": { + "localeValue": { + "type": "object", + "properties": { + "locale": { + "type": "string", + "description": "The current user's locale ISO code" + } + } }, - "longitude": { - "type": "number", - "title": "Longitude" + "bookingInfo": { + "type": "object", + "required": [ + "origin" + ], + "properties": { + "origin": { + "type": "string", + "description": "this is the origin city for the flight" + }, + "destination": { + "type": "string", + "description": "this is the destination city for the flight" + }, + "date": { + "type": "date", + "description": "The date for the flight in YYYY-MM-DD format" + } + } }, - "postalCode": { - "type": "string", - "title": "Postal code" + "weatherReport": { + "type": "array", + "description": "Array of forecasts for the next week.", + "items": [ + { + "type": "string" + } + ] + }, + "location": { + "type": "object", + "description": "Location metadata", + "properties": { + "latitude": { + "type": "number", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "title": "Longitude" + }, + "postalCode": { + "type": "string", + "title": "Postal code" + } + } } - } } - } } \ No newline at end of file diff --git a/schemas/skills/samples/echo-skillmanifest-2.0.0.json b/schemas/skills/samples/echo-skillmanifest-2.0.0.json index af7b5af7a..7e27e7b17 100644 --- a/schemas/skills/samples/echo-skillmanifest-2.0.0.json +++ b/schemas/skills/samples/echo-skillmanifest-2.0.0.json @@ -1,31 +1,31 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/skills/skill-manifest-2.0.0.json", - "$id": "EchoSkill", - "name": "Echo skill", - "version": "1.0", - "description": "This skill echoes whatever the user says", - "publisherName": "Microsoft", - "privacyUrl": "https://myskill.contoso.com/privacy.html", - "copyright": "Copyright (c) Microsoft Corporation. All rights reserved.", - "license": "", - "iconUrl": "https://myskill.contoso.com/icon.png", - "tags": [ - "sample", - "echo" - ], - "endpoints": [ - { - "name": "default", - "protocol": "BotFrameworkV3", - "description": "Production endpoint for SkillBot.", - "endpointUrl": "http://contoso.com/api/messages", - "msAppId": "a0000f00-Ad00-a000-a000-a0000aaaAaa0" + "$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/skills/skill-manifest-2.0.0.json", + "$id": "EchoSkill", + "name": "Echo skill", + "version": "1.0", + "description": "This skill echoes whatever the user says", + "publisherName": "Microsoft", + "privacyUrl": "https://myskill.contoso.com/privacy.html", + "copyright": "Copyright (c) Microsoft Corporation. All rights reserved.", + "license": "", + "iconUrl": "https://myskill.contoso.com/icon.png", + "tags": [ + "sample", + "echo" + ], + "endpoints": [ + { + "name": "default", + "protocol": "BotFrameworkV3", + "description": "Production endpoint for SkillBot.", + "endpointUrl": "http://myskill.contoso.com/api/messages", + "msAppId": "a0000f00-Ad00-a000-a000-a0000aaaAaa0" + } + ], + "activities": { + "message": { + "type": "message", + "description": "A message activity containing the utterance that the skill will echo back to the user" + } } - ], - "activities": { - "passthroughMessage": { - "type": "message", - "description": "A message activity containing the utterance that the skill will echo back to the user" - } - } } \ No newline at end of file diff --git a/schemas/skills/samples/simple-skillmanifest-2.0.0.json b/schemas/skills/samples/simple-skillmanifest-2.0.0.json index 8c0ba902d..2e5711eba 100644 --- a/schemas/skills/samples/simple-skillmanifest-2.0.0.json +++ b/schemas/skills/samples/simple-skillmanifest-2.0.0.json @@ -1,24 +1,24 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/skills/skill-manifest-2.0.0.json", - "$id": "CatchAllSkill", - "name": "Simple Skill", - "version": "1.0", - "description": "This is the simplest skill you can think of, it just defines an endpoint that can receive any activity", - "publisherName": "Microsoft", - "privacyUrl": "https://myskill.contoso.com/privacy.html", - "copyright": "Copyright (c) Microsoft Corporation. All rights reserved.", - "license": "", - "iconUrl": "https://myskill.contoso.com/icon.png", - "tags": [ - "sample" - ], - "endpoints": [ - { - "name": "default", - "protocol": "BotFrameworkV3", - "description": "Production endpoint for SkillBot.", - "endpointUrl": "http://contoso.com/api/messages", - "msAppId": "00000000-0000-0000-0000-000000000000" - } - ] + "$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/skills/skill-manifest-2.0.0.json", + "$id": "CatchAllSkill", + "name": "Simple Skill", + "version": "1.0", + "description": "This is the simplest skill you can think of, it just defines an endpoint that can receive any activity", + "publisherName": "Microsoft", + "privacyUrl": "https://myskill.contoso.com/privacy.html", + "copyright": "Copyright (c) Microsoft Corporation. All rights reserved.", + "license": "", + "iconUrl": "https://myskill.contoso.com/icon.png", + "tags": [ + "sample" + ], + "endpoints": [ + { + "name": "default", + "protocol": "BotFrameworkV3", + "description": "Production endpoint for SkillBot.", + "endpointUrl": "http://myskill.contoso.com/api/messages", + "msAppId": "00000000-0000-0000-0000-000000000000" + } + ] } \ No newline at end of file diff --git a/schemas/skills/skill-manifest-2.0.0.json b/schemas/skills/skill-manifest-2.0.0.json index da8a1adef..234eeafc1 100644 --- a/schemas/skills/skill-manifest-2.0.0.json +++ b/schemas/skills/skill-manifest-2.0.0.json @@ -1,256 +1,258 @@ { - "$id": "https://schemas.botframework.com/schemas/skills/skill-manifest-2.0.0.json", - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Skill Manifest Schema", - "description": "A schema for Bot Framework skill manifests", - "type": "object", - "required": [ - "$id", - "name", - "version", - "publisherName", - "endpoints" - ], - "additionalProperties": false, - "properties": { - "$schema": { - "type": "string", - "format": "uri", - "description": "The schema to verify this skill manifest against" - }, - "$id": { - "type": "string", - "description": "The identifier for the skill manifest" - }, - "name": { - "type": "string", - "description": "Name of the skill" - }, - "version": { - "type": "string", - "description": "Skill version" - }, - "description": { - "type": "string", - "description": "A human readable description for the skill" - }, - "publisherName": { - "type": "string", - "description": "The name of the skill publisher" - }, - "privacyUrl": { - "type": "string", - "format": "uri", - "description": "The URL with the privacy description for the skill" - }, - "copyright": { - "type": "string", - "description": "The copyright for the skill" - }, - "license": { - "type": "string", - "description": "The license agreement for the skill" - }, - "iconUrl": { - "type": "string", - "format": "uri", - "description": "Optional icon to be shown for the skill" - }, - "tags": { - "type": "array", - "uniqueItems": true, - "description": "An array of strings with tags for the skill" - }, - "endpoints": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "description": "List of endpoints supported by the skill", - "items": { "$ref": "#/definitions/endpoint" } - }, - "activities": { - "type": "object", - "description": "Definition for the activies accepted by the skill", - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/definitions/eventActivity" - }, - { - "$ref": "#/definitions/invokeActivity" - }, - { - "$ref": "#/definitions/messageActivity" - } - ] - } + "$id": "https://schemas.botframework.com/schemas/skills/skill-manifest-2.0.0.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Skill Manifest Schema", + "description": "A schema for Bot Framework skill manifests", + "type": "object", + "required": [ + "$id", + "name", + "version", + "publisherName", + "endpoints" + ], + "additionalProperties": false, + "properties": { + "$schema": { + "type": "string", + "format": "uri", + "description": "The schema to verify this skill manifest against" + }, + "$id": { + "type": "string", + "description": "The identifier for the skill manifest" + }, + "name": { + "type": "string", + "description": "Name of the skill" + }, + "version": { + "type": "string", + "description": "Skill version" + }, + "description": { + "type": "string", + "description": "A human readable description for the skill" + }, + "publisherName": { + "type": "string", + "description": "The name of the skill publisher" + }, + "privacyUrl": { + "type": "string", + "format": "uri", + "description": "The URL with the privacy description for the skill" + }, + "copyright": { + "type": "string", + "description": "The copyright for the skill" + }, + "license": { + "type": "string", + "description": "The license agreement for the skill" + }, + "iconUrl": { + "type": "string", + "format": "uri", + "description": "Optional icon to be shown for the skill" + }, + "tags": { + "type": "array", + "uniqueItems": true, + "description": "An array of strings with tags for the skill" + }, + "endpoints": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "description": "List of endpoints supported by the skill", + "items": { + "$ref": "#/definitions/endpoint" + } + }, + "activities": { + "type": "object", + "description": "Definition for the activities accepted by the skill", + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/definitions/eventActivity" + }, + { + "$ref": "#/definitions/invokeActivity" + }, + { + "$ref": "#/definitions/messageActivity" + } + ] + } + }, + "definitions": { + "type": "object", + "description": "Definitions of the structure of object payloads", + "additionalProperties": { + "$ref": "http://json-schema.org/draft-07/schema#" + } + } }, "definitions": { - "type": "object", - "description": "Definitions of the structure of object payloads", - "additionalProperties": { - "$ref": "http://json-schema.org/draft-07/schema#" - } + "endpoint": { + "type": "object", + "description": "Skill endpoint definition", + "additionalProperties": false, + "required": [ + "name", + "endpointUrl", + "msAppId" + ], + "properties": { + "name": { + "type": "string", + "description": "Unique name for the endpoint", + "default": "default" + }, + "protocol": { + "type": "string", + "description": "Supported protocol", + "default": "BotFrameworkV3" + }, + "description": { + "type": "string", + "title": "Description", + "description": "Description of the endpoint", + "examples": [ + "Production bot" + ] + }, + "endpointUrl": { + "type": "string", + "title": "Endpoint Url", + "format": "uri", + "description": "Endpoint for the skill", + "examples": [ + "http://contoso.com/api/messaages" + ] + }, + "msAppId": { + "type": "string", + "title": "Microsoft App Id", + "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$", + "description": "The Microsoft AppId for the skill. This app ID is used to authenticate requests" + } + } + }, + "eventActivity": { + "type": "object", + "description": "An activity with Type=Event where the Name property indicates the task that the skill will execute", + "required": [ + "type", + "name" + ], + "additionalProperties": false, + "properties": { + "type": { + "type": "string", + "description": "The activity type", + "enum": [ + "event" + ] + }, + "name": { + "type": "string", + "description": "The name for the event", + "examples": [ + "BookFlight" + ] + }, + "description": { + "type": "string", + "title": "Description", + "description": "Description for the activity" + }, + "value": { + "type": "object", + "description": "The JsonSchema definition of the shape of the value property that this event expects", + "$ref": "http://json-schema.org/draft-07/schema#" + }, + "resultValue": { + "type": "object", + "description": "The JsonSchema definition of the shape of the resultValue that this event may produce", + "$ref": "http://json-schema.org/draft-07/schema#" + } + } + }, + "invokeActivity": { + "type": "object", + "description": "An activity with Type=Invoke where the Name property indicates the task that the skill will execute", + "required": [ + "type", + "name" + ], + "additionalProperties": false, + "properties": { + "type": { + "type": "string", + "description": "The activity type", + "enum": [ + "invoke" + ] + }, + "name": { + "type": "string", + "description": "The name property for the invoke activity", + "examples": [ + "GetWeather" + ] + }, + "description": { + "type": "string", + "title": "Description", + "description": "Description for the activity" + }, + "value": { + "type": "object", + "description": "The JsonSchema definition of the shape of the value property that this event expects", + "$ref": "http://json-schema.org/draft-07/schema#" + }, + "resultValue": { + "type": "object", + "description": "The JsonSchema definition of the shape of the resultValue that this event may produce", + "$ref": "http://json-schema.org/draft-07/schema#" + } + } + }, + "messageActivity": { + "type": "object", + "description": "An activity with Type=Message where the utterance is passed to the skill in the Text property", + "required": [ + "type" + ], + "additionalProperties": false, + "properties": { + "type": { + "type": "string", + "description": "The activity type", + "enum": [ + "message" + ], + "default": "message" + }, + "description": { + "type": "string", + "title": "Description", + "description": "Description for the activity" + }, + "value": { + "type": "object", + "description": "The JsonSchema definition of the shape of the value property that this message would like to have", + "$ref": "http://json-schema.org/draft-07/schema#" + }, + "resultValue": { + "type": "object", + "description": "The JsonSchema definition of the shape of the resultValue that this message may produce", + "$ref": "http://json-schema.org/draft-07/schema#" + } + } + } } - }, - "definitions": { - "endpoint": { - "type": "object", - "description": "Skill endpoint definition", - "additionalProperties": false, - "required": [ - "name", - "endpointUrl", - "msAppId" - ], - "properties": { - "name": { - "type": "string", - "description": "Unique name for the endpoint", - "default": "BotFrameworkV3" - }, - "protocol": { - "type": "string", - "description": "Supported protocol", - "default": "BotFrameworkV3" - }, - "description": { - "type": "string", - "title": "Description", - "description": "Description of the endpoint", - "examples": [ - "Production bot" - ] - }, - "endpointUrl": { - "type": "string", - "title": "Endpoint Url", - "format": "uri", - "description": "Endpoint for the skill", - "examples": [ - "http://contoso.com/api/messaages" - ] - }, - "msAppId": { - "type": "string", - "title": "Microsoft App Id", - "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$", - "description": "The Microsoft AppId for the skill. This app ID is used to authenticate requests" - } - } - }, - "eventActivity": { - "type": "object", - "description": "An activity with Type=Event where the Name property indicates the task that the skill will execute", - "required": [ - "type", - "name" - ], - "additionalProperties": false, - "properties": { - "type": { - "type": "string", - "description": "The activity type", - "enum": [ - "event" - ] - }, - "name": { - "type": "string", - "description": "The name for the event", - "examples": [ - "BookFlight" - ] - }, - "description": { - "type": "string", - "title": "Description", - "description": "Description for the activity" - }, - "value": { - "type": "object", - "description": "The JsonSchema definition of the shape of the value property that this event expects", - "$ref": "http://json-schema.org/draft-07/schema#" - }, - "resultValue": { - "type": "object", - "description": "The JsonSchema definition of the shape of the resultValue that this event may produce", - "$ref": "http://json-schema.org/draft-07/schema#" - } - } - }, - "invokeActivity": { - "type": "object", - "description": "An activity with Type=Invoke where the Name property indicates the task that the skill will execute", - "required": [ - "type", - "name" - ], - "additionalProperties": false, - "properties": { - "type": { - "type": "string", - "description": "The activity type", - "enum": [ - "invoke" - ] - }, - "name": { - "type": "string", - "description": "The name property for the invoke activity", - "examples": [ - "GetWeather" - ] - }, - "description": { - "type": "string", - "title": "Description", - "description": "Description for the activity" - }, - "value": { - "type": "object", - "description": "The JsonSchema definition of the shape of the value property that this event expects", - "$ref": "http://json-schema.org/draft-07/schema#" - }, - "resultValue": { - "type": "object", - "description": "The JsonSchema definition of the shape of the resultValue that this event may produce", - "$ref": "http://json-schema.org/draft-07/schema#" - } - } - }, - "messageActivity": { - "type": "object", - "description": "An activity with Type=Message where the utterance is passed to the skill in the Text property", - "required": [ - "type" - ], - "additionalProperties": false, - "properties": { - "type": { - "type": "string", - "description": "The activity type", - "enum": [ - "message" - ], - "default": "message" - }, - "description": { - "type": "string", - "title": "Description", - "description": "Description for the activity" - }, - "value": { - "type": "object", - "description": "The JsonSchema definition of the shape of the value property that this message would like to have", - "$ref": "http://json-schema.org/draft-07/schema#" - }, - "resultValue": { - "type": "object", - "description": "The JsonSchema definition of the shape of the resultValue that this message may produce", - "$ref": "http://json-schema.org/draft-07/schema#" - } - } - } - } } \ No newline at end of file