-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Client for the Nylas API -- -- A client for the Nylas HTTP API, powered by lens and pipes. @package nylas @version 0.1.0 module Network.Nylas.Types type Url = String -- | The access token from Nylas to access data from a single inbox. newtype AccessToken AccessToken :: Text -> AccessToken -- | The unique ID for a Nylas object. newtype NylasId NylasId :: Text -> NylasId [_nylasId] :: NylasId -> Text -- | A tuple of an email address and the optional name accompanying it, for -- participants in Threads and Messages. data Mailbox Mailbox :: Maybe Text -> Text -> Mailbox [_mailboxName] :: Mailbox -> Maybe Text [_mailboxEmail] :: Mailbox -> Text -- | A file attached to a Message. data File File :: NylasId -> Text -> Text -> Int -> Maybe Text -> File [_fileId] :: File -> NylasId [_fileContentType] :: File -> Text [_fileName] :: File -> Text [_fileSize] :: File -> Int [_fileContentId] :: File -> Maybe Text -- | The time a message was sent. newtype MessageTime MessageTime :: UTCTime -> MessageTime [_utcTime] :: MessageTime -> UTCTime -- | Whether a Message has been read in the inbox. data ReadStatus MessageRead :: ReadStatus MessageUnread :: ReadStatus -- | Whether a Message or Thread has been starred in the -- inbox. data StarStatus Starred :: StarStatus Unstarred :: StarStatus -- | A Gmail-style label applied to a Message or Thread. data Label Label :: NylasId -> Text -> Text -> Label [_labelId] :: Label -> NylasId [_labelName] :: Label -> Text [_labelDisplayName] :: Label -> Text -- | An IMAP-style folder in which Messages can reside. A -- Thread can contain Messages spanning multiple folders. data Folder Folder :: NylasId -> Text -> Text -> Folder [_folderId] :: Folder -> NylasId [_folderName] :: Folder -> Text [_folderDisplayName] :: Folder -> Text -- | An email message. data Message Message :: NylasId -> Text -> [Mailbox] -> [Mailbox] -> [Mailbox] -> [Mailbox] -> MessageTime -> NylasId -> [File] -> Text -> Maybe [Label] -> Maybe Folder -> Text -> ReadStatus -> StarStatus -> Message [_messageId] :: Message -> NylasId [_messageSubject] :: Message -> Text [_messageSenders] :: Message -> [Mailbox] [_messageToRecipients] :: Message -> [Mailbox] [_messageCcRecipients] :: Message -> [Mailbox] [_messageBccRecipients] :: Message -> [Mailbox] [_messageTime] :: Message -> MessageTime [_messageThreadId] :: Message -> NylasId [_messageFiles] :: Message -> [File] [_messageSnippet] :: Message -> Text [_messageLabels] :: Message -> Maybe [Label] [_messageFolder] :: Message -> Maybe Folder [_messageBody] :: Message -> Text [_messageRead] :: Message -> ReadStatus [_messageStarred] :: Message -> StarStatus -- | Whether a Thread contains any attached Files. data AttachmentsStatus HasAttachments :: AttachmentsStatus NoAttachments :: AttachmentsStatus -- | A chain of Messages. data Thread Thread :: NylasId -> Text -> MessageTime -> MessageTime -> [Mailbox] -> Text -> Maybe [Label] -> Maybe [Folder] -> [NylasId] -> [NylasId] -> Int -> StarStatus -> AttachmentsStatus -> Thread [_threadId] :: Thread -> NylasId [_threadSubject] :: Thread -> Text [_threadFirstTimestamp] :: Thread -> MessageTime [_threadLastTimestamp] :: Thread -> MessageTime [_threadParticipants] :: Thread -> [Mailbox] [_threadSnippet] :: Thread -> Text [_threadLabels] :: Thread -> Maybe [Label] [_threadFolders] :: Thread -> Maybe [Folder] [_threadMessageIds] :: Thread -> [NylasId] [_threadDraftIds] :: Thread -> [NylasId] [_threadVersion] :: Thread -> Int [_threadStarred] :: Thread -> StarStatus [_threadAttachments] :: Thread -> AttachmentsStatus -- | The transactional cursor as of a certain Delta. When requesting -- a stream of updates, clients should provide the Cursor for the -- last Delta they successfully consumed. newtype Cursor Cursor :: Text -> Cursor [_cursorId] :: Cursor -> Text -- | An error in a streaming pipeline involving consumeDeltas. data StreamingError -- | An error in parsing JSON ParsingError :: DecodingError -> (Producer ByteString IO ()) -> StreamingError -- | An error produced by clients while consuming Deltas ConsumerError :: Text -> StreamingError -- | The change operation wrapping the affected object in a Delta. -- If the object has been created or modified (as opposed to deleted), -- the object is nested within the Change. data Change a Create :: a -> Change a Modify :: a -> Change a Delete :: Change a -- | The type of modification to the inbox the Delta contains. data DeltaChange CalendarChange :: DeltaChange ContactChange :: DeltaChange EventChange :: DeltaChange FileChange :: DeltaChange MessageChange :: (Change Message) -> DeltaChange DraftChange :: DeltaChange ThreadChange :: (Change Thread) -> DeltaChange LabelChange :: DeltaChange FolderChange :: DeltaChange -- | A change to an inbox with a transactional Cursor to continue -- processing from this Delta in the future. data Delta Delta :: Cursor -> NylasId -> DeltaChange -> Delta [_deltaCursor] :: Delta -> Cursor [_deltaObjectId] :: Delta -> NylasId [_deltaChange] :: Delta -> DeltaChange nylasId :: Iso' NylasId Text mailboxName :: Lens' Mailbox (Maybe Text) mailboxEmail :: Lens' Mailbox Text fileSize :: Lens' File Int fileName :: Lens' File Text fileId :: Lens' File NylasId fileContentType :: Lens' File Text fileContentId :: Lens' File (Maybe Text) utcTime :: Iso' MessageTime UTCTime _MessageUnread :: Prism' ReadStatus () _MessageRead :: Prism' ReadStatus () _Unstarred :: Prism' StarStatus () _Starred :: Prism' StarStatus () labelName :: Lens' Label Text labelId :: Lens' Label NylasId labelDisplayName :: Lens' Label Text folderName :: Lens' Folder Text folderId :: Lens' Folder NylasId folderDisplayName :: Lens' Folder Text messageToRecipients :: Lens' Message [Mailbox] messageTime :: Lens' Message MessageTime messageThreadId :: Lens' Message NylasId messageSubject :: Lens' Message Text messageStarred :: Lens' Message StarStatus messageSnippet :: Lens' Message Text messageSenders :: Lens' Message [Mailbox] messageRead :: Lens' Message ReadStatus messageLabels :: Lens' Message (Maybe [Label]) messageId :: Lens' Message NylasId messageFolder :: Lens' Message (Maybe Folder) messageFiles :: Lens' Message [File] messageCcRecipients :: Lens' Message [Mailbox] messageBody :: Lens' Message Text messageBccRecipients :: Lens' Message [Mailbox] _NoAttachments :: Prism' AttachmentsStatus () _HasAttachments :: Prism' AttachmentsStatus () threadVersion :: Lens' Thread Int threadSubject :: Lens' Thread Text threadStarred :: Lens' Thread StarStatus threadSnippet :: Lens' Thread Text threadParticipants :: Lens' Thread [Mailbox] threadMessageIds :: Lens' Thread [NylasId] threadLastTimestamp :: Lens' Thread MessageTime threadLabels :: Lens' Thread (Maybe [Label]) threadId :: Lens' Thread NylasId threadFolders :: Lens' Thread (Maybe [Folder]) threadFirstTimestamp :: Lens' Thread MessageTime threadDraftIds :: Lens' Thread [NylasId] threadAttachments :: Lens' Thread AttachmentsStatus cursorId :: Iso' Cursor Text _Delete :: Prism' (Change a_ahoN) () _Modify :: Prism' (Change a_ahoN) a_ahoN _Create :: Prism' (Change a_ahoN) a_ahoN _FolderChange :: Prism' DeltaChange () _LabelChange :: Prism' DeltaChange () _ThreadChange :: Prism' DeltaChange (Change Thread) _DraftChange :: Prism' DeltaChange () _MessageChange :: Prism' DeltaChange (Change Message) _FileChange :: Prism' DeltaChange () _EventChange :: Prism' DeltaChange () _ContactChange :: Prism' DeltaChange () _CalendarChange :: Prism' DeltaChange () deltaObjectId :: Lens' Delta NylasId deltaCursor :: Lens' Delta Cursor deltaChange :: Lens' Delta DeltaChange -- | A list of the recipients of all types for a Message. recipients :: Message -> [Mailbox] instance Data.Aeson.Types.Class.FromJSON Network.Nylas.Types.Mailbox instance Data.Aeson.Types.Class.FromJSON Network.Nylas.Types.File instance Data.Aeson.Types.Class.FromJSON Network.Nylas.Types.MessageTime instance Data.Aeson.Types.Class.FromJSON Network.Nylas.Types.StarStatus instance Data.Aeson.Types.Class.FromJSON Network.Nylas.Types.Label instance Data.Aeson.Types.Class.FromJSON Network.Nylas.Types.Folder instance Data.Aeson.Types.Class.FromJSON Network.Nylas.Types.Message instance Data.Aeson.Types.Class.FromJSON Network.Nylas.Types.AttachmentsStatus instance Data.Aeson.Types.Class.FromJSON Network.Nylas.Types.Thread instance Data.Aeson.Types.Class.FromJSON Network.Nylas.Types.Cursor instance Data.Aeson.Types.Class.FromJSON Network.Nylas.Types.NylasId instance Data.Aeson.Types.Class.FromJSON Network.Nylas.Types.Delta instance Data.Aeson.Types.Class.ToJSON Network.Nylas.Types.Delta instance GHC.Generics.Selector Network.Nylas.Types.S1_0_0Cursor instance GHC.Generics.Constructor Network.Nylas.Types.C1_0Cursor instance GHC.Generics.Datatype Network.Nylas.Types.D1Cursor instance GHC.Generics.Selector Network.Nylas.Types.S1_0_0MessageTime instance GHC.Generics.Constructor Network.Nylas.Types.C1_0MessageTime instance GHC.Generics.Datatype Network.Nylas.Types.D1MessageTime instance GHC.Generics.Selector Network.Nylas.Types.S1_0_0NylasId instance GHC.Generics.Constructor Network.Nylas.Types.C1_0NylasId instance GHC.Generics.Datatype Network.Nylas.Types.D1NylasId instance GHC.Show.Show Network.Nylas.Types.Delta instance GHC.Classes.Eq Network.Nylas.Types.Delta instance GHC.Show.Show Network.Nylas.Types.DeltaChange instance GHC.Classes.Eq Network.Nylas.Types.DeltaChange instance GHC.Show.Show a => GHC.Show.Show (Network.Nylas.Types.Change a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Network.Nylas.Types.Change a) instance GHC.Generics.Generic Network.Nylas.Types.Cursor instance GHC.Show.Show Network.Nylas.Types.Cursor instance GHC.Classes.Eq Network.Nylas.Types.Cursor instance GHC.Show.Show Network.Nylas.Types.Thread instance GHC.Classes.Eq Network.Nylas.Types.Thread instance GHC.Show.Show Network.Nylas.Types.AttachmentsStatus instance GHC.Classes.Eq Network.Nylas.Types.AttachmentsStatus instance GHC.Show.Show Network.Nylas.Types.Message instance GHC.Classes.Eq Network.Nylas.Types.Message instance GHC.Show.Show Network.Nylas.Types.Folder instance GHC.Classes.Eq Network.Nylas.Types.Folder instance GHC.Show.Show Network.Nylas.Types.Label instance GHC.Classes.Eq Network.Nylas.Types.Label instance GHC.Show.Show Network.Nylas.Types.StarStatus instance GHC.Classes.Eq Network.Nylas.Types.StarStatus instance GHC.Show.Show Network.Nylas.Types.ReadStatus instance GHC.Classes.Eq Network.Nylas.Types.ReadStatus instance GHC.Generics.Generic Network.Nylas.Types.MessageTime instance GHC.Show.Show Network.Nylas.Types.MessageTime instance GHC.Classes.Eq Network.Nylas.Types.MessageTime instance GHC.Show.Show Network.Nylas.Types.File instance GHC.Classes.Eq Network.Nylas.Types.File instance GHC.Show.Show Network.Nylas.Types.Mailbox instance GHC.Classes.Eq Network.Nylas.Types.Mailbox instance GHC.Generics.Generic Network.Nylas.Types.NylasId instance GHC.Show.Show Network.Nylas.Types.NylasId instance GHC.Classes.Eq Network.Nylas.Types.NylasId instance GHC.Show.Show Network.Nylas.Types.AccessToken instance GHC.Classes.Eq Network.Nylas.Types.AccessToken module Network.Nylas.Client -- | Consume Deltas for the inbox associated with the provided -- AccessToken since the optional Cursor from Nylas' -- transactional Streaming Delta Updates endpoint. -- -- Clients should keep track of the Cursor from the latest -- Delta consumed to resume consumption in the future. -- -- Any errors encountered during consumption (e.g. while writing to a -- database) should be surfaced using the ConsumerError value -- constructor of StreamingError. consumeDeltas :: Manager -> AccessToken -> Maybe Cursor -> Consumer Delta IO (Either StreamingError ()) -> IO (Either StreamingError ()) -- | Fetch the Message identified by NylasId from the account -- associated with AccessToken. getMessage :: Manager -> AccessToken -> NylasId -> IO Message -- | Fetch the Thread identified by NylasId from the account -- associated with AccessToken. getThread :: Manager -> AccessToken -> NylasId -> IO Thread module Network.Nylas