@microsoft/app-manifest 1.0.0-beta.2025041708.0 → 1.0.0-beta.2025042502.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/build/declarativeCopilotManifest.d.ts +0 -1
  2. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D0.d.ts +30 -30
  3. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D0.js +10 -10
  4. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D0.js.map +1 -1
  5. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D2.d.ts +29 -29
  6. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D2.js +10 -10
  7. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D2.js.map +1 -1
  8. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D3.d.ts +36 -36
  9. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D3.js +12 -12
  10. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D3.js.map +1 -1
  11. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D4.d.ts +292 -0
  12. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D4.js +259 -0
  13. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D4.js.map +1 -0
  14. package/build/generated-types/copilot/plugin/ApiPluginManifestV2D1.d.ts +91 -91
  15. package/build/generated-types/copilot/plugin/ApiPluginManifestV2D1.js +25 -25
  16. package/build/generated-types/copilot/plugin/ApiPluginManifestV2D1.js.map +1 -1
  17. package/build/generated-types/copilot/plugin/ApiPluginManifestV2D2.d.ts +86 -86
  18. package/build/generated-types/copilot/plugin/ApiPluginManifestV2D2.js +24 -24
  19. package/build/generated-types/copilot/plugin/ApiPluginManifestV2D2.js.map +1 -1
  20. package/build/generated-types/index.d.ts +26 -24
  21. package/build/generated-types/index.js +20 -13
  22. package/build/generated-types/index.js.map +1 -1
  23. package/build/generated-types/teams/TeamsManifestV1D0.d.ts +87 -87
  24. package/build/generated-types/teams/TeamsManifestV1D0.js +27 -27
  25. package/build/generated-types/teams/TeamsManifestV1D0.js.map +1 -1
  26. package/build/generated-types/teams/TeamsManifestV1D1.d.ts +86 -86
  27. package/build/generated-types/teams/TeamsManifestV1D1.js +26 -26
  28. package/build/generated-types/teams/TeamsManifestV1D1.js.map +1 -1
  29. package/build/generated-types/teams/TeamsManifestV1D10.d.ts +185 -185
  30. package/build/generated-types/teams/TeamsManifestV1D10.js +58 -58
  31. package/build/generated-types/teams/TeamsManifestV1D10.js.map +1 -1
  32. package/build/generated-types/teams/TeamsManifestV1D11.d.ts +188 -188
  33. package/build/generated-types/teams/TeamsManifestV1D11.js +60 -60
  34. package/build/generated-types/teams/TeamsManifestV1D11.js.map +1 -1
  35. package/build/generated-types/teams/TeamsManifestV1D12.d.ts +187 -187
  36. package/build/generated-types/teams/TeamsManifestV1D12.js +60 -60
  37. package/build/generated-types/teams/TeamsManifestV1D12.js.map +1 -1
  38. package/build/generated-types/teams/TeamsManifestV1D13.d.ts +189 -189
  39. package/build/generated-types/teams/TeamsManifestV1D13.js +60 -60
  40. package/build/generated-types/teams/TeamsManifestV1D13.js.map +1 -1
  41. package/build/generated-types/teams/TeamsManifestV1D14.d.ts +192 -192
  42. package/build/generated-types/teams/TeamsManifestV1D14.js +61 -61
  43. package/build/generated-types/teams/TeamsManifestV1D14.js.map +1 -1
  44. package/build/generated-types/teams/TeamsManifestV1D15.d.ts +192 -192
  45. package/build/generated-types/teams/TeamsManifestV1D15.js +61 -61
  46. package/build/generated-types/teams/TeamsManifestV1D15.js.map +1 -1
  47. package/build/generated-types/teams/TeamsManifestV1D16.d.ts +196 -196
  48. package/build/generated-types/teams/TeamsManifestV1D16.js +62 -62
  49. package/build/generated-types/teams/TeamsManifestV1D16.js.map +1 -1
  50. package/build/generated-types/teams/TeamsManifestV1D17.d.ts +347 -347
  51. package/build/generated-types/teams/TeamsManifestV1D17.js +129 -129
  52. package/build/generated-types/teams/TeamsManifestV1D17.js.map +1 -1
  53. package/build/generated-types/teams/TeamsManifestV1D19.d.ts +356 -356
  54. package/build/generated-types/teams/TeamsManifestV1D19.js +132 -132
  55. package/build/generated-types/teams/TeamsManifestV1D19.js.map +1 -1
  56. package/build/generated-types/teams/TeamsManifestV1D2.d.ts +86 -86
  57. package/build/generated-types/teams/TeamsManifestV1D2.js +26 -26
  58. package/build/generated-types/teams/TeamsManifestV1D2.js.map +1 -1
  59. package/build/generated-types/teams/TeamsManifestV1D20.d.ts +409 -409
  60. package/build/generated-types/teams/TeamsManifestV1D20.js +150 -150
  61. package/build/generated-types/teams/TeamsManifestV1D20.js.map +1 -1
  62. package/build/generated-types/teams/TeamsManifestV1D3.d.ts +90 -90
  63. package/build/generated-types/teams/TeamsManifestV1D3.js +28 -28
  64. package/build/generated-types/teams/TeamsManifestV1D3.js.map +1 -1
  65. package/build/generated-types/teams/TeamsManifestV1D4.d.ts +99 -99
  66. package/build/generated-types/teams/TeamsManifestV1D4.js +32 -32
  67. package/build/generated-types/teams/TeamsManifestV1D4.js.map +1 -1
  68. package/build/generated-types/teams/TeamsManifestV1D5.d.ts +123 -123
  69. package/build/generated-types/teams/TeamsManifestV1D5.js +39 -39
  70. package/build/generated-types/teams/TeamsManifestV1D5.js.map +1 -1
  71. package/build/generated-types/teams/TeamsManifestV1D6.d.ts +128 -128
  72. package/build/generated-types/teams/TeamsManifestV1D6.js +41 -41
  73. package/build/generated-types/teams/TeamsManifestV1D6.js.map +1 -1
  74. package/build/generated-types/teams/TeamsManifestV1D7.d.ts +134 -134
  75. package/build/generated-types/teams/TeamsManifestV1D7.js +44 -44
  76. package/build/generated-types/teams/TeamsManifestV1D7.js.map +1 -1
  77. package/build/generated-types/teams/TeamsManifestV1D8.d.ts +151 -151
  78. package/build/generated-types/teams/TeamsManifestV1D8.js +48 -48
  79. package/build/generated-types/teams/TeamsManifestV1D8.js.map +1 -1
  80. package/build/generated-types/teams/TeamsManifestV1D9.d.ts +172 -172
  81. package/build/generated-types/teams/TeamsManifestV1D9.js +54 -54
  82. package/build/generated-types/teams/TeamsManifestV1D9.js.map +1 -1
  83. package/build/generated-types/teams/TeamsManifestVDevPreview.d.ts +581 -581
  84. package/build/generated-types/teams/TeamsManifestVDevPreview.js +200 -200
  85. package/build/generated-types/teams/TeamsManifestVDevPreview.js.map +1 -1
  86. package/build/index.d.ts +0 -14
  87. package/build/index.js +0 -97
  88. package/build/index.js.map +1 -1
  89. package/build/tsconfig.tsbuildinfo +1 -1
  90. package/package.json +2 -2
