{-# 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.Route53Domains.UpdateDomainContactPrivacy -- Copyright : (c) 2013-2015 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- This operation updates the specified domain contact\'s privacy setting. -- When the privacy option is enabled, personal information such as postal -- or email address is hidden from the results of a public WHOIS query. The -- privacy services are provided by the AWS registrar, Gandi. For more -- information, see the -- . -- -- This operation only affects the privacy of the specified contact type -- (registrant, administrator, or tech). Successful acceptance returns an -- operation ID that you can use with GetOperationDetail to track the -- progress and completion of the action. If the request is not completed -- successfully, the domain registrant will be notified by email. -- -- /See:/ for UpdateDomainContactPrivacy. module Network.AWS.Route53Domains.UpdateDomainContactPrivacy ( -- * Creating a Request updateDomainContactPrivacy , UpdateDomainContactPrivacy -- * Request Lenses , udcpTechPrivacy , udcpRegistrantPrivacy , udcpAdminPrivacy , udcpDomainName -- * Destructuring the Response , updateDomainContactPrivacyResponse , UpdateDomainContactPrivacyResponse -- * Response Lenses , udcprsStatus , udcprsOperationId ) where import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response import Network.AWS.Route53Domains.Types import Network.AWS.Route53Domains.Types.Product -- | The UpdateDomainContactPrivacy request includes the following elements. -- -- /See:/ 'updateDomainContactPrivacy' smart constructor. data UpdateDomainContactPrivacy = UpdateDomainContactPrivacy' { _udcpTechPrivacy :: !(Maybe Bool) , _udcpRegistrantPrivacy :: !(Maybe Bool) , _udcpAdminPrivacy :: !(Maybe Bool) , _udcpDomainName :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'UpdateDomainContactPrivacy' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'udcpTechPrivacy' -- -- * 'udcpRegistrantPrivacy' -- -- * 'udcpAdminPrivacy' -- -- * 'udcpDomainName' updateDomainContactPrivacy :: Text -- ^ 'udcpDomainName' -> UpdateDomainContactPrivacy updateDomainContactPrivacy pDomainName_ = UpdateDomainContactPrivacy' { _udcpTechPrivacy = Nothing , _udcpRegistrantPrivacy = Nothing , _udcpAdminPrivacy = Nothing , _udcpDomainName = pDomainName_ } -- | Whether you want to conceal contact information from WHOIS queries. If -- you specify true, WHOIS (\"who is\") queries will return contact -- information for our registrar partner, Gandi, instead of the contact -- information that you enter. -- -- Type: Boolean -- -- Default: None -- -- Valid values: 'true' | 'false' -- -- Required: No udcpTechPrivacy :: Lens' UpdateDomainContactPrivacy (Maybe Bool) udcpTechPrivacy = lens _udcpTechPrivacy (\ s a -> s{_udcpTechPrivacy = a}); -- | Whether you want to conceal contact information from WHOIS queries. If -- you specify true, WHOIS (\"who is\") queries will return contact -- information for our registrar partner, Gandi, instead of the contact -- information that you enter. -- -- Type: Boolean -- -- Default: None -- -- Valid values: 'true' | 'false' -- -- Required: No udcpRegistrantPrivacy :: Lens' UpdateDomainContactPrivacy (Maybe Bool) udcpRegistrantPrivacy = lens _udcpRegistrantPrivacy (\ s a -> s{_udcpRegistrantPrivacy = a}); -- | Whether you want to conceal contact information from WHOIS queries. If -- you specify true, WHOIS (\"who is\") queries will return contact -- information for our registrar partner, Gandi, instead of the contact -- information that you enter. -- -- Type: Boolean -- -- Default: None -- -- Valid values: 'true' | 'false' -- -- Required: No udcpAdminPrivacy :: Lens' UpdateDomainContactPrivacy (Maybe Bool) udcpAdminPrivacy = lens _udcpAdminPrivacy (\ s a -> s{_udcpAdminPrivacy = a}); -- | The name of a domain. -- -- Type: String -- -- Default: None -- -- Constraints: The domain name can contain only the letters a through z, -- the numbers 0 through 9, and hyphen (-). Internationalized Domain Names -- are not supported. -- -- Required: Yes udcpDomainName :: Lens' UpdateDomainContactPrivacy Text udcpDomainName = lens _udcpDomainName (\ s a -> s{_udcpDomainName = a}); instance AWSRequest UpdateDomainContactPrivacy where type Rs UpdateDomainContactPrivacy = UpdateDomainContactPrivacyResponse request = postJSON route53Domains response = receiveJSON (\ s h x -> UpdateDomainContactPrivacyResponse' <$> (pure (fromEnum s)) <*> (x .:> "OperationId")) instance ToHeaders UpdateDomainContactPrivacy where toHeaders = const (mconcat ["X-Amz-Target" =# ("Route53Domains_v20140515.UpdateDomainContactPrivacy" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON UpdateDomainContactPrivacy where toJSON UpdateDomainContactPrivacy'{..} = object (catMaybes [("TechPrivacy" .=) <$> _udcpTechPrivacy, ("RegistrantPrivacy" .=) <$> _udcpRegistrantPrivacy, ("AdminPrivacy" .=) <$> _udcpAdminPrivacy, Just ("DomainName" .= _udcpDomainName)]) instance ToPath UpdateDomainContactPrivacy where toPath = const "/" instance ToQuery UpdateDomainContactPrivacy where toQuery = const mempty -- | The UpdateDomainContactPrivacy response includes the following element. -- -- /See:/ 'updateDomainContactPrivacyResponse' smart constructor. data UpdateDomainContactPrivacyResponse = UpdateDomainContactPrivacyResponse' { _udcprsStatus :: !Int , _udcprsOperationId :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'UpdateDomainContactPrivacyResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'udcprsStatus' -- -- * 'udcprsOperationId' updateDomainContactPrivacyResponse :: Int -- ^ 'udcprsStatus' -> Text -- ^ 'udcprsOperationId' -> UpdateDomainContactPrivacyResponse updateDomainContactPrivacyResponse pStatus_ pOperationId_ = UpdateDomainContactPrivacyResponse' { _udcprsStatus = pStatus_ , _udcprsOperationId = pOperationId_ } -- | The response status code. udcprsStatus :: Lens' UpdateDomainContactPrivacyResponse Int udcprsStatus = lens _udcprsStatus (\ s a -> s{_udcprsStatus = a}); -- | Identifier for tracking the progress of the request. To use this ID to -- query the operation status, use GetOperationDetail. -- -- Type: String -- -- Default: None -- -- Constraints: Maximum 255 characters. udcprsOperationId :: Lens' UpdateDomainContactPrivacyResponse Text udcprsOperationId = lens _udcprsOperationId (\ s a -> s{_udcprsOperationId = a});