amazonka-route53-domains-1.4.5: gen/Network/AWS/Route53Domains/GetDomainDetail.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.Route53Domains.GetDomainDetail
-- 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)
--
-- This operation returns detailed information about the domain. The domain's contact information is also returned as part of the output.
--
--
module Network.AWS.Route53Domains.GetDomainDetail
(
-- * Creating a Request
getDomainDetail
, GetDomainDetail
-- * Request Lenses
, gddDomainName
-- * Destructuring the Response
, getDomainDetailResponse
, GetDomainDetailResponse
-- * Response Lenses
, gddrsTechPrivacy
, gddrsDNSSec
, gddrsWhoIsServer
, gddrsRegistryDomainId
, gddrsRegistrantPrivacy
, gddrsUpdatedDate
, gddrsAdminPrivacy
, gddrsAutoRenew
, gddrsAbuseContactPhone
, gddrsRegistrarURL
, gddrsAbuseContactEmail
, gddrsExpirationDate
, gddrsCreationDate
, gddrsRegistrarName
, gddrsReseller
, gddrsStatusList
, gddrsResponseStatus
, gddrsDomainName
, gddrsNameservers
, gddrsAdminContact
, gddrsRegistrantContact
, gddrsTechContact
) 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
-- | The GetDomainDetail request includes the following element.
--
--
--
-- /See:/ 'getDomainDetail' smart constructor.
newtype GetDomainDetail = GetDomainDetail'
{ _gddDomainName :: Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'GetDomainDetail' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'gddDomainName' - 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
getDomainDetail
:: Text -- ^ 'gddDomainName'
-> GetDomainDetail
getDomainDetail pDomainName_ =
GetDomainDetail'
{ _gddDomainName = pDomainName_
}
-- | 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
gddDomainName :: Lens' GetDomainDetail Text
gddDomainName = lens _gddDomainName (\ s a -> s{_gddDomainName = a});
instance AWSRequest GetDomainDetail where
type Rs GetDomainDetail = GetDomainDetailResponse
request = postJSON route53Domains
response
= receiveJSON
(\ s h x ->
GetDomainDetailResponse' <$>
(x .?> "TechPrivacy") <*> (x .?> "DnsSec") <*>
(x .?> "WhoIsServer")
<*> (x .?> "RegistryDomainId")
<*> (x .?> "RegistrantPrivacy")
<*> (x .?> "UpdatedDate")
<*> (x .?> "AdminPrivacy")
<*> (x .?> "AutoRenew")
<*> (x .?> "AbuseContactPhone")
<*> (x .?> "RegistrarUrl")
<*> (x .?> "AbuseContactEmail")
<*> (x .?> "ExpirationDate")
<*> (x .?> "CreationDate")
<*> (x .?> "RegistrarName")
<*> (x .?> "Reseller")
<*> (x .?> "StatusList" .!@ mempty)
<*> (pure (fromEnum s))
<*> (x .:> "DomainName")
<*> (x .?> "Nameservers" .!@ mempty)
<*> (x .:> "AdminContact")
<*> (x .:> "RegistrantContact")
<*> (x .:> "TechContact"))
instance Hashable GetDomainDetail
instance NFData GetDomainDetail
instance ToHeaders GetDomainDetail where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("Route53Domains_v20140515.GetDomainDetail" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetDomainDetail where
toJSON GetDomainDetail'{..}
= object
(catMaybes [Just ("DomainName" .= _gddDomainName)])
instance ToPath GetDomainDetail where
toPath = const "/"
instance ToQuery GetDomainDetail where
toQuery = const mempty
-- | The GetDomainDetail response includes the following elements.
--
--
--
-- /See:/ 'getDomainDetailResponse' smart constructor.
data GetDomainDetailResponse = GetDomainDetailResponse'
{ _gddrsTechPrivacy :: !(Maybe Bool)
, _gddrsDNSSec :: !(Maybe Text)
, _gddrsWhoIsServer :: !(Maybe Text)
, _gddrsRegistryDomainId :: !(Maybe Text)
, _gddrsRegistrantPrivacy :: !(Maybe Bool)
, _gddrsUpdatedDate :: !(Maybe POSIX)
, _gddrsAdminPrivacy :: !(Maybe Bool)
, _gddrsAutoRenew :: !(Maybe Bool)
, _gddrsAbuseContactPhone :: !(Maybe Text)
, _gddrsRegistrarURL :: !(Maybe Text)
, _gddrsAbuseContactEmail :: !(Maybe Text)
, _gddrsExpirationDate :: !(Maybe POSIX)
, _gddrsCreationDate :: !(Maybe POSIX)
, _gddrsRegistrarName :: !(Maybe Text)
, _gddrsReseller :: !(Maybe Text)
, _gddrsStatusList :: !(Maybe [Text])
, _gddrsResponseStatus :: !Int
, _gddrsDomainName :: !Text
, _gddrsNameservers :: ![Nameserver]
, _gddrsAdminContact :: !(Sensitive ContactDetail)
, _gddrsRegistrantContact :: !(Sensitive ContactDetail)
, _gddrsTechContact :: !(Sensitive ContactDetail)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'GetDomainDetailResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'gddrsTechPrivacy' - Specifies whether contact information for the tech contact is concealed from WHOIS queries. If the value is @true@ , WHOIS ("who is") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter. Type: Boolean
--
-- * 'gddrsDNSSec' - Reserved for future use.
--
-- * 'gddrsWhoIsServer' - The fully qualified name of the WHOIS server that can answer the WHOIS query for the domain. Type: String
--
-- * 'gddrsRegistryDomainId' - Reserved for future use.
--
-- * 'gddrsRegistrantPrivacy' - Specifies whether contact information for the registrant contact is concealed from WHOIS queries. If the value is @true@ , WHOIS ("who is") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter. Type: Boolean
--
-- * 'gddrsUpdatedDate' - The last updated date of the domain as found in the response to a WHOIS query. The date format is Unix time.
--
-- * 'gddrsAdminPrivacy' - Specifies whether contact information for the admin contact is concealed from WHOIS queries. If the value is @true@ , WHOIS ("who is") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter. Type: Boolean
--
-- * 'gddrsAutoRenew' - Specifies whether the domain registration is set to renew automatically. Type: Boolean
--
-- * 'gddrsAbuseContactPhone' - Phone number for reporting abuse. Type: String
--
-- * 'gddrsRegistrarURL' - Web address of the registrar. Type: String
--
-- * 'gddrsAbuseContactEmail' - Email address to contact to report incorrect contact information for a domain, to report that the domain is being used to send spam, to report that someone is cybersquatting on a domain name, or report some other type of abuse. Type: String
--
-- * 'gddrsExpirationDate' - The date when the registration for the domain is set to expire. The date format is Unix time.
--
-- * 'gddrsCreationDate' - The date when the domain was created as found in the response to a WHOIS query. The date format is Unix time.
--
-- * 'gddrsRegistrarName' - Name of the registrar of the domain as identified in the registry. Amazon Route 53 domains are registered by registrar Gandi. The value is @"GANDI SAS"@ . Type: String
--
-- * 'gddrsReseller' - Reseller of the domain. Domains registered or transferred using Amazon Route 53 domains will have @"Amazon"@ as the reseller. Type: String
--
-- * 'gddrsStatusList' - An array of domain name status codes, also known as Extensible Provisioning Protocol (EPP) status codes. ICANN, the organization that maintains a central database of domain names, has developed a set of domain name status codes that tell you the status of a variety of operations on a domain name, for example, registering a domain name, transferring a domain name to another registrar, renewing the registration for a domain name, and so on. All registrars use this same set of status codes. For a current list of domain name status codes and an explanation of what each code means, go to the <https://www.icann.org/ ICANN website> and search for @epp status codes@ . (Search on the ICANN website; web searches sometimes return an old version of the document.) Type: Array of String
--
-- * 'gddrsResponseStatus' - -- | The response status code.
--
-- * 'gddrsDomainName' - The name of a domain. Type: String
--
-- * 'gddrsNameservers' - The name of the domain. Type: String
--
-- * 'gddrsAdminContact' - Provides details about the domain administrative contact. Type: Complex Children: @FirstName@ , @MiddleName@ , @LastName@ , @ContactType@ , @OrganizationName@ , @AddressLine1@ , @AddressLine2@ , @City@ , @State@ , @CountryCode@ , @ZipCode@ , @PhoneNumber@ , @Email@ , @Fax@ , @ExtraParams@
--
-- * 'gddrsRegistrantContact' - Provides details about the domain registrant. Type: Complex Children: @FirstName@ , @MiddleName@ , @LastName@ , @ContactType@ , @OrganizationName@ , @AddressLine1@ , @AddressLine2@ , @City@ , @State@ , @CountryCode@ , @ZipCode@ , @PhoneNumber@ , @Email@ , @Fax@ , @ExtraParams@
--
-- * 'gddrsTechContact' - Provides details about the domain technical contact. Type: Complex Children: @FirstName@ , @MiddleName@ , @LastName@ , @ContactType@ , @OrganizationName@ , @AddressLine1@ , @AddressLine2@ , @City@ , @State@ , @CountryCode@ , @ZipCode@ , @PhoneNumber@ , @Email@ , @Fax@ , @ExtraParams@
getDomainDetailResponse
:: Int -- ^ 'gddrsResponseStatus'
-> Text -- ^ 'gddrsDomainName'
-> ContactDetail -- ^ 'gddrsAdminContact'
-> ContactDetail -- ^ 'gddrsRegistrantContact'
-> ContactDetail -- ^ 'gddrsTechContact'
-> GetDomainDetailResponse
getDomainDetailResponse pResponseStatus_ pDomainName_ pAdminContact_ pRegistrantContact_ pTechContact_ =
GetDomainDetailResponse'
{ _gddrsTechPrivacy = Nothing
, _gddrsDNSSec = Nothing
, _gddrsWhoIsServer = Nothing
, _gddrsRegistryDomainId = Nothing
, _gddrsRegistrantPrivacy = Nothing
, _gddrsUpdatedDate = Nothing
, _gddrsAdminPrivacy = Nothing
, _gddrsAutoRenew = Nothing
, _gddrsAbuseContactPhone = Nothing
, _gddrsRegistrarURL = Nothing
, _gddrsAbuseContactEmail = Nothing
, _gddrsExpirationDate = Nothing
, _gddrsCreationDate = Nothing
, _gddrsRegistrarName = Nothing
, _gddrsReseller = Nothing
, _gddrsStatusList = Nothing
, _gddrsResponseStatus = pResponseStatus_
, _gddrsDomainName = pDomainName_
, _gddrsNameservers = mempty
, _gddrsAdminContact = _Sensitive # pAdminContact_
, _gddrsRegistrantContact = _Sensitive # pRegistrantContact_
, _gddrsTechContact = _Sensitive # pTechContact_
}
-- | Specifies whether contact information for the tech contact is concealed from WHOIS queries. If the value is @true@ , WHOIS ("who is") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter. Type: Boolean
gddrsTechPrivacy :: Lens' GetDomainDetailResponse (Maybe Bool)
gddrsTechPrivacy = lens _gddrsTechPrivacy (\ s a -> s{_gddrsTechPrivacy = a});
-- | Reserved for future use.
gddrsDNSSec :: Lens' GetDomainDetailResponse (Maybe Text)
gddrsDNSSec = lens _gddrsDNSSec (\ s a -> s{_gddrsDNSSec = a});
-- | The fully qualified name of the WHOIS server that can answer the WHOIS query for the domain. Type: String
gddrsWhoIsServer :: Lens' GetDomainDetailResponse (Maybe Text)
gddrsWhoIsServer = lens _gddrsWhoIsServer (\ s a -> s{_gddrsWhoIsServer = a});
-- | Reserved for future use.
gddrsRegistryDomainId :: Lens' GetDomainDetailResponse (Maybe Text)
gddrsRegistryDomainId = lens _gddrsRegistryDomainId (\ s a -> s{_gddrsRegistryDomainId = a});
-- | Specifies whether contact information for the registrant contact is concealed from WHOIS queries. If the value is @true@ , WHOIS ("who is") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter. Type: Boolean
gddrsRegistrantPrivacy :: Lens' GetDomainDetailResponse (Maybe Bool)
gddrsRegistrantPrivacy = lens _gddrsRegistrantPrivacy (\ s a -> s{_gddrsRegistrantPrivacy = a});
-- | The last updated date of the domain as found in the response to a WHOIS query. The date format is Unix time.
gddrsUpdatedDate :: Lens' GetDomainDetailResponse (Maybe UTCTime)
gddrsUpdatedDate = lens _gddrsUpdatedDate (\ s a -> s{_gddrsUpdatedDate = a}) . mapping _Time;
-- | Specifies whether contact information for the admin contact is concealed from WHOIS queries. If the value is @true@ , WHOIS ("who is") queries will return contact information for our registrar partner, Gandi, instead of the contact information that you enter. Type: Boolean
gddrsAdminPrivacy :: Lens' GetDomainDetailResponse (Maybe Bool)
gddrsAdminPrivacy = lens _gddrsAdminPrivacy (\ s a -> s{_gddrsAdminPrivacy = a});
-- | Specifies whether the domain registration is set to renew automatically. Type: Boolean
gddrsAutoRenew :: Lens' GetDomainDetailResponse (Maybe Bool)
gddrsAutoRenew = lens _gddrsAutoRenew (\ s a -> s{_gddrsAutoRenew = a});
-- | Phone number for reporting abuse. Type: String
gddrsAbuseContactPhone :: Lens' GetDomainDetailResponse (Maybe Text)
gddrsAbuseContactPhone = lens _gddrsAbuseContactPhone (\ s a -> s{_gddrsAbuseContactPhone = a});
-- | Web address of the registrar. Type: String
gddrsRegistrarURL :: Lens' GetDomainDetailResponse (Maybe Text)
gddrsRegistrarURL = lens _gddrsRegistrarURL (\ s a -> s{_gddrsRegistrarURL = a});
-- | Email address to contact to report incorrect contact information for a domain, to report that the domain is being used to send spam, to report that someone is cybersquatting on a domain name, or report some other type of abuse. Type: String
gddrsAbuseContactEmail :: Lens' GetDomainDetailResponse (Maybe Text)
gddrsAbuseContactEmail = lens _gddrsAbuseContactEmail (\ s a -> s{_gddrsAbuseContactEmail = a});
-- | The date when the registration for the domain is set to expire. The date format is Unix time.
gddrsExpirationDate :: Lens' GetDomainDetailResponse (Maybe UTCTime)
gddrsExpirationDate = lens _gddrsExpirationDate (\ s a -> s{_gddrsExpirationDate = a}) . mapping _Time;
-- | The date when the domain was created as found in the response to a WHOIS query. The date format is Unix time.
gddrsCreationDate :: Lens' GetDomainDetailResponse (Maybe UTCTime)
gddrsCreationDate = lens _gddrsCreationDate (\ s a -> s{_gddrsCreationDate = a}) . mapping _Time;
-- | Name of the registrar of the domain as identified in the registry. Amazon Route 53 domains are registered by registrar Gandi. The value is @"GANDI SAS"@ . Type: String
gddrsRegistrarName :: Lens' GetDomainDetailResponse (Maybe Text)
gddrsRegistrarName = lens _gddrsRegistrarName (\ s a -> s{_gddrsRegistrarName = a});
-- | Reseller of the domain. Domains registered or transferred using Amazon Route 53 domains will have @"Amazon"@ as the reseller. Type: String
gddrsReseller :: Lens' GetDomainDetailResponse (Maybe Text)
gddrsReseller = lens _gddrsReseller (\ s a -> s{_gddrsReseller = a});
-- | An array of domain name status codes, also known as Extensible Provisioning Protocol (EPP) status codes. ICANN, the organization that maintains a central database of domain names, has developed a set of domain name status codes that tell you the status of a variety of operations on a domain name, for example, registering a domain name, transferring a domain name to another registrar, renewing the registration for a domain name, and so on. All registrars use this same set of status codes. For a current list of domain name status codes and an explanation of what each code means, go to the <https://www.icann.org/ ICANN website> and search for @epp status codes@ . (Search on the ICANN website; web searches sometimes return an old version of the document.) Type: Array of String
gddrsStatusList :: Lens' GetDomainDetailResponse [Text]
gddrsStatusList = lens _gddrsStatusList (\ s a -> s{_gddrsStatusList = a}) . _Default . _Coerce;
-- | -- | The response status code.
gddrsResponseStatus :: Lens' GetDomainDetailResponse Int
gddrsResponseStatus = lens _gddrsResponseStatus (\ s a -> s{_gddrsResponseStatus = a});
-- | The name of a domain. Type: String
gddrsDomainName :: Lens' GetDomainDetailResponse Text
gddrsDomainName = lens _gddrsDomainName (\ s a -> s{_gddrsDomainName = a});
-- | The name of the domain. Type: String
gddrsNameservers :: Lens' GetDomainDetailResponse [Nameserver]
gddrsNameservers = lens _gddrsNameservers (\ s a -> s{_gddrsNameservers = a}) . _Coerce;
-- | Provides details about the domain administrative contact. Type: Complex Children: @FirstName@ , @MiddleName@ , @LastName@ , @ContactType@ , @OrganizationName@ , @AddressLine1@ , @AddressLine2@ , @City@ , @State@ , @CountryCode@ , @ZipCode@ , @PhoneNumber@ , @Email@ , @Fax@ , @ExtraParams@
gddrsAdminContact :: Lens' GetDomainDetailResponse ContactDetail
gddrsAdminContact = lens _gddrsAdminContact (\ s a -> s{_gddrsAdminContact = a}) . _Sensitive;
-- | Provides details about the domain registrant. Type: Complex Children: @FirstName@ , @MiddleName@ , @LastName@ , @ContactType@ , @OrganizationName@ , @AddressLine1@ , @AddressLine2@ , @City@ , @State@ , @CountryCode@ , @ZipCode@ , @PhoneNumber@ , @Email@ , @Fax@ , @ExtraParams@
gddrsRegistrantContact :: Lens' GetDomainDetailResponse ContactDetail
gddrsRegistrantContact = lens _gddrsRegistrantContact (\ s a -> s{_gddrsRegistrantContact = a}) . _Sensitive;
-- | Provides details about the domain technical contact. Type: Complex Children: @FirstName@ , @MiddleName@ , @LastName@ , @ContactType@ , @OrganizationName@ , @AddressLine1@ , @AddressLine2@ , @City@ , @State@ , @CountryCode@ , @ZipCode@ , @PhoneNumber@ , @Email@ , @Fax@ , @ExtraParams@
gddrsTechContact :: Lens' GetDomainDetailResponse ContactDetail
gddrsTechContact = lens _gddrsTechContact (\ s a -> s{_gddrsTechContact = a}) . _Sensitive;
instance NFData GetDomainDetailResponse