module Network.AWS.KMS.GenerateRandom
(
GenerateRandom
, generateRandom
, grNumberOfBytes
, GenerateRandomResponse
, generateRandomResponse
, grrPlaintext
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.KMS.Types
import qualified GHC.Exts
newtype GenerateRandom = GenerateRandom
{ _grNumberOfBytes :: Maybe Nat
} deriving (Eq, Ord, Show)
generateRandom :: GenerateRandom
generateRandom = GenerateRandom
{ _grNumberOfBytes = Nothing
}
grNumberOfBytes :: Lens' GenerateRandom (Maybe Natural)
grNumberOfBytes = lens _grNumberOfBytes (\s a -> s { _grNumberOfBytes = a }) . mapping _Nat
newtype GenerateRandomResponse = GenerateRandomResponse
{ _grrPlaintext :: Maybe Base64
} deriving (Eq, Show)
generateRandomResponse :: GenerateRandomResponse
generateRandomResponse = GenerateRandomResponse
{ _grrPlaintext = Nothing
}
grrPlaintext :: Lens' GenerateRandomResponse (Maybe Base64)
grrPlaintext = lens _grrPlaintext (\s a -> s { _grrPlaintext = a })
instance ToPath GenerateRandom where
toPath = const "/"
instance ToQuery GenerateRandom where
toQuery = const mempty
instance ToHeaders GenerateRandom
instance ToJSON GenerateRandom where
toJSON GenerateRandom{..} = object
[ "NumberOfBytes" .= _grNumberOfBytes
]
instance AWSRequest GenerateRandom where
type Sv GenerateRandom = KMS
type Rs GenerateRandom = GenerateRandomResponse
request = post "GenerateRandom"
response = jsonResponse
instance FromJSON GenerateRandomResponse where
parseJSON = withObject "GenerateRandomResponse" $ \o -> GenerateRandomResponse
<$> o .:? "Plaintext"