Skip to content

Commit c20e0e9

Browse files
authored
setting structure (#5832)
1 parent b13c534 commit c20e0e9

12 files changed

+1312
-0
lines changed
Lines changed: 259 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,259 @@
1+
{
2+
"$id": "https://schemas.botframework.com/schemas/skills/skill-manifest-2.0.0.json",
3+
"$schema": "http://json-schema.org/draft-07/schema#",
4+
"title": "Skill Manifest Schema",
5+
"description": "A schema for Bot Framework skill manifests",
6+
"type": "object",
7+
"required": [
8+
"$id",
9+
"$schema",
10+
"name",
11+
"version",
12+
"publisherName",
13+
"endpoints"
14+
],
15+
"additionalProperties": false,
16+
"properties": {
17+
"$schema": {
18+
"type": "string",
19+
"format": "uri",
20+
"description": "The schema to verify this skill manifest against"
21+
},
22+
"$id": {
23+
"type": "string",
24+
"description": "The identifier for the skill manifest"
25+
},
26+
"name": {
27+
"type": "string",
28+
"description": "Name of the skill"
29+
},
30+
"version": {
31+
"type": "string",
32+
"description": "Skill version"
33+
},
34+
"description": {
35+
"type": "string",
36+
"description": "A human readable description for the skill"
37+
},
38+
"publisherName": {
39+
"type": "string",
40+
"description": "The name of the skill publisher"
41+
},
42+
"privacyUrl": {
43+
"type": "string",
44+
"format": "uri",
45+
"description": "The URL with the privacy description for the skill"
46+
},
47+
"copyright": {
48+
"type": "string",
49+
"description": "The copyright for the skill"
50+
},
51+
"license": {
52+
"type": "string",
53+
"description": "The license agreement for the skill"
54+
},
55+
"iconUrl": {
56+
"type": "string",
57+
"format": "uri",
58+
"description": "Optional icon to be shown for the skill"
59+
},
60+
"tags": {
61+
"type": "array",
62+
"uniqueItems": true,
63+
"description": "An array of strings with tags for the skill"
64+
},
65+
"endpoints": {
66+
"type": "array",
67+
"minItems": 1,
68+
"uniqueItems": true,
69+
"description": "List of endpoints supported by the skill",
70+
"items": {
71+
"$ref": "#/definitions/endpoint"
72+
}
73+
},
74+
"activities": {
75+
"type": "object",
76+
"description": "Definition for the activities accepted by the skill",
77+
"additionalProperties": {
78+
"anyOf": [
79+
{
80+
"$ref": "#/definitions/eventActivity"
81+
},
82+
{
83+
"$ref": "#/definitions/invokeActivity"
84+
},
85+
{
86+
"$ref": "#/definitions/messageActivity"
87+
}
88+
]
89+
}
90+
},
91+
"definitions": {
92+
"type": "object",
93+
"description": "Definitions of the structure of object payloads",
94+
"additionalProperties": {
95+
"$ref": "http://json-schema.org/draft-07/schema#"
96+
}
97+
}
98+
},
99+
"definitions": {
100+
"endpoint": {
101+
"type": "object",
102+
"description": "Skill endpoint definition",
103+
"additionalProperties": false,
104+
"required": [
105+
"name",
106+
"endpointUrl",
107+
"msAppId"
108+
],
109+
"properties": {
110+
"name": {
111+
"type": "string",
112+
"description": "Unique name for the endpoint",
113+
"default": "default"
114+
},
115+
"protocol": {
116+
"type": "string",
117+
"description": "Supported protocol",
118+
"default": "BotFrameworkV3"
119+
},
120+
"description": {
121+
"type": "string",
122+
"title": "Description",
123+
"description": "Description of the endpoint",
124+
"examples": [
125+
"Production bot"
126+
]
127+
},
128+
"endpointUrl": {
129+
"type": "string",
130+
"title": "Endpoint Url",
131+
"format": "uri",
132+
"description": "Endpoint for the skill",
133+
"examples": [
134+
"http://contoso.com/api/messaages"
135+
]
136+
},
137+
"msAppId": {
138+
"type": "string",
139+
"title": "Microsoft App Id",
140+
"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}$",
141+
"description": "The Microsoft AppId for the skill. This app ID is used to authenticate requests"
142+
}
143+
}
144+
},
145+
"eventActivity": {
146+
"type": "object",
147+
"description": "An activity with Type=Event where the Name property indicates the task that the skill will execute",
148+
"required": [
149+
"type",
150+
"name"
151+
],
152+
"additionalProperties": false,
153+
"properties": {
154+
"type": {
155+
"type": "string",
156+
"description": "The activity type",
157+
"enum": [
158+
"event"
159+
]
160+
},
161+
"name": {
162+
"type": "string",
163+
"description": "The name for the event",
164+
"examples": [
165+
"BookFlight"
166+
]
167+
},
168+
"description": {
169+
"type": "string",
170+
"title": "Description",
171+
"description": "Description for the activity"
172+
},
173+
"value": {
174+
"type": "object",
175+
"description": "The JsonSchema definition of the shape of the value property that this event expects",
176+
"$ref": "http://json-schema.org/draft-07/schema#"
177+
},
178+
"resultValue": {
179+
"type": "object",
180+
"description": "The JsonSchema definition of the shape of the resultValue that this event may produce",
181+
"$ref": "http://json-schema.org/draft-07/schema#"
182+
}
183+
}
184+
},
185+
"invokeActivity": {
186+
"type": "object",
187+
"description": "An activity with Type=Invoke where the Name property indicates the task that the skill will execute",
188+
"required": [
189+
"type",
190+
"name"
191+
],
192+
"additionalProperties": false,
193+
"properties": {
194+
"type": {
195+
"type": "string",
196+
"description": "The activity type",
197+
"enum": [
198+
"invoke"
199+
]
200+
},
201+
"name": {
202+
"type": "string",
203+
"description": "The name property for the invoke activity",
204+
"examples": [
205+
"GetWeather"
206+
]
207+
},
208+
"description": {
209+
"type": "string",
210+
"title": "Description",
211+
"description": "Description for the activity"
212+
},
213+
"value": {
214+
"type": "object",
215+
"description": "The JsonSchema definition of the shape of the value property that this event expects",
216+
"$ref": "http://json-schema.org/draft-07/schema#"
217+
},
218+
"resultValue": {
219+
"type": "object",
220+
"description": "The JsonSchema definition of the shape of the resultValue that this event may produce",
221+
"$ref": "http://json-schema.org/draft-07/schema#"
222+
}
223+
}
224+
},
225+
"messageActivity": {
226+
"type": "object",
227+
"description": "An activity with Type=Message where the utterance is passed to the skill in the Text property",
228+
"required": [
229+
"type"
230+
],
231+
"additionalProperties": false,
232+
"properties": {
233+
"type": {
234+
"type": "string",
235+
"description": "The activity type",
236+
"enum": [
237+
"message"
238+
],
239+
"default": "message"
240+
},
241+
"description": {
242+
"type": "string",
243+
"title": "Description",
244+
"description": "Description for the activity"
245+
},
246+
"value": {
247+
"type": "object",
248+
"description": "The JsonSchema definition of the shape of the value property that this message would like to have",
249+
"$ref": "http://json-schema.org/draft-07/schema#"
250+
},
251+
"resultValue": {
252+
"type": "object",
253+
"description": "The JsonSchema definition of the shape of the resultValue that this message may produce",
254+
"$ref": "http://json-schema.org/draft-07/schema#"
255+
}
256+
}
257+
}
258+
}
259+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"$schema": "https://schemas.botframework.com/schemas/skills/skill-manifest-2.0.0.json",
3+
"$id": "EchoSkill",
4+
"name": "Echo skill",
5+
"version": "1.0",
6+
"description": "This skill echoes whatever the user says",
7+
"publisherName": "Microsoft",
8+
"privacyUrl": "https://myskill.contoso.com/privacy.html",
9+
"copyright": "Copyright (c) Microsoft Corporation. All rights reserved.",
10+
"license": "",
11+
"iconUrl": "https://myskill.contoso.com/icon.png",
12+
"tags": [
13+
"sample",
14+
"echo"
15+
],
16+
"endpoints": [
17+
{
18+
"name": "default",
19+
"protocol": "BotFrameworkV3",
20+
"description": "Production endpoint for SkillBot.",
21+
"endpointUrl": "http://myskill.contoso.com/api/messages",
22+
"msAppId": "a0000f00-Ad00-a000-a000-a0000aaaAaa0"
23+
}
24+
],
25+
"activities": {
26+
"message": {
27+
"type": "message",
28+
"description": "A message activity containing the utterance that the skill will echo back to the user"
29+
}
30+
}
31+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"$schema": "https://schemas.botframework.com/schemas/skills/skill-manifest-2.0.0.json",
3+
"$id": "CatchAllSkill",
4+
"name": "Simple Skill",
5+
"version": "1.0",
6+
"description": "This is the simplest skill you can think of, it just defines an endpoint that can receive any activity",
7+
"publisherName": "Microsoft",
8+
"privacyUrl": "https://myskill.contoso.com/privacy.html",
9+
"copyright": "Copyright (c) Microsoft Corporation. All rights reserved.",
10+
"license": "",
11+
"iconUrl": "https://myskill.contoso.com/icon.png",
12+
"tags": [
13+
"sample"
14+
],
15+
"endpoints": [
16+
{
17+
"name": "default",
18+
"protocol": "BotFrameworkV3",
19+
"description": "Production endpoint for SkillBot.",
20+
"endpointUrl": "http://myskill.contoso.com/api/messages",
21+
"msAppId": "00000000-0000-0000-0000-000000000000"
22+
}
23+
]
24+
}

0 commit comments

Comments
 (0)