@microsoft/app-manifest 1.0.6 → 1.0.7-alpha.1673f8d0ac.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 (35) hide show
  1. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D7.d.ts +648 -0
  2. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D7.js +345 -0
  3. package/build/generated-types/copilot/declarative-agent/DeclarativeAgentManifestV1D7.js.map +1 -0
  4. package/build/generated-types/index.d.ts +9 -6
  5. package/build/generated-types/index.js +19 -1
  6. package/build/generated-types/index.js.map +1 -1
  7. package/build/generated-types/teams/TeamsManifestV1D27.d.ts +2281 -0
  8. package/build/generated-types/teams/TeamsManifestV1D27.js +1087 -0
  9. package/build/generated-types/teams/TeamsManifestV1D27.js.map +1 -0
  10. package/build/generated-types/teams/TeamsManifestV1D28.d.ts +2303 -0
  11. package/build/generated-types/teams/TeamsManifestV1D28.js +1094 -0
  12. package/build/generated-types/teams/TeamsManifestV1D28.js.map +1 -0
  13. package/build/generated-types/teams/TeamsManifestVDevPreview.d.ts +111 -231
  14. package/build/generated-types/teams/TeamsManifestVDevPreview.js +35 -88
  15. package/build/generated-types/teams/TeamsManifestVDevPreview.js.map +1 -1
  16. package/build/json-schemas/copilot/declarative-agent/v1.7/schema.json +1258 -0
  17. package/build/json-schemas/teams/v1.23/MicrosoftTeams.schema.json +1 -1
  18. package/build/json-schemas/teams/v1.24/MicrosoftTeams.schema.json +1 -1
  19. package/build/json-schemas/teams/v1.25/MicrosoftTeams.schema.json +1 -1
  20. package/build/json-schemas/teams/v1.26/MicrosoftTeams.AgenticUser.schema.json +44 -0
  21. package/build/json-schemas/teams/v1.26/MicrosoftTeams.Localization.schema.json +332 -0
  22. package/build/json-schemas/teams/v1.26/MicrosoftTeams.ResponseRenderingTemplate.schema.json +89 -0
  23. package/build/json-schemas/teams/v1.26/MicrosoftTeams.schema.json +0 -1
  24. package/build/json-schemas/teams/v1.27/MicrosoftTeams.AgenticUser.schema.json +44 -0
  25. package/build/json-schemas/teams/v1.27/MicrosoftTeams.Localization.schema.json +344 -0
  26. package/build/json-schemas/teams/v1.27/MicrosoftTeams.ResponseRenderingTemplate.schema.json +89 -0
  27. package/build/json-schemas/teams/v1.27/MicrosoftTeams.schema.json +3472 -0
  28. package/build/json-schemas/teams/v1.28/MicrosoftTeams.AgenticUser.schema.json +44 -0
  29. package/build/json-schemas/teams/v1.28/MicrosoftTeams.Localization.schema.json +344 -0
  30. package/build/json-schemas/teams/v1.28/MicrosoftTeams.ResponseRenderingTemplate.schema.json +89 -0
  31. package/build/json-schemas/teams/v1.28/MicrosoftTeams.schema.json +3503 -0
  32. package/build/json-schemas/teams/vDevPreview/MicrosoftTeams.Localization.schema.json +37 -5
  33. package/build/json-schemas/teams/vDevPreview/MicrosoftTeams.schema.json +119 -290
  34. package/build/tsconfig.tsbuildinfo +1 -1
  35. package/package.json +2 -2
