amazonka-certificatemanager-1.4.4: gen/Network/AWS/CertificateManager/GetCertificate.hs
{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.CertificateManager.GetCertificate
-- Copyright : (c) 2013-2016 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves an ACM Certificate and certificate chain for the certificate specified by an ARN. The chain is an ordered list of certificates that contains the root certificate, intermediate certificates of subordinate CAs, and the ACM Certificate. The certificate and certificate chain are base64 encoded. If you want to decode the certificate chain to see the individual certificate fields, you can use OpenSSL.
--
-- Currently, ACM Certificates can be used only with Elastic Load Balancing and Amazon CloudFront.
module Network.AWS.CertificateManager.GetCertificate
(
-- * Creating a Request
getCertificate
, GetCertificate
-- * Request Lenses
, gcCertificateARN
-- * Destructuring the Response
, getCertificateResponse
, GetCertificateResponse
-- * Response Lenses
, gcrsCertificate
, gcrsCertificateChain
, gcrsResponseStatus
) 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
-- | /See:/ 'getCertificate' smart constructor.
newtype GetCertificate = GetCertificate'
{ _gcCertificateARN :: Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'GetCertificate' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'gcCertificateARN'
getCertificate
:: Text -- ^ 'gcCertificateARN'
-> GetCertificate
getCertificate pCertificateARN_ =
GetCertificate'
{ _gcCertificateARN = pCertificateARN_
}
-- | String that contains a certificate ARN in the following format:
--
-- 'arn:aws:acm:region:123456789012:certificate\/12345678-1234-1234-1234-123456789012'
--
-- For more information about ARNs, see <http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs) and AWS Service Namespaces>.
gcCertificateARN :: Lens' GetCertificate Text
gcCertificateARN = lens _gcCertificateARN (\ s a -> s{_gcCertificateARN = a});
instance AWSRequest GetCertificate where
type Rs GetCertificate = GetCertificateResponse
request = postJSON certificateManager
response
= receiveJSON
(\ s h x ->
GetCertificateResponse' <$>
(x .?> "Certificate") <*> (x .?> "CertificateChain")
<*> (pure (fromEnum s)))
instance Hashable GetCertificate
instance NFData GetCertificate
instance ToHeaders GetCertificate where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("CertificateManager.GetCertificate" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetCertificate where
toJSON GetCertificate'{..}
= object
(catMaybes
[Just ("CertificateArn" .= _gcCertificateARN)])
instance ToPath GetCertificate where
toPath = const "/"
instance ToQuery GetCertificate where
toQuery = const mempty
-- | /See:/ 'getCertificateResponse' smart constructor.
data GetCertificateResponse = GetCertificateResponse'
{ _gcrsCertificate :: !(Maybe Text)
, _gcrsCertificateChain :: !(Maybe Text)
, _gcrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'GetCertificateResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'gcrsCertificate'
--
-- * 'gcrsCertificateChain'
--
-- * 'gcrsResponseStatus'
getCertificateResponse
:: Int -- ^ 'gcrsResponseStatus'
-> GetCertificateResponse
getCertificateResponse pResponseStatus_ =
GetCertificateResponse'
{ _gcrsCertificate = Nothing
, _gcrsCertificateChain = Nothing
, _gcrsResponseStatus = pResponseStatus_
}
-- | String that contains the ACM Certificate represented by the ARN specified at input.
gcrsCertificate :: Lens' GetCertificateResponse (Maybe Text)
gcrsCertificate = lens _gcrsCertificate (\ s a -> s{_gcrsCertificate = a});
-- | The certificate chain that contains the root certificate issued by the certificate authority (CA).
gcrsCertificateChain :: Lens' GetCertificateResponse (Maybe Text)
gcrsCertificateChain = lens _gcrsCertificateChain (\ s a -> s{_gcrsCertificateChain = a});
-- | The response status code.
gcrsResponseStatus :: Lens' GetCertificateResponse Int
gcrsResponseStatus = lens _gcrsResponseStatus (\ s a -> s{_gcrsResponseStatus = a});
instance NFData GetCertificateResponse