[{"display_html":"<span class=\"keyword\">data</span> <a href=\"#t:ServerIdentification\">ServerIdentification</a> = <a href=\"#v:ServerIdentification\">ServerIdentification</a> {<ul class=\"subs\"><li><a href=\"#v:serverIdentificationAudience\">serverIdentificationAudience</a> :: <a href=\"/package/text-1.2.5.0/docs/Data-Text.html#t:Text\" title=\"Data.Text\">Text</a></li><li><a href=\"#v:serverIdentificationExpiration\">serverIdentificationExpiration</a> :: <a href=\"/package/base-4.16.4.0/docs/Data-Int.html#t:Int\" title=\"Data.Int\">Int</a></li><li><a href=\"#v:serverIdentificationSubject\">serverIdentificationSubject</a> :: <a href=\"/package/text-1.2.5.0/docs/Data-Text.html#t:Text\" title=\"Data.Text\">Text</a></li></ul>}","name":"ServerIdentification serverIdentificationSubject serverIdentificationExpiration serverIdentificationAudience ServerIdentification","module":"Web.WebPush.Internal","link":"Web-WebPush-Internal.html#t:ServerIdentification"},{"display_html":"<a href=\"#v:webPushJWT\">webPushJWT</a> :: MonadRandom m =&gt; PrivateKey -&gt; <a href=\"Web-WebPush-Internal.html#t:ServerIdentification\" title=\"Web.WebPush.Internal\">ServerIdentification</a> -&gt; m <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString.html#t:ByteString\" title=\"Data.ByteString\">ByteString</a>","name":"webPushJWT","module":"Web.WebPush.Internal","link":"Web-WebPush-Internal.html#v:webPushJWT"},{"display_html":"<span class=\"keyword\">data</span> <a href=\"#t:WebPushEncryptionInput\">WebPushEncryptionInput</a> = <a href=\"#v:EncryptionInput\">EncryptionInput</a> {<ul class=\"subs\"><li><a href=\"#v:applicationServerPrivateKey\">applicationServerPrivateKey</a> :: PrivateNumber</li><li><a href=\"#v:userAgentPublicKeyBytes\">userAgentPublicKeyBytes</a> :: <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString.html#t:ByteString\" title=\"Data.ByteString\">ByteString</a></li><li><a href=\"#v:authenticationSecret\">authenticationSecret</a> :: <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString.html#t:ByteString\" title=\"Data.ByteString\">ByteString</a></li><li><a href=\"#v:salt\">salt</a> :: <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString.html#t:ByteString\" title=\"Data.ByteString\">ByteString</a></li><li><a href=\"#v:plainText\">plainText</a> :: <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString-Lazy.html#t:ByteString\" title=\"Data.ByteString.Lazy\">ByteString</a></li><li><a href=\"#v:paddingLength\">paddingLength</a> :: <a href=\"/package/base-4.16.4.0/docs/Data-Int.html#t:Int64\" title=\"Data.Int\">Int64</a></li></ul>}","name":"WebPushEncryptionInput paddingLength plainText salt authenticationSecret userAgentPublicKeyBytes applicationServerPrivateKey EncryptionInput","module":"Web.WebPush.Internal","link":"Web-WebPush-Internal.html#t:WebPushEncryptionInput"},{"display_html":"<span class=\"keyword\">data</span> <a href=\"#t:WebPushEncryptionOutput\">WebPushEncryptionOutput</a> = <a href=\"#v:EncryptionOutput\">EncryptionOutput</a> {<ul class=\"subs\"><li><a href=\"#v:sharedECDHSecretBytes\">sharedECDHSecretBytes</a> :: <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString.html#t:ByteString\" title=\"Data.ByteString\">ByteString</a></li><li><a href=\"#v:inputKeyingMaterialBytes\">inputKeyingMaterialBytes</a> :: <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString.html#t:ByteString\" title=\"Data.ByteString\">ByteString</a></li><li><a href=\"#v:contentEncryptionKeyContext\">contentEncryptionKeyContext</a> :: <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString.html#t:ByteString\" title=\"Data.ByteString\">ByteString</a></li><li><a href=\"#v:contentEncryptionKey\">contentEncryptionKey</a> :: <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString.html#t:ByteString\" title=\"Data.ByteString\">ByteString</a></li><li><a href=\"#v:nonceContext\">nonceContext</a> :: <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString.html#t:ByteString\" title=\"Data.ByteString\">ByteString</a></li><li><a href=\"#v:nonce\">nonce</a> :: <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString.html#t:ByteString\" title=\"Data.ByteString\">ByteString</a></li><li><a href=\"#v:paddedPlainText\">paddedPlainText</a> :: <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString.html#t:ByteString\" title=\"Data.ByteString\">ByteString</a></li><li><a href=\"#v:encryptedMessage\">encryptedMessage</a> :: <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString.html#t:ByteString\" title=\"Data.ByteString\">ByteString</a></li></ul>}","name":"WebPushEncryptionOutput encryptedMessage paddedPlainText nonce nonceContext contentEncryptionKey contentEncryptionKeyContext inputKeyingMaterialBytes sharedECDHSecretBytes EncryptionOutput","module":"Web.WebPush.Internal","link":"Web-WebPush-Internal.html#t:WebPushEncryptionOutput"},{"display_html":"<span class=\"keyword\">data</span> <a href=\"#t:EncryptError\">EncryptError</a><ul class=\"subs\"><li>= <a href=\"#v:EncodeApplicationPublicKeyError\">EncodeApplicationPublicKeyError</a> <a href=\"/package/base-4.16.4.0/docs/Data-String.html#t:String\" title=\"Data.String\">String</a></li><li>| <a href=\"#v:EncryptCipherInitError\">EncryptCipherInitError</a> CryptoError</li><li>| <a href=\"#v:EncryptAeadInitError\">EncryptAeadInitError</a> CryptoError</li><li>| <a href=\"#v:EncryptInputPublicKeyError\">EncryptInputPublicKeyError</a> CryptoError</li><li>| <a href=\"#v:EncryptInputApplicationPublicKeyError\">EncryptInputApplicationPublicKeyError</a> <a href=\"/package/base-4.16.4.0/docs/Data-String.html#t:String\" title=\"Data.String\">String</a></li></ul>","name":"EncryptError EncryptInputApplicationPublicKeyError EncryptInputPublicKeyError EncryptAeadInitError EncryptCipherInitError EncodeApplicationPublicKeyError","module":"Web.WebPush.Internal","link":"Web-WebPush-Internal.html#t:EncryptError"},{"display_html":"<a href=\"#v:webPushEncrypt\">webPushEncrypt</a> :: <a href=\"Web-WebPush-Internal.html#t:WebPushEncryptionInput\" title=\"Web.WebPush.Internal\">WebPushEncryptionInput</a> -&gt; <a href=\"/package/base-4.16.4.0/docs/Data-Either.html#t:Either\" title=\"Data.Either\">Either</a> <a href=\"Web-WebPush-Internal.html#t:EncryptError\" title=\"Web.WebPush.Internal\">EncryptError</a> <a href=\"Web-WebPush-Internal.html#t:WebPushEncryptionOutput\" title=\"Web.WebPush.Internal\">WebPushEncryptionOutput</a>","name":"webPushEncrypt","module":"Web.WebPush.Internal","link":"Web-WebPush-Internal.html#v:webPushEncrypt"},{"display_html":"<a href=\"#v:hostHeaders\">hostHeaders</a> :: (<a href=\"/package/base-4.16.4.0/docs/Control-Monad-IO-Class.html#t:MonadIO\" title=\"Control.Monad.IO.Class\">MonadIO</a> m, MonadRandom m) =&gt; PrivateKey -&gt; <a href=\"Web-WebPush-Internal.html#t:ServerIdentification\" title=\"Web.WebPush.Internal\">ServerIdentification</a> -&gt; m [<a href=\"/package/http-types-0.12.3/docs/Network-HTTP-Types-Header.html#t:Header\" title=\"Network.HTTP.Types.Header\">Header</a>]","name":"hostHeaders","module":"Web.WebPush.Internal","link":"Web-WebPush-Internal.html#v:hostHeaders"},{"display_html":"<a href=\"#v:uriHost\">uriHost</a> :: <a href=\"/package/network-uri-2.6.4.2/docs/Network-URI.html#t:URI\" title=\"Network.URI\">URI</a> -&gt; <a href=\"/package/base-4.16.4.0/docs/Data-Maybe.html#t:Maybe\" title=\"Data.Maybe\">Maybe</a> <a href=\"/package/text-1.2.5.0/docs/Data-Text.html#t:Text\" title=\"Data.Text\">Text</a>","name":"uriHost","module":"Web.WebPush.Internal","link":"Web-WebPush-Internal.html#v:uriHost"},{"display_html":"<a href=\"#v:ecPublicKeyToBytes\">ecPublicKeyToBytes</a> :: Point -&gt; <a href=\"/package/base-4.16.4.0/docs/Data-Either.html#t:Either\" title=\"Data.Either\">Either</a> <a href=\"/package/base-4.16.4.0/docs/Data-String.html#t:String\" title=\"Data.String\">String</a> <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString.html#t:ByteString\" title=\"Data.ByteString\">ByteString</a>","name":"ecPublicKeyToBytes","module":"Web.WebPush.Internal","link":"Web-WebPush-Internal.html#v:ecPublicKeyToBytes"},{"display_html":"<a href=\"#v:ecPublicKeyToBytes-39-\">ecPublicKeyToBytes'</a> :: (<a href=\"/package/base-4.16.4.0/docs/Prelude.html#t:Integer\" title=\"Prelude\">Integer</a>, <a href=\"/package/base-4.16.4.0/docs/Prelude.html#t:Integer\" title=\"Prelude\">Integer</a>) -&gt; <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString.html#t:ByteString\" title=\"Data.ByteString\">ByteString</a>","name":"ecPublicKeyToBytes'","module":"Web.WebPush.Internal","link":"Web-WebPush-Internal.html#v:ecPublicKeyToBytes-39-"},{"display_html":"<a href=\"#v:ecBytesToPublicKey\">ecBytesToPublicKey</a> :: <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString.html#t:ByteString\" title=\"Data.ByteString\">ByteString</a> -&gt; <a href=\"/package/base-4.16.4.0/docs/Data-Either.html#t:Either\" title=\"Data.Either\">Either</a> CryptoError Point","name":"ecBytesToPublicKey","module":"Web.WebPush.Internal","link":"Web-WebPush-Internal.html#v:ecBytesToPublicKey"},{"display_html":"<span class=\"keyword\">type</span> <a href=\"#t:Bytes32\">Bytes32</a> = (<a href=\"/package/base-4.16.4.0/docs/Data-Word.html#t:Word64\" title=\"Data.Word\">Word64</a>, <a href=\"/package/base-4.16.4.0/docs/Data-Word.html#t:Word64\" title=\"Data.Word\">Word64</a>, <a href=\"/package/base-4.16.4.0/docs/Data-Word.html#t:Word64\" title=\"Data.Word\">Word64</a>, <a href=\"/package/base-4.16.4.0/docs/Data-Word.html#t:Word64\" title=\"Data.Word\">Word64</a>)","name":"Bytes32","module":"Web.WebPush.Internal","link":"Web-WebPush-Internal.html#t:Bytes32"},{"display_html":"<a href=\"#v:int32Bytes\">int32Bytes</a> :: <a href=\"/package/base-4.16.4.0/docs/Prelude.html#t:Integer\" title=\"Prelude\">Integer</a> -&gt; <a href=\"Web-WebPush-Internal.html#t:Bytes32\" title=\"Web.WebPush.Internal\">Bytes32</a>","name":"int32Bytes","module":"Web.WebPush.Internal","link":"Web-WebPush-Internal.html#v:int32Bytes"},{"display_html":"<a href=\"#v:bytes32Int\">bytes32Int</a> :: <a href=\"Web-WebPush-Internal.html#t:Bytes32\" title=\"Web.WebPush.Internal\">Bytes32</a> -&gt; <a href=\"/package/base-4.16.4.0/docs/Prelude.html#t:Integer\" title=\"Prelude\">Integer</a>","name":"bytes32Int","module":"Web.WebPush.Internal","link":"Web-WebPush-Internal.html#v:bytes32Int"},{"display_html":"<span class=\"keyword\">newtype</span> <a href=\"#t:VAPIDKeys\">VAPIDKeys</a> = <a href=\"#v:VAPIDKeys\">VAPIDKeys</a> {<ul class=\"subs\"><li><a href=\"#v:unVAPIDKeys\">unVAPIDKeys</a> :: KeyPair</li></ul>}","name":"VAPIDKeys unVAPIDKeys VAPIDKeys","module":"Web.WebPush.Keys","link":"Web-WebPush-Keys.html#t:VAPIDKeys"},{"display_html":"<a href=\"#v:vapidPublicKey\">vapidPublicKey</a> :: <a href=\"Web-WebPush-Keys.html#t:VAPIDKeys\" title=\"Web.WebPush.Keys\">VAPIDKeys</a> -&gt; PublicKey","name":"vapidPublicKey","module":"Web.WebPush.Keys","link":"Web-WebPush-Keys.html#v:vapidPublicKey"},{"display_html":"<span class=\"keyword\">data</span> <a href=\"#t:VAPIDKeysError\">VAPIDKeysError</a><ul class=\"subs\"><li>= <a href=\"#v:VAPIDKeysPublicKeyError\">VAPIDKeysPublicKeyError</a> <a href=\"Web-WebPush-Keys.html#t:PublicKeyError\" title=\"Web.WebPush.Keys\">PublicKeyError</a></li><li>| <a href=\"#v:VAPIDKeysPrivateKeyError\">VAPIDKeysPrivateKeyError</a> <a href=\"Web-WebPush-Keys.html#t:PrivateKeyError\" title=\"Web.WebPush.Keys\">PrivateKeyError</a></li><li>| <a href=\"#v:VAPIDKeysCurveMismatch\">VAPIDKeysCurveMismatch</a></li></ul>","name":"VAPIDKeysError VAPIDKeysCurveMismatch VAPIDKeysPrivateKeyError VAPIDKeysPublicKeyError","module":"Web.WebPush.Keys","link":"Web-WebPush-Keys.html#t:VAPIDKeysError"},{"display_html":"<a href=\"#v:readVapidKeys\">readVapidKeys</a> :: <a href=\"/package/base-4.16.4.0/docs/System-IO.html#t:FilePath\" title=\"System.IO\">FilePath</a> -&gt; <a href=\"/package/base-4.16.4.0/docs/System-IO.html#t:FilePath\" title=\"System.IO\">FilePath</a> -&gt; <a href=\"/package/base-4.16.4.0/docs/System-IO.html#t:IO\" title=\"System.IO\">IO</a> (<a href=\"/package/base-4.16.4.0/docs/Data-Either.html#t:Either\" title=\"Data.Either\">Either</a> <a href=\"Web-WebPush-Keys.html#t:VAPIDKeysError\" title=\"Web.WebPush.Keys\">VAPIDKeysError</a> <a href=\"Web-WebPush-Keys.html#t:VAPIDKeys\" title=\"Web.WebPush.Keys\">VAPIDKeys</a>)","name":"readVapidKeys","module":"Web.WebPush.Keys","link":"Web-WebPush-Keys.html#v:readVapidKeys"},{"display_html":"<a href=\"#v:toKeyPair\">toKeyPair</a> :: PublicKey -&gt; PrivateKey -&gt; KeyPair","name":"toKeyPair","module":"Web.WebPush.Keys","link":"Web-WebPush-Keys.html#v:toKeyPair"},{"display_html":"<span class=\"keyword\">data</span> <a href=\"#t:PrivateKeyError\">PrivateKeyError</a><ul class=\"subs\"><li>= <a href=\"#v:PrivateKeyPEMParseError\">PrivateKeyPEMParseError</a> PEMError</li><li>| <a href=\"#v:PrivateKeyUnknownCurveName\">PrivateKeyUnknownCurveName</a></li><li>| <a href=\"#v:PrivateKeyWrongCurve\">PrivateKeyWrongCurve</a> CurveName</li><li>| <a href=\"#v:PrivateKeyInvalidPEM\">PrivateKeyInvalidPEM</a></li></ul>","name":"PrivateKeyError PrivateKeyInvalidPEM PrivateKeyWrongCurve PrivateKeyUnknownCurveName PrivateKeyPEMParseError","module":"Web.WebPush.Keys","link":"Web-WebPush-Keys.html#t:PrivateKeyError"},{"display_html":"<a href=\"#v:readWebPushPrivateKey\">readWebPushPrivateKey</a> :: <a href=\"/package/base-4.16.4.0/docs/System-IO.html#t:FilePath\" title=\"System.IO\">FilePath</a> -&gt; <a href=\"/package/base-4.16.4.0/docs/System-IO.html#t:IO\" title=\"System.IO\">IO</a> (<a href=\"/package/base-4.16.4.0/docs/Data-Either.html#t:Either\" title=\"Data.Either\">Either</a> <a href=\"Web-WebPush-Keys.html#t:PrivateKeyError\" title=\"Web.WebPush.Keys\">PrivateKeyError</a> PrivateKey)","name":"readWebPushPrivateKey","module":"Web.WebPush.Keys","link":"Web-WebPush-Keys.html#v:readWebPushPrivateKey"},{"display_html":"<span class=\"keyword\">data</span> <a href=\"#t:PublicKeyError\">PublicKeyError</a><ul class=\"subs\"><li>= <a href=\"#v:PublicKeyPEMParseError\">PublicKeyPEMParseError</a> PEMError</li><li>| <a href=\"#v:PublicKeyASN1Error\">PublicKeyASN1Error</a> ASN1Error</li><li>| <a href=\"#v:PublicKeyFromASN1Error\">PublicKeyFromASN1Error</a> <a href=\"/package/base-4.16.4.0/docs/Data-String.html#t:String\" title=\"Data.String\">String</a></li><li>| <a href=\"#v:PublicKeyUnsupportedKeyType\">PublicKeyUnsupportedKeyType</a></li><li>| <a href=\"#v:PublicKeyUnknownCurve\">PublicKeyUnknownCurve</a></li><li>| <a href=\"#v:PublicKeyUnserialiseError\">PublicKeyUnserialiseError</a></li><li>| <a href=\"#v:PublicKeyInvalidPEM\">PublicKeyInvalidPEM</a></li></ul>","name":"PublicKeyError PublicKeyInvalidPEM PublicKeyUnserialiseError PublicKeyUnknownCurve PublicKeyUnsupportedKeyType PublicKeyFromASN1Error PublicKeyASN1Error PublicKeyPEMParseError","module":"Web.WebPush.Keys","link":"Web-WebPush-Keys.html#t:PublicKeyError"},{"display_html":"<a href=\"#v:readWebPushPublicKey\">readWebPushPublicKey</a> :: <a href=\"/package/base-4.16.4.0/docs/System-IO.html#t:FilePath\" title=\"System.IO\">FilePath</a> -&gt; <a href=\"/package/base-4.16.4.0/docs/System-IO.html#t:IO\" title=\"System.IO\">IO</a> (<a href=\"/package/base-4.16.4.0/docs/Data-Either.html#t:Either\" title=\"Data.Either\">Either</a> <a href=\"Web-WebPush-Keys.html#t:PublicKeyError\" title=\"Web.WebPush.Keys\">PublicKeyError</a> PublicKey)","name":"readWebPushPublicKey","module":"Web.WebPush.Keys","link":"Web-WebPush-Keys.html#v:readWebPushPublicKey"},{"display_html":"<a href=\"#v:writeVAPIDKeys\">writeVAPIDKeys</a> :: <a href=\"/package/base-4.16.4.0/docs/System-IO.html#t:FilePath\" title=\"System.IO\">FilePath</a> -&gt; <a href=\"/package/base-4.16.4.0/docs/System-IO.html#t:FilePath\" title=\"System.IO\">FilePath</a> -&gt; <a href=\"Web-WebPush-Keys.html#t:VAPIDKeys\" title=\"Web.WebPush.Keys\">VAPIDKeys</a> -&gt; <a href=\"/package/base-4.16.4.0/docs/System-IO.html#t:IO\" title=\"System.IO\">IO</a> ()","name":"writeVAPIDKeys","module":"Web.WebPush.Keys","link":"Web-WebPush-Keys.html#v:writeVAPIDKeys"},{"display_html":"<a href=\"#v:generateVAPIDKeys\">generateVAPIDKeys</a> :: MonadRandom m =&gt; m (<a href=\"/package/base-4.16.4.0/docs/Data-Either.html#t:Either\" title=\"Data.Either\">Either</a> <a href=\"/package/base-4.16.4.0/docs/Data-String.html#t:String\" title=\"Data.String\">String</a> <a href=\"Web-WebPush-Keys.html#t:VAPIDKeys\" title=\"Web.WebPush.Keys\">VAPIDKeys</a>)","name":"generateVAPIDKeys","module":"Web.WebPush.Keys","link":"Web-WebPush-Keys.html#v:generateVAPIDKeys"},{"display_html":"<a href=\"#v:vapidPublicKeyBytes\">vapidPublicKeyBytes</a> :: PublicKey -&gt; <a href=\"/package/base-4.16.4.0/docs/Data-Either.html#t:Either\" title=\"Data.Either\">Either</a> <a href=\"/package/base-4.16.4.0/docs/Data-String.html#t:String\" title=\"Data.String\">String</a> [<a href=\"/package/base-4.16.4.0/docs/Data-Word.html#t:Word8\" title=\"Data.Word\">Word8</a>]","name":"vapidPublicKeyBytes","module":"Web.WebPush.Keys","link":"Web-WebPush-Keys.html#v:vapidPublicKeyBytes"},{"display_html":"<a href=\"#v:sendPushNotification\">sendPushNotification</a> :: (<a href=\"/package/base-4.16.4.0/docs/Control-Monad-IO-Class.html#t:MonadIO\" title=\"Control.Monad.IO.Class\">MonadIO</a> m, ToJSON msg, MonadRandom m) =&gt; Manager -&gt; <a href=\"Web-WebPush.html#t:VapidConfig\" title=\"Web.WebPush\">VapidConfig</a> -&gt; <a href=\"Web-WebPush.html#t:PushNotification\" title=\"Web.WebPush\">PushNotification</a> msg -&gt; <a href=\"Web-WebPush.html#t:Subscription\" title=\"Web.WebPush\">Subscription</a> -&gt; m (<a href=\"/package/base-4.16.4.0/docs/Data-Either.html#t:Either\" title=\"Data.Either\">Either</a> <a href=\"Web-WebPush.html#t:PushNotificationError\" title=\"Web.WebPush\">PushNotificationError</a> <a href=\"Web-WebPush.html#t:PushNotificationCreated\" title=\"Web.WebPush\">PushNotificationCreated</a>)","name":"sendPushNotification","module":"Web.WebPush","link":"Web-WebPush.html#v:sendPushNotification"},{"display_html":"<a href=\"#v:sendPushNotifications\">sendPushNotifications</a> :: (<a href=\"/package/base-4.16.4.0/docs/Control-Monad-IO-Class.html#t:MonadIO\" title=\"Control.Monad.IO.Class\">MonadIO</a> m, ToJSON msg, MonadRandom m) =&gt; Manager -&gt; <a href=\"Web-WebPush.html#t:VapidConfig\" title=\"Web.WebPush\">VapidConfig</a> -&gt; <a href=\"Web-WebPush.html#t:PushNotification\" title=\"Web.WebPush\">PushNotification</a> msg -&gt; [<a href=\"Web-WebPush.html#t:Subscription\" title=\"Web.WebPush\">Subscription</a>] -&gt; m [(<a href=\"Web-WebPush.html#t:Subscription\" title=\"Web.WebPush\">Subscription</a>, <a href=\"/package/base-4.16.4.0/docs/Data-Either.html#t:Either\" title=\"Data.Either\">Either</a> <a href=\"Web-WebPush.html#t:PushNotificationError\" title=\"Web.WebPush\">PushNotificationError</a> <a href=\"Web-WebPush.html#t:PushNotificationCreated\" title=\"Web.WebPush\">PushNotificationCreated</a>)]","name":"sendPushNotifications","module":"Web.WebPush","link":"Web-WebPush.html#v:sendPushNotifications"},{"display_html":"<span class=\"keyword\">data</span> <a href=\"#t:Subscription\">Subscription</a> = <a href=\"#v:Subscription\">Subscription</a> {<ul class=\"subs\"><li><a href=\"#v:subscriptionEndpoint\">subscriptionEndpoint</a> :: <a href=\"/package/network-uri-2.6.4.2/docs/Network-URI.html#t:URI\" title=\"Network.URI\">URI</a></li><li><a href=\"#v:subscriptionP256dh\">subscriptionP256dh</a> :: <a href=\"Web-WebPush.html#t:PushP256dh\" title=\"Web.WebPush\">PushP256dh</a></li><li><a href=\"#v:subscriptionAuth\">subscriptionAuth</a> :: <a href=\"Web-WebPush.html#t:PushAuth\" title=\"Web.WebPush\">PushAuth</a></li></ul>}","name":"Subscription Subscription subscriptionEndpoint subscriptionAuth subscriptionP256dh","module":"Web.WebPush","link":"Web-WebPush.html#t:Subscription"},{"display_html":"<span class=\"keyword\">data</span> <a href=\"#t:VapidConfig\">VapidConfig</a> = <a href=\"#v:VapidConfig\">VapidConfig</a> {<ul class=\"subs\"><li><a href=\"#v:vapidConfigContact\">vapidConfigContact</a> :: <a href=\"/package/text-1.2.5.0/docs/Data-Text.html#t:Text\" title=\"Data.Text\">Text</a></li><li><a href=\"#v:vapidConfigKeys\">vapidConfigKeys</a> :: <a href=\"Web-WebPush-Keys.html#t:VAPIDKeys\" title=\"Web.WebPush.Keys\">VAPIDKeys</a></li></ul>}","name":"VapidConfig VapidConfig vapidConfigContact vapidConfigKeys","module":"Web.WebPush","link":"Web-WebPush.html#t:VapidConfig"},{"display_html":"<span class=\"keyword\">data</span> <a href=\"#t:PushNotification\">PushNotification</a> msg = <a href=\"#v:PushNotification\">PushNotification</a> {<ul class=\"subs\"><li><a href=\"#v:pnExpireInSeconds\">pnExpireInSeconds</a> :: <a href=\"/package/base-4.16.4.0/docs/Data-Int.html#t:Int\" title=\"Data.Int\">Int</a></li><li><a href=\"#v:pnMessage\">pnMessage</a> :: msg</li></ul>}","name":"PushNotification PushNotification pnExpireInSeconds pnMessage","module":"Web.WebPush","link":"Web-WebPush.html#t:PushNotification"},{"display_html":"<span class=\"keyword\">data</span> <a href=\"#t:PushNotificationCreated\">PushNotificationCreated</a> = <a href=\"#v:PushNotificationCreated\">PushNotificationCreated</a> {<ul class=\"subs\"><li><a href=\"#v:pushNotificationCreatedTTL\">pushNotificationCreatedTTL</a> :: <a href=\"/package/base-4.16.4.0/docs/Data-Maybe.html#t:Maybe\" title=\"Data.Maybe\">Maybe</a> <a href=\"/package/base-4.16.4.0/docs/Data-Int.html#t:Int\" title=\"Data.Int\">Int</a></li></ul>}","name":"PushNotificationCreated PushNotificationCreated pushNotificationCreatedTTL","module":"Web.WebPush","link":"Web-WebPush.html#t:PushNotificationCreated"},{"display_html":"<span class=\"keyword\">data</span> <a href=\"#t:PushNotificationError\">PushNotificationError</a><ul class=\"subs\"><li>= <a href=\"#v:EndpointParseFailed\">EndpointParseFailed</a> HttpException</li><li>| <a href=\"#v:PushNotificationBadHost\">PushNotificationBadHost</a> <a href=\"/package/network-uri-2.6.4.2/docs/Network-URI.html#t:URI\" title=\"Network.URI\">URI</a></li><li>| <a href=\"#v:PushEncryptError\">PushEncryptError</a> <a href=\"Web-WebPush-Internal.html#t:EncryptError\" title=\"Web.WebPush.Internal\">EncryptError</a></li><li>| <a href=\"#v:ApplicationKeyEncodeError\">ApplicationKeyEncodeError</a> <a href=\"/package/base-4.16.4.0/docs/Data-String.html#t:String\" title=\"Data.String\">String</a></li><li>| <a href=\"#v:RecepientEndpointNotFound\">RecepientEndpointNotFound</a></li><li>| <a href=\"#v:PushRequestFailed\">PushRequestFailed</a> <a href=\"/package/base-4.16.4.0/docs/Control-Exception.html#t:SomeException\" title=\"Control.Exception\">SomeException</a></li><li>| <a href=\"#v:PushRequestNotCreated\">PushRequestNotCreated</a> (Response <a href=\"/package/bytestring-0.11.4.0/docs/Data-ByteString-Lazy.html#t:ByteString\" title=\"Data.ByteString.Lazy\">ByteString</a>)</li></ul>","name":"PushNotificationError PushNotificationBadHost EndpointParseFailed PushEncryptError ApplicationKeyEncodeError PushRequestNotCreated RecepientEndpointNotFound PushRequestFailed","module":"Web.WebPush","link":"Web-WebPush.html#t:PushNotificationError"},{"display_html":"<span class=\"keyword\">type</span> <a href=\"#t:PushP256dh\">PushP256dh</a> = <a href=\"/package/text-1.2.5.0/docs/Data-Text.html#t:Text\" title=\"Data.Text\">Text</a>","name":"PushP256dh","module":"Web.WebPush","link":"Web-WebPush.html#t:PushP256dh"},{"display_html":"<span class=\"keyword\">type</span> <a href=\"#t:PushAuth\">PushAuth</a> = <a href=\"/package/text-1.2.5.0/docs/Data-Text.html#t:Text\" title=\"Data.Text\">Text</a>","name":"PushAuth","module":"Web.WebPush","link":"Web-WebPush.html#t:PushAuth"},{"display_html":"module <a href=\"Web-WebPush-Keys.html\">Web.WebPush.Keys</a>","name":"","module":"Web.WebPush","link":""}]