@@ -1,135 +1,135 @@
1
1
  export interface TeamsManifestV1D17 {
2
2
  $schema?: string;
3
3
  /**
4
- * A color to use in conjunction with the icon. The value must be a valid HTML color code
5
- * starting with '#', for example `#4464ee`.
6
- */
7
- accentColor: string;
8
- activities?: Activities;
9
- /**
10
- * Specify and consolidates authorization related information for the App.
4
+ * The version of the schema this manifest is using. This schema version supports extending
5
+ * Teams apps to other parts of the Microsoft 365 ecosystem. More info at
6
+ * https://aka.ms/extendteamsapps.
11
7
  */
12
- authorization?: TeamsManifestV1D17Authorization;
8
+ manifestVersion: "1.17";
13
9
  /**
14
- * The set of bots for this app. Currently only one bot per app is supported.
10
+ * The version of the app. Changes to your manifest should cause a version change. This
11
+ * version string must follow the semver standard (http://semver.org).
15
12
  */
16
- bots?: Bot[];
13
+ version: string;
17
14
  /**
18
- * The set of compose extensions for this app. Currently only one compose extension per app
19
- * is supported.
15
+ * A unique identifier for this app. This id must be a GUID.
20
16
  */
21
- composeExtensions?: ComposeExtension[];
17
+ id: string;
18
+ localizationInfo?: LocalizationInfo;
19
+ developer: Developer;
20
+ name: Name;
21
+ description: Description;
22
+ icons: Icons;
22
23
  /**
23
- * A list of tenant configured properties for an app
24
+ * A color to use in conjunction with the icon. The value must be a valid HTML color code
25
+ * starting with '#', for example `#4464ee`.
24
26
  */
25
- configurableProperties?: ConfigurableProperty[];
27
+ accentColor: string;
26
28
  /**
27
29
  * These are tabs users can optionally add to their channels and 1:1 or group chats and
28
30
  * require extra configuration before they are added. Configurable tabs are not supported in
29
31
  * the personal scope. Currently only one configurable tab per app is supported.
30
32
  */
31
33
  configurableTabs?: ConfigurableTab[];
34
+ /**
35
+ * A set of tabs that may be 'pinned' by default, without the user adding them manually.
36
+ * Static tabs declared in personal scope are always pinned to the app's personal
37
+ * experience. Static tabs do not currently support the 'teams' scope.
38
+ */
39
+ staticTabs?: StaticTab[];
40
+ /**
41
+ * The set of bots for this app. Currently only one bot per app is supported.
42
+ */
43
+ bots?: Bot[];
32
44
  /**
33
45
  * The set of Office365 connectors for this app. Currently only one connector per app is
34
46
  * supported.
35
47
  */
36
48
  connectors?: Connector[];
37
49
  /**
38
- * Defines the list of cards which could be pinned to dashboards that can provide summarized
39
- * view of information relevant to user.
40
- */
41
- dashboardCards?: DashboardCard[];
42
- /**
43
- * A value indicating whether an app is blocked by default until admin allows it
50
+ * Subscription offer associated with this app.
44
51
  */
45
- defaultBlockUntilAdminAction?: boolean;
52
+ subscriptionOffer?: SubscriptionOffer;
46
53
  /**
47
- * When a group install scope is selected, this will define the default capability when the
48
- * user installs the app
54
+ * The set of compose extensions for this app. Currently only one compose extension per app
55
+ * is supported.
49
56
  */
50
- defaultGroupCapability?: DefaultGroupCapability;
57
+ composeExtensions?: ComposeExtension[];
51
58
  /**
52
- * The install scope defined for this app by default. This will be the option displayed on
53
- * the button when a user tries to add the app
59
+ * Specifies the permissions the app requests from users.
54
60
  */
55
- defaultInstallScope?: DefaultInstallScope;
56
- description: Description;
57
- developer: Developer;
61
+ permissions?: Permission[];
58
62
  /**
59
63
  * Specify the native features on a user's device that your app may request access to.
60
64
  */
61
65
  devicePermissions?: DevicePermission[];
62
- extensions?: ElementExtension[];
66
+ /**
67
+ * A list of valid domains from which the tabs expect to load any content. Domain listings
68
+ * can include wildcards, for example `*.example.com`. If your tab configuration or content
69
+ * UI needs to navigate to any other domain besides the one use for tab configuration, that
70
+ * domain must be specified here.
71
+ */
72
+ validDomains?: string[];
73
+ /**
74
+ * Specify your AAD App ID and Graph information to help users seamlessly sign into your AAD
75
+ * app.
76
+ */
77
+ webApplicationInfo?: WebApplicationInfo;
63
78
  /**
64
79
  * Specify the app's Graph connector configuration. If this is present then
65
80
  * webApplicationInfo.id must also be specified.
66
81
  */
67
82
  graphConnector?: GraphConnector;
68
- icons: Icons;
69
83
  /**
70
- * A unique identifier for this app. This id must be a GUID.
84
+ * A value indicating whether or not show loading indicator when app/tab is loading
71
85
  */
72
- id: string;
86
+ showLoadingIndicator?: boolean;
73
87
  /**
74
88
  * A value indicating whether a personal app is rendered without a tab header-bar
75
89
  */
76
90
  isFullScreen?: boolean;
77
- localizationInfo?: LocalizationInfo;
91
+ activities?: Activities;
78
92
  /**
79
- * The version of the schema this manifest is using. This schema version supports extending
80
- * Teams apps to other parts of the Microsoft 365 ecosystem. More info at
81
- * https://aka.ms/extendteamsapps.
93
+ * A list of tenant configured properties for an app
82
94
  */
83
- manifestVersion: "1.17";
95
+ configurableProperties?: ConfigurableProperty[];
84
96
  /**
85
- * Specify meeting extension definition.
97
+ * List of 'non-standard' channel types that the app supports. Note: Channels of standard
98
+ * type are supported by default if the app supports team scope.
86
99
  */
87
- meetingExtensionDefinition?: MeetingExtensionDefinition;
88
- name: Name;
100
+ supportedChannelTypes?: SupportedChannelType[];
89
101
  /**
90
- * Specifies the permissions the app requests from users.
102
+ * A value indicating whether an app is blocked by default until admin allows it
91
103
  */
92
- permissions?: Permission[];
104
+ defaultBlockUntilAdminAction?: boolean;
93
105
  /**
94
106
  * The url to the page that provides additional app information for the admins
95
107
  */
96
108
  publisherDocsUrl?: string;
97
109
  /**
98
- * A value indicating whether or not show loading indicator when app/tab is loading
99
- */
100
- showLoadingIndicator?: boolean;
101
- /**
102
- * A set of tabs that may be 'pinned' by default, without the user adding them manually.
103
- * Static tabs declared in personal scope are always pinned to the app's personal
104
- * experience. Static tabs do not currently support the 'teams' scope.
105
- */
106
- staticTabs?: StaticTab[];
107
- /**
108
- * Subscription offer associated with this app.
110
+ * The install scope defined for this app by default. This will be the option displayed on
111
+ * the button when a user tries to add the app
109
112
  */
110
- subscriptionOffer?: SubscriptionOffer;
113
+ defaultInstallScope?: DefaultInstallScope;
111
114
  /**
112
- * List of 'non-standard' channel types that the app supports. Note: Channels of standard
113
- * type are supported by default if the app supports team scope.
115
+ * When a group install scope is selected, this will define the default capability when the
116
+ * user installs the app
114
117
  */
115
- supportedChannelTypes?: SupportedChannelType[];
118
+ defaultGroupCapability?: DefaultGroupCapability;
116
119
  /**
117
- * A list of valid domains from which the tabs expect to load any content. Domain listings
118
- * can include wildcards, for example `*.example.com`. If your tab configuration or content
119
- * UI needs to navigate to any other domain besides the one use for tab configuration, that
120
- * domain must be specified here.
120
+ * Specify meeting extension definition.
121
121
  */
122
- validDomains?: string[];
122
+ meetingExtensionDefinition?: MeetingExtensionDefinition;
123
123
  /**
124
- * The version of the app. Changes to your manifest should cause a version change. This
125
- * version string must follow the semver standard (http://semver.org).
124
+ * Specify and consolidates authorization related information for the App.
126
125
  */
127
- version: string;
126
+ authorization?: TeamsManifestV1D17Authorization;
127
+ extensions?: ElementExtension[];
128
128
  /**
129
- * Specify your AAD App ID and Graph information to help users seamlessly sign into your AAD
130
- * app.
129
+ * Defines the list of cards which could be pinned to dashboards that can provide summarized
130
+ * view of information relevant to user.
131
131
  */
132
- webApplicationInfo?: WebApplicationInfo;
132
+ dashboardCards?: DashboardCard[];
133
133
  }
