{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.CertificateManager.RequestCertificate
(
requestCertificate
, RequestCertificate
, rcIdempotencyToken
, rcSubjectAlternativeNames
, rcDomainValidationOptions
, rcDomainName
, requestCertificateResponse
, RequestCertificateResponse
, rcrsCertificateARN
, rcrsResponseStatus
) where
import Network.AWS.CertificateManager.Types
import Network.AWS.CertificateManager.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data RequestCertificate = RequestCertificate'
{ _rcIdempotencyToken :: !(Maybe Text)
, _rcSubjectAlternativeNames :: !(Maybe (List1 Text))
, _rcDomainValidationOptions :: !(Maybe (List1 DomainValidationOption))
, _rcDomainName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
requestCertificate
:: Text
-> RequestCertificate
requestCertificate pDomainName_ =
RequestCertificate'
{ _rcIdempotencyToken = Nothing
, _rcSubjectAlternativeNames = Nothing
, _rcDomainValidationOptions = Nothing
, _rcDomainName = pDomainName_
}
rcIdempotencyToken :: Lens' RequestCertificate (Maybe Text)
rcIdempotencyToken = lens _rcIdempotencyToken (\ s a -> s{_rcIdempotencyToken = a});
rcSubjectAlternativeNames :: Lens' RequestCertificate (Maybe (NonEmpty Text))
rcSubjectAlternativeNames = lens _rcSubjectAlternativeNames (\ s a -> s{_rcSubjectAlternativeNames = a}) . mapping _List1;
rcDomainValidationOptions :: Lens' RequestCertificate (Maybe (NonEmpty DomainValidationOption))
rcDomainValidationOptions = lens _rcDomainValidationOptions (\ s a -> s{_rcDomainValidationOptions = a}) . mapping _List1;
rcDomainName :: Lens' RequestCertificate Text
rcDomainName = lens _rcDomainName (\ s a -> s{_rcDomainName = a});
instance AWSRequest RequestCertificate where
type Rs RequestCertificate =
RequestCertificateResponse
request = postJSON certificateManager
response
= receiveJSON
(\ s h x ->
RequestCertificateResponse' <$>
(x .?> "CertificateArn") <*> (pure (fromEnum s)))
instance Hashable RequestCertificate
instance NFData RequestCertificate
instance ToHeaders RequestCertificate where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("CertificateManager.RequestCertificate" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON RequestCertificate where
toJSON RequestCertificate'{..}
= object
(catMaybes
[("IdempotencyToken" .=) <$> _rcIdempotencyToken,
("SubjectAlternativeNames" .=) <$>
_rcSubjectAlternativeNames,
("DomainValidationOptions" .=) <$>
_rcDomainValidationOptions,
Just ("DomainName" .= _rcDomainName)])
instance ToPath RequestCertificate where
toPath = const "/"
instance ToQuery RequestCertificate where
toQuery = const mempty
data RequestCertificateResponse = RequestCertificateResponse'
{ _rcrsCertificateARN :: !(Maybe Text)
, _rcrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
requestCertificateResponse
:: Int
-> RequestCertificateResponse
requestCertificateResponse pResponseStatus_ =
RequestCertificateResponse'
{ _rcrsCertificateARN = Nothing
, _rcrsResponseStatus = pResponseStatus_
}
rcrsCertificateARN :: Lens' RequestCertificateResponse (Maybe Text)
rcrsCertificateARN = lens _rcrsCertificateARN (\ s a -> s{_rcrsCertificateARN = a});
rcrsResponseStatus :: Lens' RequestCertificateResponse Int
rcrsResponseStatus = lens _rcrsResponseStatus (\ s a -> s{_rcrsResponseStatus = a});
instance NFData RequestCertificateResponse