{-# 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 #-}
module Amazonka.IAM.Types.PasswordPolicy where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
data PasswordPolicy = PasswordPolicy'
{
PasswordPolicy -> Maybe Bool
allowUsersToChangePassword :: Prelude.Maybe Prelude.Bool,
PasswordPolicy -> Maybe Bool
expirePasswords :: Prelude.Maybe Prelude.Bool,
PasswordPolicy -> Maybe Bool
hardExpiry :: Prelude.Maybe Prelude.Bool,
PasswordPolicy -> Maybe Natural
maxPasswordAge :: Prelude.Maybe Prelude.Natural,
PasswordPolicy -> Maybe Natural
minimumPasswordLength :: Prelude.Maybe Prelude.Natural,
PasswordPolicy -> Maybe Natural
passwordReusePrevention :: Prelude.Maybe Prelude.Natural,
PasswordPolicy -> Maybe Bool
requireLowercaseCharacters :: Prelude.Maybe Prelude.Bool,
PasswordPolicy -> Maybe Bool
requireNumbers :: Prelude.Maybe Prelude.Bool,
PasswordPolicy -> Maybe Bool
requireSymbols :: Prelude.Maybe Prelude.Bool,
PasswordPolicy -> Maybe Bool
requireUppercaseCharacters :: Prelude.Maybe Prelude.Bool
}
deriving (PasswordPolicy -> PasswordPolicy -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PasswordPolicy -> PasswordPolicy -> Bool
$c/= :: PasswordPolicy -> PasswordPolicy -> Bool
== :: PasswordPolicy -> PasswordPolicy -> Bool
$c== :: PasswordPolicy -> PasswordPolicy -> Bool
Prelude.Eq, ReadPrec [PasswordPolicy]
ReadPrec PasswordPolicy
Int -> ReadS PasswordPolicy
ReadS [PasswordPolicy]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PasswordPolicy]
$creadListPrec :: ReadPrec [PasswordPolicy]
readPrec :: ReadPrec PasswordPolicy
$creadPrec :: ReadPrec PasswordPolicy
readList :: ReadS [PasswordPolicy]
$creadList :: ReadS [PasswordPolicy]
readsPrec :: Int -> ReadS PasswordPolicy
$creadsPrec :: Int -> ReadS PasswordPolicy
Prelude.Read, Int -> PasswordPolicy -> ShowS
[PasswordPolicy] -> ShowS
PasswordPolicy -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PasswordPolicy] -> ShowS
$cshowList :: [PasswordPolicy] -> ShowS
show :: PasswordPolicy -> String
$cshow :: PasswordPolicy -> String
showsPrec :: Int -> PasswordPolicy -> ShowS
$cshowsPrec :: Int -> PasswordPolicy -> ShowS
Prelude.Show, forall x. Rep PasswordPolicy x -> PasswordPolicy
forall x. PasswordPolicy -> Rep PasswordPolicy x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PasswordPolicy x -> PasswordPolicy
$cfrom :: forall x. PasswordPolicy -> Rep PasswordPolicy x
Prelude.Generic)
newPasswordPolicy ::
PasswordPolicy
newPasswordPolicy :: PasswordPolicy
newPasswordPolicy =
PasswordPolicy'
{ $sel:allowUsersToChangePassword:PasswordPolicy' :: Maybe Bool
allowUsersToChangePassword =
forall a. Maybe a
Prelude.Nothing,
$sel:expirePasswords:PasswordPolicy' :: Maybe Bool
expirePasswords = forall a. Maybe a
Prelude.Nothing,
$sel:hardExpiry:PasswordPolicy' :: Maybe Bool
hardExpiry = forall a. Maybe a
Prelude.Nothing,
$sel:maxPasswordAge:PasswordPolicy' :: Maybe Natural
maxPasswordAge = forall a. Maybe a
Prelude.Nothing,
$sel:minimumPasswordLength:PasswordPolicy' :: Maybe Natural
minimumPasswordLength = forall a. Maybe a
Prelude.Nothing,
$sel:passwordReusePrevention:PasswordPolicy' :: Maybe Natural
passwordReusePrevention = forall a. Maybe a
Prelude.Nothing,
$sel:requireLowercaseCharacters:PasswordPolicy' :: Maybe Bool
requireLowercaseCharacters = forall a. Maybe a
Prelude.Nothing,
$sel:requireNumbers:PasswordPolicy' :: Maybe Bool
requireNumbers = forall a. Maybe a
Prelude.Nothing,
$sel:requireSymbols:PasswordPolicy' :: Maybe Bool
requireSymbols = forall a. Maybe a
Prelude.Nothing,
$sel:requireUppercaseCharacters:PasswordPolicy' :: Maybe Bool
requireUppercaseCharacters = forall a. Maybe a
Prelude.Nothing
}
passwordPolicy_allowUsersToChangePassword :: Lens.Lens' PasswordPolicy (Prelude.Maybe Prelude.Bool)
passwordPolicy_allowUsersToChangePassword :: Lens' PasswordPolicy (Maybe Bool)
passwordPolicy_allowUsersToChangePassword = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PasswordPolicy' {Maybe Bool
allowUsersToChangePassword :: Maybe Bool
$sel:allowUsersToChangePassword:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
allowUsersToChangePassword} -> Maybe Bool
allowUsersToChangePassword) (\s :: PasswordPolicy
s@PasswordPolicy' {} Maybe Bool
a -> PasswordPolicy
s {$sel:allowUsersToChangePassword:PasswordPolicy' :: Maybe Bool
allowUsersToChangePassword = Maybe Bool
a} :: PasswordPolicy)
passwordPolicy_expirePasswords :: Lens.Lens' PasswordPolicy (Prelude.Maybe Prelude.Bool)
passwordPolicy_expirePasswords :: Lens' PasswordPolicy (Maybe Bool)
passwordPolicy_expirePasswords = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PasswordPolicy' {Maybe Bool
expirePasswords :: Maybe Bool
$sel:expirePasswords:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
expirePasswords} -> Maybe Bool
expirePasswords) (\s :: PasswordPolicy
s@PasswordPolicy' {} Maybe Bool
a -> PasswordPolicy
s {$sel:expirePasswords:PasswordPolicy' :: Maybe Bool
expirePasswords = Maybe Bool
a} :: PasswordPolicy)
passwordPolicy_hardExpiry :: Lens.Lens' PasswordPolicy (Prelude.Maybe Prelude.Bool)
passwordPolicy_hardExpiry :: Lens' PasswordPolicy (Maybe Bool)
passwordPolicy_hardExpiry = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PasswordPolicy' {Maybe Bool
hardExpiry :: Maybe Bool
$sel:hardExpiry:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
hardExpiry} -> Maybe Bool
hardExpiry) (\s :: PasswordPolicy
s@PasswordPolicy' {} Maybe Bool
a -> PasswordPolicy
s {$sel:hardExpiry:PasswordPolicy' :: Maybe Bool
hardExpiry = Maybe Bool
a} :: PasswordPolicy)
passwordPolicy_maxPasswordAge :: Lens.Lens' PasswordPolicy (Prelude.Maybe Prelude.Natural)
passwordPolicy_maxPasswordAge :: Lens' PasswordPolicy (Maybe Natural)
passwordPolicy_maxPasswordAge = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PasswordPolicy' {Maybe Natural
maxPasswordAge :: Maybe Natural
$sel:maxPasswordAge:PasswordPolicy' :: PasswordPolicy -> Maybe Natural
maxPasswordAge} -> Maybe Natural
maxPasswordAge) (\s :: PasswordPolicy
s@PasswordPolicy' {} Maybe Natural
a -> PasswordPolicy
s {$sel:maxPasswordAge:PasswordPolicy' :: Maybe Natural
maxPasswordAge = Maybe Natural
a} :: PasswordPolicy)
passwordPolicy_minimumPasswordLength :: Lens.Lens' PasswordPolicy (Prelude.Maybe Prelude.Natural)
passwordPolicy_minimumPasswordLength :: Lens' PasswordPolicy (Maybe Natural)
passwordPolicy_minimumPasswordLength = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PasswordPolicy' {Maybe Natural
minimumPasswordLength :: Maybe Natural
$sel:minimumPasswordLength:PasswordPolicy' :: PasswordPolicy -> Maybe Natural
minimumPasswordLength} -> Maybe Natural
minimumPasswordLength) (\s :: PasswordPolicy
s@PasswordPolicy' {} Maybe Natural
a -> PasswordPolicy
s {$sel:minimumPasswordLength:PasswordPolicy' :: Maybe Natural
minimumPasswordLength = Maybe Natural
a} :: PasswordPolicy)
passwordPolicy_passwordReusePrevention :: Lens.Lens' PasswordPolicy (Prelude.Maybe Prelude.Natural)
passwordPolicy_passwordReusePrevention :: Lens' PasswordPolicy (Maybe Natural)
passwordPolicy_passwordReusePrevention = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PasswordPolicy' {Maybe Natural
passwordReusePrevention :: Maybe Natural
$sel:passwordReusePrevention:PasswordPolicy' :: PasswordPolicy -> Maybe Natural
passwordReusePrevention} -> Maybe Natural
passwordReusePrevention) (\s :: PasswordPolicy
s@PasswordPolicy' {} Maybe Natural
a -> PasswordPolicy
s {$sel:passwordReusePrevention:PasswordPolicy' :: Maybe Natural
passwordReusePrevention = Maybe Natural
a} :: PasswordPolicy)
passwordPolicy_requireLowercaseCharacters :: Lens.Lens' PasswordPolicy (Prelude.Maybe Prelude.Bool)
passwordPolicy_requireLowercaseCharacters :: Lens' PasswordPolicy (Maybe Bool)
passwordPolicy_requireLowercaseCharacters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PasswordPolicy' {Maybe Bool
requireLowercaseCharacters :: Maybe Bool
$sel:requireLowercaseCharacters:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
requireLowercaseCharacters} -> Maybe Bool
requireLowercaseCharacters) (\s :: PasswordPolicy
s@PasswordPolicy' {} Maybe Bool
a -> PasswordPolicy
s {$sel:requireLowercaseCharacters:PasswordPolicy' :: Maybe Bool
requireLowercaseCharacters = Maybe Bool
a} :: PasswordPolicy)
passwordPolicy_requireNumbers :: Lens.Lens' PasswordPolicy (Prelude.Maybe Prelude.Bool)
passwordPolicy_requireNumbers :: Lens' PasswordPolicy (Maybe Bool)
passwordPolicy_requireNumbers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PasswordPolicy' {Maybe Bool
requireNumbers :: Maybe Bool
$sel:requireNumbers:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
requireNumbers} -> Maybe Bool
requireNumbers) (\s :: PasswordPolicy
s@PasswordPolicy' {} Maybe Bool
a -> PasswordPolicy
s {$sel:requireNumbers:PasswordPolicy' :: Maybe Bool
requireNumbers = Maybe Bool
a} :: PasswordPolicy)
passwordPolicy_requireSymbols :: Lens.Lens' PasswordPolicy (Prelude.Maybe Prelude.Bool)
passwordPolicy_requireSymbols :: Lens' PasswordPolicy (Maybe Bool)
passwordPolicy_requireSymbols = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PasswordPolicy' {Maybe Bool
requireSymbols :: Maybe Bool
$sel:requireSymbols:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
requireSymbols} -> Maybe Bool
requireSymbols) (\s :: PasswordPolicy
s@PasswordPolicy' {} Maybe Bool
a -> PasswordPolicy
s {$sel:requireSymbols:PasswordPolicy' :: Maybe Bool
requireSymbols = Maybe Bool
a} :: PasswordPolicy)
passwordPolicy_requireUppercaseCharacters :: Lens.Lens' PasswordPolicy (Prelude.Maybe Prelude.Bool)
passwordPolicy_requireUppercaseCharacters :: Lens' PasswordPolicy (Maybe Bool)
passwordPolicy_requireUppercaseCharacters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PasswordPolicy' {Maybe Bool
requireUppercaseCharacters :: Maybe Bool
$sel:requireUppercaseCharacters:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
requireUppercaseCharacters} -> Maybe Bool
requireUppercaseCharacters) (\s :: PasswordPolicy
s@PasswordPolicy' {} Maybe Bool
a -> PasswordPolicy
s {$sel:requireUppercaseCharacters:PasswordPolicy' :: Maybe Bool
requireUppercaseCharacters = Maybe Bool
a} :: PasswordPolicy)
instance Data.FromXML PasswordPolicy where
parseXML :: [Node] -> Either String PasswordPolicy
parseXML [Node]
x =
Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Natural
-> Maybe Natural
-> Maybe Natural
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> PasswordPolicy
PasswordPolicy'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"AllowUsersToChangePassword")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ExpirePasswords")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"HardExpiry")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"MaxPasswordAge")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"MinimumPasswordLength")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"PasswordReusePrevention")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"RequireLowercaseCharacters")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"RequireNumbers")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"RequireSymbols")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"RequireUppercaseCharacters")
instance Prelude.Hashable PasswordPolicy where
hashWithSalt :: Int -> PasswordPolicy -> Int
hashWithSalt Int
_salt PasswordPolicy' {Maybe Bool
Maybe Natural
requireUppercaseCharacters :: Maybe Bool
requireSymbols :: Maybe Bool
requireNumbers :: Maybe Bool
requireLowercaseCharacters :: Maybe Bool
passwordReusePrevention :: Maybe Natural
minimumPasswordLength :: Maybe Natural
maxPasswordAge :: Maybe Natural
hardExpiry :: Maybe Bool
expirePasswords :: Maybe Bool
allowUsersToChangePassword :: Maybe Bool
$sel:requireUppercaseCharacters:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
$sel:requireSymbols:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
$sel:requireNumbers:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
$sel:requireLowercaseCharacters:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
$sel:passwordReusePrevention:PasswordPolicy' :: PasswordPolicy -> Maybe Natural
$sel:minimumPasswordLength:PasswordPolicy' :: PasswordPolicy -> Maybe Natural
$sel:maxPasswordAge:PasswordPolicy' :: PasswordPolicy -> Maybe Natural
$sel:hardExpiry:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
$sel:expirePasswords:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
$sel:allowUsersToChangePassword:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
allowUsersToChangePassword
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
expirePasswords
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
hardExpiry
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxPasswordAge
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
minimumPasswordLength
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
passwordReusePrevention
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
requireLowercaseCharacters
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
requireNumbers
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
requireSymbols
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
requireUppercaseCharacters
instance Prelude.NFData PasswordPolicy where
rnf :: PasswordPolicy -> ()
rnf PasswordPolicy' {Maybe Bool
Maybe Natural
requireUppercaseCharacters :: Maybe Bool
requireSymbols :: Maybe Bool
requireNumbers :: Maybe Bool
requireLowercaseCharacters :: Maybe Bool
passwordReusePrevention :: Maybe Natural
minimumPasswordLength :: Maybe Natural
maxPasswordAge :: Maybe Natural
hardExpiry :: Maybe Bool
expirePasswords :: Maybe Bool
allowUsersToChangePassword :: Maybe Bool
$sel:requireUppercaseCharacters:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
$sel:requireSymbols:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
$sel:requireNumbers:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
$sel:requireLowercaseCharacters:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
$sel:passwordReusePrevention:PasswordPolicy' :: PasswordPolicy -> Maybe Natural
$sel:minimumPasswordLength:PasswordPolicy' :: PasswordPolicy -> Maybe Natural
$sel:maxPasswordAge:PasswordPolicy' :: PasswordPolicy -> Maybe Natural
$sel:hardExpiry:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
$sel:expirePasswords:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
$sel:allowUsersToChangePassword:PasswordPolicy' :: PasswordPolicy -> Maybe Bool
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
allowUsersToChangePassword
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
expirePasswords
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
hardExpiry
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxPasswordAge
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
minimumPasswordLength
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
passwordReusePrevention
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
requireLowercaseCharacters
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
requireNumbers
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
requireSymbols
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
requireUppercaseCharacters