Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change notifications for Teams messages, including message properties (preview) #5294

Merged
merged 138 commits into from Dec 5, 2019
Merged
Changes from all commits
Commits
Show all changes
138 commits
Select commit Hold shift + click to select a range
30269a4
Seeded article for rich notifications
Feb 5, 2019
06bf8d3
Intro to rich notifications
Feb 5, 2019
a8577d9
Added subscription creation section
Feb 5, 2019
adb5b8c
Added notes regarding sub creation
Feb 5, 2019
c14ba88
Added a section describing authorization challenges
Feb 5, 2019
c2c0d2f
Fixed indentation
Feb 5, 2019
3b97324
Added examples of actions to take
Feb 5, 2019
a7f3848
Added implementation guidelines
Feb 5, 2019
e8e2a52
Added implementation guidelines
Feb 6, 2019
89f621a
Fixed the name of the property and authz challenge notification shape.
Feb 6, 2019
a82b02b
Added validation example
Feb 7, 2019
5d59597
Renamed lifecycle notification property
Feb 7, 2019
9aaa3b0
Introduced the lifecycleEvent property
Feb 7, 2019
af96fd4
Added some comments
Feb 8, 2019
82addfd
Added a section regarding token validation.
Feb 8, 2019
e72c395
Added info about keys
Feb 8, 2019
8477750
Added decryption steps
Feb 9, 2019
ef9e5b2
Added the phrase change notifications
Feb 12, 2019
9d51961
Fixed typo
Feb 12, 2019
5d14172
Merging with upstream
Apr 16, 2019
919ac55
Added properties related to public encryption key.
Apr 16, 2019
bb56976
Added comment regarding key rotation
Apr 16, 2019
9a57454
Resolved merge conflicts in TOC
Jul 19, 2019
17be388
Reworded the intro section
Jul 19, 2019
903ff84
Reworded subscription creation section.
Jul 19, 2019
85e9115
Cleaned up the authorization challenge section.
Jul 19, 2019
767bf8e
Added the future proof section
Jul 19, 2019
5a11e61
Updated encryption section
Jul 20, 2019
bb998cf
Merge branch 'master' of https://github.com/microsoftgraph/microsoft-…
Jul 26, 2019
d647349
Updated changelog
Jul 26, 2019
84a8579
Added placeholders in the subscription reference doc.
Jul 26, 2019
93fa7f0
Updated property names
Aug 7, 2019
2de08bc
Adding validation content
Aug 7, 2019
3cc9f2c
Merging with upstream
Aug 7, 2019
ce1806b
Finalized validation section
Aug 7, 2019
9e1c361
Added certificate management section
Aug 7, 2019
cf7caf1
Added section about decryption
Aug 7, 2019
9204650
Added some code samples
Aug 7, 2019
019694b
Edited properties
Aug 7, 2019
f158a32
Updated resource paths for teams and channels
Aug 7, 2019
61012d5
Minor edits
Aug 7, 2019
94dc563
Added clarification regarding certs
Aug 9, 2019
ca3f4c5
Updated payload shape, added HMAC
Aug 9, 2019
6cf9231
HMAC verification sample
Aug 9, 2019
2346a2a
Minor edits
Aug 9, 2019
ee6abc0
Updated certificate property names
Sep 13, 2019
ac2b33e
Added properties for rich notifications
Sep 13, 2019
8dab99e
Added subscription length for teams
Sep 13, 2019
580ede5
Added chatMessage item to the list
Sep 13, 2019
fc5b7e8
Added reference to chatMessage
Sep 13, 2019
8ed599e
Added inner links
Sep 13, 2019
debcc94
Resolved some TBD sections.
Sep 13, 2019
a065ce6
Merge branch 'master' into RichNotifications
Lauragra Sep 13, 2019
1b7a547
Merge branch 'master' into RichNotifications
Lauragra Sep 13, 2019
055e1e1
Edits.
Lauragra Sep 13, 2019
166e1a0
Edits.
Lauragra Sep 13, 2019
378ce21
Merging from upstream
Sep 14, 2019
b6800c0
Merge from origin
Sep 14, 2019
f6aa351
Added info about length limit for encryptionCertificateId
Sep 14, 2019
0c08cc1
Updated intialization vector size
Sep 18, 2019
ef0eadc
Renamed includeProperties
Sep 18, 2019
0ce8e1c
Removed reference to sample code
Sep 18, 2019
cb99542
Renamed the include property
Sep 18, 2019
00a288f
Updated expiration table
Sep 18, 2019
55c42f1
Added missing quote
Sep 18, 2019
1d7be28
Fixed json sample formatting
Sep 18, 2019
c0bb1b2
Dummy changes
Sep 18, 2019
40148cf
Merging upstream master
Sep 18, 2019
2072e09
Merge branch 'master' into RichNotifications
piotrci Sep 19, 2019
92f7abc
Small edits
Sep 19, 2019
0a1d096
Added links
Sep 19, 2019
ad73f63
Merge branch 'RichNotifications' of https://github.com/piotrci/micros…
Sep 19, 2019
4deb269
Merge branch 'master' of https://github.com/microsoftgraph/microsoft-…
Sep 19, 2019
d289698
Small edits.
Sep 19, 2019
6380f0e
Edits
Sep 19, 2019
c4c74ea
Edits
Sep 19, 2019
aa07c75
Merge branch 'master' into RichNotifications
piotrci Sep 23, 2019
178c9c8
Merged from upstream.
Sep 26, 2019
59aeabb
Merge branch 'master' into RichNotifications
piotrci Oct 9, 2019
8bfbe79
Merge branch 'master' of https://github.com/microsoftgraph/microsoft-…
Oct 10, 2019
24b06ea
Removed currently unsupported resource paths
Oct 10, 2019
b7f0171
Updated sample resource paths
Oct 10, 2019
ac46fb5
Added the single chat resource path
Oct 10, 2019
ee9ccf6
Merge branch 'master' into RichNotifications
angelgolfer-ms Oct 14, 2019
36c7805
Merging from upstream
Oct 16, 2019
7fead6f
Changed formatting
Oct 16, 2019
fb257fd
Replaced Teams messages with chat messages
Oct 16, 2019
aad4324
Changed title
Oct 16, 2019
15a0bc7
Fixed ref to chatMessage
Oct 16, 2019
43a474a
Reworded sentence
Oct 16, 2019
c853147
Consolidated note secitons
Oct 16, 2019
5cc2584
Reworded sentence
Oct 16, 2019
cda607c
Merge branch 'master' into RichNotifications
angelgolfer-ms Oct 17, 2019
9f07156
Addressing some comments.
angelgolfer-ms Oct 18, 2019
737bc06
Merge branch 'RichNotifications' of https://github.com/piotrci/micros…
angelgolfer-ms Oct 18, 2019
7b03df5
Merge branch 'master' into RichNotifications
angelgolfer-ms Oct 18, 2019
99f0191
Continued incorporating readability improvements.
angelgolfer-ms Oct 19, 2019
a043cff
Merge branch 'RichNotifications' of https://github.com/piotrci/micros…
angelgolfer-ms Oct 19, 2019
d91fc75
Merge branch 'master' into RichNotifications
angelgolfer-ms Oct 19, 2019
040705a
Made proper spelling "life cycle" two words.
angelgolfer-ms Oct 21, 2019
7fd97ab
More edits for readability.
angelgolfer-ms Oct 21, 2019
2be5095
Last edits for the night...
angelgolfer-ms Oct 21, 2019
ef63397
Added missing period.
angelgolfer-ms Oct 21, 2019
0ada91a
Merge branch 'master' into RichNotifications
angelgolfer-ms Oct 21, 2019
ca3e6db
Merge branch 'master' into RichNotifications
angelgolfer-ms Oct 22, 2019
244925f
Further edits for readability.
angelgolfer-ms Oct 22, 2019
daaa102
Merge branch 'RichNotifications' of https://github.com/piotrci/micros…
angelgolfer-ms Oct 22, 2019
cc4c267
Merge branch 'master' into RichNotifications
angelgolfer-ms Oct 22, 2019
9215781
Finished incorporating feedback and edits.
angelgolfer-ms Oct 23, 2019
46488f8
Merge branch 'master' into RichNotifications
angelgolfer-ms Oct 23, 2019
b6dce80
Final edits for readability.
angelgolfer-ms Oct 23, 2019
526df5e
Merge branch 'RichNotifications' of https://github.com/piotrci/micros…
angelgolfer-ms Oct 23, 2019
fe1544f
Tighten long article with mini TOCs.
angelgolfer-ms Oct 23, 2019
33575de
Tied loose ends for the review.
angelgolfer-ms Oct 23, 2019
6b51b79
Fixed link.
angelgolfer-ms Oct 23, 2019
8eff113
Merge branch 'master' of https://github.com/microsoftgraph/microsoft-…
Oct 29, 2019
415dc20
Added firehose resource paths (all tenant)
Oct 29, 2019
57d7411
Changed examples to use /allMessages
Oct 29, 2019
fd30ae1
Update webhooks.md
nkramer Oct 30, 2019
943b747
Update subscription-post-subscriptions.md
nkramer Oct 30, 2019
8e1d09b
Update subscription-post-subscriptions.md
nkramer Oct 30, 2019
e7f2c3d
Update chatmessage.md
nkramer Oct 30, 2019
28c0e27
Update chatmessage.md
nkramer Oct 30, 2019
d06f28d
Update subscription-post-subscriptions.md
nkramer Oct 30, 2019
e1f99a7
Fixed a copy and paste error
piotrci Oct 30, 2019
3ed4650
Removed repeated table row for contact.
angelgolfer-ms Oct 30, 2019
f50ea82
Merge branch 'master' into RichNotifications
angelgolfer-ms Oct 30, 2019
f82eb5d
Update changelog.md
nkramer Dec 2, 2019
035322a
Merge branch 'master' of https://github.com/microsoftgraph/microsoft-…
Dec 3, 2019
6761d2c
Moved changelog entry to a different month
Dec 3, 2019
3a271ef
Merge branch 'RichNotifications' of https://github.com/piotrci/micros…
Dec 3, 2019
970c0f4
Added back the Teams change log entry
Dec 3, 2019
b1eb412
Edits.
Lauragra Dec 3, 2019
d91313e
Fix structure of topic, minor edits.
Lauragra Dec 3, 2019
b01d019
remove en-us from links
nkramer Dec 4, 2019
118d3ab
Edits.
Lauragra Dec 5, 2019
544eb39
Fix validation issue.
Lauragra Dec 5, 2019
4a457f3
Merge branch 'master' into RichNotifications
Lauragra Dec 5, 2019
File filter...
Filter file types
Jump to…
Jump to file or symbol
Failed to load files and symbols.

