{-# 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.Route53AutoNaming.CreatePrivateDNSNamespace
(
createPrivateDNSNamespace
, CreatePrivateDNSNamespace
, cpdnsnCreatorRequestId
, cpdnsnDescription
, cpdnsnName
, cpdnsnVPC
, createPrivateDNSNamespaceResponse
, CreatePrivateDNSNamespaceResponse
, cpdnsnrsOperationId
, cpdnsnrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.Route53AutoNaming.Types
import Network.AWS.Route53AutoNaming.Types.Product
data CreatePrivateDNSNamespace = CreatePrivateDNSNamespace'
{ _cpdnsnCreatorRequestId :: !(Maybe Text)
, _cpdnsnDescription :: !(Maybe Text)
, _cpdnsnName :: !Text
, _cpdnsnVPC :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createPrivateDNSNamespace
:: Text
-> Text
-> CreatePrivateDNSNamespace
createPrivateDNSNamespace pName_ pVPC_ =
CreatePrivateDNSNamespace'
{ _cpdnsnCreatorRequestId = Nothing
, _cpdnsnDescription = Nothing
, _cpdnsnName = pName_
, _cpdnsnVPC = pVPC_
}
cpdnsnCreatorRequestId :: Lens' CreatePrivateDNSNamespace (Maybe Text)
cpdnsnCreatorRequestId = lens _cpdnsnCreatorRequestId (\ s a -> s{_cpdnsnCreatorRequestId = a})
cpdnsnDescription :: Lens' CreatePrivateDNSNamespace (Maybe Text)
cpdnsnDescription = lens _cpdnsnDescription (\ s a -> s{_cpdnsnDescription = a})
cpdnsnName :: Lens' CreatePrivateDNSNamespace Text
cpdnsnName = lens _cpdnsnName (\ s a -> s{_cpdnsnName = a})
cpdnsnVPC :: Lens' CreatePrivateDNSNamespace Text
cpdnsnVPC = lens _cpdnsnVPC (\ s a -> s{_cpdnsnVPC = a})
instance AWSRequest CreatePrivateDNSNamespace where
type Rs CreatePrivateDNSNamespace =
CreatePrivateDNSNamespaceResponse
request = postJSON route53AutoNaming
response
= receiveJSON
(\ s h x ->
CreatePrivateDNSNamespaceResponse' <$>
(x .?> "OperationId") <*> (pure (fromEnum s)))
instance Hashable CreatePrivateDNSNamespace where
instance NFData CreatePrivateDNSNamespace where
instance ToHeaders CreatePrivateDNSNamespace where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("Route53AutoNaming_v20170314.CreatePrivateDnsNamespace"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreatePrivateDNSNamespace where
toJSON CreatePrivateDNSNamespace'{..}
= object
(catMaybes
[("CreatorRequestId" .=) <$> _cpdnsnCreatorRequestId,
("Description" .=) <$> _cpdnsnDescription,
Just ("Name" .= _cpdnsnName),
Just ("Vpc" .= _cpdnsnVPC)])
instance ToPath CreatePrivateDNSNamespace where
toPath = const "/"
instance ToQuery CreatePrivateDNSNamespace where
toQuery = const mempty
data CreatePrivateDNSNamespaceResponse = CreatePrivateDNSNamespaceResponse'
{ _cpdnsnrsOperationId :: !(Maybe Text)
, _cpdnsnrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createPrivateDNSNamespaceResponse
:: Int
-> CreatePrivateDNSNamespaceResponse
createPrivateDNSNamespaceResponse pResponseStatus_ =
CreatePrivateDNSNamespaceResponse'
{_cpdnsnrsOperationId = Nothing, _cpdnsnrsResponseStatus = pResponseStatus_}
cpdnsnrsOperationId :: Lens' CreatePrivateDNSNamespaceResponse (Maybe Text)
cpdnsnrsOperationId = lens _cpdnsnrsOperationId (\ s a -> s{_cpdnsnrsOperationId = a})
cpdnsnrsResponseStatus :: Lens' CreatePrivateDNSNamespaceResponse Int
cpdnsnrsResponseStatus = lens _cpdnsnrsResponseStatus (\ s a -> s{_cpdnsnrsResponseStatus = a})
instance NFData CreatePrivateDNSNamespaceResponse
where