@@ -0,0 +1,2303 @@
1
+ export interface TeamsManifestV1D28 {
2
+ $schema?: string;
3
+ /**
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.
7
+ */
8
+ manifestVersion: "1.28";
9
+ /**
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).
12
+ */
13
+ version: string;
14
+ /**
15
+ * A unique identifier for this app. This id must be a GUID.
16
+ */
17
+ id: string;
18
+ localizationInfo?: LocalizationInfo;
19
+ developer: Developer;
20
+ name: NameClass;
21
+ description: Description;
22
+ icons: Icons;
23
+ /**
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`.
26
+ */
27
+ accentColor: string;
28
+ /**
29
+ * These are tabs users can optionally add to their channels and 1:1 or group chats and
30
+ * require extra configuration before they are added. Configurable tabs are not supported in
31
+ * the personal scope. Currently only one configurable tab per app is supported.
32
+ */
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[];
44
+ /**
45
+ * The set of Office365 connectors for this app. Currently only one connector per app is
46
+ * supported.
47
+ */
48
+ connectors?: Connector[];
49
+ /**
50
+ * Subscription offer associated with this app.
51
+ */
52
+ subscriptionOffer?: SubscriptionOffer;
53
+ /**
54
+ * The set of compose extensions for this app. Currently only one compose extension per app
55
+ * is supported.
56
+ */
57
+ composeExtensions?: ComposeExtension[];
58
+ /**
59
+ * Specifies the permissions the app requests from users.
60
+ */
61
+ permissions?: Permission[];
62
+ /**
63
+ * Specify the native features on a user's device that your app may request access to.
64
+ */
65
+ devicePermissions?: DevicePermission[];
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;
78
+ /**
79
+ * Specify the app's Graph connector configuration. If this is present then
80
+ * webApplicationInfo.id must also be specified.
81
+ */
82
+ graphConnector?: GraphConnector;
83
+ /**
84
+ * A value indicating whether or not show loading indicator when app/tab is loading
85
+ */
86
+ showLoadingIndicator?: boolean;
87
+ /**
88
+ * A value indicating whether a personal app is rendered without a tab header-bar
89
+ */
90
+ isFullScreen?: boolean;
91
+ activities?: Activities;
92
+ /**
93
+ * A property in the app manifest that declares support for all channel features,
94
+ * categorized by tiers.
95
+ */
96
+ supportsChannelFeatures?: "tier1";
97
+ /**
98
+ * List of 'non-standard' channel types that the app supports. Note: Channels of standard
99
+ * type are supported by default if the app supports team scope.
100
+ */
101
+ supportedChannelTypes?: SupportedChannelType[];
102
+ /**
103
+ * A list of tenant configured properties for an app
104
+ */
105
+ configurableProperties?: ConfigurableProperty[];
106
+ /**
107
+ * A value indicating whether an app is blocked by default until admin allows it
108
+ */
109
+ defaultBlockUntilAdminAction?: boolean;
110
+ /**
111
+ * The url to the page that provides additional app information for the admins
112
+ */
113
+ publisherDocsUrl?: string;
114
+ /**
115
+ * The install scope defined for this app by default. This will be the option displayed on
116
+ * the button when a user tries to add the app
117
+ */
118
+ defaultInstallScope?: DefaultInstallScope;
119
+ /**
120
+ * When a group install scope is selected, this will define the default capability when the
121
+ * user installs the app
122
+ */
123
+ defaultGroupCapability?: DefaultGroupCapability;
124
+ /**
125
+ * Specify meeting extension definition.
126
+ */
127
+ meetingExtensionDefinition?: MeetingExtensionDefinition;
128
+ /**
129
+ * Specify and consolidates authorization related information for the App.
130
+ */
131
+ authorization?: TeamsManifestV1D28Authorization;
132
+ extensions?: ElementExtension[];
133
+ /**
134
+ * Defines the list of cards which could be pinned to dashboards that can provide summarized
135
+ * view of information relevant to user.
136
+ */
137
+ dashboardCards?: DashboardCard[];
138
+ /**
139
+ * The Intune-related properties for the app.
140
+ */
141
+ intuneInfo?: IntuneInfo;
142
+ copilotAgents?: CopilotAgents;
143
+ /**
144
+ * An array of agentic user templates references.
145
+ */
146
+ agenticUserTemplates?: AgenticUserTemplateRef[];
147
+ elementRelationshipSet?: ElementRelationshipSet;
148
+ /**
149
+ * Optional property containing background loading configuration. By opting in to this
150
+ * performance enhancement, your app is eligible to be loaded in the background in any
151
+ * Microsoft 365 application host that supports this feature.
152
+ */
153
+ backgroundLoadConfiguration?: BackgroundLoadConfiguration;
154
+ /**
155
+ * A list of agent connector objects to included in the Unified App Manifest.
156
+ */
157
+ agentConnectors?: AgentConnector[];
158
+ /**
159
+ * Agent skill declarations following the Agent Skills open standard (agentskills.io). Each
160
+ * entry references a SKILL.md folder.
161
+ */
162
+ agentSkills?: AgentSkill[];
163
+ }
164
+ export interface Activities {
165
+ /**
166
+ * Specify the types of activites that your app can post to a users activity feed
167
+ */
168
+ activityTypes?: ActivityType[];
169
+ /**
170
+ * Specify the customized icons that your app can post to a users activity feed
171
+ */
172
+ activityIcons?: ActivityIcon[];
173
+ }
174
+ export interface ActivityIcon {
175
+ /**
176
+ * Represents the unique icon ID.
177
+ */
178
+ id: string;
179
+ /**
180
+ * Represents the relative path to the icon image. Image should be size 32x32.
181
+ */
182
+ iconFile: string;
183
+ }
184
+ export interface ActivityType {
185
+ type: string;
186
+ description: string;
187
+ templateText: string;
188
+ /**
189
+ * An array containing valid icon IDs per activity type.
190
+ */
191
+ allowedIconIds?: string[];
192
+ }
193
+ /**
194
+ * An agent connector represents a mechanism to enable agents to access information from
195
+ * systems outside of Microsoft 365, often via an MCP Server. Other mechanisms include using
196
+ * OpenAPI descriptions for calling external HTTP APIs. The role of the agent connector is
197
+ * to provide the necessary configuration information to agents or other M365 applications
198
+ * to connect to these external systems. An agent connector can be provided for use by other
199
+ * elements described within the same Unified App Manifest, or as a standalone resource that
200
+ * can be referenced in the Unified App Manifest of other M365 applications.
201
+ */
202
+ export interface AgentConnector {
203
+ /**
204
+ * Unique identifier for the agent connector
205
+ */
206
+ id: string;
207
+ /**
208
+ * A user-friendly name for the connector, which can be displayed in UIs.
209
+ */
210
+ displayName: string;
211
+ /**
212
+ * A brief description of the connector's purpose and functionality.
213
+ */
214
+ description?: string;
215
+ /**
216
+ * Configuration details for connectors that provide tools for agents via a remote MCP
217
+ * server.
218
+ */
219
+ toolSource?: ToolSource;
220
+ }
221
+ /**
222
+ * Configuration details for connectors that provide tools for agents via a remote MCP
223
+ * server.
224
+ */
225
+ export interface ToolSource {
226
+ /**
227
+ * Configuration details for a connector that provides tools via a remote MCP server.
228
+ */
229
+ remoteMcpServer?: RemoteMCPServer;
230
+ }
231
+ /**
232
+ * Configuration details for a connector that provides tools via a remote MCP server.
233
+ */
234
+ export interface RemoteMCPServer {
235
+ /**
236
+ * The URL of the remote MCP Server.
237
+ */
238
+ mcpServerUrl: string;
239
+ /**
240
+ * Configuration for MCP tool descriptions by file reference.
241
+ */
242
+ mcpToolDescription: MCPToolDescription;
243
+ /**
244
+ * Authorization configuration for connecting to the local MCP server. The design mirrors
245
+ * that of Plugin Manifests
246
+ * https://spec-hub.azurewebsites.net/specifications/PluginManifest-2.3.html
247
+ */
248
+ authorization?: RemoteMCPServerAuthorization;
249
+ }
250
+ /**
251
+ * Authorization configuration for connecting to the local MCP server. The design mirrors
252
+ * that of Plugin Manifests
253
+ * https://spec-hub.azurewebsites.net/specifications/PluginManifest-2.3.html
254
+ */
255
+ export interface RemoteMCPServerAuthorization {
256
+ /**
257
+ * The type of authorization required to invoke the MCP server. Supported values are: 'None'
258
+ * (anonymous access), 'OAuthPluginVault' (OAuth flow with referenceId), 'ApiKeyPluginVault'
259
+ * (API Key with referenceId), 'DynamicClientRegistration' (dynamic client registration with
260
+ * referenceId).
261
+ */
262
+ type: AuthorizationType;
263
+ /**
264
+ * A reference identifier used when type is OAuthPluginVault, ApiKeyPluginVault, or
265
+ * DynamicClientRegistration. The referenceId value is acquired independently when providing
266
+ * the necessary authorization configuration values. This mechanism exists to prevent the
267
+ * need for storing secret values in the plugin manifest.
268
+ */
269
+ referenceId?: string;
270
+ }
271
+ /**
272
+ * The type of authorization required to invoke the MCP server. Supported values are: 'None'
273
+ * (anonymous access), 'OAuthPluginVault' (OAuth flow with referenceId), 'ApiKeyPluginVault'
274
+ * (API Key with referenceId), 'DynamicClientRegistration' (dynamic client registration with
275
+ * referenceId).
276
+ */
277
+ export type AuthorizationType = "None" | "OAuthPluginVault" | "ApiKeyPluginVault" | "DynamicClientRegistration";
278
+ /**
279
+ * Configuration for MCP tool descriptions by file reference.
280
+ */
281
+ export interface MCPToolDescription {
282
+ /**
283
+ * The relative path to the MCP tool description file within the app package.
284
+ */
285
+ file: string;
286
+ }
287
+ /**
288
+ * An agent skill declaration. References a folder containing a SKILL.md file.
289
+ */
290
+ export interface AgentSkill {
291
+ /**
292
+ * Path to the folder within the app package that contains the SKILL.md file.
293
+ */
294
+ folder: string;
295
+ }
296
+ export interface AgenticUserTemplateRef {
297
+ /**
298
+ * Unique identifier for the agentic user template. Must contain only alphanumeric
299
+ * characters, dots, underscores, and hyphens.
300
+ */
301
+ id: string;
302
+ /**
303
+ * Relative file path to this agentic user template element file in the application package.
304
+ */
305
+ file: string;
306
+ }
307
+ /**
308
+ * Specify and consolidates authorization related information for the App.
309
+ */
310
+ export interface TeamsManifestV1D28Authorization {
311
+ /**
312
+ * List of permissions that the app needs to function.
313
+ */
314
+ permissions?: Permissions;
315
+ }
316
+ /**
317
+ * List of permissions that the app needs to function.
318
+ */
319
+ export interface Permissions {
320
+ /**
321
+ * Permissions that must be granted on a per resource instance basis.
322
+ */
323
+ resourceSpecific?: ResourceSpecific[];
324
+ }
325
+ export interface ResourceSpecific {
326
+ /**
327
+ * The name of the resource-specific permission.
328
+ */
329
+ name: string;
330
+ /**
331
+ * The type of the resource-specific permission: delegated vs application.
332
+ */
333
+ type: ResourceSpecificType;
334
+ }
335
+ /**
336
+ * The type of the resource-specific permission: delegated vs application.
337
+ */
338
+ export type ResourceSpecificType = "Application" | "Delegated";
339
+ /**
340
+ * Optional property containing background loading configuration. By opting in to this
341
+ * performance enhancement, your app is eligible to be loaded in the background in any
342
+ * Microsoft 365 application host that supports this feature.
343
+ */
344
+ export interface BackgroundLoadConfiguration {
345
+ /**
346
+ * Optional property within backgroundLoadConfiguration containing tab settings for
347
+ * background loading.
348
+ */
349
+ tabConfiguration?: TabConfiguration;
350
+ }
351
+ /**
352
+ * Optional property within backgroundLoadConfiguration containing tab settings for
353
+ * background loading.
354
+ */
355
+ export interface TabConfiguration {
356
+ /**
357
+ * Required URL for background loading. This can be the same contentUrl from the staticTabs
358
+ * section or an alternative endpoint used for background loading.
359
+ */
360
+ contentUrl: string;
361
+ }
362
+ export interface Bot {
363
+ /**
364
+ * The Microsoft App ID specified for the bot in the Bot Framework portal
365
+ * (https://dev.botframework.com/bots)
366
+ */
367
+ botId: string;
368
+ configuration?: Configuration;
369
+ /**
370
+ * This value describes whether or not the bot utilizes a user hint to add the bot to a
371
+ * specific channel.
372
+ */
373
+ needsChannelSelector?: boolean;
374
+ /**
375
+ * A value indicating whether or not the bot is a one-way notification only bot, as opposed
376
+ * to a conversational bot.
377
+ */
378
+ isNotificationOnly?: boolean;
379
+ /**
380
+ * A value indicating whether the bot supports uploading/downloading of files.
381
+ */
382
+ supportsFiles?: boolean;
383
+ /**
384
+ * A value indicating whether the bot supports audio calling.
385
+ */
386
+ supportsCalling?: boolean;
387
+ /**
388
+ * A value indicating whether the bot supports video calling.
389
+ */
390
+ supportsVideo?: boolean;
391
+ /**
392
+ * Specifies whether the bot offers an experience in the context of a channel in a team, in
393
+ * a group chat (groupChat), an experience scoped to an individual user alone (personal) OR
394
+ * within Copilot surfaces. These options are non-exclusive.
395
+ */
396
+ scopes: CommandListScope[];
397
+ /**
398
+ * The list of commands that the bot supplies, including their usage, description, and the
399
+ * scope for which the commands are valid. A separate command list should be used for each
400
+ * scope.
401
+ */
402
+ commandLists?: CommandList[];
403
+ requirementSet?: ElementRequirementSet;
404
+ /**
405
+ * System‑generated metadata. This information is maintained by Microsoft services and must
406
+ * not be modified manually.
407
+ */
408
+ registrationInfo?: RegistrationInfo;
409
+ }
410
+ export interface CommandList {
411
+ /**
412
+ * Specifies the scopes for which the command list is valid
413
+ */
414
+ scopes: CommandListScope[];
415
+ commands: CommandListCommand[];
416
+ }
417
+ export interface CommandListCommand {
418
+ /**
419
+ * The bot command name
420
+ */
421
+ title: string;
422
+ /**
423
+ * A simple text description or an example of the command syntax and its arguments.
424
+ */
425
+ description?: string;
426
+ /**
427
+ * Type of the command. Default is basic
428
+ */
429
+ type?: PurpleType;
430
+ /**
431
+ * The prompt text to be used by Teams when user initiates the command from one of the entry
432
+ * points
433
+ */
434
+ prompt?: string;
435
+ }
436
+ /**
437
+ * Type of the command. Default is basic
438
+ */
439
+ export type PurpleType = "basic" | "prompt";
440
+ export type CommandListScope = "team" | "personal" | "groupChat" | "copilot";
441
+ export interface Configuration {
442
+ team?: Team;
443
+ groupChat?: Team;
444
+ }
445
+ export interface Team {
446
+ fetchTask?: boolean;
447
+ taskInfo?: TaskInfo;
448
+ }
449
+ export interface TaskInfo {
450
+ /**
451
+ * Initial dialog title
452
+ */
453
+ title?: string;
454
+ /**
455
+ * Dialog width - either a number in pixels or default layout such as 'large', 'medium', or
456
+ * 'small'
457
+ */
458
+ width?: string;
459
+ /**
460
+ * Dialog height - either a number in pixels or default layout such as 'large', 'medium', or
461
+ * 'small'
462
+ */
463
+ height?: string;
464
+ /**
465
+ * Initial webview URL
466
+ */
467
+ url?: string;
468
+ }
469
+ /**
470
+ * System‑generated metadata. This information is maintained by Microsoft services and must
471
+ * not be modified manually.
472
+ */
473
+ export interface RegistrationInfo {
474
+ /**
475
+ * The partner source through which the bot is registered. System‑generated metadata. This
476
+ * information is maintained by Microsoft services and must not be modified manually.
477
+ */
478
+ source: Source;
479
+ /**
480
+ * A Power Platform environment that serves as a container for building apps under a
481
+ * Microsoft 365 tenant and can only be accessed by users within that tenant.
482
+ * System‑generated metadata. This information is maintained by Microsoft services and must
483
+ * not be modified manually.
484
+ */
485
+ environment?: string;
486
+ /**
487
+ * The Copilot Studio copilot schema name. System‑generated metadata. This information is
488
+ * maintained by Microsoft services and must not be modified manually.
489
+ */
490
+ schemaName?: string;
491
+ /**
492
+ * The core services cluster category for Copilot Studio copilots. System‑generated
493
+ * metadata. This information is maintained by Microsoft services and must not be modified
494
+ * manually.
495
+ */
496
+ clusterCategory?: string;
497
+ }
498
+ /**
499
+ * The partner source through which the bot is registered. System‑generated metadata. This
500
+ * information is maintained by Microsoft services and must not be modified manually.
501
+ */
502
+ export type Source = "standard" | "microsoftCopilotStudio" | "onedriveSharepoint";
503
+ /**
504
+ * An object representing a set of requirements that the host must support for the element.
505
+ */
506
+ export interface ElementRequirementSet {
507
+ hostMustSupportFunctionalities: HostFunctionality[];
508
+ }
509
+ /**
510
+ * An object representing a specific functionality that a host must support.
511
+ */
512
+ export interface HostFunctionality {
513
+ /**
514
+ * The name of the functionality.
515
+ */
516
+ name: HostMustSupportFunctionalityName;
517
+ }
518
+ /**
519
+ * The name of the functionality.
520
+ */
521
+ export type HostMustSupportFunctionalityName = "dialogUrl" | "dialogUrlBot" | "dialogAdaptiveCard" | "dialogAdaptiveCardBot";
522
+ export interface ComposeExtension {
523
+ /**
524
+ * A unique identifier for the compose extension.
525
+ */
526
+ id?: string;
527
+ /**
528
+ * The Microsoft App ID specified for the bot powering the compose extension in the Bot
529
+ * Framework portal (https://dev.botframework.com/bots)
530
+ */
531
+ botId?: string;
532
+ /**
533
+ * Type of the compose extension.
534
+ */
535
+ composeExtensionType?: ComposeExtensionType;
536
+ /**
537
+ * Object capturing authorization information.
538
+ */
539
+ authorization?: ComposeExtensionAuthorization;
540
+ /**
541
+ * A relative file path to the api specification file in the manifest package.
542
+ */
543
+ apiSpecificationFile?: string;
544
+ /**
545
+ * A value indicating whether the configuration of a compose extension can be updated by the
546
+ * user.
547
+ */
548
+ canUpdateConfiguration?: boolean | null;
549
+ commands?: ComposeExtensionCommand[];
550
+ /**
551
+ * A list of handlers that allow apps to be invoked when certain conditions are met
552
+ */
553
+ messageHandlers?: MessageHandler[];
554
+ requirementSet?: ElementRequirementSet;
555
+ }
556
+ /**
557
+ * Object capturing authorization information.
558
+ */
559
+ export interface ComposeExtensionAuthorization {
560
+ /**
561
+ * Enum of possible authentication types.
562
+ */
563
+ authType?: AuthType;
564
+ /**
565
+ * Object capturing details needed to do single aad auth flow. It will be only present when
566
+ * auth type is entraId.
567
+ */
568
+ microsoftEntraConfiguration?: MicrosoftEntraConfiguration;
569
+ /**
570
+ * Object capturing details needed to do service auth. It will be only present when auth
571
+ * type is apiSecretServiceAuth.
572
+ */
573
+ apiSecretServiceAuthConfiguration?: APISecretServiceAuthConfiguration;
574
+ /**
575
+ * Object capturing details needed to match the application's OAuth configuration for the
576
+ * app. This should be and must be populated only when authType is set to oAuth2.0r
577
+ */
578
+ oAuthConfiguration?: OAuthConfiguration;
579
+ }
580
+ /**
581
+ * Object capturing details needed to do service auth. It will be only present when auth
582
+ * type is apiSecretServiceAuth.
583
+ */
584
+ export interface APISecretServiceAuthConfiguration {
585
+ /**
586
+ * Registration id returned when developer submits the api key through Developer Portal.
587
+ */
588
+ apiSecretRegistrationId?: string;
589
+ }
590
+ /**
591
+ * Enum of possible authentication types.
592
+ */
593
+ export type AuthType = "none" | "apiSecretServiceAuth" | "microsoftEntra" | "oAuth2.0";
594
+ /**
595
+ * Object capturing details needed to do single aad auth flow. It will be only present when
596
+ * auth type is entraId.
597
+ */
598
+ export interface MicrosoftEntraConfiguration {
599
+ /**
600
+ * Boolean indicating whether single sign on is configured for the app.
601
+ */
602
+ supportsSingleSignOn?: boolean;
603
+ }
604
+ /**
605
+ * Object capturing details needed to match the application's OAuth configuration for the
606
+ * app. This should be and must be populated only when authType is set to oAuth2.0r
607
+ */
608
+ export interface OAuthConfiguration {
609
+ /**
610
+ * The oAuth configuration id obtained by the Developer when registering their configuration
611
+ * in Developer Portal.
612
+ */
613
+ oAuthConfigurationId?: string;
614
+ }
615
+ export interface ComposeExtensionCommand {
616
+ /**
617
+ * Id of the command.
618
+ */
619
+ id: string;
620
+ /**
621
+ * Type of the command
622
+ */
623
+ type?: FluffyType;
624
+ samplePrompts?: SamplePrompt[];
625
+ /**
626
+ * A relative file path for api response rendering template file.
627
+ */
628
+ apiResponseRenderingTemplateFile?: string;
629
+ /**
630
+ * Context where the command would apply
631
+ */
632
+ context?: CommandContext[];
633
+ /**
634
+ * Title of the command.
635
+ */
636
+ title: string;
637
+ /**
638
+ * Description of the command.
639
+ */
640
+ description?: string;
641
+ /**
642
+ * A boolean value that indicates if the command should be run once initially with no
643
+ * parameter.
644
+ */
645
+ initialRun?: boolean;
646
+ /**
647
+ * A boolean value that indicates if it should fetch task module dynamically
648
+ */
649
+ fetchTask?: boolean;
650
+ parameters?: Parameter[];
651
+ taskInfo?: TaskInfo;
652
+ /**
653
+ * Semantic description for the command.
654
+ */
655
+ semanticDescription?: string;
656
+ }
657
+ export type CommandContext = "compose" | "commandBox" | "message";
658
+ export interface Parameter {
659
+ /**
660
+ * Name of the parameter.
661
+ */
662
+ name: string;
663
+ /**
664
+ * Type of the parameter
665
+ */
666
+ inputType?: InputType;
667
+ /**
668
+ * Title of the parameter.
669
+ */
670
+ title: string;
671
+ /**
672
+ * Description of the parameter.
673
+ */
674
+ description?: string;
675
+ /**
676
+ * The value indicates if this parameter is a required field.
677
+ */
678
+ isRequired?: boolean;
679
+ /**
680
+ * Initial value for the parameter
681
+ */
682
+ value?: string;
683
+ /**
684
+ * The choice options for the parameter
685
+ */
686
+ choices?: Choice[];
687
+ /**
688
+ * Semantic description for the parameter.
689
+ */
690
+ semanticDescription?: string;
691
+ }
692
+ export interface Choice {
693
+ /**
694
+ * Title of the choice
695
+ */
696
+ title: string;
697
+ /**
698
+ * Value of the choice
699
+ */
700
+ value: string;
701
+ }
702
+ /**
703
+ * Type of the parameter
704
+ */
705
+ export type InputType = "text" | "textarea" | "number" | "date" | "time" | "toggle" | "choiceset";
706
+ export interface SamplePrompt {
707
+ /**
708
+ * This string will hold the sample prompt
709
+ */
710
+ text: string;
711
+ }
712
+ /**
713
+ * Type of the command
714
+ */
715
+ export type FluffyType = "query" | "action";
716
+ /**
717
+ * Type of the compose extension.
718
+ */
719
+ export type ComposeExtensionType = "botBased" | "apiBased";
720
+ export interface MessageHandler {
721
+ /**
722
+ * Type of the message handler
723
+ */
724
+ type: "link";
725
+ value: MessageHandlerValue;
726
+ }
727
+ /**
728
+ * Type of the message handler
729
+ */
730
+ export interface MessageHandlerValue {
731
+ /**
732
+ * A list of domains that the link message handler can register for, and when they are
733
+ * matched the app will be invoked
734
+ */
735
+ domains?: string[];
736
+ /**
737
+ * A boolean that indicates whether the app's link message handler supports anonymous invoke
738
+ * flow.
739
+ */
740
+ supportsAnonymizedPayloads?: boolean;
741
+ }
742
+ export type ConfigurableProperty = "name" | "shortDescription" | "longDescription" | "smallImageUrl" | "largeImageUrl" | "accentColor" | "developerUrl" | "privacyUrl" | "termsOfUseUrl";
743
+ export interface ConfigurableTab {
744
+ /**
745
+ * A unique identifier for the tab. This id must be unique within the app manifest.
746
+ */
747
+ id?: string;
748
+ /**
749
+ * The url to use when configuring the tab.
750
+ */
751
+ configurationUrl: string;
752
+ /**
753
+ * A value indicating whether an instance of the tab's configuration can be updated by the
754
+ * user after creation.
755
+ */
756
+ canUpdateConfiguration?: boolean;
757
+ /**
758
+ * Specifies whether the tab offers an experience in the context of a channel in a team, in
759
+ * a 1:1 or group chat, or in an experience scoped to an individual user alone. These
760
+ * options are non-exclusive. Currently, configurable tabs are only supported in the teams
761
+ * and groupchats scopes.
762
+ */
763
+ scopes: ConfigurableTabScope[];
764
+ /**
765
+ * The set of meetingSurfaceItem scopes that a tab belong to
766
+ */
767
+ meetingSurfaces?: MeetingSurface[];
768
+ /**
769
+ * The set of contextItem scopes that a tab belong to
770
+ */
771
+ context?: ConfigurableTabContext[];
772
+ /**
773
+ * A relative file path to a tab preview image for use in SharePoint. Size 1024x768.
774
+ */
775
+ sharePointPreviewImage?: string;
776
+ /**
777
+ * Defines how your tab will be made available in SharePoint.
778
+ */
779
+ supportedSharePointHosts?: SupportedSharePointHost[];
780
+ }
781
+ export type ConfigurableTabContext = "personalTab" | "channelTab" | "privateChatTab" | "meetingChatTab" | "meetingDetailsTab" | "meetingSidePanel" | "meetingStage";
782
+ export type MeetingSurface = "sidePanel" | "stage";
783
+ export type ConfigurableTabScope = "team" | "groupChat";
784
+ export type SupportedSharePointHost = "sharePointFullPage" | "sharePointWebPart";
785
+ export interface Connector {
786
+ /**
787
+ * A unique identifier for the connector which matches its ID in the Connectors Developer
788
+ * Portal.
789
+ */
790
+ connectorId: string;
791
+ /**
792
+ * The url to use for configuring the connector using the inline configuration experience.
793
+ */
794
+ configurationUrl?: string;
795
+ /**
796
+ * Specifies whether the connector offers an experience in the context of a channel in a
797
+ * team, or an experience scoped to an individual user alone. Currently, only the team scope
798
+ * is supported.
799
+ */
800
+ scopes: "team"[];
801
+ }
802
+ export interface CopilotAgents {
803
+ /**
804
+ * An array of declarative agent elements references. Currently, only one declarative agent
805
+ * per application is supported.
806
+ */
807
+ declarativeAgents?: DeclarativeAgentRef[];
808
+ /**
809
+ * An array of Custom Engine Agents. Currently only one Custom Engine Agent per application
810
+ * is supported. Support is currently in public preview.
811
+ */
812
+ customEngineAgents?: CustomEngineAgent[];
813
+ }
814
+ export interface CustomEngineAgent {
815
+ /**
816
+ * The id of the Custom Engine Agent. If it is of type bot, the id must match the id
817
+ * specified in a bot in the bots node and the referenced bot must have personal scope. The
818
+ * app short name and short description must also be defined.
819
+ */
820
+ id: string;
821
+ /**
822
+ * The type of the Custom Engine Agent. Currently only type bot is supported.
823
+ */
824
+ type: "bot";
825
+ disclaimer?: Disclaimer;
826
+ }
827
+ export interface Disclaimer {
828
+ /**
829
+ * The message shown to users before they interact with this application.
830
+ */
831
+ text: string;
832
+ [property: string]: any;
833
+ }
834
+ /**
835
+ * The type of the Custom Engine Agent. Currently only type bot is supported.
836
+ *
837
+ * The content of the dashboard card is sourced from a bot.
838
+ */
839
+ /**
840
+ * A reference to a declarative agent element. The element's definition is in a separate
841
+ * file.
842
+ */
843
+ export interface DeclarativeAgentRef {
844
+ /**
845
+ * A unique identifier for this declarative agent element.
846
+ */
847
+ id: string;
848
+ /**
849
+ * Relative file path to this declarative agent element file in the application package.
850
+ */
851
+ file: string;
852
+ }
853
+ /**
854
+ * Cards wich could be pinned to dashboard providing summarized view of information relevant
855
+ * to user.
856
+ */
857
+ export interface DashboardCard {
858
+ /**
859
+ * Unique Id for the card. Must be unique inside the app.
860
+ */
861
+ id: string;
862
+ /**
863
+ * Represents the name of the card. Maximum length is 255 characters.
864
+ */
865
+ displayName: string;
866
+ /**
867
+ * Description of the card.Maximum length is 255 characters.
868
+ */
869
+ description: string;
870
+ /**
871
+ * Id of the group in the card picker. This must be guid.
872
+ */
873
+ pickerGroupId: string;
874
+ icon?: DashboardCardIcon;
875
+ contentSource: DashboardCardContentSource;
876
+ /**
877
+ * Rendering Size for dashboard card.
878
+ */
879
+ defaultSize: DefaultSize;
880
+ }
881
+ /**
882
+ * Represents a configuration for the source of the card’s content.
883
+ */
884
+ export interface DashboardCardContentSource {
885
+ /**
886
+ * The content of the dashboard card is sourced from a bot.
887
+ */
888
+ sourceType?: "bot";
889
+ /**
890
+ * The configuration for the bot source. Required if sourceType is set to bot.
891
+ */
892
+ botConfiguration?: BotConfiguration;
893
+ }
894
+ /**
895
+ * The configuration for the bot source. Required if sourceType is set to bot.
896
+ */
897
+ export interface BotConfiguration {
898
+ /**
899
+ * The unique Microsoft app ID for the bot as registered with the Bot Framework.
900
+ */
901
+ botId?: string;
902
+ }
903
+ /**
904
+ * Rendering Size for dashboard card.
905
+ */
906
+ export type DefaultSize = "medium" | "large";
907
+ /**
908
+ * Represents a configuration for the source of the card’s content
909
+ */
910
+ export interface DashboardCardIcon {
911
+ /**
912
+ * The icon for the card, to be displayed in the toolbox and card bar, represented as URL.
913
+ */
914
+ iconUrl?: string;
915
+ /**
916
+ * Office UI Fabric/Fluent UI icon friendly name for the card. This value will be used if
917
+ * ‘iconUrl’ is not specified.
918
+ */
919
+ officeUIFabricIconName?: string;
920
+ }
921
+ /**
922
+ * When a group install scope is selected, this will define the default capability when the
923
+ * user installs the app
924
+ */
925
+ export interface DefaultGroupCapability {
926
+ /**
927
+ * When the install scope selected is Team, this field specifies the default capability
928
+ * available
929
+ */
930
+ team?: Groupchat;
931
+ /**
932
+ * When the install scope selected is GroupChat, this field specifies the default capability
933
+ * available
934
+ */
935
+ groupchat?: Groupchat;
936
+ /**
937
+ * When the install scope selected is Meetings, this field specifies the default capability
938
+ * available
939
+ */
940
+ meetings?: Groupchat;
941
+ }
942
+ /**
943
+ * When the install scope selected is GroupChat, this field specifies the default capability
944
+ * available
945
+ *
946
+ * When the install scope selected is Meetings, this field specifies the default capability
947
+ * available
948
+ *
949
+ * When the install scope selected is Team, this field specifies the default capability
950
+ * available
951
+ */
952
+ export type Groupchat = "tab" | "bot" | "connector";
953
+ /**
954
+ * The install scope defined for this app by default. This will be the option displayed on
955
+ * the button when a user tries to add the app
956
+ */
957
+ export type DefaultInstallScope = "personal" | "team" | "groupChat" | "meetings" | "copilot";
958
+ export interface Description {
959
+ /**
960
+ * A short description of the app used when space is limited. Maximum length is 80
961
+ * characters.
962
+ */
963
+ short: string;
964
+ /**
965
+ * The full description of the app. Maximum length is 4000 characters.
966
+ */
967
+ full: string;
968
+ /**
969
+ * Array of features sections describing what the app can do.
970
+ */
971
+ features?: Feature[];
972
+ }
973
+ export interface Feature {
974
+ /**
975
+ * Title of the feature the app provides.
976
+ */
977
+ title: string;
978
+ /**
979
+ * Detailed description of the specific feature.
980
+ */
981
+ description: string;
982
+ }
983
+ export interface Developer {
984
+ /**
985
+ * The display name for the developer.
986
+ */
987
+ name: string;
988
+ /**
989
+ * The Microsoft Partner Network ID that identifies the partner organization building the
990
+ * app. This field is not required, and should only be used if you are already part of the
991
+ * Microsoft Partner Network. More info at https://aka.ms/partner
992
+ */
993
+ mpnId?: string;
994
+ /**
995
+ * The url to the page that provides support information for the app.
996
+ */
997
+ websiteUrl: string;
998
+ /**
999
+ * The url to the page that provides privacy information for the app.
1000
+ */
1001
+ privacyUrl: string;
1002
+ /**
1003
+ * The url to the page that provides the terms of use for the app.
1004
+ */
1005
+ termsOfUseUrl: string;
1006
+ }
1007
+ export type DevicePermission = "geolocation" | "media" | "notifications" | "midi" | "openExternal";
1008
+ export interface ElementRelationshipSet {
1009
+ /**
1010
+ * An array containing multiple instances of unidirectional dependency relationships (each
1011
+ * represented by a oneWayDependency object).
1012
+ */
1013
+ oneWayDependencies?: OneWayDependency[];
1014
+ /**
1015
+ * An array containing multiple instances of mutual dependency relationships between
1016
+ * elements (each represented by a mutualDependency object).
1017
+ */
1018
+ mutualDependencies?: Array<ElementReference[]>;
1019
+ }
1020
+ /**
1021
+ * A specific instance of mutual dependency between two or more elements, indicating that
1022
+ * each element depends on the others in a bidirectional manner.
1023
+ */
1024
+ export interface ElementReference {
1025
+ name: MutualDependencyName;
1026
+ id: string;
1027
+ commandIds?: string[];
1028
+ }
1029
+ export type MutualDependencyName = "bots" | "staticTabs" | "composeExtensions" | "configurableTabs";
1030
+ /**
1031
+ * An object representing a unidirectional dependency relationship, where one specific
1032
+ * element (referred to as the `element`) relies on an array of other elements (referred to
1033
+ * as the `dependsOn`) in a single direction.
1034
+ */
1035
+ export interface OneWayDependency {
1036
+ element: ElementReference;
1037
+ dependsOn: ElementReference[];
1038
+ }
1039
+ /**
1040
+ * The set of extensions for this app. Currently only one extensions per app is supported.
1041
+ */
1042
+ export interface ElementExtension {
1043
+ requirements?: RequirementsExtensionElement;
1044
+ runtimes?: ExtensionRuntimesArray[];
1045
+ ribbons?: ExtensionRibbonsArray[];
1046
+ autoRunEvents?: ExtensionAutoRunEventsArray[];
1047
+ alternates?: ExtensionAlternateVersionsArray[];
1048
+ contentRuntimes?: ExtensionContentRuntimeArray[];
1049
+ getStartedMessages?: ExtensionGetStartedMessageArray[];
1050
+ contextMenus?: ExtensionContextMenuArray[];
1051
+ /**
1052
+ * Keyboard shortcuts, also known as key combinations, enable your add-in's users to work
1053
+ * more efficiently. Keyboard shortcuts also improve the add-in's accessibility for users
1054
+ * with disabilities by providing an alternative to the mouse.
1055
+ */
1056
+ keyboardShortcuts?: ExtensionKeyboardShortcut[];
1057
+ /**
1058
+ * The url for your extension, used to validate Exchange user identity tokens.
1059
+ */
1060
+ audienceClaimUrl?: string;
1061
+ }
1062
+ export interface ExtensionAlternateVersionsArray {
1063
+ requirements?: RequirementsExtensionElement;
1064
+ prefer?: Prefer;
1065
+ hide?: Hide;
1066
+ alternateIcons?: AlternateIcons;
1067
+ }
1068
+ export interface AlternateIcons {
1069
+ icon: ExtensionCommonIcon;
1070
+ highResolutionIcon: ExtensionCommonIcon;
1071
+ }
1072
+ export interface ExtensionCommonIcon {
1073
+ /**
1074
+ * Size in pixels of the icon. Three image sizes are required (16, 32, and 80 pixels)
1075
+ */
1076
+ size: number;
1077
+ /**
1078
+ * Absolute Url to the icon.
1079
+ */
1080
+ url: string;
1081
+ }
1082
+ export interface Hide {
1083
+ storeOfficeAddin?: StoreOfficeAddin;
1084
+ customOfficeAddin?: CustomOfficeAddin;
1085
+ /**
1086
+ * Configures how to hide windows native extensions
1087
+ */
1088
+ windowsExtensions?: WindowsExtensions;
1089
+ [property: string]: any;
1090
+ }
1091
+ export interface CustomOfficeAddin {
1092
+ /**
1093
+ * Solution ID of the in-market add-in to hide. Maximum length is 64 characters.
1094
+ */
1095
+ officeAddinId: string;
1096
+ }
1097
+ export interface StoreOfficeAddin {
1098
+ /**
1099
+ * Solution ID of an in-market add-in to hide. Maximum length is 64 characters.
1100
+ */
1101
+ officeAddinId: string;
1102
+ /**
1103
+ * Asset ID of the in-market add-in to hide. Maximum length is 64 characters.
1104
+ */
1105
+ assetId: string;
1106
+ }
1107
+ /**
1108
+ * Configures how to hide windows native extensions
1109
+ */
1110
+ export interface WindowsExtensions {
1111
+ /**
1112
+ * Specifies the effect to take while installing the web add-in if the equivalent add-in is
1113
+ * installed.
1114
+ */
1115
+ effect: Effect;
1116
+ /**
1117
+ * Specifies the equivalent COM add-ins
1118
+ */
1119
+ comAddin?: WindowsExtensionsCOMAddin;
1120
+ /**
1121
+ * Specifies the equivalent automation add-ins
1122
+ */
1123
+ automationAddin?: AutomationAddin;
1124
+ /**
1125
+ * Specifies the XLL-based add-ins custom function
1126
+ */
1127
+ xllCustomFunctions?: XllCustomFunctions;
1128
+ }
1129
+ /**
1130
+ * Specifies the equivalent automation add-ins
1131
+ */
1132
+ export interface AutomationAddin {
1133
+ /**
1134
+ * Specifies the program Ids of the equivalent automation add-ins
1135
+ */
1136
+ progIds: string[];
1137
+ }
1138
+ /**
1139
+ * Specifies the equivalent COM add-ins
1140
+ */
1141
+ export interface WindowsExtensionsCOMAddin {
1142
+ /**
1143
+ * Specifies the program Ids of the equivalent COM add-ins
1144
+ */
1145
+ progIds: string[];
1146
+ }
1147
+ /**
1148
+ * Specifies the effect to take while installing the web add-in if the equivalent add-in is
1149
+ * installed.
1150
+ */
1151
+ export type Effect = "userOptionToDisable" | "disableWithNotification";
1152
+ /**
1153
+ * Specifies the XLL-based add-ins custom function
1154
+ */
1155
+ export interface XllCustomFunctions {
1156
+ /**
1157
+ * Specifies the file names of the XLL-based add-ins custom function
1158
+ */
1159
+ fileNames: string[];
1160
+ }
1161
+ export interface Prefer {
1162
+ comAddin?: PreferCOMAddin;
1163
+ xllCustomFunctions?: ExtensionXllCustomFunctions;
1164
+ [property: string]: any;
1165
+ }
1166
+ export interface PreferCOMAddin {
1167
+ /**
1168
+ * Program ID of the alternate com extension. Maximum length is 64 characters.
1169
+ */
1170
+ progId: string;
1171
+ }
1172
+ export interface ExtensionXllCustomFunctions {
1173
+ /**
1174
+ * File name for the XLL extension. Maximum length is 254 characters.
1175
+ */
1176
+ fileName?: string;
1177
+ [property: string]: any;
1178
+ }
1179
+ /**
1180
+ * Specifies limitations on which clients the add-in can be installed on, including
1181
+ * limitations on the Office host application, the form factors, and the requirement sets
1182
+ * that the client must support.
1183
+ *
1184
+ * Specifies the Office requirement sets.
1185
+ */
1186
+ export interface RequirementsExtensionElement {
1187
+ capabilities?: Capability[];
1188
+ /**
1189
+ * Identifies the scopes in which the add-in can run. Supported values: 'mail', 'workbook',
1190
+ * 'document', 'presentation'.
1191
+ */
1192
+ scopes?: RequirementsScope[];
1193
+ /**
1194
+ * Identifies the form factors that support the add-in. Supported values: mobile, desktop.
1195
+ */
1196
+ formFactors?: FormFactor[];
1197
+ }
1198
+ export interface Capability {
1199
+ /**
1200
+ * Identifies the name of the requirement sets that the add-in needs to run.
1201
+ */
1202
+ name: string;
1203
+ /**
1204
+ * Identifies the minimum version for the requirement sets that the add-in needs to run.
1205
+ */
1206
+ minVersion?: string;
1207
+ /**
1208
+ * Identifies the maximum version for the requirement sets that the add-in needs to run.
1209
+ */
1210
+ maxVersion?: string;
1211
+ }
1212
+ export type FormFactor = "desktop" | "mobile";
1213
+ export type RequirementsScope = "mail" | "workbook" | "document" | "presentation";
1214
+ export interface ExtensionAutoRunEventsArray {
1215
+ requirements?: RequirementsExtensionElement;
1216
+ /**
1217
+ * Specifies the type of event. For supported types, please see:
1218
+ * https://learn.microsoft.com/en-us/office/dev/add-ins/outlook/autolaunch?tabs=xmlmanifest#supported-events.
1219
+ */
1220
+ events: Event[];
1221
+ }
1222
+ export interface Event {
1223
+ type: string;
1224
+ /**
1225
+ * The ID of an action defined in runtimes. Maximum length is 64 characters.
1226
+ */
1227
+ actionId: string;
1228
+ /**
1229
+ * Configures how Outlook responds to the event.
1230
+ */
1231
+ options?: Options;
1232
+ }
1233
+ /**
1234
+ * Configures how Outlook responds to the event.
1235
+ */
1236
+ export interface Options {
1237
+ sendMode: SendMode;
1238
+ }
1239
+ export type SendMode = "promptUser" | "softBlock" | "block";
1240
+ /**
1241
+ * Content runtime is for 'ContentApp', which can be embedded directly into Excel or
1242
+ * PowerPoint documents.
1243
+ */
1244
+ export interface ExtensionContentRuntimeArray {
1245
+ /**
1246
+ * Specifies the Office requirement sets for content add-in runtime. If the user's Office
1247
+ * version doesn't support the specified requirements, the component will not be available
1248
+ * in that client.
1249
+ */
1250
+ requirements?: ContentRuntimeRequirements;
1251
+ /**
1252
+ * A unique identifier for this runtime within the app. This is developer specified.
1253
+ */
1254
+ id: string;
1255
+ /**
1256
+ * Specifies the location of code for this runtime. Depending on the runtime.type, add-ins
1257
+ * use either a JavaScript file or an HTML page with an embedded <script> tag that specifies
1258
+ * the URL of a JavaScript file.
1259
+ */
1260
+ code: ExtensionRuntimeCode;
1261
+ /**
1262
+ * The desired height in pixels for the initial content placeholder. This value MUST be
1263
+ * between 32 and 1000 pixels. Default value will be determined by host.
1264
+ */
1265
+ requestedHeight?: number;
1266
+ /**
1267
+ * The desired width in pixels for the initial content placeholder. This value MUST be
1268
+ * between 32 and 1000 pixels. Default value will be determined by host.
1269
+ */
1270
+ requestedWidth?: number;
1271
+ /**
1272
+ * Specifies whether a snapshot image of your content add-in is saved with the host
1273
+ * document. Default value is false. Set true to disable.
1274
+ */
1275
+ disableSnapshot?: boolean;
1276
+ }
1277
+ /**
1278
+ * Specifies the location of code for this runtime. Depending on the runtime.type, add-ins
1279
+ * use either a JavaScript file or an HTML page with an embedded <script> tag that specifies
1280
+ * the URL of a JavaScript file.
1281
+ */
1282
+ export interface ExtensionRuntimeCode {
1283
+ /**
1284
+ * URL of the .html page to be loaded in browser-based runtimes.
1285
+ */
1286
+ page: string;
1287
+ /**
1288
+ * URL of the .js script file to be loaded in UI-less runtimes.
1289
+ */
1290
+ script?: string;
1291
+ }
1292
+ /**
1293
+ * Specifies the Office requirement sets for content add-in runtime. If the user's Office
1294
+ * version doesn't support the specified requirements, the component will not be available
1295
+ * in that client.
1296
+ *
1297
+ * Specifies limitations on which clients the add-in can be installed on, including
1298
+ * limitations on the Office host application, the form factors, and the requirement sets
1299
+ * that the client must support.
1300
+ *
1301
+ * Specifies the Office requirement sets.
1302
+ */
1303
+ export interface ContentRuntimeRequirements {
1304
+ capabilities?: Capability[];
1305
+ /**
1306
+ * Identifies the scopes in which the add-in can run. Supported values: 'mail', 'workbook',
1307
+ * 'document', 'presentation'.
1308
+ */
1309
+ scopes?: RequirementsScope[];
1310
+ /**
1311
+ * Identifies the form factors that support the add-in. Supported values: mobile, desktop.
1312
+ */
1313
+ formFactors?: FormFactor[];
1314
+ }
1315
+ /**
1316
+ * Specifies the context menus for your extension. A context menu is a shortcut menu that
1317
+ * appears when a user right-clicks (selects and holds) in the Office UI. Minimum size is 1.
1318
+ */
1319
+ export interface ExtensionContextMenuArray {
1320
+ requirements?: ContextMenuRequirements;
1321
+ /**
1322
+ * Configures the context menus. Minimum size is 1.
1323
+ */
1324
+ menus: ExtensionMenuItem[];
1325
+ }
1326
+ /**
1327
+ * Configures the context menus. Minimum size is 1.
1328
+ *
1329
+ * The title used for the top of the callout.
1330
+ */
1331
+ export interface ExtensionMenuItem {
1332
+ /**
1333
+ * Use 'text' or 'cell' here for Office context menu. Use 'text' if the context menu should
1334
+ * open when a user right-clicks (selects and holds) on the selected text. Use 'cell' if the
1335
+ * context menu should open when the user right-clicks (selects and holds) on a cell in an
1336
+ * Excel spreadsheet.
1337
+ */
1338
+ entryPoint: EntryPoint;
1339
+ controls: ExtensionCommonCustomGroupControlsItem[];
1340
+ }
1341
+ /**
1342
+ * The control type should be 'menu'. Minimum size is 1.
1343
+ */
1344
+ export interface ExtensionCommonCustomGroupControlsItem {
1345
+ /**
1346
+ * A unique identifier for this control within the app. Maximum length is 64 characters.
1347
+ */
1348
+ id: string;
1349
+ /**
1350
+ * Defines the type of control whether button or menu.
1351
+ */
1352
+ type: TentacledType;
1353
+ /**
1354
+ * Id of an existing office control. Maximum length is 64 characters.
1355
+ */
1356
+ builtInControlId?: string;
1357
+ /**
1358
+ * Displayed text for the control. Maximum length is 64 characters.
1359
+ */
1360
+ label: string;
1361
+ /**
1362
+ * Configures the icons for the custom control.
1363
+ */
1364
+ icons: ExtensionCommonIcon[];
1365
+ supertip: ExtensionCommonSuperToolTip;
1366
+ /**
1367
+ * The ID of an execution-type action that handles this key combination. Maximum length is
1368
+ * 64 characters.
1369
+ */
1370
+ actionId?: string;
1371
+ /**
1372
+ * Specifies whether a group, button, menu, or menu item will be hidden on application and
1373
+ * platform combinations that support the API (Office.ribbon.requestCreateControls) that
1374
+ * installs custom contextual tabs on the ribbon. Default is false.
1375
+ */
1376
+ overriddenByRibbonApi?: boolean;
1377
+ /**
1378
+ * Whether the control is initially enabled.
1379
+ */
1380
+ enabled?: boolean;
1381
+ /**
1382
+ * Configures the items for a menu control.
1383
+ */
1384
+ items?: ExtensionCommonCustomControlMenuItem[];
1385
+ /**
1386
+ * Controls whether the control is visible.
1387
+ */
1388
+ visible?: boolean;
1389
+ /**
1390
+ * KeyTip shortcut for keyboard navigation (1-3 uppercase alphanumeric characters)
1391
+ */
1392
+ keytip?: string;
1393
+ }
1394
+ export interface ExtensionCommonCustomControlMenuItem {
1395
+ /**
1396
+ * A unique identifier for this control within the app. Maximum length is 64 characters.
1397
+ */
1398
+ id: string;
1399
+ /**
1400
+ * Supported values: menuItem.
1401
+ */
1402
+ type: "menuItem";
1403
+ /**
1404
+ * Displayed text for the control. Maximum length is 64 characters.
1405
+ */
1406
+ label: string;
1407
+ icons?: ExtensionCommonIcon[];
1408
+ supertip: ExtensionCommonSuperToolTip;
1409
+ /**
1410
+ * The ID of an action defined in runtimes. Maximum length is 64 characters.
1411
+ */
1412
+ actionId: string;
1413
+ /**
1414
+ * Whether the control is initially enabled.
1415
+ */
1416
+ enabled?: boolean;
1417
+ overriddenByRibbonApi?: boolean;
1418
+ /**
1419
+ * KeyTip shortcut for keyboard navigation (1-3 uppercase alphanumeric characters)
1420
+ */
1421
+ keytip?: string;
1422
+ }
1423
+ export interface ExtensionCommonSuperToolTip {
1424
+ /**
1425
+ * Title text of the super tip. Maximum length is 64 characters.
1426
+ */
1427
+ title: string;
1428
+ /**
1429
+ * Description of the super tip. Maximum length is 250 characters.
1430
+ */
1431
+ description: string;
1432
+ }
1433
+ /**
1434
+ * Supported values: menuItem.
1435
+ */
1436
+ /**
1437
+ * Defines the type of control whether button or menu.
1438
+ */
1439
+ export type TentacledType = "button" | "menu";
1440
+ /**
1441
+ * Use 'text' or 'cell' here for Office context menu. Use 'text' if the context menu should
1442
+ * open when a user right-clicks (selects and holds) on the selected text. Use 'cell' if the
1443
+ * context menu should open when the user right-clicks (selects and holds) on a cell in an
1444
+ * Excel spreadsheet.
1445
+ */
1446
+ export type EntryPoint = "text" | "cell";
1447
+ /**
1448
+ * Specifies limitations on which clients the add-in can be installed on, including
1449
+ * limitations on the Office host application, the form factors, and the requirement sets
1450
+ * that the client must support.
1451
+ *
1452
+ * Specifies the Office requirement sets.
1453
+ */
1454
+ export interface ContextMenuRequirements {
1455
+ capabilities?: Capability[];
1456
+ /**
1457
+ * Identifies the scopes in which the add-in can run. Supported values: 'mail', 'workbook',
1458
+ * 'document', 'presentation'.
1459
+ */
1460
+ scopes?: RequirementsScope[];
1461
+ /**
1462
+ * Identifies the form factors that support the add-in. Supported values: mobile, desktop.
1463
+ */
1464
+ formFactors?: FormFactor[];
1465
+ }
1466
+ /**
1467
+ * Provides information used by the callout that appears when the add-in is installed.
1468
+ * Minimum size is 1. Maximum size is 3.
1469
+ */
1470
+ export interface ExtensionGetStartedMessageArray {
1471
+ requirements?: GetStartedMessageRequirements;
1472
+ /**
1473
+ * The title used for the top of the callout.
1474
+ */
1475
+ title: string;
1476
+ /**
1477
+ * The description/body content for the callout.
1478
+ */
1479
+ description: string;
1480
+ /**
1481
+ * A URL to a page that explains the add-in in detail.
1482
+ */
1483
+ learnMoreUrl: string;
1484
+ }
1485
+ /**
1486
+ * Specifies limitations on which clients the add-in can be installed on, including
1487
+ * limitations on the Office host application, the form factors, and the requirement sets
1488
+ * that the client must support.
1489
+ *
1490
+ * Specifies the Office requirement sets.
1491
+ */
1492
+ export interface GetStartedMessageRequirements {
1493
+ capabilities?: Capability[];
1494
+ /**
1495
+ * Identifies the scopes in which the add-in can run. Supported values: 'mail', 'workbook',
1496
+ * 'document', 'presentation'.
1497
+ */
1498
+ scopes?: RequirementsScope[];
1499
+ /**
1500
+ * Identifies the form factors that support the add-in. Supported values: mobile, desktop.
1501
+ */
1502
+ formFactors?: FormFactor[];
1503
+ }
1504
+ export interface ExtensionKeyboardShortcut {
1505
+ /**
1506
+ * Specifies the Office requirement sets.
1507
+ */
1508
+ requirements?: RequirementsExtensionElement;
1509
+ /**
1510
+ * Array of mappings from actions to the key combinations that invoke the actions.
1511
+ */
1512
+ shortcuts?: ExtensionShortcut[];
1513
+ /**
1514
+ * Specifies the full URLs for shortcuts mapping and localization resource files that don't
1515
+ * directly support the unified manifest.
1516
+ */
1517
+ keyMappingFiles?: KeyboardShortcutsMappingFiles;
1518
+ [property: string]: any;
1519
+ }
1520
+ /**
1521
+ * Specifies the full URLs for shortcuts mapping and localization resource files that don't
1522
+ * directly support the unified manifest.
1523
+ */
1524
+ export interface KeyboardShortcutsMappingFiles {
1525
+ /**
1526
+ * The full URL of the JSON file that will contain the keyboard combination configuration on
1527
+ * Office application and platform combinations that don't directly support the unified
1528
+ * manifest.
1529
+ */
1530
+ shortcutsUrl: string;
1531
+ /**
1532
+ * The full URL of a file that provides supplemental resource, such as localized strings,
1533
+ * for the file specified in the shortcutsUrl attribute.
1534
+ */
1535
+ localizationResourceUrl?: string;
1536
+ }
1537
+ export interface ExtensionShortcut {
1538
+ key: Key;
1539
+ /**
1540
+ * The ID of an execution-type action that handles this key combination.
1541
+ */
1542
+ actionId: string;
1543
+ [property: string]: any;
1544
+ }
1545
+ /**
1546
+ * Key combinations in different platform (i.e. default, windows, web and mac).
1547
+ */
1548
+ export interface Key {
1549
+ /**
1550
+ * Fallback key for any platform that isn't specified.
1551
+ */
1552
+ default: string;
1553
+ /**
1554
+ * key for mac platform. Alt is mapped to the Option key.
1555
+ */
1556
+ mac?: string;
1557
+ /**
1558
+ * key for web platform.
1559
+ */
1560
+ web?: string;
1561
+ /**
1562
+ * key for windows platform. Command is mapped to the Ctrl key.
1563
+ */
1564
+ windows?: string;
1565
+ [property: string]: any;
1566
+ }
1567
+ export interface ExtensionRibbonsArray {
1568
+ requirements?: RequirementsExtensionElement;
1569
+ contexts?: ExtensionContext[];
1570
+ tabs: ExtensionRibbonsArrayTabsItem[];
1571
+ fixedControls?: ExtensionRibbonsArrayFixedControlItem[];
1572
+ spamPreProcessingDialog?: ExtensionRibbonsSpamPreProcessingDialog;
1573
+ }
1574
+ /**
1575
+ * Specifies the Office application windows in which the ribbon customization is available
1576
+ * to the user. Each item in the array is a member of a string array. Possible values are:
1577
+ * mailRead, mailCompose, meetingDetailsOrganizer, meetingDetailsAttendee,
1578
+ * onlineMeetingDetailsOrganizer, logEventMeetingDetailsAttendee, spamReportingOverride.
1579
+ */
1580
+ export type ExtensionContext = "mailRead" | "mailCompose" | "meetingDetailsOrganizer" | "meetingDetailsAttendee" | "onlineMeetingDetailsOrganizer" | "logEventMeetingDetailsAttendee" | "spamReportingOverride" | "default";
1581
+ export interface ExtensionRibbonsArrayFixedControlItem {
1582
+ /**
1583
+ * A unique identifier for this control within the app. Maximum length is 64 characters.
1584
+ */
1585
+ id: string;
1586
+ /**
1587
+ * Defines the type of control.
1588
+ */
1589
+ type: "button";
1590
+ /**
1591
+ * Displayed text for the control. Maximum length is 64 characters.
1592
+ */
1593
+ label: string;
1594
+ icons: ExtensionCommonIcon[];
1595
+ supertip: ExtensionCommonSuperToolTip;
1596
+ /**
1597
+ * The ID of an execution-type action that handles this key combination. Maximum length is
1598
+ * 64 characters.
1599
+ */
1600
+ actionId: string;
1601
+ /**
1602
+ * Whether the control is initially enabled.
1603
+ */
1604
+ enabled: boolean;
1605
+ }
1606
+ /**
1607
+ * Defines the type of control.
1608
+ */
1609
+ export interface ExtensionRibbonsSpamPreProcessingDialog {
1610
+ /**
1611
+ * Specifies the custom title of the preprocessing dialog.
1612
+ */
1613
+ title: string;
1614
+ /**
1615
+ * Specifies the custom text that appears in the preprocessing dialog.
1616
+ */
1617
+ description: string;
1618
+ /**
1619
+ * Indicating if the developer will allow the user to permanently bypass the PreProcessing
1620
+ * Dialog for this add-in. "false" is the default value if not specified.
1621
+ */
1622
+ spamNeverShowAgainOption?: boolean;
1623
+ /**
1624
+ * Specifies up to five options that a user can select from the preprocessing dialog to
1625
+ * provide a reason for reporting a message.
1626
+ */
1627
+ spamReportingOptions?: SpamReportingOptions;
1628
+ /**
1629
+ * A text box to the preprocessing dialog to allow users to provide additional information
1630
+ * on the message they're reporting. This value is the title of that text box.
1631
+ */
1632
+ spamFreeTextSectionTitle?: string;
1633
+ /**
1634
+ * Specifies the custom text and URL to provide informational resources to the users.
1635
+ */
1636
+ spamMoreInfo?: SpamMoreInfo;
1637
+ }
1638
+ /**
1639
+ * Specifies the custom text and URL to provide informational resources to the users.
1640
+ */
1641
+ export interface SpamMoreInfo {
1642
+ /**
1643
+ * Specifies display content of the hyperlink pointing to the site containing informational
1644
+ * resources in the preprocessing dialog of a spam-reporting add-in.
1645
+ */
1646
+ text: string;
1647
+ /**
1648
+ * Specifies the URL of the hyperlink pointing to the site containing informational
1649
+ * resources in the preprocessing dialog of a spam-reporting add-in.
1650
+ */
1651
+ url: string;
1652
+ [property: string]: any;
1653
+ }
1654
+ /**
1655
+ * Specifies up to five options that a user can select from the preprocessing dialog to
1656
+ * provide a reason for reporting a message.
1657
+ */
1658
+ export interface SpamReportingOptions {
1659
+ /**
1660
+ * Specifies the title listed before the reporting options list.
1661
+ */
1662
+ title: string;
1663
+ /**
1664
+ * Specifies the custom options that a user can select from the preprocessing dialog to
1665
+ * provide a reason for reporting a message.
1666
+ */
1667
+ options: string[];
1668
+ /**
1669
+ * Can be set to "radio" or "checkbox". This determines if Radio Buttons or checkboxes are
1670
+ * used for the options. "checkbox" is the default if this value is not specified.
1671
+ */
1672
+ type?: SpamReportingOptionsType;
1673
+ [property: string]: any;
1674
+ }
1675
+ /**
1676
+ * Can be set to "radio" or "checkbox". This determines if Radio Buttons or checkboxes are
1677
+ * used for the options. "checkbox" is the default if this value is not specified.
1678
+ */
1679
+ export type SpamReportingOptionsType = "radio" | "checkbox";
1680
+ export interface ExtensionRibbonsArrayTabsItem {
1681
+ /**
1682
+ * A unique identifier for this tab within the app. Maximum length is 64 characters.
1683
+ */
1684
+ id?: string;
1685
+ /**
1686
+ * Displayed text for the tab. Maximum length is 64 characters.
1687
+ */
1688
+ label?: string;
1689
+ position?: Position;
1690
+ /**
1691
+ * Id of the existing office Tab. Maximum length is 64 characters.
1692
+ */
1693
+ builtInTabId?: string;
1694
+ /**
1695
+ * Defines tab groups.
1696
+ */
1697
+ groups?: ExtensionRibbonsCustomTabGroupsItem[];
1698
+ /**
1699
+ * Defines mobile group item.
1700
+ */
1701
+ customMobileRibbonGroups?: ExtensionRibbonsCustomMobileGroupItem[];
1702
+ /**
1703
+ * Controls whether the control is visible.
1704
+ */
1705
+ visible?: boolean;
1706
+ /**
1707
+ * KeyTip shortcut for keyboard navigation (1-3 uppercase alphanumeric characters)
1708
+ */
1709
+ keytip?: string;
1710
+ }
1711
+ export interface ExtensionRibbonsCustomMobileGroupItem {
1712
+ /**
1713
+ * Specify the Id of the group. Used for mobileMessageRead ext point.
1714
+ */
1715
+ id: string;
1716
+ /**
1717
+ * Short label of the control. Maximum length is 32 characters.
1718
+ */
1719
+ label: string;
1720
+ controls: ExtensionRibbonsCustomMobileControlButtonItem[];
1721
+ [property: string]: any;
1722
+ }
1723
+ export interface ExtensionRibbonsCustomMobileControlButtonItem {
1724
+ /**
1725
+ * Specify the Id of the button like msgReadFunctionButton.
1726
+ */
1727
+ id: string;
1728
+ type: "mobileButton";
1729
+ /**
1730
+ * Short label of the control. Maximum length is 32 characters.
1731
+ */
1732
+ label: string;
1733
+ icons: ExtensionCustomMobileIcon[];
1734
+ /**
1735
+ * The ID of an action defined in runtimes. Maximum length is 64 characters.
1736
+ */
1737
+ actionId: string;
1738
+ [property: string]: any;
1739
+ }
1740
+ export interface ExtensionCustomMobileIcon {
1741
+ /**
1742
+ * Size in pixels of the icon. Three image sizes are required (25, 32, and 48 pixels).
1743
+ */
1744
+ size: number;
1745
+ /**
1746
+ * Url to the icon.
1747
+ */
1748
+ url: string;
1749
+ /**
1750
+ * How to scale - 1,2,3 for each image. This attribute specifies the UIScreen.scale property
1751
+ * for iOS devices.
1752
+ */
1753
+ scale: number;
1754
+ }
1755
+ export interface ExtensionRibbonsCustomTabGroupsItem {
1756
+ /**
1757
+ * A unique identifier for this group within the app. Maximum length is 64 characters.
1758
+ */
1759
+ id?: string;
1760
+ /**
1761
+ * Displayed text for the group. Maximum length is 64 characters.
1762
+ */
1763
+ label?: string;
1764
+ icons?: ExtensionCommonIcon[];
1765
+ controls?: ExtensionCommonCustomGroupControlsItem[];
1766
+ /**
1767
+ * Id of a built-in Group. Maximum length is 64 characters.
1768
+ */
1769
+ builtInGroupId?: string;
1770
+ /**
1771
+ * Specifies whether a group will be hidden on application and platform combinations that
1772
+ * support the API (Office.ribbon.requestCreateControls) that installs custom contextual
1773
+ * tabs on the ribbon. Default is false.
1774
+ */
1775
+ overriddenByRibbonApi?: boolean;
1776
+ /**
1777
+ * Controls whether the control is visible.
1778
+ */
1779
+ visible?: boolean;
1780
+ }
1781
+ export interface Position {
1782
+ /**
1783
+ * The id of the built-in tab. Maximum length is 64 characters.
1784
+ */
1785
+ builtInTabId: string;
1786
+ /**
1787
+ * Define alignment of this custom tab relative to the specified built-in tab.
1788
+ */
1789
+ align: Align;
1790
+ }
1791
+ /**
1792
+ * Define alignment of this custom tab relative to the specified built-in tab.
1793
+ */
1794
+ export type Align = "after" | "before";
1795
+ /**
1796
+ * A runtime environment for a page or script
1797
+ */
1798
+ export interface ExtensionRuntimesArray {
1799
+ requirements?: RequirementsExtensionElement;
1800
+ /**
1801
+ * A unique identifier for this runtime within the app. Maximum length is 64 characters.
1802
+ */
1803
+ id: string;
1804
+ /**
1805
+ * Supports running functions and launching pages.
1806
+ */
1807
+ type?: "general";
1808
+ code: ExtensionRuntimeCode;
1809
+ /**
1810
+ * Runtimes with a short lifetime do not preserve state across executions. Runtimes with a
1811
+ * long lifetime do.
1812
+ */
1813
+ lifetime?: Lifetime;
1814
+ actions?: ExtensionRuntimesActionsItem[];
1815
+ customFunctions?: ExtensionCustomFunctions;
1816
+ }
1817
+ /**
1818
+ * Specifies the set of actions supported by this runtime. An action is either running a
1819
+ * JavaScript function or opening a view such as a task pane.
1820
+ */
1821
+ export interface ExtensionRuntimesActionsItem {
1822
+ /**
1823
+ * Identifier for this action. Maximum length is 64 characters. This value is passed to the
1824
+ * code file.
1825
+ */
1826
+ id: string;
1827
+ /**
1828
+ * executeFunction: Run a script function without waiting for it to finish. openPage: Open a
1829
+ * page in a view. executeDataFunction: invoke command and retrieve data.
1830
+ */
1831
+ type: ActionType;
1832
+ /**
1833
+ * Display name of the action. Maximum length is 64 characters.
1834
+ */
1835
+ displayName?: string;
1836
+ /**
1837
+ * Specifies that a task pane supports pinning, which keeps the task pane open when the user
1838
+ * changes the selection.
1839
+ */
1840
+ pinnable?: boolean;
1841
+ /**
1842
+ * View where the page should be opened. Maximum length is 64 characters.
1843
+ */
1844
+ view?: string;
1845
+ /**
1846
+ * Whether allows the action to have multiple selection.
1847
+ */
1848
+ multiselect?: boolean;
1849
+ /**
1850
+ * Whether allows task pane add-ins to activate without the Reading Pane enabled or a
1851
+ * message selected.
1852
+ */
1853
+ supportsNoItemContext?: boolean;
1854
+ }
1855
+ /**
1856
+ * executeFunction: Run a script function without waiting for it to finish. openPage: Open a
1857
+ * page in a view. executeDataFunction: invoke command and retrieve data.
1858
+ */
1859
+ export type ActionType = "executeFunction" | "openPage" | "executeDataFunction";
1860
+ /**
1861
+ * Custom function enable developers to add new functions to Excel by defining those
1862
+ * functions in JavaScript as part of an add-in. Users within Excel can access custom
1863
+ * functions just as they would any native function in Excel, such as SUM().
1864
+ */
1865
+ export interface ExtensionCustomFunctions {
1866
+ /**
1867
+ * Array of function object which defines function metadata.
1868
+ */
1869
+ functions?: ExtensionFunction[];
1870
+ namespace?: ExtensionCustomFunctionsNamespace;
1871
+ /**
1872
+ * Allows a custom function to accept Excel data types as parameters and return values.
1873
+ */
1874
+ allowCustomDataForDataTypeAny?: boolean;
1875
+ /**
1876
+ * The full URL of a metadata json file with default locale.
1877
+ */
1878
+ metadataUrl?: string;
1879
+ enums?: Enum[];
1880
+ }
1881
+ export interface Enum {
1882
+ /**
1883
+ * A unique ID for the enum.
1884
+ */
1885
+ id: string;
1886
+ /**
1887
+ * The type of the values in this enum.
1888
+ */
1889
+ type: EnumType;
1890
+ /**
1891
+ * Array that defines the constants for the enum.
1892
+ */
1893
+ values: ValueElement[];
1894
+ }
1895
+ /**
1896
+ * The type of the values in this enum.
1897
+ */
1898
+ export type EnumType = "number" | "string";
1899
+ export interface ValueElement {
1900
+ /**
1901
+ * A brief description of the constant.
1902
+ */
1903
+ name: string;
1904
+ /**
1905
+ * When enum type is number, the actual number value of the constant.
1906
+ */
1907
+ numberValue?: number | null;
1908
+ /**
1909
+ * When enum type is string, the actual string value of the constant.
1910
+ */
1911
+ stringValue?: string;
1912
+ /**
1913
+ * Additional information about the constant, intended to provide more context or details.
1914
+ */
1915
+ tooltip?: string;
1916
+ }
1917
+ export interface ExtensionFunction {
1918
+ /**
1919
+ * A unique ID for the function.
1920
+ */
1921
+ id: string;
1922
+ /**
1923
+ * The name of the function that end users see in Excel. In Excel, this function name is
1924
+ * prefixed by the custom functions namespace that's specified in the manifest file.
1925
+ */
1926
+ name: string;
1927
+ /**
1928
+ * The description of the function that end users see in Excel.
1929
+ */
1930
+ description?: string;
1931
+ /**
1932
+ * URL that provides information about the function. (It is displayed in a task pane.)
1933
+ */
1934
+ helpUrl?: string;
1935
+ /**
1936
+ * Array that defines the input parameters for the function.
1937
+ */
1938
+ parameters: ExtensionFunctionParameter[];
1939
+ result: ExtensionResult;
1940
+ /**
1941
+ * If true, the function can output repeatedly to the cell even when invoked only once. This
1942
+ * option is useful for rapidly-changing data sources, such as a stock price. The function
1943
+ * should have no return statement. Instead, the result value is passed as the argument of
1944
+ * the StreamingInvocation.setResult callback function.
1945
+ */
1946
+ stream?: boolean;
1947
+ /**
1948
+ * If true, the function recalculates each time Excel recalculates, instead of only when the
1949
+ * formula's dependent values have changed. A function can't use both the stream and
1950
+ * volatile properties. If the stream and volatile properties are both set to true, the
1951
+ * volatile property will be ignored.
1952
+ */
1953
+ volatile?: boolean;
1954
+ /**
1955
+ * If true, Excel calls the CancelableInvocation handler whenever the user takes an action
1956
+ * that has the effect of canceling the function; for example, manually triggering
1957
+ * recalculation or editing a cell that is referenced by the function. Cancelable functions
1958
+ * are typically only used for asynchronous functions that return a single result and need
1959
+ * to handle the cancellation of a request for data. A function can't use both the stream
1960
+ * and cancelable properties.
1961
+ */
1962
+ cancelable?: boolean;
1963
+ /**
1964
+ * If true, your custom function can access the address of the cell that invoked it. The
1965
+ * address property of the invocation parameter contains the address of the cell that
1966
+ * invoked your custom function. A function can't use both the stream and requiresAddress
1967
+ * properties.
1968
+ */
1969
+ requiresAddress?: boolean;
1970
+ /**
1971
+ * If true, your custom function can access the addresses of the function's input
1972
+ * parameters. This property must be used in combination with the dimensionality property of
1973
+ * the result object, and dimensionality must be set to matrix.
1974
+ */
1975
+ requiresParameterAddress?: boolean;
1976
+ /**
1977
+ * If `true`, the function can access the address of the cell calling the streaming
1978
+ * function. The `address` property of the invocation parameter contains the address of the
1979
+ * cell that invoked your streaming function.
1980
+ */
1981
+ requiresStreamAddress?: boolean;
1982
+ /**
1983
+ * If `true`, the function can access the parameter addresses of the cell calling the
1984
+ * streaming function. The `parameterAddresses` property of the invocation parameter
1985
+ * contains the parameter addresses for your streaming function.
1986
+ */
1987
+ requiresStreamParameterAddresses?: boolean;
1988
+ /**
1989
+ * If `true`, the data type being referenced by the custom function is passed as the first
1990
+ * argument to the custom function.
1991
+ */
1992
+ capturesCallingObject?: boolean;
1993
+ /**
1994
+ * If `true`, the custom function will not appear in the formula AutoComplete menu in Excel.
1995
+ */
1996
+ excludeFromAutoComplete?: boolean;
1997
+ /**
1998
+ * If `true`, it designates that the function is a linked entity load service that returns
1999
+ * linked entity cell values for linked entity IDs requested by Excel.
2000
+ */
2001
+ linkedEntityLoadService?: boolean;
2002
+ [property: string]: any;
2003
+ }
2004
+ export interface ExtensionFunctionParameter {
2005
+ /**
2006
+ * The name of the parameter. This name is displayed in Excel's IntelliSense.
2007
+ */
2008
+ name: string;
2009
+ /**
2010
+ * A description of the parameter. This is displayed in Excel's IntelliSense.
2011
+ */
2012
+ description?: string;
2013
+ /**
2014
+ * The data type of the parameter. It can only be 'boolean', 'number', 'string', 'any',
2015
+ * 'CustomFunctions.Invocation', 'CustomFunctions.StreamingInvocation' or
2016
+ * 'CustomFunctions.CancelableInvocation', 'any' allows you to use any of other types.
2017
+ */
2018
+ type?: string;
2019
+ /**
2020
+ * A subfield of the type property. Specifies the Excel data types accepted by the custom
2021
+ * function. Accepts the values cellvalue, booleancellvalue, doublecellvalue,
2022
+ * entitycellvalue, errorcellvalue, linkedentitycellvalue, localimagecellvalue,
2023
+ * stringcellvalue, webimagecellvalue
2024
+ */
2025
+ cellValueType?: CellValueType;
2026
+ /**
2027
+ * Must be either scalar (a non-array value) or matrix (a 2-dimensional array).
2028
+ */
2029
+ dimensionality?: Dimensionality;
2030
+ /**
2031
+ * |The `id` of the enum in the `enums` array. This associates the custom enum with the
2032
+ * function and enables Excel to display the enum members in the formula AutoComplete menu.
2033
+ */
2034
+ customEnumId?: string;
2035
+ /**
2036
+ * If true, the parameter is optional.
2037
+ */
2038
+ optional?: boolean | null;
2039
+ /**
2040
+ * If true, parameters populate from a specified array. Note that functions all repeating
2041
+ * parameters are considered optional parameters by definition.
2042
+ */
2043
+ repeating?: boolean;
2044
+ [property: string]: any;
2045
+ }
2046
+ /**
2047
+ * A subfield of the type property. Specifies the Excel data types accepted by the custom
2048
+ * function. Accepts the values cellvalue, booleancellvalue, doublecellvalue,
2049
+ * entitycellvalue, errorcellvalue, linkedentitycellvalue, localimagecellvalue,
2050
+ * stringcellvalue, webimagecellvalue
2051
+ */
2052
+ export type CellValueType = "cellvalue" | "booleancellvalue" | "doublecellvalue" | "entitycellvalue" | "errorcellvalue" | "linkedentitycellvalue" | "localimagecellvalue" | "stringcellvalue" | "webimagecellvalue";
2053
+ /**
2054
+ * Must be either scalar (a non-array value) or matrix (a 2-dimensional array).
2055
+ *
2056
+ * Must be either scalar (a non-array value) or matrix (a 2-dimensional array). Default:
2057
+ * scalar.
2058
+ */
2059
+ export type Dimensionality = "scalar" | "matrix";
2060
+ /**
2061
+ * Object that defines the type of information that is returned by the function.
2062
+ */
2063
+ export interface ExtensionResult {
2064
+ /**
2065
+ * Must be either scalar (a non-array value) or matrix (a 2-dimensional array). Default:
2066
+ * scalar.
2067
+ */
2068
+ dimensionality?: Dimensionality;
2069
+ [property: string]: any;
2070
+ }
2071
+ /**
2072
+ * Defines the namespace for your custom functions. A namespace prepends itself to your
2073
+ * custom functions to help customers identify your functions as part of your add-in.
2074
+ */
2075
+ export interface ExtensionCustomFunctionsNamespace {
2076
+ /**
2077
+ * Non-localizable version of the namespace.
2078
+ */
2079
+ id: string;
2080
+ /**
2081
+ * Localizable version of the namespace.
2082
+ */
2083
+ name: string;
2084
+ [property: string]: any;
2085
+ }
2086
+ /**
2087
+ * Runtimes with a short lifetime do not preserve state across executions. Runtimes with a
2088
+ * long lifetime do.
2089
+ */
2090
+ export type Lifetime = "short" | "long";
2091
+ /**
2092
+ * Supports running functions and launching pages.
2093
+ */
2094
+ /**
2095
+ * Specify the app's Graph connector configuration. If this is present then
2096
+ * webApplicationInfo.id must also be specified.
2097
+ */
2098
+ export interface GraphConnector {
2099
+ /**
2100
+ * The url where Graph-connector notifications for the application should be sent.
2101
+ */
2102
+ notificationUrl: string;
2103
+ }
2104
+ export interface Icons {
2105
+ /**
2106
+ * A relative file path to a transparent PNG outline icon. The border color needs to be
2107
+ * white. Size 32x32.
2108
+ */
2109
+ outline: string;
2110
+ /**
2111
+ * A relative file path to a full color PNG icon. Size 192x192.
2112
+ */
2113
+ color: string;
2114
+ /**
2115
+ * A relative file path to a full color PNG icon with transparent background. Size 32x32.
2116
+ */
2117
+ color32x32?: string;
2118
+ }
2119
+ /**
2120
+ * The Intune-related properties for the app.
2121
+ */
2122
+ export interface IntuneInfo {
2123
+ /**
2124
+ * Supported mobile app managment version that the app is compliant with.
2125
+ */
2126
+ supportedMobileAppManagementVersion?: string;
2127
+ }
2128
+ export interface LocalizationInfo {
2129
+ /**
2130
+ * The language tag of the strings in this top level manifest file.
2131
+ */
2132
+ defaultLanguageTag: string;
2133
+ /**
2134
+ * A relative file path to a the .json file containing strings in the default language.
2135
+ */
2136
+ defaultLanguageFile?: string;
2137
+ additionalLanguages?: AdditionalLanguage[];
2138
+ }
2139
+ export interface AdditionalLanguage {
2140
+ /**
2141
+ * The language tag of the strings in the provided file.
2142
+ */
2143
+ languageTag: string;
2144
+ /**
2145
+ * A relative file path to a the .json file containing the translated strings.
2146
+ */
2147
+ file: string;
2148
+ }
2149
+ /**
2150
+ * Specify meeting extension definition.
2151
+ */
2152
+ export interface MeetingExtensionDefinition {
2153
+ /**
2154
+ * Meeting supported scenes.
2155
+ */
2156
+ scenes?: Scene[];
2157
+ /**
2158
+ * A boolean value indicating whether this app can stream the meeting's audio video content
2159
+ * to an RTMP endpoint.
2160
+ */
2161
+ supportsStreaming?: boolean;
2162
+ /**
2163
+ * Represents if the app has added support for sharing to stage.
2164
+ */
2165
+ supportsCustomShareToStage?: boolean;
2166
+ /**
2167
+ * A boolean value indicating whether this app allows management by anonymous users.
2168
+ */
2169
+ supportsAnonymousGuestUsers?: boolean;
2170
+ }
2171
+ export interface Scene {
2172
+ /**
2173
+ * A unique identifier for this scene. This id must be a GUID.
2174
+ */
2175
+ id: string;
2176
+ /**
2177
+ * Scene name.
2178
+ */
2179
+ name: string;
2180
+ /**
2181
+ * A relative file path to a scene metadata json file.
2182
+ */
2183
+ file: string;
2184
+ /**
2185
+ * A relative file path to a scene PNG preview icon.
2186
+ */
2187
+ preview: string;
2188
+ /**
2189
+ * Maximum audiences supported in scene.
2190
+ */
2191
+ maxAudience: number;
2192
+ /**
2193
+ * Number of seats reserved for organizers or presenters.
2194
+ */
2195
+ seatsReservedForOrganizersOrPresenters: number;
2196
+ }
2197
+ export interface NameClass {
2198
+ /**
2199
+ * A short display name for the app.
2200
+ */
2201
+ short: string;
2202
+ /**
2203
+ * The full name of the app, used if the full app name exceeds 30 characters.
2204
+ */
2205
+ full?: string;
2206
+ }
2207
+ export type Permission = "identity" | "messageTeamMembers";
2208
+ export interface StaticTab {
2209
+ /**
2210
+ * A unique identifier for the entity which the tab displays.
2211
+ */
2212
+ entityId: string;
2213
+ /**
2214
+ * The display name of the tab.
2215
+ */
2216
+ name?: string;
2217
+ /**
2218
+ * The url which points to the entity UI to be displayed in the canvas.
2219
+ */
2220
+ contentUrl?: string;
2221
+ /**
2222
+ * The Microsoft App ID specified for the bot in the Bot Framework portal
2223
+ * (https://dev.botframework.com/bots)
2224
+ */
2225
+ contentBotId?: string;
2226
+ /**
2227
+ * The url to point at if a user opts to view in a browser.
2228
+ */
2229
+ websiteUrl?: string;
2230
+ /**
2231
+ * The url to direct a user's search queries.
2232
+ */
2233
+ searchUrl?: string;
2234
+ /**
2235
+ * Specifies whether the tab offers an experience in the context of a channel in a team, or
2236
+ * an experience scoped to an individual user alone or group chat. These options are
2237
+ * non-exclusive. Currently static tabs are only supported in the 'personal' scope.
2238
+ */
2239
+ scopes: StaticTabScope[];
2240
+ /**
2241
+ * The set of contextItem scopes that a tab belong to
2242
+ */
2243
+ context?: StaticTabContext[];
2244
+ requirementSet?: ElementRequirementSet;
2245
+ }
2246
+ export type StaticTabContext = "personalTab" | "channelTab" | "privateChatTab" | "meetingChatTab" | "meetingDetailsTab" | "meetingSidePanel" | "meetingStage" | "teamLevelApp";
2247
+ export type StaticTabScope = "team" | "personal" | "groupChat";
2248
+ /**
2249
+ * Subscription offer associated with this app.
2250
+ */
2251
+ export interface SubscriptionOffer {
2252
+ /**
2253
+ * A unique identifier for the Commercial Marketplace Software as a Service Offer.
2254
+ */
2255
+ offerId: string;
2256
+ }
2257
+ export type SupportedChannelType = "sharedChannels" | "privateChannels";
2258
+ /**
2259
+ * A property in the app manifest that declares support for all channel features,
2260
+ * categorized by tiers.
2261
+ */
2262
+ /**
2263
+ * Specify your AAD App ID and Graph information to help users seamlessly sign into your AAD
2264
+ * app.
2265
+ */
2266
+ export interface WebApplicationInfo {
2267
+ /**
2268
+ * AAD application id of the app. This id must be a GUID.
2269
+ */
2270
+ id: string;
2271
+ /**
2272
+ * Resource url of app for acquiring auth token for SSO.
2273
+ */
2274
+ resource?: string;
2275
+ /**
2276
+ * By including this property, an NAA token based on its contents will be prefetched when
2277
+ * the tab is loaded.
2278
+ */
2279
+ nestedAppAuthInfo?: NestedAppAuthInfo[];
2280
+ }
2281
+ export interface NestedAppAuthInfo {
2282
+ /**
2283
+ * Represents the nested app's valid redirect URI (always a base origin).
2284
+ */
2285
+ redirectUri: string;
2286
+ /**
2287
+ * Represents the stringified list of scopes the access token requested requires. Order must
2288
+ * match that of the proceeding NAA request in the app.
2289
+ */
2290
+ scopes: string[];
2291
+ /**
2292
+ * An optional JSON formatted object of client capabilities that represents if the resource
2293
+ * server is CAE capable. Do not use an empty string for this value. If unsupported, keep
2294
+ * the field undefined. If supported, use the following string exactly:
2295
+ * '{"access_token":{"xms_cc":{"values":["CP1"]}}}'. More info on client capabilities here:
2296
+ * https://learn.microsoft.com/en-us/entra/identity-platform/claims-challenge?tabs=dotnet#how-to-communicate-client-capabilities-to-microsoft-entra-id
2297
+ */
2298
+ claims?: string;
2299
+ }
2300
+ export declare class Convert {
2301
+ static toTeamsManifestV1D28(json: string): TeamsManifestV1D28;
2302
+ static teamsManifestV1D28ToJson(value: TeamsManifestV1D28): string;
2303
+ }