{-# 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.Route53.GetGeoLocation
(
getGeoLocation
, GetGeoLocation
, gglSubdivisionCode
, gglCountryCode
, gglContinentCode
, getGeoLocationResponse
, GetGeoLocationResponse
, gglrsResponseStatus
, gglrsGeoLocationDetails
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.Route53.Types
import Network.AWS.Route53.Types.Product
data GetGeoLocation = GetGeoLocation'
{ _gglSubdivisionCode :: !(Maybe Text)
, _gglCountryCode :: !(Maybe Text)
, _gglContinentCode :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getGeoLocation
:: GetGeoLocation
getGeoLocation =
GetGeoLocation'
{ _gglSubdivisionCode = Nothing
, _gglCountryCode = Nothing
, _gglContinentCode = Nothing
}
gglSubdivisionCode :: Lens' GetGeoLocation (Maybe Text)
gglSubdivisionCode = lens _gglSubdivisionCode (\ s a -> s{_gglSubdivisionCode = a});
gglCountryCode :: Lens' GetGeoLocation (Maybe Text)
gglCountryCode = lens _gglCountryCode (\ s a -> s{_gglCountryCode = a});
gglContinentCode :: Lens' GetGeoLocation (Maybe Text)
gglContinentCode = lens _gglContinentCode (\ s a -> s{_gglContinentCode = a});
instance AWSRequest GetGeoLocation where
type Rs GetGeoLocation = GetGeoLocationResponse
request = get route53
response
= receiveXML
(\ s h x ->
GetGeoLocationResponse' <$>
(pure (fromEnum s)) <*> (x .@ "GeoLocationDetails"))
instance Hashable GetGeoLocation
instance NFData GetGeoLocation
instance ToHeaders GetGeoLocation where
toHeaders = const mempty
instance ToPath GetGeoLocation where
toPath = const "/2013-04-01/geolocation"
instance ToQuery GetGeoLocation where
toQuery GetGeoLocation'{..}
= mconcat
["subdivisioncode" =: _gglSubdivisionCode,
"countrycode" =: _gglCountryCode,
"continentcode" =: _gglContinentCode]
data GetGeoLocationResponse = GetGeoLocationResponse'
{ _gglrsResponseStatus :: !Int
, _gglrsGeoLocationDetails :: !GeoLocationDetails
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getGeoLocationResponse
:: Int
-> GeoLocationDetails
-> GetGeoLocationResponse
getGeoLocationResponse pResponseStatus_ pGeoLocationDetails_ =
GetGeoLocationResponse'
{ _gglrsResponseStatus = pResponseStatus_
, _gglrsGeoLocationDetails = pGeoLocationDetails_
}
gglrsResponseStatus :: Lens' GetGeoLocationResponse Int
gglrsResponseStatus = lens _gglrsResponseStatus (\ s a -> s{_gglrsResponseStatus = a});
gglrsGeoLocationDetails :: Lens' GetGeoLocationResponse GeoLocationDetails
gglrsGeoLocationDetails = lens _gglrsGeoLocationDetails (\ s a -> s{_gglrsGeoLocationDetails = a});
instance NFData GetGeoLocationResponse