ms-graph-api-0.11.0.0: Microsoft Graph API
Safe HaskellSafe-Inferred
LanguageHaskell2010

MSGraphAPI.ChangeNotifications.Subscription

Description

Subscription to change notifications through webhooks

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

Currently, subscriptions are enabled for the following resources. Note: Subscriptions to resources marked with an asterisk (*) are supported on the /beta endpoint only.

  • An alert from the Microsoft Graph Security API.
  • A baseTask (deprecated) of a user in Microsoft To-Do.*
  • A callRecord produced after a call or meeting in Microsoft Teams.
  • A channel in Microsoft Teams.
  • A chat in Microsoft Teams.
  • A chatMessage sent via teams or channels in Microsoft Teams.
  • A conversation in a Microsoft 365 group.
  • A conversationMember in a team, channel, or chat in Microsoft Teams.
  • 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 Group in Azure Active Directory.
  • A list under a SharePoint site.
  • A message, event, or contact in Outlook.
  • An online meeting in Microsoft Teams.*
  • The presence of a user in Microsoft Teams.
  • A team in Microsoft Teams.
  • A printer (when a print job for the printer gets to JobFetchable state - ready to be fetched for printing) and a printTaskDefinition in Universal Print. For more information, see Subscribe to change notifications from cloud printing APIs.
  • A todoTask of a user in Microsoft To Do (webhooks are only available in the worldwide endpoint and no other national clouds).
  • A User in Azure Active Directory.

See https://learn.microsoft.com/en-us/graph/webhooks#supported-resources for an up to date list of resources that can produce change notifications

see https://learn.microsoft.com/en-us/graph/change-notifications-delivery-webhooks?tabs=http for protocol details

Synopsis

Sender

createSubscription Source #

Arguments

:: FromJSON b 
=> Subscription

Configuration of the change webhook to be created by this request

-> AccessToken 
-> Req b 

Create a subscription https://learn.microsoft.com/en-us/graph/api/subscription-post-subscriptions?view=graph-rest-1.0&tabs=http

 POST https://graph.microsoft.com/v1.0/subscriptions

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

NB2: When you create a subscription to receive change notifications through webhooks, MS Graph first validates the notification endpoint that's provided in the notificationUrl property of the subscription request. MS Graph encodes a validation token and includes it in a POST request to the notification URL, the client must properly decode the URL to get the plain text validation token, and respond within 10 seconds. See https://learn.microsoft.com/en-us/graph/change-notifications-delivery-webhooks?tabs=http#notificationurl-validation for full details

types

data Subscription Source #

A subscription allows a client app to receive change notifications about changes to data in Microsoft Graph.

https://learn.microsoft.com/en-us/graph/api/resources/subscription?view=graph-rest-1.0

Constructors

Subscription 

Fields

  • cnsChangeType :: NonEmpty ChangeType

    Type of change in the subscribed resource that will raise a change notification.

  • cnsClientState :: Text

    Value of the clientState property sent by the service in each change notification. The maximum length is 128 characters. The client can check that the change 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 change notification.

  • cnsExpirationDateTime :: UTCTime

    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. For the maximum supported subscription length of time, see https://learn.microsoft.com/en-us/graph/api/resources/subscription?view=graph-rest-1.0#maximum-length-of-subscription-per-resource-type

  • cnsNotificationUrl :: Text

    URL of the endpoint that will receive the change notifications. This URL must make use of the HTTPS protocol. Any query string parameter included in the notificationUrl property will be included in the HTTP POST request when Microsoft Graph sends the change notifications.

  • cnsResource :: Text

    The resource that will be monitored for changes, e.g. "/users/{id}/drive/root". Do not include the base URL (https://graph.microsoft.com/v1.0/)

Instances

Instances details
FromJSON Subscription Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

ToJSON Subscription Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

Generic Subscription Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

Associated Types

type Rep Subscription :: Type -> Type #

Show Subscription Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

Eq Subscription Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

type Rep Subscription Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

type Rep Subscription = D1 ('MetaData "Subscription" "MSGraphAPI.ChangeNotifications.Subscription" "ms-graph-api-0.11.0.0-5uHIC7CmGj38m31PNkaDsF" 'False) (C1 ('MetaCons "Subscription" 'PrefixI 'True) ((S1 ('MetaSel ('Just "cnsChangeType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty ChangeType)) :*: S1 ('MetaSel ('Just "cnsClientState") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :*: (S1 ('MetaSel ('Just "cnsExpirationDateTime") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UTCTime) :*: (S1 ('MetaSel ('Just "cnsNotificationUrl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "cnsResource") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))))

data ChangeType Source #

the type of change in the subscribed resource that will raise a change notification.

Note:

  • Drive root item and list change notifications support only the updated changeType.
  • User and group change notifications support updated and deleted changeType. Use updated to receive notifications when user or group is created, updated or soft deleted. Use deleted to receive notifications when user or group is permanently deleted.

Constructors

CTCreated

created

CTUpdated

updated

CTDeleted

deleted

Instances

Instances details
FromJSON ChangeType Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

ToJSON ChangeType Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

Generic ChangeType Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

Associated Types

type Rep ChangeType :: Type -> Type #

Show ChangeType Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

Eq ChangeType Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

type Rep ChangeType Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

type Rep ChangeType = D1 ('MetaData "ChangeType" "MSGraphAPI.ChangeNotifications.Subscription" "ms-graph-api-0.11.0.0-5uHIC7CmGj38m31PNkaDsF" 'False) (C1 ('MetaCons "CTCreated" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CTUpdated" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CTDeleted" 'PrefixI 'False) (U1 :: Type -> Type)))

Receiver

types

data ChangeNotification a Source #

Constructors

ChangeNotification 

Fields

  • cnChangeType :: ChangeType

    type of change that will raise the change notification.

  • cnClientState :: Text

    Value of the clientState property sent in the subscription request (if any). The maximum length is 255 characters. The client can check whether the change notification came from the service by comparing the values of the clientState property.

  • cnId :: Text

    Unique ID for the notification.

  • cnResource :: Text

    The URI of the resource that emitted the change notification relative to https://graph.microsoft.com

  • cnResourceData :: Maybe a
     
  • cnSubscriptionId :: Text
     
  • cnTenantId :: Text
     

Instances

Instances details
FromJSON a => FromJSON (ChangeNotification a) Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

Generic (ChangeNotification a) Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

Associated Types

type Rep (ChangeNotification a) :: Type -> Type #

Show a => Show (ChangeNotification a) Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

Eq a => Eq (ChangeNotification a) Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

type Rep (ChangeNotification a) Source # 
Instance details

Defined in MSGraphAPI.ChangeNotifications.Subscription

type Rep (ChangeNotification a) = D1 ('MetaData "ChangeNotification" "MSGraphAPI.ChangeNotifications.Subscription" "ms-graph-api-0.11.0.0-5uHIC7CmGj38m31PNkaDsF" 'False) (C1 ('MetaCons "ChangeNotification" 'PrefixI 'True) ((S1 ('MetaSel ('Just "cnChangeType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ChangeType) :*: (S1 ('MetaSel ('Just "cnClientState") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "cnId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) :*: ((S1 ('MetaSel ('Just "cnResource") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "cnResourceData") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe a))) :*: (S1 ('MetaSel ('Just "cnSubscriptionId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "cnTenantId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))))