stratosphere-0.24.2: library-gen/Stratosphere/ResourceProperties/AmazonMQBrokerUser.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-user.html
module Stratosphere.ResourceProperties.AmazonMQBrokerUser where
import Stratosphere.ResourceImports
-- | Full data type definition for AmazonMQBrokerUser. See
-- 'amazonMQBrokerUser' for a more convenient constructor.
data AmazonMQBrokerUser =
AmazonMQBrokerUser
{ _amazonMQBrokerUserConsoleAccess :: Maybe (Val Bool)
, _amazonMQBrokerUserGroups :: Maybe (ValList Text)
, _amazonMQBrokerUserPassword :: Val Text
, _amazonMQBrokerUserUsername :: Val Text
} deriving (Show, Eq)
instance ToJSON AmazonMQBrokerUser where
toJSON AmazonMQBrokerUser{..} =
object $
catMaybes
[ fmap (("ConsoleAccess",) . toJSON . fmap Bool') _amazonMQBrokerUserConsoleAccess
, fmap (("Groups",) . toJSON) _amazonMQBrokerUserGroups
, (Just . ("Password",) . toJSON) _amazonMQBrokerUserPassword
, (Just . ("Username",) . toJSON) _amazonMQBrokerUserUsername
]
instance FromJSON AmazonMQBrokerUser where
parseJSON (Object obj) =
AmazonMQBrokerUser <$>
fmap (fmap (fmap unBool')) (obj .:? "ConsoleAccess") <*>
(obj .:? "Groups") <*>
(obj .: "Password") <*>
(obj .: "Username")
parseJSON _ = mempty
-- | Constructor for 'AmazonMQBrokerUser' containing required fields as
-- arguments.
amazonMQBrokerUser
:: Val Text -- ^ 'amqbuPassword'
-> Val Text -- ^ 'amqbuUsername'
-> AmazonMQBrokerUser
amazonMQBrokerUser passwordarg usernamearg =
AmazonMQBrokerUser
{ _amazonMQBrokerUserConsoleAccess = Nothing
, _amazonMQBrokerUserGroups = Nothing
, _amazonMQBrokerUserPassword = passwordarg
, _amazonMQBrokerUserUsername = usernamearg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-user.html#cfn-amazonmq-broker-user-consoleaccess
amqbuConsoleAccess :: Lens' AmazonMQBrokerUser (Maybe (Val Bool))
amqbuConsoleAccess = lens _amazonMQBrokerUserConsoleAccess (\s a -> s { _amazonMQBrokerUserConsoleAccess = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-user.html#cfn-amazonmq-broker-user-groups
amqbuGroups :: Lens' AmazonMQBrokerUser (Maybe (ValList Text))
amqbuGroups = lens _amazonMQBrokerUserGroups (\s a -> s { _amazonMQBrokerUserGroups = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-user.html#cfn-amazonmq-broker-user-password
amqbuPassword :: Lens' AmazonMQBrokerUser (Val Text)
amqbuPassword = lens _amazonMQBrokerUserPassword (\s a -> s { _amazonMQBrokerUserPassword = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-user.html#cfn-amazonmq-broker-user-username
amqbuUsername :: Lens' AmazonMQBrokerUser (Val Text)
amqbuUsername = lens _amazonMQBrokerUserUsername (\s a -> s { _amazonMQBrokerUserUsername = a })