Safe Haskell | None |
---|---|
Language | Haskell2010 |
Public types for using the APNs integration.
Synopsis
- data ApnsPushData = ApnsPushData {}
- apnsPushData_deviceToken :: Lens' ApnsPushData ByteString
- apnsPushData_expiration :: Lens' ApnsPushData UTCTime
- apnsPushData_priority :: Lens' ApnsPushData (Maybe Int)
- apnsPushData_topic :: Lens' ApnsPushData Text
- apnsPushData_collapseId :: Lens' ApnsPushData (Maybe ByteString)
- apnsPushData_payload :: Lens' ApnsPushData ByteString
- data ApnsErrorReason
- = ApnsErrorBadCollapseId
- | ApnsErrorBadDeviceToken
- | ApnsErrorBadExpirationDate
- | ApnsErrorBadMessageId
- | ApnsErrorBadPriority
- | ApnsErrorBadTopic
- | ApnsErrorDeviceTokenNotForTopic
- | ApnsErrorDuplicateHeaders
- | ApnsErrorIdleTimeout
- | ApnsErrorMissingDeviceToken
- | ApnsErrorMissingTopic
- | ApnsErrorPayloadEmpty
- | ApnsErrorTopicDisallowed
- | ApnsErrorBadCertificate
- | ApnsErrorBadCertificateEnvironment
- | ApnsErrorExpiredProviderToken
- | ApnsErrorForbidden
- | ApnsErrorInvalidProviderToken
- | ApnsErrorMissingProviderToken
- | ApnsErrorBadPath
- | ApnsErrorMethodNotAllowed
- | ApnsErrorUnregistered
- | ApnsErrorPayloadTooLarge
- | ApnsErrorTooManyProviderTokenUpdates
- | ApnsErrorTooManyRequests
- | ApnsErrorInternalServerError
- | ApnsErrorServiceUnavailable
- | ApnsErrorShutdown
- apnsErrorReasonToText :: ApnsErrorReason -> Text
- apnsErrorReasonFromText :: Text -> Maybe ApnsErrorReason
- apnsErrorReasonFromTextMap :: Map Text ApnsErrorReason
- data ApnsError = ApnsError {}
- apnsError_apnsId :: Lens' ApnsError ByteString
- apnsError_status :: Lens' ApnsError Int
- apnsError_reason :: Lens' ApnsError (Either Text ApnsErrorReason)
- apnsError_timestamp :: Lens' ApnsError (Maybe UTCTime)
- data ApnsPushResult
- _ApnsPushDelivered :: Prism' ApnsPushResult ByteString
- _ApnsPushErrored :: Prism' ApnsPushResult ApnsError
- _ApnsPushStreamError :: Prism' ApnsPushResult (ErrorCodeId, ByteString)
- _ApnsPushResponseParseError :: Prism' ApnsPushResult Text
- _ApnsPushDropped :: Prism' ApnsPushResult ()
- _ApnsPushConnectionClosed :: Prism' ApnsPushResult ()
- _ApnsPushStreamsExhausted :: Prism' ApnsPushResult ()
- data ApnsPush = ApnsPush {
- _apnsPush_data :: ApnsPushData
- _apnsPush_callback :: ApnsPushResult -> IO ()
- apnsPush_data :: Lens' ApnsPush ApnsPushData
- apnsPush_callback :: Lens' ApnsPush (ApnsPushResult -> IO ())
- data ApnsTerminationReason
- = ApnsTerminatedLocally
- | ApnsTerminatedRemotely (Either ByteString ApnsErrorReason)
- | ApnsTerminatedHttp2Error HTTP2Error
- | ApnsTerminatedSilentlyClosed
- | ApnsTerminatedInsufficientHeaderBytes
- | ApnsTerminatedInsufficientPayloadBytes FrameTypeId
- | ApnsTerminatedOversizedPayload
- | ApnsTerminatedReadError SomeException
- | ApnsTerminatedWriteError SomeException
- | ApnsTerminatedProcessingException SomeException
- _ApnsTerminatedLocally :: Prism' ApnsTerminationReason ()
- _ApnsTerminatedRemotely :: Prism' ApnsTerminationReason (Either ByteString ApnsErrorReason)
- _ApnsTerminatedHttp2Error :: Prism' ApnsTerminationReason HTTP2Error
- _ApnsTerminatedInsufficientHeaderBytes :: Prism' ApnsTerminationReason ()
- _ApnsTerminatedInsufficientPayloadBytes :: Prism' ApnsTerminationReason FrameTypeId
- _ApnsTerminatedReadError :: Prism' ApnsTerminationReason SomeException
- _ApnsTerminatedWriteError :: Prism' ApnsTerminationReason SomeException
- _ApnsTerminatedProcessingException :: Prism' ApnsTerminationReason SomeException
- data ApnsConnectionParams = ApnsConnectionParams {
- _apnsConnectionParams_hostName :: HostName
- _apnsConnectionParams_portNumber :: PortNumber
- _apnsConnectionParams_clientCertificateChain :: CertificateChain
- _apnsConnectionParams_clientCertificateKey :: PrivKey
- _apnsConnectionParams_serverCertificateStore :: Maybe CertificateStore
- _apnsConnectionParams_onDebugLog :: Text -> IO ()
- _apnsConnectionParams_onServerCertificate :: Maybe (CertificateStore -> ValidationCache -> ServiceID -> CertificateChain -> IO [FailedReason])
- _apnsConnectionParams_onTermination :: ApnsTerminationReason -> IO ()
- _apnsConnectionParams_readQueueSize :: Int
- _apnsConnectionParams_writeQueueSize :: Int
- _apnsConnectionParams_pushQueueSize :: Int
- apnsConnectionParams_hostName :: Lens' ApnsConnectionParams HostName
- apnsConnectionParams_portNumber :: Lens' ApnsConnectionParams PortNumber
- apnsConnectionParams_clientCertificateChain :: Lens' ApnsConnectionParams CertificateChain
- apnsConnectionParams_clientCertificateKey :: Lens' ApnsConnectionParams PrivKey
- apnsConnectionParams_serverCertificateStore :: Lens' ApnsConnectionParams (Maybe CertificateStore)
- apnsConnectionParams_onDebugLog :: Lens' ApnsConnectionParams (Text -> IO ())
- apnsConnectionParams_onServerCertificate :: Lens' ApnsConnectionParams (Maybe (CertificateStore -> ValidationCache -> ServiceID -> CertificateChain -> IO [FailedReason]))
- apnsConnectionParams_onTermination :: Lens' ApnsConnectionParams (ApnsTerminationReason -> IO ())
- apnsConnectionParams_readQueueSize :: Lens' ApnsConnectionParams Int
- apnsConnectionParams_writeQueueSize :: Lens' ApnsConnectionParams Int
- apnsConnectionParams_pushQueueSize :: Lens' ApnsConnectionParams Int
- data ApnsConnectionError
- _ApnsConnectionErrorInvalidHostName :: Prism' ApnsConnectionError HostName
- _ApnsConnectionErrorConnectFailed :: Prism' ApnsConnectionError (HostName, [IOException])
- _ApnsConnectionErrorInvalidServerPreface :: Prism' ApnsConnectionError ()
- _ApnsConnectionErrorException :: Prism' ApnsConnectionError SomeException
- data ApnsConnection = ApnsConnection {
- _apnsConnection_submitPush :: ApnsPush -> IO ()
- _apnsConnection_close :: IO ()
- apnsConnection_submitPush :: Lens' ApnsConnection (ApnsPush -> IO ())
- apnsConnection_close :: Lens' ApnsConnection (IO ())
Documentation
data ApnsPushData Source #
Data for an APNs push message, consisting of its target device token, information that gets sent as headers with the push request such as expiration and topic, and the payload itself.
ApnsPushData | |
|
Instances
Show ApnsPushData Source # | |
Defined in Network.Apns.Types showsPrec :: Int -> ApnsPushData -> ShowS # show :: ApnsPushData -> String # showList :: [ApnsPushData] -> ShowS # |
data ApnsErrorReason Source #
Various error codes reported by APNs in response to a push or on the connection as a whole. See APNs documentation for meanings.
Instances
apnsErrorReasonToText :: ApnsErrorReason -> Text Source #
Convert an ApnsErrorReason
to its text equivalent.
apnsErrorReasonFromText :: Text -> Maybe ApnsErrorReason Source #
Convert a text value to a Just
if the text value is a valid error reason, ApnsErrorReason
Nothing
if it's invalid.
apnsErrorReasonFromTextMap :: Map Text ApnsErrorReason Source #
Mapping of ApnsErrorReason
text forms to values.
Structure carrying error information returned by APNs in response to a push.
ApnsError | |
|
data ApnsPushResult Source #
The result of a push delivery attempt.
ApnsPushDelivered ByteString | The push was successfully delivered to APNs along with its assigned |
ApnsPushErrored ApnsError | APNs rejected the push notification. See the |
ApnsPushStreamError ErrorCodeId ByteString | APNs reset the HTTP2 stream before delivery could be completed. The push was most likely not accepted by APNs. The HTTP2 |
ApnsPushResponseParseError Text | APNs gave an error response but it could not be parsed as JSON. The JSON parsing error is given. |
ApnsPushDropped | APNs closed the HTTP/2 connection and indicated it did not process the push. It should be resubmitted on a new connection. |
ApnsPushConnectionClosed | The connection to APNs was already closed by the time the push was requested. It should be resubmitted on a new connection. |
ApnsPushStreamsExhausted | The HTTP/2 connection cannot allocate any more new streams. The connection should be closed and the push resubmitted on a new connection. |
Instances
Show ApnsPushResult Source # | |
Defined in Network.Apns.Types showsPrec :: Int -> ApnsPushResult -> ShowS # show :: ApnsPushResult -> String # showList :: [ApnsPushResult] -> ShowS # |
Push notification data along with a callback that's invoked with the disposition of the push as soon as it's known.
ApnsPush | |
|
apnsPush_callback :: Lens' ApnsPush (ApnsPushResult -> IO ()) Source #
data ApnsTerminationReason Source #
The reason an APNs connection was terminated.
ApnsTerminatedLocally | The APNs connection was locally closed using |
ApnsTerminatedRemotely (Either ByteString ApnsErrorReason) | The APNs connection was remotely closed by APNs. The APNs error reason is given as |
ApnsTerminatedHttp2Error HTTP2Error | The APNs connection was terminated due to an HTTP/2 protocol error. |
ApnsTerminatedSilentlyClosed | The APNs connection was terminated because a foreign entity closed the TCP stream and no reason was provided. |
ApnsTerminatedInsufficientHeaderBytes | The APNs connection was terminated because the TCP stream ended before being able to read all the header bytes for an HTTP/2 frame. |
ApnsTerminatedInsufficientPayloadBytes FrameTypeId | The APNs connection was terminated because the TCP stream ended before being able to read all the payload bytes for an HTTP/2 frame. |
ApnsTerminatedOversizedPayload | The APNs connection was terminated because the server send a frame with a purported payload size larger than the currently negotiated MAX_FRAME_SIZE. |
ApnsTerminatedReadError SomeException | The APNs connection was terminated by an I/O error while reading. |
ApnsTerminatedWriteError SomeException | The APNs connection was terminated by an I/O error while writing. |
ApnsTerminatedProcessingException SomeException | The processing thread died due to some unexpected exception. Pushes currently in transit might or might not be delivered. |
Instances
Show ApnsTerminationReason Source # | |
Defined in Network.Apns.Types showsPrec :: Int -> ApnsTerminationReason -> ShowS # show :: ApnsTerminationReason -> String # showList :: [ApnsTerminationReason] -> ShowS # |
_ApnsTerminatedRemotely :: Prism' ApnsTerminationReason (Either ByteString ApnsErrorReason) Source #
data ApnsConnectionParams Source #
Parameters for establishing an APNs connection.
ApnsConnectionParams | |
|
apnsConnectionParams_serverCertificateStore :: Lens' ApnsConnectionParams (Maybe CertificateStore) Source #
apnsConnectionParams_onServerCertificate :: Lens' ApnsConnectionParams (Maybe (CertificateStore -> ValidationCache -> ServiceID -> CertificateChain -> IO [FailedReason])) Source #
apnsConnectionParams_onTermination :: Lens' ApnsConnectionParams (ApnsTerminationReason -> IO ()) Source #
data ApnsConnectionError Source #
Indication of reason for an APNs connection attempt failing before the main asynchronous processing could begin.
ApnsConnectionErrorInvalidHostName HostName | The host name given as |
ApnsConnectionErrorConnectFailed HostName [IOException] | The host name and port given as |
ApnsConnectionErrorInvalidServerPreface | The server did not initiate with a valid HTTP/2 server preface, defined as a SETTINGS frame. Typically this indicates that the host was not APNs, APNs is catastrophically down, or something along those lines. |
ApnsConnectionErrorException SomeException | An unexpected error occurred while waiting for the server to complete the HTTP/2 handshake. |
Instances
Show ApnsConnectionError Source # | |
Defined in Network.Apns.Types showsPrec :: Int -> ApnsConnectionError -> ShowS # show :: ApnsConnectionError -> String # showList :: [ApnsConnectionError] -> ShowS # |
data ApnsConnection Source #
An established APNs connection. In the future this should get metric and status reporting functions.
ApnsConnection | |
|
apnsConnection_submitPush :: Lens' ApnsConnection (ApnsPush -> IO ()) Source #
apnsConnection_close :: Lens' ApnsConnection (IO ()) Source #