module Network.AWS.CloudHSM.CreateLunaClient
(
CreateLunaClient
, createLunaClient
, clcCertificate
, clcLabel
, CreateLunaClientResponse
, createLunaClientResponse
, clcrClientArn
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.CloudHSM.Types
import qualified GHC.Exts
data CreateLunaClient = CreateLunaClient
{ _clcCertificate :: Text
, _clcLabel :: Maybe Text
} deriving (Eq, Ord, Read, Show)
createLunaClient :: Text
-> CreateLunaClient
createLunaClient p1 = CreateLunaClient
{ _clcCertificate = p1
, _clcLabel = Nothing
}
clcCertificate :: Lens' CreateLunaClient Text
clcCertificate = lens _clcCertificate (\s a -> s { _clcCertificate = a })
clcLabel :: Lens' CreateLunaClient (Maybe Text)
clcLabel = lens _clcLabel (\s a -> s { _clcLabel = a })
newtype CreateLunaClientResponse = CreateLunaClientResponse
{ _clcrClientArn :: Maybe Text
} deriving (Eq, Ord, Read, Show, Monoid)
createLunaClientResponse :: CreateLunaClientResponse
createLunaClientResponse = CreateLunaClientResponse
{ _clcrClientArn = Nothing
}
clcrClientArn :: Lens' CreateLunaClientResponse (Maybe Text)
clcrClientArn = lens _clcrClientArn (\s a -> s { _clcrClientArn = a })
instance ToPath CreateLunaClient where
toPath = const "/"
instance ToQuery CreateLunaClient where
toQuery = const mempty
instance ToHeaders CreateLunaClient
instance ToJSON CreateLunaClient where
toJSON CreateLunaClient{..} = object
[ "Label" .= _clcLabel
, "Certificate" .= _clcCertificate
]
instance AWSRequest CreateLunaClient where
type Sv CreateLunaClient = CloudHSM
type Rs CreateLunaClient = CreateLunaClientResponse
request = post "CreateLunaClient"
response = jsonResponse
instance FromJSON CreateLunaClientResponse where
parseJSON = withObject "CreateLunaClientResponse" $ \o -> CreateLunaClientResponse
<$> o .:? "ClientArn"