{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.CognitoIdentityProvider.Types.EmailConfigurationType -- Copyright : (c) 2013-2021 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) module Amazonka.CognitoIdentityProvider.Types.EmailConfigurationType where import Amazonka.CognitoIdentityProvider.Types.EmailSendingAccountType import qualified Amazonka.Core as Core import qualified Amazonka.Lens as Lens import qualified Amazonka.Prelude as Prelude -- | The email configuration type. -- -- Amazon Cognito has specific regions for use with Amazon SES. For more -- information on the supported regions, see -- <https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-email.html Email Settings for Amazon Cognito User Pools>. -- -- /See:/ 'newEmailConfigurationType' smart constructor. data EmailConfigurationType = EmailConfigurationType' { -- | The Amazon Resource Name (ARN) of a verified email address in Amazon -- SES. This email address is used in one of the following ways, depending -- on the value that you specify for the @EmailSendingAccount@ parameter: -- -- - If you specify @COGNITO_DEFAULT@, Amazon Cognito uses this address -- as the custom FROM address when it emails your users by using its -- built-in email account. -- -- - If you specify @DEVELOPER@, Amazon Cognito emails your users with -- this address by calling Amazon SES on your behalf. EmailConfigurationType -> Maybe Text sourceArn :: Prelude.Maybe Prelude.Text, -- | Identifies either the sender’s email address or the sender’s name with -- their email address. For example, @testuser\@example.com@ or -- @Test User \<testuser\@example.com>@. This address will appear before -- the body of the email. EmailConfigurationType -> Maybe Text from :: Prelude.Maybe Prelude.Text, -- | The set of configuration rules that can be applied to emails sent using -- Amazon SES. A configuration set is applied to an email by including a -- reference to the configuration set in the headers of the email. Once -- applied, all of the rules in that configuration set are applied to the -- email. Configuration sets can be used to apply the following types of -- rules to emails: -- -- - Event publishing – Amazon SES can track the number of send, -- delivery, open, click, bounce, and complaint events for each email -- sent. Use event publishing to send information about these events to -- other Amazon Web Services services such as SNS and CloudWatch. -- -- - IP pool management – When leasing dedicated IP addresses with Amazon -- SES, you can create groups of IP addresses, called dedicated IP -- pools. You can then associate the dedicated IP pools with -- configuration sets. EmailConfigurationType -> Maybe Text configurationSet :: Prelude.Maybe Prelude.Text, -- | The destination to which the receiver of the email should reply to. EmailConfigurationType -> Maybe Text replyToEmailAddress :: Prelude.Maybe Prelude.Text, -- | Specifies whether Amazon Cognito emails your users by using its built-in -- email functionality or your Amazon SES email configuration. Specify one -- of the following values: -- -- [COGNITO_DEFAULT] -- When Amazon Cognito emails your users, it uses its built-in email -- functionality. When you use the default option, Amazon Cognito -- allows only a limited number of emails each day for your user pool. -- For typical production environments, the default email limit is -- below the required delivery volume. To achieve a higher delivery -- volume, specify DEVELOPER to use your Amazon SES email -- configuration. -- -- To look up the email delivery limit for the default option, see -- <https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html Limits in Amazon Cognito> -- in the /Amazon Cognito Developer Guide/. -- -- The default FROM address is no-reply\@verificationemail.com. To -- customize the FROM address, provide the ARN of an Amazon SES -- verified email address for the @SourceArn@ parameter. -- -- If EmailSendingAccount is COGNITO_DEFAULT, the following parameters -- aren\'t allowed: -- -- - EmailVerificationMessage -- -- - EmailVerificationSubject -- -- - InviteMessageTemplate.EmailMessage -- -- - InviteMessageTemplate.EmailSubject -- -- - VerificationMessageTemplate.EmailMessage -- -- - VerificationMessageTemplate.EmailMessageByLink -- -- - VerificationMessageTemplate.EmailSubject, -- -- - VerificationMessageTemplate.EmailSubjectByLink -- -- DEVELOPER EmailSendingAccount is required. -- -- [DEVELOPER] -- When Amazon Cognito emails your users, it uses your Amazon SES -- configuration. Amazon Cognito calls Amazon SES on your behalf to -- send email from your verified email address. When you use this -- option, the email delivery limits are the same limits that apply to -- your Amazon SES verified email address in your account. -- -- If you use this option, you must provide the ARN of an Amazon SES -- verified email address for the @SourceArn@ parameter. -- -- Before Amazon Cognito can email your users, it requires additional -- permissions to call Amazon SES on your behalf. When you update your -- user pool with this option, Amazon Cognito creates a /service-linked -- role/, which is a type of IAM role, in your account. This role -- contains the permissions that allow Amazon Cognito to access Amazon -- SES and send email messages with your address. For more information -- about the service-linked role that Amazon Cognito creates, see -- <https://docs.aws.amazon.com/cognito/latest/developerguide/using-service-linked-roles.html Using Service-Linked Roles for Amazon Cognito> -- in the /Amazon Cognito Developer Guide/. EmailConfigurationType -> Maybe EmailSendingAccountType emailSendingAccount :: Prelude.Maybe EmailSendingAccountType } deriving (EmailConfigurationType -> EmailConfigurationType -> Bool (EmailConfigurationType -> EmailConfigurationType -> Bool) -> (EmailConfigurationType -> EmailConfigurationType -> Bool) -> Eq EmailConfigurationType forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: EmailConfigurationType -> EmailConfigurationType -> Bool $c/= :: EmailConfigurationType -> EmailConfigurationType -> Bool == :: EmailConfigurationType -> EmailConfigurationType -> Bool $c== :: EmailConfigurationType -> EmailConfigurationType -> Bool Prelude.Eq, ReadPrec [EmailConfigurationType] ReadPrec EmailConfigurationType Int -> ReadS EmailConfigurationType ReadS [EmailConfigurationType] (Int -> ReadS EmailConfigurationType) -> ReadS [EmailConfigurationType] -> ReadPrec EmailConfigurationType -> ReadPrec [EmailConfigurationType] -> Read EmailConfigurationType forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [EmailConfigurationType] $creadListPrec :: ReadPrec [EmailConfigurationType] readPrec :: ReadPrec EmailConfigurationType $creadPrec :: ReadPrec EmailConfigurationType readList :: ReadS [EmailConfigurationType] $creadList :: ReadS [EmailConfigurationType] readsPrec :: Int -> ReadS EmailConfigurationType $creadsPrec :: Int -> ReadS EmailConfigurationType Prelude.Read, Int -> EmailConfigurationType -> ShowS [EmailConfigurationType] -> ShowS EmailConfigurationType -> String (Int -> EmailConfigurationType -> ShowS) -> (EmailConfigurationType -> String) -> ([EmailConfigurationType] -> ShowS) -> Show EmailConfigurationType forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [EmailConfigurationType] -> ShowS $cshowList :: [EmailConfigurationType] -> ShowS show :: EmailConfigurationType -> String $cshow :: EmailConfigurationType -> String showsPrec :: Int -> EmailConfigurationType -> ShowS $cshowsPrec :: Int -> EmailConfigurationType -> ShowS Prelude.Show, (forall x. EmailConfigurationType -> Rep EmailConfigurationType x) -> (forall x. Rep EmailConfigurationType x -> EmailConfigurationType) -> Generic EmailConfigurationType forall x. Rep EmailConfigurationType x -> EmailConfigurationType forall x. EmailConfigurationType -> Rep EmailConfigurationType x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep EmailConfigurationType x -> EmailConfigurationType $cfrom :: forall x. EmailConfigurationType -> Rep EmailConfigurationType x Prelude.Generic) -- | -- Create a value of 'EmailConfigurationType' with all optional fields omitted. -- -- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'sourceArn', 'emailConfigurationType_sourceArn' - The Amazon Resource Name (ARN) of a verified email address in Amazon -- SES. This email address is used in one of the following ways, depending -- on the value that you specify for the @EmailSendingAccount@ parameter: -- -- - If you specify @COGNITO_DEFAULT@, Amazon Cognito uses this address -- as the custom FROM address when it emails your users by using its -- built-in email account. -- -- - If you specify @DEVELOPER@, Amazon Cognito emails your users with -- this address by calling Amazon SES on your behalf. -- -- 'from', 'emailConfigurationType_from' - Identifies either the sender’s email address or the sender’s name with -- their email address. For example, @testuser\@example.com@ or -- @Test User \<testuser\@example.com>@. This address will appear before -- the body of the email. -- -- 'configurationSet', 'emailConfigurationType_configurationSet' - The set of configuration rules that can be applied to emails sent using -- Amazon SES. A configuration set is applied to an email by including a -- reference to the configuration set in the headers of the email. Once -- applied, all of the rules in that configuration set are applied to the -- email. Configuration sets can be used to apply the following types of -- rules to emails: -- -- - Event publishing – Amazon SES can track the number of send, -- delivery, open, click, bounce, and complaint events for each email -- sent. Use event publishing to send information about these events to -- other Amazon Web Services services such as SNS and CloudWatch. -- -- - IP pool management – When leasing dedicated IP addresses with Amazon -- SES, you can create groups of IP addresses, called dedicated IP -- pools. You can then associate the dedicated IP pools with -- configuration sets. -- -- 'replyToEmailAddress', 'emailConfigurationType_replyToEmailAddress' - The destination to which the receiver of the email should reply to. -- -- 'emailSendingAccount', 'emailConfigurationType_emailSendingAccount' - Specifies whether Amazon Cognito emails your users by using its built-in -- email functionality or your Amazon SES email configuration. Specify one -- of the following values: -- -- [COGNITO_DEFAULT] -- When Amazon Cognito emails your users, it uses its built-in email -- functionality. When you use the default option, Amazon Cognito -- allows only a limited number of emails each day for your user pool. -- For typical production environments, the default email limit is -- below the required delivery volume. To achieve a higher delivery -- volume, specify DEVELOPER to use your Amazon SES email -- configuration. -- -- To look up the email delivery limit for the default option, see -- <https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html Limits in Amazon Cognito> -- in the /Amazon Cognito Developer Guide/. -- -- The default FROM address is no-reply\@verificationemail.com. To -- customize the FROM address, provide the ARN of an Amazon SES -- verified email address for the @SourceArn@ parameter. -- -- If EmailSendingAccount is COGNITO_DEFAULT, the following parameters -- aren\'t allowed: -- -- - EmailVerificationMessage -- -- - EmailVerificationSubject -- -- - InviteMessageTemplate.EmailMessage -- -- - InviteMessageTemplate.EmailSubject -- -- - VerificationMessageTemplate.EmailMessage -- -- - VerificationMessageTemplate.EmailMessageByLink -- -- - VerificationMessageTemplate.EmailSubject, -- -- - VerificationMessageTemplate.EmailSubjectByLink -- -- DEVELOPER EmailSendingAccount is required. -- -- [DEVELOPER] -- When Amazon Cognito emails your users, it uses your Amazon SES -- configuration. Amazon Cognito calls Amazon SES on your behalf to -- send email from your verified email address. When you use this -- option, the email delivery limits are the same limits that apply to -- your Amazon SES verified email address in your account. -- -- If you use this option, you must provide the ARN of an Amazon SES -- verified email address for the @SourceArn@ parameter. -- -- Before Amazon Cognito can email your users, it requires additional -- permissions to call Amazon SES on your behalf. When you update your -- user pool with this option, Amazon Cognito creates a /service-linked -- role/, which is a type of IAM role, in your account. This role -- contains the permissions that allow Amazon Cognito to access Amazon -- SES and send email messages with your address. For more information -- about the service-linked role that Amazon Cognito creates, see -- <https://docs.aws.amazon.com/cognito/latest/developerguide/using-service-linked-roles.html Using Service-Linked Roles for Amazon Cognito> -- in the /Amazon Cognito Developer Guide/. newEmailConfigurationType :: EmailConfigurationType newEmailConfigurationType :: EmailConfigurationType newEmailConfigurationType = EmailConfigurationType' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe EmailSendingAccountType -> EmailConfigurationType EmailConfigurationType' { $sel:sourceArn:EmailConfigurationType' :: Maybe Text sourceArn = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:from:EmailConfigurationType' :: Maybe Text from = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:configurationSet:EmailConfigurationType' :: Maybe Text configurationSet = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:replyToEmailAddress:EmailConfigurationType' :: Maybe Text replyToEmailAddress = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:emailSendingAccount:EmailConfigurationType' :: Maybe EmailSendingAccountType emailSendingAccount = Maybe EmailSendingAccountType forall a. Maybe a Prelude.Nothing } -- | The Amazon Resource Name (ARN) of a verified email address in Amazon -- SES. This email address is used in one of the following ways, depending -- on the value that you specify for the @EmailSendingAccount@ parameter: -- -- - If you specify @COGNITO_DEFAULT@, Amazon Cognito uses this address -- as the custom FROM address when it emails your users by using its -- built-in email account. -- -- - If you specify @DEVELOPER@, Amazon Cognito emails your users with -- this address by calling Amazon SES on your behalf. emailConfigurationType_sourceArn :: Lens.Lens' EmailConfigurationType (Prelude.Maybe Prelude.Text) emailConfigurationType_sourceArn :: (Maybe Text -> f (Maybe Text)) -> EmailConfigurationType -> f EmailConfigurationType emailConfigurationType_sourceArn = (EmailConfigurationType -> Maybe Text) -> (EmailConfigurationType -> Maybe Text -> EmailConfigurationType) -> Lens EmailConfigurationType EmailConfigurationType (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\EmailConfigurationType' {Maybe Text sourceArn :: Maybe Text $sel:sourceArn:EmailConfigurationType' :: EmailConfigurationType -> Maybe Text sourceArn} -> Maybe Text sourceArn) (\s :: EmailConfigurationType s@EmailConfigurationType' {} Maybe Text a -> EmailConfigurationType s {$sel:sourceArn:EmailConfigurationType' :: Maybe Text sourceArn = Maybe Text a} :: EmailConfigurationType) -- | Identifies either the sender’s email address or the sender’s name with -- their email address. For example, @testuser\@example.com@ or -- @Test User \<testuser\@example.com>@. This address will appear before -- the body of the email. emailConfigurationType_from :: Lens.Lens' EmailConfigurationType (Prelude.Maybe Prelude.Text) emailConfigurationType_from :: (Maybe Text -> f (Maybe Text)) -> EmailConfigurationType -> f EmailConfigurationType emailConfigurationType_from = (EmailConfigurationType -> Maybe Text) -> (EmailConfigurationType -> Maybe Text -> EmailConfigurationType) -> Lens EmailConfigurationType EmailConfigurationType (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\EmailConfigurationType' {Maybe Text from :: Maybe Text $sel:from:EmailConfigurationType' :: EmailConfigurationType -> Maybe Text from} -> Maybe Text from) (\s :: EmailConfigurationType s@EmailConfigurationType' {} Maybe Text a -> EmailConfigurationType s {$sel:from:EmailConfigurationType' :: Maybe Text from = Maybe Text a} :: EmailConfigurationType) -- | The set of configuration rules that can be applied to emails sent using -- Amazon SES. A configuration set is applied to an email by including a -- reference to the configuration set in the headers of the email. Once -- applied, all of the rules in that configuration set are applied to the -- email. Configuration sets can be used to apply the following types of -- rules to emails: -- -- - Event publishing – Amazon SES can track the number of send, -- delivery, open, click, bounce, and complaint events for each email -- sent. Use event publishing to send information about these events to -- other Amazon Web Services services such as SNS and CloudWatch. -- -- - IP pool management – When leasing dedicated IP addresses with Amazon -- SES, you can create groups of IP addresses, called dedicated IP -- pools. You can then associate the dedicated IP pools with -- configuration sets. emailConfigurationType_configurationSet :: Lens.Lens' EmailConfigurationType (Prelude.Maybe Prelude.Text) emailConfigurationType_configurationSet :: (Maybe Text -> f (Maybe Text)) -> EmailConfigurationType -> f EmailConfigurationType emailConfigurationType_configurationSet = (EmailConfigurationType -> Maybe Text) -> (EmailConfigurationType -> Maybe Text -> EmailConfigurationType) -> Lens EmailConfigurationType EmailConfigurationType (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\EmailConfigurationType' {Maybe Text configurationSet :: Maybe Text $sel:configurationSet:EmailConfigurationType' :: EmailConfigurationType -> Maybe Text configurationSet} -> Maybe Text configurationSet) (\s :: EmailConfigurationType s@EmailConfigurationType' {} Maybe Text a -> EmailConfigurationType s {$sel:configurationSet:EmailConfigurationType' :: Maybe Text configurationSet = Maybe Text a} :: EmailConfigurationType) -- | The destination to which the receiver of the email should reply to. emailConfigurationType_replyToEmailAddress :: Lens.Lens' EmailConfigurationType (Prelude.Maybe Prelude.Text) emailConfigurationType_replyToEmailAddress :: (Maybe Text -> f (Maybe Text)) -> EmailConfigurationType -> f EmailConfigurationType emailConfigurationType_replyToEmailAddress = (EmailConfigurationType -> Maybe Text) -> (EmailConfigurationType -> Maybe Text -> EmailConfigurationType) -> Lens EmailConfigurationType EmailConfigurationType (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\EmailConfigurationType' {Maybe Text replyToEmailAddress :: Maybe Text $sel:replyToEmailAddress:EmailConfigurationType' :: EmailConfigurationType -> Maybe Text replyToEmailAddress} -> Maybe Text replyToEmailAddress) (\s :: EmailConfigurationType s@EmailConfigurationType' {} Maybe Text a -> EmailConfigurationType s {$sel:replyToEmailAddress:EmailConfigurationType' :: Maybe Text replyToEmailAddress = Maybe Text a} :: EmailConfigurationType) -- | Specifies whether Amazon Cognito emails your users by using its built-in -- email functionality or your Amazon SES email configuration. Specify one -- of the following values: -- -- [COGNITO_DEFAULT] -- When Amazon Cognito emails your users, it uses its built-in email -- functionality. When you use the default option, Amazon Cognito -- allows only a limited number of emails each day for your user pool. -- For typical production environments, the default email limit is -- below the required delivery volume. To achieve a higher delivery -- volume, specify DEVELOPER to use your Amazon SES email -- configuration. -- -- To look up the email delivery limit for the default option, see -- <https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html Limits in Amazon Cognito> -- in the /Amazon Cognito Developer Guide/. -- -- The default FROM address is no-reply\@verificationemail.com. To -- customize the FROM address, provide the ARN of an Amazon SES -- verified email address for the @SourceArn@ parameter. -- -- If EmailSendingAccount is COGNITO_DEFAULT, the following parameters -- aren\'t allowed: -- -- - EmailVerificationMessage -- -- - EmailVerificationSubject -- -- - InviteMessageTemplate.EmailMessage -- -- - InviteMessageTemplate.EmailSubject -- -- - VerificationMessageTemplate.EmailMessage -- -- - VerificationMessageTemplate.EmailMessageByLink -- -- - VerificationMessageTemplate.EmailSubject, -- -- - VerificationMessageTemplate.EmailSubjectByLink -- -- DEVELOPER EmailSendingAccount is required. -- -- [DEVELOPER] -- When Amazon Cognito emails your users, it uses your Amazon SES -- configuration. Amazon Cognito calls Amazon SES on your behalf to -- send email from your verified email address. When you use this -- option, the email delivery limits are the same limits that apply to -- your Amazon SES verified email address in your account. -- -- If you use this option, you must provide the ARN of an Amazon SES -- verified email address for the @SourceArn@ parameter. -- -- Before Amazon Cognito can email your users, it requires additional -- permissions to call Amazon SES on your behalf. When you update your -- user pool with this option, Amazon Cognito creates a /service-linked -- role/, which is a type of IAM role, in your account. This role -- contains the permissions that allow Amazon Cognito to access Amazon -- SES and send email messages with your address. For more information -- about the service-linked role that Amazon Cognito creates, see -- <https://docs.aws.amazon.com/cognito/latest/developerguide/using-service-linked-roles.html Using Service-Linked Roles for Amazon Cognito> -- in the /Amazon Cognito Developer Guide/. emailConfigurationType_emailSendingAccount :: Lens.Lens' EmailConfigurationType (Prelude.Maybe EmailSendingAccountType) emailConfigurationType_emailSendingAccount :: (Maybe EmailSendingAccountType -> f (Maybe EmailSendingAccountType)) -> EmailConfigurationType -> f EmailConfigurationType emailConfigurationType_emailSendingAccount = (EmailConfigurationType -> Maybe EmailSendingAccountType) -> (EmailConfigurationType -> Maybe EmailSendingAccountType -> EmailConfigurationType) -> Lens EmailConfigurationType EmailConfigurationType (Maybe EmailSendingAccountType) (Maybe EmailSendingAccountType) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\EmailConfigurationType' {Maybe EmailSendingAccountType emailSendingAccount :: Maybe EmailSendingAccountType $sel:emailSendingAccount:EmailConfigurationType' :: EmailConfigurationType -> Maybe EmailSendingAccountType emailSendingAccount} -> Maybe EmailSendingAccountType emailSendingAccount) (\s :: EmailConfigurationType s@EmailConfigurationType' {} Maybe EmailSendingAccountType a -> EmailConfigurationType s {$sel:emailSendingAccount:EmailConfigurationType' :: Maybe EmailSendingAccountType emailSendingAccount = Maybe EmailSendingAccountType a} :: EmailConfigurationType) instance Core.FromJSON EmailConfigurationType where parseJSON :: Value -> Parser EmailConfigurationType parseJSON = String -> (Object -> Parser EmailConfigurationType) -> Value -> Parser EmailConfigurationType forall a. String -> (Object -> Parser a) -> Value -> Parser a Core.withObject String "EmailConfigurationType" ( \Object x -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe EmailSendingAccountType -> EmailConfigurationType EmailConfigurationType' (Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe EmailSendingAccountType -> EmailConfigurationType) -> Parser (Maybe Text) -> Parser (Maybe Text -> Maybe Text -> Maybe Text -> Maybe EmailSendingAccountType -> EmailConfigurationType) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> (Object x Object -> Text -> Parser (Maybe Text) forall a. FromJSON a => Object -> Text -> Parser (Maybe a) Core..:? Text "SourceArn") Parser (Maybe Text -> Maybe Text -> Maybe Text -> Maybe EmailSendingAccountType -> EmailConfigurationType) -> Parser (Maybe Text) -> Parser (Maybe Text -> Maybe Text -> Maybe EmailSendingAccountType -> EmailConfigurationType) forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x Object -> Text -> Parser (Maybe Text) forall a. FromJSON a => Object -> Text -> Parser (Maybe a) Core..:? Text "From") Parser (Maybe Text -> Maybe Text -> Maybe EmailSendingAccountType -> EmailConfigurationType) -> Parser (Maybe Text) -> Parser (Maybe Text -> Maybe EmailSendingAccountType -> EmailConfigurationType) forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x Object -> Text -> Parser (Maybe Text) forall a. FromJSON a => Object -> Text -> Parser (Maybe a) Core..:? Text "ConfigurationSet") Parser (Maybe Text -> Maybe EmailSendingAccountType -> EmailConfigurationType) -> Parser (Maybe Text) -> Parser (Maybe EmailSendingAccountType -> EmailConfigurationType) forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x Object -> Text -> Parser (Maybe Text) forall a. FromJSON a => Object -> Text -> Parser (Maybe a) Core..:? Text "ReplyToEmailAddress") Parser (Maybe EmailSendingAccountType -> EmailConfigurationType) -> Parser (Maybe EmailSendingAccountType) -> Parser EmailConfigurationType forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x Object -> Text -> Parser (Maybe EmailSendingAccountType) forall a. FromJSON a => Object -> Text -> Parser (Maybe a) Core..:? Text "EmailSendingAccount") ) instance Prelude.Hashable EmailConfigurationType instance Prelude.NFData EmailConfigurationType instance Core.ToJSON EmailConfigurationType where toJSON :: EmailConfigurationType -> Value toJSON EmailConfigurationType' {Maybe Text Maybe EmailSendingAccountType emailSendingAccount :: Maybe EmailSendingAccountType replyToEmailAddress :: Maybe Text configurationSet :: Maybe Text from :: Maybe Text sourceArn :: Maybe Text $sel:emailSendingAccount:EmailConfigurationType' :: EmailConfigurationType -> Maybe EmailSendingAccountType $sel:replyToEmailAddress:EmailConfigurationType' :: EmailConfigurationType -> Maybe Text $sel:configurationSet:EmailConfigurationType' :: EmailConfigurationType -> Maybe Text $sel:from:EmailConfigurationType' :: EmailConfigurationType -> Maybe Text $sel:sourceArn:EmailConfigurationType' :: EmailConfigurationType -> Maybe Text ..} = [Pair] -> Value Core.object ( [Maybe Pair] -> [Pair] forall a. [Maybe a] -> [a] Prelude.catMaybes [ (Text "SourceArn" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text sourceArn, (Text "From" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text from, (Text "ConfigurationSet" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text configurationSet, (Text "ReplyToEmailAddress" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text replyToEmailAddress, (Text "EmailSendingAccount" Text -> EmailSendingAccountType -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (EmailSendingAccountType -> Pair) -> Maybe EmailSendingAccountType -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe EmailSendingAccountType emailSendingAccount ] )