packages feed

stratosphere-cognito-1.0.0: gen/Stratosphere/Cognito/UserPool.hs

module Stratosphere.Cognito.UserPool (
        module Exports, UserPool(..), mkUserPool
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Cognito.UserPool.AccountRecoverySettingProperty as Exports
import {-# SOURCE #-} Stratosphere.Cognito.UserPool.AdminCreateUserConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.Cognito.UserPool.DeviceConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Cognito.UserPool.EmailConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Cognito.UserPool.LambdaConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.Cognito.UserPool.PoliciesProperty as Exports
import {-# SOURCE #-} Stratosphere.Cognito.UserPool.SchemaAttributeProperty as Exports
import {-# SOURCE #-} Stratosphere.Cognito.UserPool.SmsConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Cognito.UserPool.UserAttributeUpdateSettingsProperty as Exports
import {-# SOURCE #-} Stratosphere.Cognito.UserPool.UserPoolAddOnsProperty as Exports
import {-# SOURCE #-} Stratosphere.Cognito.UserPool.UsernameConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Cognito.UserPool.VerificationMessageTemplateProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data UserPool
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html>
    UserPool {haddock_workaround_ :: (),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-accountrecoverysetting>
              accountRecoverySetting :: (Prelude.Maybe AccountRecoverySettingProperty),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-admincreateuserconfig>
              adminCreateUserConfig :: (Prelude.Maybe AdminCreateUserConfigProperty),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-aliasattributes>
              aliasAttributes :: (Prelude.Maybe (ValueList Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-autoverifiedattributes>
              autoVerifiedAttributes :: (Prelude.Maybe (ValueList Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-deletionprotection>
              deletionProtection :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-deviceconfiguration>
              deviceConfiguration :: (Prelude.Maybe DeviceConfigurationProperty),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-emailauthenticationmessage>
              emailAuthenticationMessage :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-emailauthenticationsubject>
              emailAuthenticationSubject :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-emailconfiguration>
              emailConfiguration :: (Prelude.Maybe EmailConfigurationProperty),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-emailverificationmessage>
              emailVerificationMessage :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-emailverificationsubject>
              emailVerificationSubject :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-enabledmfas>
              enabledMfas :: (Prelude.Maybe (ValueList Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-lambdaconfig>
              lambdaConfig :: (Prelude.Maybe LambdaConfigProperty),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-mfaconfiguration>
              mfaConfiguration :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-policies>
              policies :: (Prelude.Maybe PoliciesProperty),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-schema>
              schema :: (Prelude.Maybe [SchemaAttributeProperty]),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-smsauthenticationmessage>
              smsAuthenticationMessage :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-smsconfiguration>
              smsConfiguration :: (Prelude.Maybe SmsConfigurationProperty),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-smsverificationmessage>
              smsVerificationMessage :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-userattributeupdatesettings>
              userAttributeUpdateSettings :: (Prelude.Maybe UserAttributeUpdateSettingsProperty),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-userpooladdons>
              userPoolAddOns :: (Prelude.Maybe UserPoolAddOnsProperty),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-userpoolname>
              userPoolName :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-userpooltags>
              userPoolTags :: (Prelude.Maybe (Prelude.Map Prelude.Text (Value Prelude.Text))),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-userpooltier>
              userPoolTier :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-usernameattributes>
              usernameAttributes :: (Prelude.Maybe (ValueList Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-usernameconfiguration>
              usernameConfiguration :: (Prelude.Maybe UsernameConfigurationProperty),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-verificationmessagetemplate>
              verificationMessageTemplate :: (Prelude.Maybe VerificationMessageTemplateProperty),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-webauthnrelyingpartyid>
              webAuthnRelyingPartyID :: (Prelude.Maybe (Value Prelude.Text)),
              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-webauthnuserverification>
              webAuthnUserVerification :: (Prelude.Maybe (Value Prelude.Text))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkUserPool :: UserPool
mkUserPool
  = UserPool
      {haddock_workaround_ = (),
       accountRecoverySetting = Prelude.Nothing,
       adminCreateUserConfig = Prelude.Nothing,
       aliasAttributes = Prelude.Nothing,
       autoVerifiedAttributes = Prelude.Nothing,
       deletionProtection = Prelude.Nothing,
       deviceConfiguration = Prelude.Nothing,
       emailAuthenticationMessage = Prelude.Nothing,
       emailAuthenticationSubject = Prelude.Nothing,
       emailConfiguration = Prelude.Nothing,
       emailVerificationMessage = Prelude.Nothing,
       emailVerificationSubject = Prelude.Nothing,
       enabledMfas = Prelude.Nothing, lambdaConfig = Prelude.Nothing,
       mfaConfiguration = Prelude.Nothing, policies = Prelude.Nothing,
       schema = Prelude.Nothing,
       smsAuthenticationMessage = Prelude.Nothing,
       smsConfiguration = Prelude.Nothing,
       smsVerificationMessage = Prelude.Nothing,
       userAttributeUpdateSettings = Prelude.Nothing,
       userPoolAddOns = Prelude.Nothing, userPoolName = Prelude.Nothing,
       userPoolTags = Prelude.Nothing, userPoolTier = Prelude.Nothing,
       usernameAttributes = Prelude.Nothing,
       usernameConfiguration = Prelude.Nothing,
       verificationMessageTemplate = Prelude.Nothing,
       webAuthnRelyingPartyID = Prelude.Nothing,
       webAuthnUserVerification = Prelude.Nothing}
instance ToResourceProperties UserPool where
  toResourceProperties UserPool {..}
    = ResourceProperties
        {awsType = "AWS::Cognito::UserPool", supportsTags = Prelude.False,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "AccountRecoverySetting"
                              Prelude.<$> accountRecoverySetting,
                            (JSON..=) "AdminCreateUserConfig"
                              Prelude.<$> adminCreateUserConfig,
                            (JSON..=) "AliasAttributes" Prelude.<$> aliasAttributes,
                            (JSON..=) "AutoVerifiedAttributes"
                              Prelude.<$> autoVerifiedAttributes,
                            (JSON..=) "DeletionProtection" Prelude.<$> deletionProtection,
                            (JSON..=) "DeviceConfiguration" Prelude.<$> deviceConfiguration,
                            (JSON..=) "EmailAuthenticationMessage"
                              Prelude.<$> emailAuthenticationMessage,
                            (JSON..=) "EmailAuthenticationSubject"
                              Prelude.<$> emailAuthenticationSubject,
                            (JSON..=) "EmailConfiguration" Prelude.<$> emailConfiguration,
                            (JSON..=) "EmailVerificationMessage"
                              Prelude.<$> emailVerificationMessage,
                            (JSON..=) "EmailVerificationSubject"
                              Prelude.<$> emailVerificationSubject,
                            (JSON..=) "EnabledMfas" Prelude.<$> enabledMfas,
                            (JSON..=) "LambdaConfig" Prelude.<$> lambdaConfig,
                            (JSON..=) "MfaConfiguration" Prelude.<$> mfaConfiguration,
                            (JSON..=) "Policies" Prelude.<$> policies,
                            (JSON..=) "Schema" Prelude.<$> schema,
                            (JSON..=) "SmsAuthenticationMessage"
                              Prelude.<$> smsAuthenticationMessage,
                            (JSON..=) "SmsConfiguration" Prelude.<$> smsConfiguration,
                            (JSON..=) "SmsVerificationMessage"
                              Prelude.<$> smsVerificationMessage,
                            (JSON..=) "UserAttributeUpdateSettings"
                              Prelude.<$> userAttributeUpdateSettings,
                            (JSON..=) "UserPoolAddOns" Prelude.<$> userPoolAddOns,
                            (JSON..=) "UserPoolName" Prelude.<$> userPoolName,
                            (JSON..=) "UserPoolTags" Prelude.<$> userPoolTags,
                            (JSON..=) "UserPoolTier" Prelude.<$> userPoolTier,
                            (JSON..=) "UsernameAttributes" Prelude.<$> usernameAttributes,
                            (JSON..=) "UsernameConfiguration"
                              Prelude.<$> usernameConfiguration,
                            (JSON..=) "VerificationMessageTemplate"
                              Prelude.<$> verificationMessageTemplate,
                            (JSON..=) "WebAuthnRelyingPartyID"
                              Prelude.<$> webAuthnRelyingPartyID,
                            (JSON..=) "WebAuthnUserVerification"
                              Prelude.<$> webAuthnUserVerification])}
instance JSON.ToJSON UserPool where
  toJSON UserPool {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "AccountRecoverySetting"
                 Prelude.<$> accountRecoverySetting,
               (JSON..=) "AdminCreateUserConfig"
                 Prelude.<$> adminCreateUserConfig,
               (JSON..=) "AliasAttributes" Prelude.<$> aliasAttributes,
               (JSON..=) "AutoVerifiedAttributes"
                 Prelude.<$> autoVerifiedAttributes,
               (JSON..=) "DeletionProtection" Prelude.<$> deletionProtection,
               (JSON..=) "DeviceConfiguration" Prelude.<$> deviceConfiguration,
               (JSON..=) "EmailAuthenticationMessage"
                 Prelude.<$> emailAuthenticationMessage,
               (JSON..=) "EmailAuthenticationSubject"
                 Prelude.<$> emailAuthenticationSubject,
               (JSON..=) "EmailConfiguration" Prelude.<$> emailConfiguration,
               (JSON..=) "EmailVerificationMessage"
                 Prelude.<$> emailVerificationMessage,
               (JSON..=) "EmailVerificationSubject"
                 Prelude.<$> emailVerificationSubject,
               (JSON..=) "EnabledMfas" Prelude.<$> enabledMfas,
               (JSON..=) "LambdaConfig" Prelude.<$> lambdaConfig,
               (JSON..=) "MfaConfiguration" Prelude.<$> mfaConfiguration,
               (JSON..=) "Policies" Prelude.<$> policies,
               (JSON..=) "Schema" Prelude.<$> schema,
               (JSON..=) "SmsAuthenticationMessage"
                 Prelude.<$> smsAuthenticationMessage,
               (JSON..=) "SmsConfiguration" Prelude.<$> smsConfiguration,
               (JSON..=) "SmsVerificationMessage"
                 Prelude.<$> smsVerificationMessage,
               (JSON..=) "UserAttributeUpdateSettings"
                 Prelude.<$> userAttributeUpdateSettings,
               (JSON..=) "UserPoolAddOns" Prelude.<$> userPoolAddOns,
               (JSON..=) "UserPoolName" Prelude.<$> userPoolName,
               (JSON..=) "UserPoolTags" Prelude.<$> userPoolTags,
               (JSON..=) "UserPoolTier" Prelude.<$> userPoolTier,
               (JSON..=) "UsernameAttributes" Prelude.<$> usernameAttributes,
               (JSON..=) "UsernameConfiguration"
                 Prelude.<$> usernameConfiguration,
               (JSON..=) "VerificationMessageTemplate"
                 Prelude.<$> verificationMessageTemplate,
               (JSON..=) "WebAuthnRelyingPartyID"
                 Prelude.<$> webAuthnRelyingPartyID,
               (JSON..=) "WebAuthnUserVerification"
                 Prelude.<$> webAuthnUserVerification]))
instance Property "AccountRecoverySetting" UserPool where
  type PropertyType "AccountRecoverySetting" UserPool = AccountRecoverySettingProperty
  set newValue UserPool {..}
    = UserPool {accountRecoverySetting = Prelude.pure newValue, ..}
instance Property "AdminCreateUserConfig" UserPool where
  type PropertyType "AdminCreateUserConfig" UserPool = AdminCreateUserConfigProperty
  set newValue UserPool {..}
    = UserPool {adminCreateUserConfig = Prelude.pure newValue, ..}
instance Property "AliasAttributes" UserPool where
  type PropertyType "AliasAttributes" UserPool = ValueList Prelude.Text
  set newValue UserPool {..}
    = UserPool {aliasAttributes = Prelude.pure newValue, ..}
instance Property "AutoVerifiedAttributes" UserPool where
  type PropertyType "AutoVerifiedAttributes" UserPool = ValueList Prelude.Text
  set newValue UserPool {..}
    = UserPool {autoVerifiedAttributes = Prelude.pure newValue, ..}
instance Property "DeletionProtection" UserPool where
  type PropertyType "DeletionProtection" UserPool = Value Prelude.Text
  set newValue UserPool {..}
    = UserPool {deletionProtection = Prelude.pure newValue, ..}
instance Property "DeviceConfiguration" UserPool where
  type PropertyType "DeviceConfiguration" UserPool = DeviceConfigurationProperty
  set newValue UserPool {..}
    = UserPool {deviceConfiguration = Prelude.pure newValue, ..}
instance Property "EmailAuthenticationMessage" UserPool where
  type PropertyType "EmailAuthenticationMessage" UserPool = Value Prelude.Text
  set newValue UserPool {..}
    = UserPool {emailAuthenticationMessage = Prelude.pure newValue, ..}
instance Property "EmailAuthenticationSubject" UserPool where
  type PropertyType "EmailAuthenticationSubject" UserPool = Value Prelude.Text
  set newValue UserPool {..}
    = UserPool {emailAuthenticationSubject = Prelude.pure newValue, ..}
instance Property "EmailConfiguration" UserPool where
  type PropertyType "EmailConfiguration" UserPool = EmailConfigurationProperty
  set newValue UserPool {..}
    = UserPool {emailConfiguration = Prelude.pure newValue, ..}
instance Property "EmailVerificationMessage" UserPool where
  type PropertyType "EmailVerificationMessage" UserPool = Value Prelude.Text
  set newValue UserPool {..}
    = UserPool {emailVerificationMessage = Prelude.pure newValue, ..}
instance Property "EmailVerificationSubject" UserPool where
  type PropertyType "EmailVerificationSubject" UserPool = Value Prelude.Text
  set newValue UserPool {..}
    = UserPool {emailVerificationSubject = Prelude.pure newValue, ..}
instance Property "EnabledMfas" UserPool where
  type PropertyType "EnabledMfas" UserPool = ValueList Prelude.Text
  set newValue UserPool {..}
    = UserPool {enabledMfas = Prelude.pure newValue, ..}
instance Property "LambdaConfig" UserPool where
  type PropertyType "LambdaConfig" UserPool = LambdaConfigProperty
  set newValue UserPool {..}
    = UserPool {lambdaConfig = Prelude.pure newValue, ..}
instance Property "MfaConfiguration" UserPool where
  type PropertyType "MfaConfiguration" UserPool = Value Prelude.Text
  set newValue UserPool {..}
    = UserPool {mfaConfiguration = Prelude.pure newValue, ..}
instance Property "Policies" UserPool where
  type PropertyType "Policies" UserPool = PoliciesProperty
  set newValue UserPool {..}
    = UserPool {policies = Prelude.pure newValue, ..}
instance Property "Schema" UserPool where
  type PropertyType "Schema" UserPool = [SchemaAttributeProperty]
  set newValue UserPool {..}
    = UserPool {schema = Prelude.pure newValue, ..}
instance Property "SmsAuthenticationMessage" UserPool where
  type PropertyType "SmsAuthenticationMessage" UserPool = Value Prelude.Text
  set newValue UserPool {..}
    = UserPool {smsAuthenticationMessage = Prelude.pure newValue, ..}
instance Property "SmsConfiguration" UserPool where
  type PropertyType "SmsConfiguration" UserPool = SmsConfigurationProperty
  set newValue UserPool {..}
    = UserPool {smsConfiguration = Prelude.pure newValue, ..}
instance Property "SmsVerificationMessage" UserPool where
  type PropertyType "SmsVerificationMessage" UserPool = Value Prelude.Text
  set newValue UserPool {..}
    = UserPool {smsVerificationMessage = Prelude.pure newValue, ..}
instance Property "UserAttributeUpdateSettings" UserPool where
  type PropertyType "UserAttributeUpdateSettings" UserPool = UserAttributeUpdateSettingsProperty
  set newValue UserPool {..}
    = UserPool
        {userAttributeUpdateSettings = Prelude.pure newValue, ..}
instance Property "UserPoolAddOns" UserPool where
  type PropertyType "UserPoolAddOns" UserPool = UserPoolAddOnsProperty
  set newValue UserPool {..}
    = UserPool {userPoolAddOns = Prelude.pure newValue, ..}
instance Property "UserPoolName" UserPool where
  type PropertyType "UserPoolName" UserPool = Value Prelude.Text
  set newValue UserPool {..}
    = UserPool {userPoolName = Prelude.pure newValue, ..}
instance Property "UserPoolTags" UserPool where
  type PropertyType "UserPoolTags" UserPool = Prelude.Map Prelude.Text (Value Prelude.Text)
  set newValue UserPool {..}
    = UserPool {userPoolTags = Prelude.pure newValue, ..}
instance Property "UserPoolTier" UserPool where
  type PropertyType "UserPoolTier" UserPool = Value Prelude.Text
  set newValue UserPool {..}
    = UserPool {userPoolTier = Prelude.pure newValue, ..}
instance Property "UsernameAttributes" UserPool where
  type PropertyType "UsernameAttributes" UserPool = ValueList Prelude.Text
  set newValue UserPool {..}
    = UserPool {usernameAttributes = Prelude.pure newValue, ..}
instance Property "UsernameConfiguration" UserPool where
  type PropertyType "UsernameConfiguration" UserPool = UsernameConfigurationProperty
  set newValue UserPool {..}
    = UserPool {usernameConfiguration = Prelude.pure newValue, ..}
instance Property "VerificationMessageTemplate" UserPool where
  type PropertyType "VerificationMessageTemplate" UserPool = VerificationMessageTemplateProperty
  set newValue UserPool {..}
    = UserPool
        {verificationMessageTemplate = Prelude.pure newValue, ..}
instance Property "WebAuthnRelyingPartyID" UserPool where
  type PropertyType "WebAuthnRelyingPartyID" UserPool = Value Prelude.Text
  set newValue UserPool {..}
    = UserPool {webAuthnRelyingPartyID = Prelude.pure newValue, ..}
instance Property "WebAuthnUserVerification" UserPool where
  type PropertyType "WebAuthnUserVerification" UserPool = Value Prelude.Text
  set newValue UserPool {..}
    = UserPool {webAuthnUserVerification = Prelude.pure newValue, ..}