{-# 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 , _CannotDeleteException , _RuleDoesNotExistException , _MessageRejected , _RuleSetDoesNotExistException , _InvalidLambdaFunctionException , _InvalidPolicyException , _InvalidS3ConfigurationException , _InvalidSNSTopicException , _AlreadyExistsException , _LimitExceededException -- * BounceType , BounceType (..) -- * DsnAction , DsnAction (..) -- * IdentityType , IdentityType (..) -- * InvocationType , InvocationType (..) -- * NotificationType , NotificationType (..) -- * ReceiptFilterPolicy , ReceiptFilterPolicy (..) -- * StopScope , StopScope (..) -- * TLSPolicy , TLSPolicy (..) -- * VerificationStatus , VerificationStatus (..) -- * AddHeaderAction , AddHeaderAction , addHeaderAction , ahaHeaderName , ahaHeaderValue -- * Body , Body , body , bText , bHTML -- * BounceAction , BounceAction , bounceAction , baTopicARN , baStatusCode , baSmtpReplyCode , baMessage , baSender -- * BouncedRecipientInfo , BouncedRecipientInfo , bouncedRecipientInfo , briBounceType , briRecipientDsnFields , briRecipientARN , briRecipient -- * Content , Content , content , cCharset , cData -- * Destination , Destination , destination , dBCCAddresses , dCCAddresses , dToAddresses -- * ExtensionField , ExtensionField , extensionField , efName , efValue -- * IdentityDkimAttributes , IdentityDkimAttributes , identityDkimAttributes , idaDkimTokens , idaDkimEnabled , idaDkimVerificationStatus -- * IdentityNotificationAttributes , IdentityNotificationAttributes , identityNotificationAttributes , inaBounceTopic , inaComplaintTopic , inaDeliveryTopic , inaForwardingEnabled -- * IdentityVerificationAttributes , IdentityVerificationAttributes , identityVerificationAttributes , ivaVerificationToken , ivaVerificationStatus -- * LambdaAction , LambdaAction , lambdaAction , laInvocationType , laTopicARN , laFunctionARN -- * Message , Message , message , mSubject , mBody -- * MessageDsn , MessageDsn , messageDsn , mdArrivalDate , mdExtensionFields , mdReportingMta -- * RawMessage , RawMessage , rawMessage , rmData -- * ReceiptAction , ReceiptAction , receiptAction , raAddHeaderAction , raSNSAction , raWorkmailAction , raBounceAction , raLambdaAction , raStopAction , raS3Action -- * ReceiptFilter , ReceiptFilter , receiptFilter , rfName , rfIPFilter -- * ReceiptIPFilter , ReceiptIPFilter , receiptIPFilter , rifPolicy , rifCIdR -- * ReceiptRule , ReceiptRule , receiptRule , rrScanEnabled , rrEnabled , rrActions , rrRecipients , rrTLSPolicy , rrName -- * ReceiptRuleSetMetadata , ReceiptRuleSetMetadata , receiptRuleSetMetadata , rrsmName , rrsmCreatedTimestamp -- * RecipientDsnFields , RecipientDsnFields , recipientDsnFields , rdfDiagnosticCode , rdfRemoteMta , rdfFinalRecipient , rdfExtensionFields , rdfLastAttemptDate , rdfAction , rdfStatus -- * S3Action , S3Action , s3Action , s3KMSKeyARN , s3TopicARN , s3ObjectKeyPrefix , s3BucketName -- * SNSAction , SNSAction , snsAction , saTopicARN -- * SendDataPoint , SendDataPoint , sendDataPoint , sdpRejects , sdpComplaints , sdpDeliveryAttempts , sdpBounces , sdpTimestamp -- * StopAction , StopAction , stopAction , sTopicARN , sScope -- * WorkmailAction , WorkmailAction , workmailAction , waTopicARN , waOrganizationARN ) 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 delete operation could not be completed. _CannotDeleteException :: AsError a => Getting (First ServiceError) a ServiceError _CannotDeleteException = _ServiceError . hasStatus 400 . hasCode "CannotDelete" -- | Indicates that the provided receipt rule does not exist. _RuleDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError _RuleDoesNotExistException = _ServiceError . hasStatus 400 . hasCode "RuleDoesNotExist" -- | 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 receipt rule set does not exist. _RuleSetDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError _RuleSetDoesNotExistException = _ServiceError . hasStatus 400 . hasCode "RuleSetDoesNotExist" -- | Indicates that the provided AWS Lambda function is invalid, or that -- Amazon SES could not execute the provided function, possibly due to -- permissions issues. For information about giving permissions, see the -- . _InvalidLambdaFunctionException :: AsError a => Getting (First ServiceError) a ServiceError _InvalidLambdaFunctionException = _ServiceError . hasStatus 400 . hasCode "InvalidLambdaFunction" -- | 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" -- | Indicates that the provided Amazon S3 bucket or AWS KMS encryption key -- is invalid, or that Amazon SES could not publish to the bucket, possibly -- due to permissions issues. For information about giving permissions, see -- the -- . _InvalidS3ConfigurationException :: AsError a => Getting (First ServiceError) a ServiceError _InvalidS3ConfigurationException = _ServiceError . hasStatus 400 . hasCode "InvalidS3Configuration" -- | Indicates that the provided Amazon SNS topic is invalid, or that Amazon -- SES could not publish to the topic, possibly due to permissions issues. -- For information about giving permissions, see the -- . _InvalidSNSTopicException :: AsError a => Getting (First ServiceError) a ServiceError _InvalidSNSTopicException = _ServiceError . hasStatus 400 . hasCode "InvalidSnsTopic" -- | Indicates that a resource could not be created due to a naming conflict. _AlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError _AlreadyExistsException = _ServiceError . hasStatus 400 . hasCode "AlreadyExists" -- | Indicates that a resource could not be created due to service limits. -- For a list of Amazon SES limits, see the -- . _LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError _LimitExceededException = _ServiceError . hasStatus 400 . hasCode "LimitExceeded"