Always

Just for now

@@ -15,12 +15,14 @@ Subscribes a listener application to receive notifications when the requested ty

## Permissions

Creating a subscription requires read scope to the resource. For example, to get notifications on messages, your app needs the `Mail.Read` permission.
Creating a subscription requires read permission to the resource. For example, to get notifications on messages, your app needs the Mail.Read permission.

Depending on the resource and the permission type (delegated or application) requested, the permission specified in the following table is the least privileged required to call this API. To learn more, including how to choose permissions, see [Permissions](/graph/permissions-reference).

| Supported resource | Delegated (work or school account) | Delegated (personal Microsoft account) | Application |
|:-----|:-----|:-----|:-----|
|[chatMessage](../resources/chatmessage.md) (/teams/{id}/channels/{id}/messages) | Not supported | Not supported | ChannelMessage.Read.All |
|[chatMessage](../resources/chatmessage.md) (/chats/{id}/messages) | Not supported | Not supported | Chat.Read.All |
|[contact](../resources/contact.md) | Contacts.Read | Contacts.Read | Contacts.Read |
|[driveItem](../resources/driveitem.md) (user's personal OneDrive) | Not supported | Files.ReadWrite | Not supported |
|[driveItem](../resources/driveitem.md) (OneDrive for Business) | Files.ReadWrite.All | Not supported | Files.ReadWrite.All |
@@ -31,7 +33,7 @@ Creating a subscription requires read scope to the resource. For example, to get
|[security alert](../resources/alert.md) | SecurityEvents.ReadWrite.All | Not supported | SecurityEvents.ReadWrite.All |
|[user](../resources/user.md) | User.Read.All | User.Read.All | User.Read.All |

> **Note:** There are additional limitations for subscriptions on OneDrive and Outlook items. The limitations apply to creating as well as managing subscriptions (getting, updating, and deleting subscriptions).
> **Note:** Additional limitations apply for subscriptions on OneDrive and Outlook items. The limitations apply to creating as well as managing (getting, updating, and deleting) subscriptions.
- On personal OneDrive, you can subscribe to the root folder or any subfolder in that drive. On OneDrive for Business, you can subscribe to only the root folder. Notifications are sent for the requested types of changes on the subscribed folder, or any file, folder, or other **driveItem** instances in its hierarchy. You cannot subscribe to **drive** or **driveItem** instances that are not folders, such as individual files.

@@ -57,16 +59,16 @@ POST /subscriptions

## Response

If successful, this method returns `201 Created` response code and a [subscription](../resources/subscription.md) object in the response body.
If successful, this method returns a `201 Created` response code and a [subscription](../resources/subscription.md) object in the response body.

## Example

##### Request
### Request

In the request body, supply a JSON representation of the [subscription](../resources/subscription.md) object.
The `clientState` field is optional.

This sample request creates a subscription for notifications about new mail received by the currently signed in user.
This request creates a subscription for notifications about new mail received by the currently signed in user.

# [HTTP](#tab/http)
<!-- {
@@ -101,7 +103,7 @@ Content-type: application/json
---


The following are valid values for the resource property:
The following are valid values for the resource property.

| Resource type | Examples |
|:------ |:----- |
@@ -114,9 +116,11 @@ The following are valid values for the resource property:
|Drives|me/drive/root|
|Security alert|security/alerts?$filter=status eq ‘New’|

##### Response
### Response

Here is an example of the response. Note: The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call.
The following example shows the response.

>**Note:** The response object shown here might be shortened for readability. All the properties will be returned from an actual call.
<!-- {
"blockType": "response",
"truncated": true,
@@ -143,7 +147,7 @@ Content-length: 252

## Notification endpoint validation

The subscription notification endpoint (specified in the `notificationUrl` property) must be capable of responding to a validation request as described in [Set up notifications for changes in user data](/graph/webhooks#notification-endpoint-validation). If validation fails, the request to create the subscription returns a 400 Bad Request error.
The subscription notification endpoint (specified in the **notificationUrl** property) must be capable of responding to a validation request as described in [Set up notifications for changes in user data](/graph/webhooks#notification-endpoint-validation). If validation fails, the request to create the subscription returns a 400 Bad Request error.

<!-- uuid: 8fcb5dbc-d5aa-4681-8e31-b001d5168d79
2015-10-25 14:57:30 UTC -->
@@ -17,16 +17,22 @@ Represents an individual chat message within a [channel](channel.md) or [chat](c

| Method | Return Type |Description|
|:---------------|:--------|:----------|
|**Channel messages**| | |
|[List channel chatMessage](../api/channel-list-messages.md) | [chatMessage](chatmessage.md) collection | List of all root chat messages in a channel.|
|[Get chatMessages in a channel delta](../api/chatmessage-delta.md) | [chatMessage](../resources/chatmessage.md) | Get incremental chat messages in a channel. |
|[Create subscription for new channel messages](../api/subscription-post-subscriptions.md) | [subscription](subscription.md) | Listen for new and edited channel messages, and reactions to them. |
|[Get channel chatMessage](../api/channel-get-message.md) | [chatMessage](chatmessage.md) | Get a single root chat message from a channel.|
|**Channel message replies**| | |
|[List replies to a chatMessage](../api/channel-list-messagereplies.md) | [chatMessage](chatmessage.md) collection| List of all replies to a chat message in channel.|
|[Get a reply to a chatMessage](../api/channel-get-messagereply.md) | [chatMessage](chatmessage.md)| Get a single reply to a chat message in a channel.|
|[Create chatMessage in a channel](../api/channel-post-messages.md) | [chatMessage](chatmessage.md)| Create a new top-level chat message in a channel.|
|[Reply to a chatMessage in a channel](../api/channel-post-messagereply.md) | [chatMessage](chatmessage.md)| Reply to an existing chat message in a channel.|
|**1:1 and group chat messages**| | |
|[Create chatMessage in a chat](../api/chat-post-messages.md) | [chatMessage](chatmessage.md)| Send a chat message in an existing 1:1 or group chat conversation.|
|[List chatMessages in a chat](../api/chatmessage-list.md) | [chatMessage](../resources/chatmessage.md) | List chat messages in a 1:1 or group chat. |
|[Create subscription for new chat messages](../api/subscription-post-subscriptions.md) | [subscription](subscription.md) | Listen for new and edited chat messages, and reactions to them. |
|[Get chatMessage in chat](../api/chatmessage-get.md) | [chatMessage](../resources/chatmessage.md) | Get a single chat message in a chat. |
|**Hosted content**| | |
|[List all hosted content](../api/chatmessage-list-chatmessagehostedcontents.md) | [chatMessageHostedContent](../resources/chatmessagehostedcontent.md) collection| Get all hosted content in a chat message.|
|[Get hosted content](../api/chatmessagehostedcontent-get.md) | [chatMessageHostedContent](../resources/chatmessagehostedcontent.md) | Get hosted content from a chat message.|

@@ -13,12 +13,57 @@ ms.prod: ""

A subscription allows a client app to receive notifications about changes to data in Microsoft Graph. Currently, subscriptions are enabled for the following resources:

- A [message][], [event][], or [contact][] in Outlook
- A [conversation][] of an Office 365 group
- An [alert][] from the Microsoft Graph Security API
- A [chatMessage][] sent via teams or channels in Microsoft Teams
- A [conversation][] in an Office 365 group
- Content in the hierarchy of a root folder [driveItem][] in OneDrive for Business, or of a root folder or subfolder [driveItem][] in a user's personal OneDrive
- A [message][], [event][], or [contact][] in Outlook
- A [user][] or [group][] in Azure Active Directory
- An [alert][] from the Microsoft Graph Security API

## Methods

| Method | Return Type | Description |
|:-------|:------------|:------------|
| [Create subscription](../api/subscription-post-subscriptions.md) | [subscription](subscription.md) | Subscribes a listener application to receive notifications when Microsoft Graph data changes. |
| [Update subscription](../api/subscription-update.md) | [subscription](subscription.md) | Renew a subscription by updating its expiration time. |
| [List subscriptions](../api/subscription-list.md) | [subscription](subscription.md) | Lists active subscriptions. |
| [Get subscription](../api/subscription-get.md) | [subscription](subscription.md) | Read properties and relationships of subscription object. |
| [Delete subscription](../api/subscription-delete.md) | None | Delete a subscription object. |

## Properties

| Property | Type | Description |
|:---------|:-----|:------------|
| changeType | string | Indicates the type of change in the subscribed resource that will raise a notification. The supported values are: `created`, `updated`, `deleted`. Multiple values can be combined using a comma-separated list. Required. <br><br>Note: Drive root item notifications support only the `updated` changeType. User and group notifications support `updated` and `deleted` changeType. |
| notificationUrl | string | The URL of the endpoint that receives the notifications. This URL must make use of the HTTPS protocol. Required. |
| lifecycleNotificationUrl | string | The URL of the endpoint that receives lifecycle notifications, including `subscriptionRemoved` and `missed` notifications. If not provided, those notifications will be delivered to **notificationUrl**. This URL must make use of the HTTPS protocol. Optional. <br><br>[Read more](/graph/webhooks-outlook-authz) about how Outlook resources use lifecycle notifications. |
| resource | string | Specifies the resource that will be monitored for changes. Do not include the base URL (`https://graph.microsoft.com/beta/`). Required. |
| expirationDateTime | DateTimeOffset | Specifies the date and time when the webhook subscription expires. The time is in UTC, and can be an amount of time from subscription creation that varies for the resource subscribed to. See the table below for maximum supported subscription length of time. Required. |
| clientState | string | Specifies the value of the **clientState** property sent by the service in each notification. The maximum length is 255 characters. The client can check that the notification came from the service by comparing the value of the **clientState** property sent with the subscription with the value of the **clientState** property received with each notification. Optional. |
| id | string | Unique identifier for the subscription. Read-only. |
| applicationId | string | Identifier of the application used to create the subscription. Read-only. |
| creatorId | string | Identifier of the user or service principal that created the subscription. If the app used delegated permissions to create the subscription, this field contains the ID of the signed-in user the app called on behalf of. If the app used application permissions, this field contains the ID of the service principal corresponding to the app. Read-only. |
| includeResourceData | Boolean | When set to `true`, change notifications [include resource data](/graph/webhooks-with-resource-data) (such as content of a chat message). Optional. |
| encryptionCertificate | string | A base64-encoded representation of a certificate with a public key used to encrypt resource data in notifications. Optional. Required when **includeResourceData** is true. |
| encryptionCertificateId | string | A custom app-provided identifier to help identify the certificate needed to decrypt resource data. Optional. Required when **includeResourceData** is true. |

### Maximum length of subscription per resource type

| Resource | Maximum expiration time |
|:--------------------|:-------------------------|
| Security **alert** | 43200 minutes (under 30 days) |
| Teams **chatMessage** | 60 minutes (1 hour) |
| Group **conversation** | 4230 minutes (under 3 days) |
| OneDrive **driveItem** | 4230 minutes (under 3 days) |
| Outlook **message**, **event**, **contact** | 4230 minutes (under 3 days) |
| **user**, **group**, other directory resources | 4230 minutes (under 3 days) |


> **Note:** Existing applications and new applications should not exceed the supported value. In the future, any requests to create or renew a subscription beyond the maximum value will fail.
## Relationships

None.

## JSON representation

@@ -42,52 +87,13 @@ Here is a JSON representation of the resource.
"expirationDateTime": "string (timestamp)",
"id": "string (identifier)",
"clientState": "string",
"creatorId": "string"
"creatorId": "string",
"includeResourceData": "boolean",
"encryptionCertificate": "string",
"encryptionCertificateId": "string"
}
```

## Properties

| Property | Type | Description |
|:---------|:-----|:------------|
| changeType | string | Required. Indicates the type of change in the subscribed resource that will raise a notification. The supported values are: `created`, `updated`, `deleted`. Multiple values can be combined using a comma-separated list. <br><br>Note: Drive root item notifications support only the `updated` changeType. User and group notifications support `updated` and `deleted` changeType. |
| notificationUrl | string | Required. The URL of the endpoint that receives the notifications. This URL must make use of the HTTPS protocol. |
| lifecycleNotificationUrl | string | Optional. The URL of the endpoint that receives lifecycle notifications, including `subscriptionRemoved` and `missed` notifications. If not provided, those notifications will be delivered to **notificationUrl**. [Read more](/graph/webhooks-outlook-authz.md) about how Outlook resources use lifecycle notifications. This URL must make use of the HTTPS protocol. |
| resource | string | Required. Specifies the resource that will be monitored for changes. Do not include the base URL (`https://graph.microsoft.com/beta/`). |
| expirationDateTime | DateTimeOffset | Required. Specifies the date and time when the webhook subscription expires. The time is in UTC, and can be an amount of time from subscription creation that varies for the resource subscribed to. See the table below for maximum supported subscription length of time. |
| clientState | string | Optional. Specifies the value of the `clientState` property sent by the service in each notification. The maximum length is 255 characters. The client can check that the notification came from the service by comparing the value of the `clientState` property sent with the subscription with the value of the `clientState` property received with each notification. |
| id | string | Unique identifier for the subscription. Read-only. |
| applicationId | string | Identifier of the application used to create the subscription. Read-only. |
| creatorId | string | Identifier of the user or service principal that created the subscription. If the app used delegated permissions to create the subscription, this field contains the id of the signed-in user the app called on behalf of. If the app used application permissions, this field contains the id of the service principal corresponding to the app. Read-only. |

## Maximum length of subscription per resource type

| Resource | Maximum Expiration Time |
|:--------------------|:-------------------------|
| User, group, other directory resources | 4230 minutes (under 3 days) |
| Mail | 4230 minutes (under 3 days) |
| Calendar | 4230 minutes (under 3 days) |
| Contacts | 4230 minutes (under 3 days) |
| Group conversations | 4230 minutes (under 3 days) |
| Drive root items | 4230 minutes (under 3 days) |
| Security alerts | 43200 minutes (under 30 days) |

> **Note:** Existing applications and new applications should not exceed the supported value. In the future, any requests to create or renew a subscription beyond the maximum value will fail.
## Relationships

None

## Methods

| Method | Return Type | Description |
|:-------|:------------|:------------|
| [Create subscription](../api/subscription-post-subscriptions.md) | [subscription](subscription.md) | Subscribes a listener application to receive notifications when Microsoft Graph data changes. |
| [Update subscription](../api/subscription-update.md) | [subscription](subscription.md) | Renew a subscription by updating its expiration time. |
| [List subscriptions](../api/subscription-list.md) | [subscription](subscription.md) | Lists active subscriptions. |
| [Get subscription](../api/subscription-get.md) | [subscription](subscription.md) | Read properties and relationships of subscription object. |
| [Delete subscription](../api/subscription-delete.md) | None | Delete a subscription object. |

[contact]: ./contact.md
[conversation]: ./conversation.md
[driveItem]: ./driveitem.md
@@ -96,6 +102,7 @@ None
[message]: ./message.md
[user]: ./user.md
[alert]: ./alert.md
[chatMessage]: ./chatmessage.md

<!-- uuid: 8fcb5dbc-d5aa-4681-8e31-b001d5168d79
2015-10-25 14:57:30 UTC -->
@@ -23,6 +23,7 @@ Using the Microsoft Graph API, an app can subscribe to changes on the following
- Office 365 group [conversation][]
- Content within the hierarchy of _any folder_ [driveItem][] on a user's personal OneDrive
- Content within the hierarchy of the _root folder_ [driveItem][] on OneDrive for Business
- [chatMessage][]
- Security [alert][]

## Permissions
@@ -33,7 +34,7 @@ In general, subscription operations require read permission to the resource. For
| :------------------------------------- | :------------------------------------------------------------------------------------ |
| Delegated - work or school account | [alert][], [contact][], [conversation][], [driveItem][], [event][], [group][], [message][], [user][]|
| Delegated - personal Microsoft account | [contact][], [driveItem][], [event][], [message][] |
| Application | [alert][], [contact][], [driveItem][], [event][], [group][], [message][], [user][]|
| Application | [alert][], [contact][], [driveItem][], [event][], [group][], [message][], [user][], [chatMessage][]|

## See also

@@ -44,6 +45,7 @@ In general, subscription operations require read permission to the resource. For
- [Update subscription](../api/subscription-update.md)
- [Delete subscription](../api/subscription-delete.md)

[chatMessage]: ./chatmessage.md
[contact]: ./contact.md
[conversation]: ./conversation.md
[driveItem]: ./driveitem.md
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.