134
134
  export interface Activities {
135
135
  /**
@@ -138,9 +138,9 @@ export interface Activities {
138
138
  activityTypes?: ActivityType[];
139
139
  }
140
140
  export interface ActivityType {
141
+ type: string;
141
142
  description: string;
142
143
  templateText: string;
143
- type: string;
144
144
  }
145
145
  /**
146
146
  * Specify and consolidates authorization related information for the App.
@@ -180,112 +180,112 @@ export interface Bot {
180
180
  * (https://dev.botframework.com/bots)
181
181
  */
182
182
  botId: string;
183
+ configuration?: Configuration;
183
184
  /**
184
- * The list of commands that the bot supplies, including their usage, description, and the
185
- * scope for which the commands are valid. A separate command list should be used for each
186
- * scope.
185
+ * This value describes whether or not the bot utilizes a user hint to add the bot to a
186
+ * specific channel.
187
187
  */
188
- commandLists?: CommandList[];
189
- configuration?: Configuration;
188
+ needsChannelSelector?: boolean;
190
189
  /**
191
190
  * A value indicating whether or not the bot is a one-way notification only bot, as opposed
192
191
  * to a conversational bot.
193
192
  */
194
193
  isNotificationOnly?: boolean;
195
194
  /**
196
- * This value describes whether or not the bot utilizes a user hint to add the bot to a
197
- * specific channel.
198
- */
199
- needsChannelSelector?: boolean;
200
- /**
201
- * Specifies whether the bot offers an experience in the context of a channel in a team, in
202
- * a 1:1 or group chat, or in an experience scoped to an individual user alone. These
203
- * options are non-exclusive.
195
+ * A value indicating whether the bot supports uploading/downloading of files.
204
196
  */
205
- scopes: CommandListScope[];
197
+ supportsFiles?: boolean;
206
198
  /**
207
199
  * A value indicating whether the bot supports audio calling.
208
200
  */
209
201
  supportsCalling?: boolean;
210
- /**
211
- * A value indicating whether the bot supports uploading/downloading of files.
212
- */
213
- supportsFiles?: boolean;
214
202
  /**
215
203
  * A value indicating whether the bot supports video calling.
216
204
  */
217
205
  supportsVideo?: boolean;
206
+ /**
207
+ * Specifies whether the bot offers an experience in the context of a channel in a team, in
208
+ * a 1:1 or group chat, or in an experience scoped to an individual user alone. These
209
+ * options are non-exclusive.
210
+ */
211
+ scopes: CommandListScope[];
212
+ /**
213
+ * The list of commands that the bot supplies, including their usage, description, and the
214
+ * scope for which the commands are valid. A separate command list should be used for each
215
+ * scope.
216
+ */
217
+ commandLists?: CommandList[];
218
218
  }
219
219
  export interface CommandList {
220
- commands: CommandListCommand[];
221
220
  /**
222
221
  * Specifies the scopes for which the command list is valid
223
222
  */
224
223
  scopes: CommandListScope[];
224
+ commands: CommandListCommand[];
225
225
  }
226
226
  export interface CommandListCommand {
227
- /**
228
- * A simple text description or an example of the command syntax and its arguments.
229
- */
230
- description: string;
231
227
  /**
232
228
  * The bot command name
233
229
  */
234
230
  title: string;
231
+ /**
232
+ * A simple text description or an example of the command syntax and its arguments.
233
+ */
234
+ description: string;
235
235
  }
236
236
  export type CommandListScope = "team" | "personal" | "groupChat";
237
237
  export interface Configuration {
238
- groupChat?: GroupChat;
239
- team?: GroupChat;
238
+ team?: Team;
239
+ groupChat?: Team;
240
240
  }
