{-# LANGUAGE OverloadedStrings #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.SES.Types -- Copyright : (c) 2013-2015 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.AWS.SES.Types ( -- * Service Configuration sES -- * Errors , _MessageRejected , _InvalidPolicyException -- * IdentityType , IdentityType (..) -- * NotificationType , NotificationType (..) -- * VerificationStatus , VerificationStatus (..) -- * Body , Body , body , bText , bHTML -- * Content , Content , content , cCharset , cData -- * Destination , Destination , destination , dBCCAddresses , dCCAddresses , dToAddresses -- * IdentityDkimAttributes , IdentityDkimAttributes , identityDkimAttributes , idaDkimTokens , idaDkimEnabled , idaDkimVerificationStatus -- * IdentityNotificationAttributes , IdentityNotificationAttributes , identityNotificationAttributes , inaBounceTopic , inaComplaintTopic , inaDeliveryTopic , inaForwardingEnabled -- * IdentityVerificationAttributes , IdentityVerificationAttributes , identityVerificationAttributes , ivaVerificationToken , ivaVerificationStatus -- * Message , Message , message , mSubject , mBody -- * RawMessage , RawMessage , rawMessage , rmData -- * SendDataPoint , SendDataPoint , sendDataPoint , sdpRejects , sdpComplaints , sdpDeliveryAttempts , sdpBounces , sdpTimestamp ) where import Network.AWS.Prelude import Network.AWS.SES.Types.Product import Network.AWS.SES.Types.Sum import Network.AWS.Sign.V4 -- | API version '2010-12-01' of the Amazon Simple Email Service SDK configuration. sES :: Service sES = Service { _svcAbbrev = "SES" , _svcSigner = v4 , _svcPrefix = "email" , _svcVersion = "2010-12-01" , _svcEndpoint = defaultEndpoint sES , _svcTimeout = Just 70 , _svcCheck = statusSuccess , _svcError = parseXMLError , _svcRetry = retry } where retry = Exponential { _retryBase = 5.0e-2 , _retryGrowth = 2 , _retryAttempts = 5 , _retryCheck = check } check e | has (hasCode "ThrottlingException" . hasStatus 400) e = Just "throttling_exception" | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling" | has (hasStatus 503) e = Just "service_unavailable" | has (hasStatus 500) e = Just "general_server_error" | has (hasStatus 509) e = Just "limit_exceeded" | otherwise = Nothing -- | Indicates that the action failed, and the message could not be sent. -- Check the error stack for more information about what caused the error. _MessageRejected :: AsError a => Getting (First ServiceError) a ServiceError _MessageRejected = _ServiceError . hasStatus 400 . hasCode "MessageRejected" -- | Indicates that the provided policy is invalid. Check the error stack for -- more information about what caused the error. _InvalidPolicyException :: AsError a => Getting (First ServiceError) a ServiceError _InvalidPolicyException = _ServiceError . hasStatus 400 . hasCode "InvalidPolicy"