amazonka-iot-1.4.1: gen/Network/AWS/IoT/RegisterCACertificate.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.IoT.RegisterCACertificate
-- 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)
--
-- Registers a CA certificate with AWS IoT. This CA certificate can then be
-- used to sign device certificates, which can be then registered with AWS
-- IoT. You can register up to 10 CA certificates per AWS account that have
-- the same subject field and public key. This enables you to have up to 10
-- certificate authorities sign your device certificates. If you have more
-- than one CA certificate registered, make sure you pass the CA
-- certificate when you register your device certificates with the
-- RegisterCertificate API.
module Network.AWS.IoT.RegisterCACertificate
(
-- * Creating a Request
registerCACertificate
, RegisterCACertificate
-- * Request Lenses
, rcacSetAsActive
, rcacCaCertificate
, rcacVerificationCertificate
-- * Destructuring the Response
, registerCACertificateResponse
, RegisterCACertificateResponse
-- * Response Lenses
, rcacrsCertificateARN
, rcacrsCertificateId
, rcacrsResponseStatus
) where
import Network.AWS.IoT.Types
import Network.AWS.IoT.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | The input to the RegisterCACertificate operation.
--
-- /See:/ 'registerCACertificate' smart constructor.
data RegisterCACertificate = RegisterCACertificate'
{ _rcacSetAsActive :: !(Maybe Bool)
, _rcacCaCertificate :: !Text
, _rcacVerificationCertificate :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'RegisterCACertificate' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'rcacSetAsActive'
--
-- * 'rcacCaCertificate'
--
-- * 'rcacVerificationCertificate'
registerCACertificate
:: Text -- ^ 'rcacCaCertificate'
-> Text -- ^ 'rcacVerificationCertificate'
-> RegisterCACertificate
registerCACertificate pCaCertificate_ pVerificationCertificate_ =
RegisterCACertificate'
{ _rcacSetAsActive = Nothing
, _rcacCaCertificate = pCaCertificate_
, _rcacVerificationCertificate = pVerificationCertificate_
}
-- | A boolean value that specifies if the CA certificate is set to active.
rcacSetAsActive :: Lens' RegisterCACertificate (Maybe Bool)
rcacSetAsActive = lens _rcacSetAsActive (\ s a -> s{_rcacSetAsActive = a});
-- | The CA certificate.
rcacCaCertificate :: Lens' RegisterCACertificate Text
rcacCaCertificate = lens _rcacCaCertificate (\ s a -> s{_rcacCaCertificate = a});
-- | The private key verification certificate.
rcacVerificationCertificate :: Lens' RegisterCACertificate Text
rcacVerificationCertificate = lens _rcacVerificationCertificate (\ s a -> s{_rcacVerificationCertificate = a});
instance AWSRequest RegisterCACertificate where
type Rs RegisterCACertificate =
RegisterCACertificateResponse
request = postJSON ioT
response
= receiveJSON
(\ s h x ->
RegisterCACertificateResponse' <$>
(x .?> "certificateArn") <*> (x .?> "certificateId")
<*> (pure (fromEnum s)))
instance Hashable RegisterCACertificate
instance NFData RegisterCACertificate
instance ToHeaders RegisterCACertificate where
toHeaders = const mempty
instance ToJSON RegisterCACertificate where
toJSON RegisterCACertificate'{..}
= object
(catMaybes
[Just ("caCertificate" .= _rcacCaCertificate),
Just
("verificationCertificate" .=
_rcacVerificationCertificate)])
instance ToPath RegisterCACertificate where
toPath = const "/cacertificate"
instance ToQuery RegisterCACertificate where
toQuery RegisterCACertificate'{..}
= mconcat ["setAsActive" =: _rcacSetAsActive]
-- | The output from the RegisterCACertificateResponse operation.
--
-- /See:/ 'registerCACertificateResponse' smart constructor.
data RegisterCACertificateResponse = RegisterCACertificateResponse'
{ _rcacrsCertificateARN :: !(Maybe Text)
, _rcacrsCertificateId :: !(Maybe Text)
, _rcacrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'RegisterCACertificateResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'rcacrsCertificateARN'
--
-- * 'rcacrsCertificateId'
--
-- * 'rcacrsResponseStatus'
registerCACertificateResponse
:: Int -- ^ 'rcacrsResponseStatus'
-> RegisterCACertificateResponse
registerCACertificateResponse pResponseStatus_ =
RegisterCACertificateResponse'
{ _rcacrsCertificateARN = Nothing
, _rcacrsCertificateId = Nothing
, _rcacrsResponseStatus = pResponseStatus_
}
-- | The CA certificate ARN.
rcacrsCertificateARN :: Lens' RegisterCACertificateResponse (Maybe Text)
rcacrsCertificateARN = lens _rcacrsCertificateARN (\ s a -> s{_rcacrsCertificateARN = a});
-- | The CA certificate identifier.
rcacrsCertificateId :: Lens' RegisterCACertificateResponse (Maybe Text)
rcacrsCertificateId = lens _rcacrsCertificateId (\ s a -> s{_rcacrsCertificateId = a});
-- | The response status code.
rcacrsResponseStatus :: Lens' RegisterCACertificateResponse Int
rcacrsResponseStatus = lens _rcacrsResponseStatus (\ s a -> s{_rcacrsResponseStatus = a});
instance NFData RegisterCACertificateResponse