241
- export interface GroupChat {
241
+ export interface Team {
242
242
  fetchTask?: boolean;
243
243
  taskInfo?: TaskInfo;
244
244
  }
245
245
  export interface TaskInfo {
246
- /**
247
- * Dialog height - either a number in pixels or default layout such as 'large', 'medium', or
248
- * 'small'
249
- */
250
- height?: string;
251
246
  /**
252
247
  * Initial dialog title
253
248
  */
254
249
  title?: string;
255
- /**
256
- * Initial webview URL
257
- */
258
- url?: string;
259
250
  /**
260
251
  * Dialog width - either a number in pixels or default layout such as 'large', 'medium', or
261
252
  * 'small'
262
253
  */
263
254
  width?: string;
255
+ /**
256
+ * Dialog height - either a number in pixels or default layout such as 'large', 'medium', or
257
+ * 'small'
258
+ */
259
+ height?: string;
260
+ /**
261
+ * Initial webview URL
262
+ */
263
+ url?: string;
264
264
  }
265
265
  export interface ComposeExtension {
266
266
  /**
267
- * A relative file path to the api specification file in the manifest package.
267
+ * The Microsoft App ID specified for the bot powering the compose extension in the Bot
268
+ * Framework portal (https://dev.botframework.com/bots)
268
269
  */
269
- apiSpecificationFile?: string;
270
+ botId?: string;
271
+ /**
272
+ * Type of the compose extension.
273
+ */
274
+ composeExtensionType?: ComposeExtensionType;
270
275
  /**
271
276
  * Object capturing authorization information.
272
277
  */
273
278
  authorization?: ComposeExtensionAuthorization;
274
279
  /**
275
- * The Microsoft App ID specified for the bot powering the compose extension in the Bot
276
- * Framework portal (https://dev.botframework.com/bots)
280
+ * A relative file path to the api specification file in the manifest package.
277
281
  */
278
- botId?: string;
282
+ apiSpecificationFile?: string;
279
283
  /**
280
284
  * A value indicating whether the configuration of a compose extension can be updated by the
281
285
  * user.
282
286
  */
283
287
  canUpdateConfiguration?: boolean | null;
284
288
  commands?: ComposeExtensionCommand[];
285
- /**
286
- * Type of the compose extension.
287
- */
288
- composeExtensionType?: ComposeExtensionType;
289
289
  /**
290
290
  * A list of handlers that allow apps to be invoked when certain conditions are met
291
291
  */
@@ -295,11 +295,6 @@ export interface ComposeExtension {
295
295
  * Object capturing authorization information.
296
296
  */
297
297
  export interface ComposeExtensionAuthorization {
298
- /**
299
- * Object capturing details needed to do service auth. It will be only present when auth
300
- * type is apiSecretServiceAuth.
301
- */
302
- apiSecretServiceAuthConfiguration?: APISecretServiceAuthConfiguration;
303
298
  /**
304
299
  * Enum of possible authentication types.
305
300
  */
@@ -309,6 +304,11 @@ export interface ComposeExtensionAuthorization {
309
304
  * auth type is entraId.
310
305
  */
311
306
  microsoftEntraConfiguration?: MicrosoftEntraConfiguration;
307
+ /**
308
+ * Object capturing details needed to do service auth. It will be only present when auth
309
+ * type is apiSecretServiceAuth.
310
+ */
311
+ apiSecretServiceAuthConfiguration?: APISecretServiceAuthConfiguration;
312
312
  }
313
313
  /**
314
314
  * Object capturing details needed to do service auth. It will be only present when auth
@@ -335,6 +335,15 @@ export interface MicrosoftEntraConfiguration {
335
335
  supportsSingleSignOn?: boolean;
336
336
  }
337
337
  export interface ComposeExtensionCommand {
338
+ /**
339
+ * Id of the command.
340
+ */
341
+ id: string;
342
+ /**
343
+ * Type of the command
344
+ */
345
+ type?: CommandType;
346
+ samplePrompts?: SamplePrompt[];
338
347
  /**
339
348
  * A relative file path for api response rendering template file.
340
349
  */
@@ -344,72 +353,63 @@ export interface ComposeExtensionCommand {
344
353
  */
345
354
  context?: CommandContext[];
346
355
  /**
347
- * Description of the command.
348
- */
349
- description?: string;
350
- /**
351
- * A boolean value that indicates if it should fetch task module dynamically
356
+ * Title of the command.
352
357
  */
353
- fetchTask?: boolean;
358
+ title: string;
354
359
  /**
355
- * Id of the command.
360
+ * Description of the command.
356
361
  */
357
- id: string;
362
+ description?: string;
358
363
  /**
359
364
  * A boolean value that indicates if the command should be run once initially with no
360
365
  * parameter.
361
366
  */
362
367
  initialRun?: boolean;
363
- parameters?: Parameter[];
364
- samplePrompts?: SamplePrompt[];
368
+ /**
369
+ * A boolean value that indicates if it should fetch task module dynamically
370
+ */
371
+ fetchTask?: boolean;
365
372
  /**
366
373
  * Semantic description for the command.
367
374
  */
368
375
  semanticDescription?: string;
376
+ parameters?: Parameter[];
369
377
  taskInfo?: TaskInfo;
378
+ }
379
+ export type CommandContext = "compose" | "commandBox" | "message";
380
+ export interface Parameter {
370
381
  /**
371
- * Title of the command.
382
+ * Name of the parameter.
372
383
  */
373
- title: string;
384
+ name: string;
374
385
  /**
375
- * Type of the command
386
+ * Type of the parameter
376
387
  */
377
- type?: CommandType;
378
- }
379
- export type CommandContext = "compose" | "commandBox" | "message";
380
- export interface Parameter {
388
+ inputType?: InputType;
381
389
  /**
382
- * The choice options for the parameter
390
+ * Title of the parameter.
383
391
  */
384
- choices?: Choice[];
392
+ title: string;
385
393
  /**
386
394
  * Description of the parameter.
387
395
  */
388
396
  description?: string;
389
397
  /**
390
- * Type of the parameter
398
+ * Initial value for the parameter
391
399
  */
392
- inputType?: InputType;
400
+ value?: string;
393
401
  /**
394
402
  * The value indicates if this parameter is a required field.
395
403
  */
396
404
  isRequired?: boolean;
397
- /**
398
- * Name of the parameter.
399
- */
400
- name: string;
401
405
  /**
402
406
  * Semantic description for the parameter.
403
407
  */
404
408
  semanticDescription?: string;
405
409
  /**
406
- * Title of the parameter.
407
- */
408
- title: string;
409
- /**
410
- * Initial value for the parameter
410
+ * The choice options for the parameter
411
411
  */
412
- value?: string;
412
+ choices?: Choice[];
413
413
  }
414
414
  export interface Choice {
415
415
  /**
@@ -464,23 +464,15 @@ export interface Value {
464
464
  }
465
465
  export type ConfigurableProperty = "name" | "shortDescription" | "longDescription" | "smallImageUrl" | "largeImageUrl" | "accentColor" | "developerUrl" | "privacyUrl" | "termsOfUseUrl";
466
466
  export interface ConfigurableTab {
467
- /**
468
- * A value indicating whether an instance of the tab's configuration can be updated by the
469
- * user after creation.
470
- */
471
- canUpdateConfiguration?: boolean;
472
467
  /**
473
468
  * The url to use when configuring the tab.
474
469
  */
475
470
  configurationUrl: string;
476
471
  /**
477
- * The set of contextItem scopes that a tab belong to
478
- */
479
- context?: ConfigurableTabContext[];
480
- /**
481
- * The set of meetingSurfaceItem scopes that a tab belong to
472
+ * A value indicating whether an instance of the tab's configuration can be updated by the
473
+ * user after creation.
482
474
  */
483
- meetingSurfaces?: MeetingSurface[];
475
+ canUpdateConfiguration?: boolean;
484
476
  /**
485
477
  * Specifies whether the tab offers an experience in the context of a channel in a team, in
486
478
  * a 1:1 or group chat, or in an experience scoped to an individual user alone. These
@@ -488,6 +480,14 @@ export interface ConfigurableTab {
488
480
  * and groupchats scopes.
489
481
  */
490
482
  scopes: ConfigurableTabScope[];
483
+ /**
484
+ * The set of meetingSurfaceItem scopes that a tab belong to
485
+ */
486
+ meetingSurfaces?: MeetingSurface[];
487
+ /**
488
+ * The set of contextItem scopes that a tab belong to
489
+ */
490
+ context?: ConfigurableTabContext[];
491
491
  /**
492
492
  * A relative file path to a tab preview image for use in SharePoint. Size 1024x768.
493
493
  */
@@ -502,15 +502,15 @@ export type MeetingSurface = "sidePanel" | "stage";
502
502
  export type ConfigurableTabScope = "team" | "groupChat";
503
503
  export type SupportedSharePointHost = "sharePointFullPage" | "sharePointWebPart";
504
504
  export interface Connector {
505
- /**
506
- * The url to use for configuring the connector using the inline configuration experience.
507
- */
508
- configurationUrl?: string;
509
505
  /**
510
506
  * A unique identifier for the connector which matches its ID in the Connectors Developer
511
507
  * Portal.
512
508
  */
513
509
  connectorId: string;
510
+ /**
511
+ * The url to use for configuring the connector using the inline configuration experience.
512
+ */
513
+ configurationUrl?: string;
514
514
  /**
515
515
  * Specifies whether the connector offers an experience in the context of a channel in a
516
516
  * team, or an experience scoped to an individual user alone. Currently, only the team scope
@@ -523,41 +523,41 @@ export interface Connector {
523
523
  * to user.
524
524
  */
525
525
  export interface DashboardCard {
526
- contentSource: DashboardCardContentSource;
527
- /**
528
- * Rendering Size for dashboard card.
529
- */
530
- defaultSize: DefaultSize;
531
526
  /**
532
- * Description of the card.Maximum length is 255 characters.
527
+ * Unique Id for the card. Must be unique inside the app.
533
528
  */
534
- description: string;
529
+ id: string;
535
530
  /**
536
531
  * Represents the name of the card. Maximum length is 255 characters.
537
532
  */
538
533
  displayName: string;
539
- icon?: DashboardCardIcon;
540
534
  /**
541
- * Unique Id for the card. Must be unique inside the app.
535
+ * Description of the card.Maximum length is 255 characters.
542
536
  */
543
- id: string;
537
+ description: string;
544
538
  /**
545
539
  * Id of the group in the card picker. This must be guid.
546
540
  */
547
541
  pickerGroupId: string;
542
+ icon?: DashboardCardIcon;
543
+ contentSource: DashboardCardContentSource;
544
+ /**
545
+ * Rendering Size for dashboard card.
546
+ */
547
+ defaultSize: DefaultSize;
548
548
  }
549
549
  /**
550
550
  * Represents a configuration for the source of the card’s content.
551
551
  */
552
552
  export interface DashboardCardContentSource {
553
- /**
554
- * The configuration for the bot source. Required if sourceType is set to bot.
555
- */
556
- botConfiguration?: BotConfiguration;
557
553
  /**
558
554
  * The content of the dashboard card is sourced from a bot.
559
555
  */
560
556
  sourceType?: "bot";
557
+ /**
558
+ * The configuration for the bot source. Required if sourceType is set to bot.
559
+ */
560
+ botConfiguration?: BotConfiguration;
561
561
  }
562
562
  /**
563
563
  * The configuration for the bot source. Required if sourceType is set to bot.
@@ -594,6 +594,11 @@ export interface DashboardCardIcon {
594
594
  * user installs the app
595
595
  */
596
596
  export interface DefaultGroupCapability {
597
+ /**
598
+ * When the install scope selected is Team, this field specifies the default capability
599
+ * available
600
+ */
601
+ team?: Groupchat;
597
602
  /**
598
603
  * When the install scope selected is GroupChat, this field specifies the default capability
599
604
  * available
@@ -604,11 +609,6 @@ export interface DefaultGroupCapability {
604
609
  * available
605
610
  */
606
611
  meetings?: Groupchat;
607
- /**
608
- * When the install scope selected is Team, this field specifies the default capability
609
- * available
610
- */
611
- team?: Groupchat;
612
612
  }
613
613
  /**
614
614
  * When the install scope selected is GroupChat, this field specifies the default capability
@@ -627,17 +627,21 @@ export type Groupchat = "tab" | "bot" | "connector";
627
627
  */
628
628
  export type DefaultInstallScope = "personal" | "team" | "groupChat" | "meetings";
629
629
  export interface Description {
630
- /**
631
- * The full description of the app. Maximum length is 4000 characters.
632
- */
633
- full: string;
634
630
  /**
635
631
  * A short description of the app used when space is limited. Maximum length is 80
636
632
  * characters.
637
633
  */
638
634
  short: string;
635
+ /**
636
+ * The full description of the app. Maximum length is 4000 characters.
637
+ */
638
+ full: string;
639
639
  }
640
640
  export interface Developer {
641
+ /**
642
+ * The display name for the developer.
643
+ */
644
+ name: string;
641
645
  /**
642
646
  * The Microsoft Partner Network ID that identifies the partner organization building the
643
647
  * app. This field is not required, and should only be used if you are already part of the
@@ -645,9 +649,9 @@ export interface Developer {
645
649
  */
646
650
  mpnId?: string;
647
651
  /**
648
- * The display name for the developer.
652
+ * The url to the page that provides support information for the app.
649
653
  */
650
- name: string;
654
+ websiteUrl: string;
651
655
  /**
652
656
  * The url to the page that provides privacy information for the app.
653
657
  */
@@ -656,35 +660,31 @@ export interface Developer {
656
660
  * The url to the page that provides the terms of use for the app.
657
661
  */
658
662
  termsOfUseUrl: string;
659
- /**
660
- * The url to the page that provides support information for the app.
661
- */
662
- websiteUrl: string;
663
663
  }
664
664
  export type DevicePermission = "geolocation" | "media" | "notifications" | "midi" | "openExternal";
665
665
  /**
666
666
  * The set of extensions for this app. Currently only one extensions per app is supported.
667
667
  */
668
668
  export interface ElementExtension {
669
+ requirements?: RequirementsExtensionElement;
670
+ runtimes?: ExtensionRuntimesArray[];
671
+ ribbons?: ExtensionRibbonsArray[];
672
+ autoRunEvents?: ExtensionAutoRunEventsArray[];
669
673
  alternates?: ExtensionAlternateVersionsArray[];
670
674
  /**
671
675
  * The url for your extension, used to validate Exchange user identity tokens.
672
676
  */
673
677
  audienceClaimUrl?: string;
674
- autoRunEvents?: ExtensionAutoRunEventsArray[];
675
- requirements?: RequirementsExtensionElement;
676
- ribbons?: ExtensionRibbonsArray[];
677
- runtimes?: ExtensionRuntimesArray[];
678
678
  }
679
679
  export interface ExtensionAlternateVersionsArray {
680
- alternateIcons?: AlternateIcons;
681
- hide?: Hide;
682
- prefer?: Prefer;
683
680
  requirements?: RequirementsExtensionElement;
681
+ prefer?: Prefer;
682
+ hide?: Hide;
683
+ alternateIcons?: AlternateIcons;
684
684
  }
685
685
  export interface AlternateIcons {
686
- highResolutionIcon: ExtensionCommonIcon;
687
686
  icon: ExtensionCommonIcon;
687
+ highResolutionIcon: ExtensionCommonIcon;
688
688
  }
689
689
  export interface ExtensionCommonIcon {
690
690
  /**
@@ -697,8 +697,8 @@ export interface ExtensionCommonIcon {
697
697
  url: string;
698
698
  }
699
699
  export interface Hide {
700
- customOfficeAddin?: CustomOfficeAddin;
701
700
  storeOfficeAddin?: StoreOfficeAddin;
701
+ customOfficeAddin?: CustomOfficeAddin;
702
702
  [property: string]: any;
703
703
  }
704
704
  export interface CustomOfficeAddin {
@@ -708,14 +708,14 @@ export interface CustomOfficeAddin {
708
708
  officeAddinId: string;
709
709
  }
710
710
  export interface StoreOfficeAddin {
711
- /**
712
- * Asset ID of the in-market add-in to hide. Maximum length is 64 characters.
713
- */
714
- assetId: string;
715
711
  /**
716
712
  * Solution ID of an in-market add-in to hide. Maximum length is 64 characters.
717
713
  */
718
714
  officeAddinId: string;
715
+ /**
716
+ * Asset ID of the in-market add-in to hide. Maximum length is 64 characters.
717
+ */
718
+ assetId: string;
719
719
  }
720
720
  export interface Prefer {
721
721
  comAddin?: COMAddin;
@@ -729,40 +729,41 @@ export interface COMAddin {
729
729
  }
730
730
  export interface RequirementsExtensionElement {
731
731
  capabilities?: Capability[];
732
- /**
733
- * Identifies the form factors that support the add-in. Supported values: mobile, desktop.
734
- */
735
- formFactors?: FormFactor[];
736
732
  /**
737
733
  * Identifies the scopes in which the add-in can run.
738
734
  */
739
735
  scopes?: RequirementsScope[];
736
+ /**
737
+ * Identifies the form factors that support the add-in. Supported values: mobile, desktop.
738
+ */
739
+ formFactors?: FormFactor[];
740
740
  }
741
741
  export interface Capability {
742
742
  /**
743
- * Identifies the maximum version for the requirement sets that the add-in needs to run.
743
+ * Identifies the name of the requirement sets that the add-in needs to run.
744
744
  */
745
- maxVersion?: string;
745
+ name: string;
746
746
  /**
747
747
  * Identifies the minimum version for the requirement sets that the add-in needs to run.
748
748
  */
749
749
  minVersion?: string;
750
750
  /**
751
- * Identifies the name of the requirement sets that the add-in needs to run.
751
+ * Identifies the maximum version for the requirement sets that the add-in needs to run.
752
752
  */
753
- name: string;
753
+ maxVersion?: string;
754
754
  }
755
755
  export type FormFactor = "desktop" | "mobile";
756
756
  export type RequirementsScope = "mail" | "workbook" | "document" | "presentation";
757
757
  export interface ExtensionAutoRunEventsArray {
758
+ requirements?: RequirementsExtensionElement;
758
759
  /**
759
760
  * Specifies the type of event. For supported types, please see:
760
761
  * https://review.learn.microsoft.com/en-us/office/dev/add-ins/outlook/autolaunch?tabs=xmlmanifest#supported-events.
761
762
  */
762
763
  events: Event[];
763
- requirements?: RequirementsExtensionElement;
764
764
  }
765
765
  export interface Event {
766
+ type: string;
766
767
  /**
767
768
  * The ID of an action defined in runtimes. Maximum length is 64 characters.
768
769
  */
@@ -771,7 +772,6 @@ export interface Event {
771
772
  * Configures how Outlook responds to the event.
772
773
  */
773
774
  options?: Options;
774
- type: string;
775
775
  }
776
776
  /**
777
777
  * Configures how Outlook responds to the event.
@@ -781,8 +781,8 @@ export interface Options {
781
781
  }
782
782
  export type SendMode = "promptUser" | "softBlock" | "block";
783
783
  export interface ExtensionRibbonsArray {
784
- contexts?: ExtensionContext[];
785
784
  requirements?: RequirementsExtensionElement;
785
+ contexts?: ExtensionContext[];
786
786
  tabs: ExtensionRibbonsArrayTabsItem[];
787
787
  }
788
788
  /**
@@ -793,29 +793,28 @@ export interface ExtensionRibbonsArray {
793
793
  export type ExtensionContext = "mailRead" | "mailCompose" | "meetingDetailsOrganizer" | "meetingDetailsAttendee" | "onlineMeetingDetailsOrganizer" | "logEventMeetingDetailsAttendee" | "default";
794
794
  export interface ExtensionRibbonsArrayTabsItem {
795
795
  /**
796
- * Id of the existing office Tab. Maximum length is 64 characters.
796
+ * A unique identifier for this tab within the app. Maximum length is 64 characters.
797
797
  */
798
- builtInTabId?: string;
798
+ id?: string;
799
799
  /**
800
- * Defines mobile group item.
800
+ * Displayed text for the tab. Maximum length is 64 characters.
801
801
  */
802
- customMobileRibbonGroups?: ExtensionRibbonsCustomMobileGroupItem[];
802
+ label?: string;
803
+ position?: Position;
803
804
  /**
804
- * Defines tab groups.
805
+ * Id of the existing office Tab. Maximum length is 64 characters.
805
806
  */
806
- groups?: ExtensionRibbonsCustomTabGroupsItem[];
807
+ builtInTabId?: string;
807
808
  /**
808
- * A unique identifier for this tab within the app. Maximum length is 64 characters.
809
+ * Defines tab groups.
809
810
  */
810
- id?: string;
811
+ groups?: ExtensionRibbonsCustomTabGroupsItem[];
811
812
  /**
812
- * Displayed text for the tab. Maximum length is 64 characters.
813
+ * Defines mobile group item.
813
814
  */
814
- label?: string;
815
- position?: Position;
815
+ customMobileRibbonGroups?: ExtensionRibbonsCustomMobileGroupItem[];
816
816
  }
817
817
  export interface ExtensionRibbonsCustomMobileGroupItem {
818
- controls: ExtensionRibbonsCustomMobileControlButtonItem[];
819
818
  /**
820
819
  * Specify the Id of the group. Used for mobileMessageRead ext point.
821
820
  */
@@ -824,31 +823,27 @@ export interface ExtensionRibbonsCustomMobileGroupItem {
824
823
  * Short label of the control. Maximum length is 32 characters.
825
824
  */
826
825
  label: string;
826
+ controls: ExtensionRibbonsCustomMobileControlButtonItem[];
827
827
  [property: string]: any;
828
828
  }
829
829
  export interface ExtensionRibbonsCustomMobileControlButtonItem {
830
- /**
831
- * The ID of an action defined in runtimes. Maximum length is 64 characters.
832
- */
833
- actionId: string;
834
- icons: ExtensionCustomMobileIcon[];
835
830
  /**
836
831
  * Specify the Id of the button like msgReadFunctionButton.
837
832
  */
838
833
  id: string;
834
+ type: "mobileButton";
839
835
  /**
840
836
  * Short label of the control. Maximum length is 32 characters.
841
837
  */
842
838
  label: string;
843
- type: "mobileButton";
839
+ icons: ExtensionCustomMobileIcon[];
840
+ /**
841
+ * The ID of an action defined in runtimes. Maximum length is 64 characters.
842
+ */
843
+ actionId: string;
844
844
  [property: string]: any;
845
845
  }
846
846
  export interface ExtensionCustomMobileIcon {
847
- /**
848
- * How to scale - 1,2,3 for each image. This attribute specifies the UIScreen.scale property
849
- * for iOS devices.
850
- */
851
- scale: number;
852
847
  /**
853
848
  * Size in pixels of the icon. Three image sizes are required (25, 32, and 48 pixels).
854
849
  */
@@ -857,14 +852,13 @@ export interface ExtensionCustomMobileIcon {
857
852
  * Url to the icon.
858
853
  */
859
854
  url: string;
860
- }
861
- export interface ExtensionRibbonsCustomTabGroupsItem {
862
855
  /**
863
- * Id of a built-in Group. Maximum length is 64 characters.
856
+ * How to scale - 1,2,3 for each image. This attribute specifies the UIScreen.scale property
857
+ * for iOS devices.
864
858
  */
865
- builtInGroupId?: string;
866
- controls?: ExtensionCommonCustomGroupControlsItem[];
867
- icons?: ExtensionCommonIcon[];
859
+ scale: number;
860
+ }
861
+ export interface ExtensionRibbonsCustomTabGroupsItem {
868
862
  /**
869
863
  * A unique identifier for this group within the app. Maximum length is 64 characters.
870
864
  */
@@ -873,80 +867,86 @@ export interface ExtensionRibbonsCustomTabGroupsItem {
873
867
  * Displayed text for the group. Maximum length is 64 characters.
874
868
  */
875
869
  label?: string;
870
+ icons?: ExtensionCommonIcon[];
871
+ controls?: ExtensionCommonCustomGroupControlsItem[];
872
+ /**
873
+ * Id of a built-in Group. Maximum length is 64 characters.
874
+ */
875
+ builtInGroupId?: string;
876
876
  }
877
877
  export interface ExtensionCommonCustomGroupControlsItem {
878
878
  /**
879
- * The ID of an execution-type action that handles this key combination. Maximum length is
880
- * 64 characters.
879
+ * A unique identifier for this control within the app. Maximum length is 64 characters.
881
880
  */
882
- actionId: string;
881
+ id: string;
882
+ /**
883
+ * Defines the type of control whether button or menu.
884
+ */
885
+ type: FluffyType;
883
886
  /**
884
887
  * Id of the existing office control. Maximum length is 64 characters.
885
888
  */
886
889
  builtInControlId?: string;
887
890
  /**
888
- * Whether the control is initially enabled.
891
+ * Displayed text for the control. Maximum length is 64 characters.
889
892
  */
890
- enabled?: boolean;
893
+ label: string;
891
894
  icons: ExtensionCommonIcon[];
895
+ supertip: ExtensionCommonSuperToolTip;
892
896
  /**
893
- * A unique identifier for this control within the app. Maximum length is 64 characters.
894
- */
895
- id: string;
896
- /**
897
- * Configures the items for a menu control.
898
- */
899
- items?: ExtensionCommonCustomControlMenuItem[];
900
- /**
901
- * Displayed text for the control. Maximum length is 64 characters.
897
+ * The ID of an execution-type action that handles this key combination. Maximum length is
898
+ * 64 characters.
902
899
  */
903
- label: string;
900
+ actionId: string;
904
901
  /**
905
902
  * Specifies whether a group, button, menu, or menu item will be hidden on application and
906
903
  * platform combinations that support the API (Office.ribbon.requestCreateControls) that
907
904
  * installs custom contextual tabs on the ribbon. Default is false.
908
905
  */
909
906
  overriddenByRibbonApi?: boolean;
910
- supertip: ExtensionCommonSuperToolTip;
911
- /**
912
- * Defines the type of control whether button or menu.
913
- */
914
- type: FluffyType;
915
- }
916
- export interface ExtensionCommonCustomControlMenuItem {
917
- /**
918
- * The ID of an action defined in runtimes. Maximum length is 64 characters.
919
- */
920
- actionId: string;
921
907
  /**
922
908
  * Whether the control is initially enabled.
923
909
  */
924
910
  enabled?: boolean;
925
- icons?: ExtensionCommonIcon[];
911
+ /**
912
+ * Configures the items for a menu control.
913
+ */
914
+ items?: ExtensionCommonCustomControlMenuItem[];
915
+ }
916
+ export interface ExtensionCommonCustomControlMenuItem {
926
917
  /**
927
918
  * A unique identifier for this control within the app. Maximum length is 64 characters.
928
919
  */
929
920
  id: string;
921
+ /**
922
+ * Supported values: menuItem.
923
+ */
924
+ type: "menuItem";
930
925
  /**
931
926
  * Displayed text for the control. Maximum length is 64 characters.
932
927
  */
933
928
  label: string;
934
- overriddenByRibbonApi?: boolean;
929
+ icons?: ExtensionCommonIcon[];
935
930
  supertip: ExtensionCommonSuperToolTip;
936
931
  /**
937
- * Supported values: menuItem.
932
+ * The ID of an action defined in runtimes. Maximum length is 64 characters.
938
933
  */
939
- type: "menuItem";
940
- }
941
- export interface ExtensionCommonSuperToolTip {
934
+ actionId: string;
942
935
  /**
943
- * Description of the super tip. Maximum length is 250 characters.
936
+ * Whether the control is initially enabled.
944
937
  */
945
- description: string;
938
+ enabled?: boolean;
939
+ overriddenByRibbonApi?: boolean;
940
+ }
941
+ export interface ExtensionCommonSuperToolTip {
946
942
  /**
947
943
  * Title text of the super tip. Maximum length is 64 characters.
948
944
  */
949
945
  title: string;
946
+ /**
947
+ * Description of the super tip. Maximum length is 250 characters.
948
+ */
949
+ description: string;
950
950
  }
951
951
  /**
952
952
  * Supported values: menuItem.
@@ -956,14 +956,14 @@ export interface ExtensionCommonSuperToolTip {
956
956
  */
957
957
  export type FluffyType = "button" | "menu";
958
958
  export interface Position {
959
- /**
960
- * Define alignment of this custom tab relative to the specified built-in tab.
961
- */
962
- align: Align;
963
959
  /**
964
960
  * The id of the built-in tab. Maximum length is 64 characters.
965
961
  */
966
962
  builtInTabId: string;
963
+ /**
964
+ * Define alignment of this custom tab relative to the specified built-in tab.
965
+ */
966
+ align: Align;
967
967
  }
968
968
  /**
969
969
  * Define alignment of this custom tab relative to the specified built-in tab.
@@ -973,60 +973,60 @@ export type Align = "after" | "before";
973
973
  * A runtime environment for a page or script
974
974
  */
975
975
  export interface ExtensionRuntimesArray {
976
- actions?: ExtensionRuntimesActionsItem[];
977
- code: ExtensionRuntimeCode;
976
+ requirements?: RequirementsExtensionElement;
978
977
  /**
979
978
  * A unique identifier for this runtime within the app. Maximum length is 64 characters.
980
979
  */
981
980
  id: string;
981
+ /**
982
+ * Supports running functions and launching pages.
983
+ */
984
+ type?: "general";
985
+ code: ExtensionRuntimeCode;
982
986
  /**
983
987
  * Runtimes with a short lifetime do not preserve state across executions. Runtimes with a
984
988
  * long lifetime do.
985
989
  */
986
990
  lifetime?: Lifetime;
987
- requirements?: RequirementsExtensionElement;
988
- /**
989
- * Supports running functions and launching pages.
990
- */
991
- type?: "general";
991
+ actions?: ExtensionRuntimesActionsItem[];
992
992
  }
993
993
  /**
994
994
  * Specifies the set of actions supported by this runtime. An action is either running a
995
995
  * JavaScript function or opening a view such as a task pane.
996
996
  */
997
997
  export interface ExtensionRuntimesActionsItem {
998
- /**
999
- * Display name of the action. Maximum length is 64 characters.
1000
- */
1001
- displayName?: string;
1002
998
  /**
1003
999
  * Identifier for this action. Maximum length is 64 characters. This value is passed to the
1004
1000
  * code file.
1005
1001
  */
1006
1002
  id: string;
1007
1003
  /**
1008
- * Whether allows the action to have multiple selection.
1004
+ * executeFunction: Run a script function without waiting for it to finish. openPate: Open a
1005
+ * page in a view.
1009
1006
  */
1010
- multiselect?: boolean;
1007
+ type: ActionType;
1008
+ /**
1009
+ * Display name of the action. Maximum length is 64 characters.
1010
+ */
1011
+ displayName?: string;
1011
1012
  /**
1012
1013
  * Specifies that a task pane supports pinning, which keeps the task pane open when the user
1013
1014
  * changes the selection.
1014
1015
  */
1015
1016
  pinnable?: boolean;
1016
1017
  /**
1017
- * Whether allows task pane add-ins to activate without the Reading Pane enabled or a
1018
- * message selected.
1018
+ * View where the page should be opened. Maximum length is 64 characters.
1019
1019
  */
1020
- supportsNoItemContext?: boolean;
1020
+ view?: string;
1021
1021
  /**
1022
- * executeFunction: Run a script function without waiting for it to finish. openPate: Open a
1023
- * page in a view.
1022
+ * Whether allows the action to have multiple selection.
1024
1023
  */
1025
- type: ActionType;
1024
+ multiselect?: boolean;
1026
1025
  /**
1027
- * View where the page should be opened. Maximum length is 64 characters.
1026
+ * Whether allows task pane add-ins to activate without the Reading Pane enabled or a
1027
+ * message selected.
1028
1028
  */
1029
- view?: string;
1029
+ supportsNoItemContext?: boolean;
1030
1030
  }
1031
1031
  /**
1032
1032
  * executeFunction: Run a script function without waiting for it to finish. openPate: Open a
@@ -1062,32 +1062,32 @@ export interface GraphConnector {
1062
1062
  notificationUrl: string;
1063
1063
  }
1064
1064
  export interface Icons {
1065
- /**
1066
- * A relative file path to a full color PNG icon. Size 192x192.
1067
- */
1068
- color: string;
1069
1065
  /**
1070
1066
  * A relative file path to a transparent PNG outline icon. The border color needs to be
1071
1067
  * white. Size 32x32.
1072
1068
  */
1073
1069
  outline: string;
1070
+ /**
1071
+ * A relative file path to a full color PNG icon. Size 192x192.
1072
+ */
1073
+ color: string;
1074
1074
  }
1075
1075
  export interface LocalizationInfo {
1076
- additionalLanguages?: AdditionalLanguage[];
1077
1076
  /**
1078
1077
  * The language tag of the strings in this top level manifest file.
1079
1078
  */
1080
1079
  defaultLanguageTag: string;
1080
+ additionalLanguages?: AdditionalLanguage[];
1081
1081
  }
1082
1082
  export interface AdditionalLanguage {
1083
- /**
1084
- * A relative file path to a the .json file containing the translated strings.
1085
- */
1086
- file: string;
1087
1083
  /**
1088
1084
  * The language tag of the strings in the provided file.
1089
1085
  */
1090
1086
  languageTag: string;
1087
+ /**
1088
+ * A relative file path to a the .json file containing the translated strings.
1089
+ */
1090
+ file: string;
1091
1091
  }
1092
1092
  /**
1093
1093
  * Specify meeting extension definition.
@@ -1097,75 +1097,79 @@ export interface MeetingExtensionDefinition {
1097
1097
  * Meeting supported scenes.
1098
1098
  */
1099
1099
  scenes?: Scene[];
1100
- /**
1101
- * A boolean value indicating whether this app allows management by anonymous users.
1102
- */
1103
- supportsAnonymousGuestUsers?: boolean;
1104
1100
  /**
1105
1101
  * A boolean value indicating whether this app can stream the meeting's audio video content
1106
1102
  * to an RTMP endpoint.
1107
1103
  */
1108
1104
  supportsStreaming?: boolean;
1109
- }
1110
- export interface Scene {
1111
1105
  /**
1112
- * A relative file path to a scene metadata json file.
1106
+ * A boolean value indicating whether this app allows management by anonymous users.
1113
1107
  */
1114
- file: string;
1108
+ supportsAnonymousGuestUsers?: boolean;
1109
+ }
1110
+ export interface Scene {
1115
1111
  /**
1116
1112
  * A unique identifier for this scene. This id must be a GUID.
1117
1113
  */
1118
1114
  id: string;
1119
- /**
1120
- * Maximum audiences supported in scene.
1121
- */
1122
- maxAudience: number;
1123
1115
  /**
1124
1116
  * Scene name.
1125
1117
  */
1126
1118
  name: string;
1119
+ /**
1120
+ * A relative file path to a scene metadata json file.
1121
+ */
1122
+ file: string;
1127
1123
  /**
1128
1124
  * A relative file path to a scene PNG preview icon.
1129
1125
  */
1130
1126
  preview: string;
1127
+ /**
1128
+ * Maximum audiences supported in scene.
1129
+ */
1130
+ maxAudience: number;
1131
1131
  /**
1132
1132
  * Number of seats reserved for organizers or presenters.
1133
1133
  */
1134
1134
  seatsReservedForOrganizersOrPresenters: number;
1135
1135
  }
1136
1136
  export interface Name {
1137
- /**
1138
- * The full name of the app, used if the full app name exceeds 30 characters.
1139
- */
1140
- full: string;
1141
1137
  /**
1142
1138
  * A short display name for the app.
1143
1139
  */
1144
1140
  short: string;
1141
+ /**
1142
+ * The full name of the app, used if the full app name exceeds 30 characters.
1143
+ */
1144
+ full: string;
1145
1145
  }
1146
1146
  export type Permission = "identity" | "messageTeamMembers";
1147
1147
  export interface StaticTab {
1148
1148
  /**
1149
- * The Microsoft App ID specified for the bot in the Bot Framework portal
1150
- * (https://dev.botframework.com/bots)
1149
+ * A unique identifier for the entity which the tab displays.
1151
1150
  */
1152
- contentBotId?: string;
1151
+ entityId: string;
1152
+ /**
1153
+ * The display name of the tab.
1154
+ */
1155
+ name?: string;
1153
1156
  /**
1154
1157
  * The url which points to the entity UI to be displayed in the canvas.
1155
1158
  */
1156
1159
  contentUrl?: string;
1157
1160
  /**
1158
- * The set of contextItem scopes that a tab belong to
1161
+ * The Microsoft App ID specified for the bot in the Bot Framework portal
1162
+ * (https://dev.botframework.com/bots)
1159
1163
  */
1160
- context?: StaticTabContext[];
1164
+ contentBotId?: string;
1161
1165
  /**
1162
- * A unique identifier for the entity which the tab displays.
1166
+ * The url to point at if a user opts to view in a browser.
1163
1167
  */
1164
- entityId: string;
1168
+ websiteUrl?: string;
1165
1169
  /**
1166
- * The display name of the tab.
1170
+ * The url to direct a user's search queries.
1167
1171
  */
1168
- name?: string;
1172
+ searchUrl?: string;
1169
1173
  /**
1170
1174
  * Specifies whether the tab offers an experience in the context of a channel in a team, or
1171
1175
  * an experience scoped to an individual user alone or group chat. These options are
@@ -1173,13 +1177,9 @@ export interface StaticTab {
1173
1177
  */
1174
1178
  scopes: CommandListScope[];
1175
1179
  /**
1176
- * The url to direct a user's search queries.
1177
- */
1178
- searchUrl?: string;
1179
- /**
1180
- * The url to point at if a user opts to view in a browser.
1180
+ * The set of contextItem scopes that a tab belong to
1181
1181
  */
1182
- websiteUrl?: string;
1182
+ context?: StaticTabContext[];
1183
1183
  }
1184
1184
  export type StaticTabContext = "personalTab" | "channelTab" | "privateChatTab" | "meetingChatTab" | "meetingDetailsTab" | "meetingSidePanel" | "meetingStage" | "teamLevelApp";
1185
1185
  /**