{-# 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.Route53Domains.UpdateDomainContact
(
updateDomainContact
, UpdateDomainContact
, udcRegistrantContact
, udcAdminContact
, udcTechContact
, udcDomainName
, updateDomainContactResponse
, UpdateDomainContactResponse
, udcrsResponseStatus
, udcrsOperationId
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.Route53Domains.Types
import Network.AWS.Route53Domains.Types.Product
data UpdateDomainContact = UpdateDomainContact'
{ _udcRegistrantContact :: !(Maybe (Sensitive ContactDetail))
, _udcAdminContact :: !(Maybe (Sensitive ContactDetail))
, _udcTechContact :: !(Maybe (Sensitive ContactDetail))
, _udcDomainName :: !Text
} deriving (Eq, Show, Data, Typeable, Generic)
updateDomainContact
:: Text
-> UpdateDomainContact
updateDomainContact pDomainName_ =
UpdateDomainContact'
{ _udcRegistrantContact = Nothing
, _udcAdminContact = Nothing
, _udcTechContact = Nothing
, _udcDomainName = pDomainName_
}
udcRegistrantContact :: Lens' UpdateDomainContact (Maybe ContactDetail)
udcRegistrantContact = lens _udcRegistrantContact (\ s a -> s{_udcRegistrantContact = a}) . mapping _Sensitive
udcAdminContact :: Lens' UpdateDomainContact (Maybe ContactDetail)
udcAdminContact = lens _udcAdminContact (\ s a -> s{_udcAdminContact = a}) . mapping _Sensitive
udcTechContact :: Lens' UpdateDomainContact (Maybe ContactDetail)
udcTechContact = lens _udcTechContact (\ s a -> s{_udcTechContact = a}) . mapping _Sensitive
udcDomainName :: Lens' UpdateDomainContact Text
udcDomainName = lens _udcDomainName (\ s a -> s{_udcDomainName = a})
instance AWSRequest UpdateDomainContact where
type Rs UpdateDomainContact =
UpdateDomainContactResponse
request = postJSON route53Domains
response
= receiveJSON
(\ s h x ->
UpdateDomainContactResponse' <$>
(pure (fromEnum s)) <*> (x .:> "OperationId"))
instance Hashable UpdateDomainContact where
instance NFData UpdateDomainContact where
instance ToHeaders UpdateDomainContact where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("Route53Domains_v20140515.UpdateDomainContact" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON UpdateDomainContact where
toJSON UpdateDomainContact'{..}
= object
(catMaybes
[("RegistrantContact" .=) <$> _udcRegistrantContact,
("AdminContact" .=) <$> _udcAdminContact,
("TechContact" .=) <$> _udcTechContact,
Just ("DomainName" .= _udcDomainName)])
instance ToPath UpdateDomainContact where
toPath = const "/"
instance ToQuery UpdateDomainContact where
toQuery = const mempty
data UpdateDomainContactResponse = UpdateDomainContactResponse'
{ _udcrsResponseStatus :: !Int
, _udcrsOperationId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateDomainContactResponse
:: Int
-> Text
-> UpdateDomainContactResponse
updateDomainContactResponse pResponseStatus_ pOperationId_ =
UpdateDomainContactResponse'
{_udcrsResponseStatus = pResponseStatus_, _udcrsOperationId = pOperationId_}
udcrsResponseStatus :: Lens' UpdateDomainContactResponse Int
udcrsResponseStatus = lens _udcrsResponseStatus (\ s a -> s{_udcrsResponseStatus = a})
udcrsOperationId :: Lens' UpdateDomainContactResponse Text
udcrsOperationId = lens _udcrsOperationId (\ s a -> s{_udcrsOperationId = a})
instance NFData UpdateDomainContactResponse where