{-# 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.SNS.GetSMSAttributes -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Returns the settings for sending SMS messages from your account. -- -- -- These settings are set with the @SetSMSAttributes@ action. -- module Network.AWS.SNS.GetSMSAttributes ( -- * Creating a Request getSMSAttributes , GetSMSAttributes -- * Request Lenses , gsmsaAttributes -- * Destructuring the Response , getSMSAttributesResponse , GetSMSAttributesResponse -- * Response Lenses , gsmsarsAttributes , gsmsarsResponseStatus ) where import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response import Network.AWS.SNS.Types import Network.AWS.SNS.Types.Product -- | The input for the @GetSMSAttributes@ request. -- -- -- -- /See:/ 'getSMSAttributes' smart constructor. newtype GetSMSAttributes = GetSMSAttributes' { _gsmsaAttributes :: Maybe [Text] } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'GetSMSAttributes' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gsmsaAttributes' - A list of the individual attribute names, such as @MonthlySpendLimit@ , for which you want values. For all attribute names, see . If you don't use this parameter, Amazon SNS returns all SMS attributes. getSMSAttributes :: GetSMSAttributes getSMSAttributes = GetSMSAttributes' {_gsmsaAttributes = Nothing} -- | A list of the individual attribute names, such as @MonthlySpendLimit@ , for which you want values. For all attribute names, see . If you don't use this parameter, Amazon SNS returns all SMS attributes. gsmsaAttributes :: Lens' GetSMSAttributes [Text] gsmsaAttributes = lens _gsmsaAttributes (\ s a -> s{_gsmsaAttributes = a}) . _Default . _Coerce instance AWSRequest GetSMSAttributes where type Rs GetSMSAttributes = GetSMSAttributesResponse request = postQuery sns response = receiveXMLWrapper "GetSMSAttributesResult" (\ s h x -> GetSMSAttributesResponse' <$> (x .@? "attributes" .!@ mempty >>= may (parseXMLMap "entry" "key" "value")) <*> (pure (fromEnum s))) instance Hashable GetSMSAttributes where instance NFData GetSMSAttributes where instance ToHeaders GetSMSAttributes where toHeaders = const mempty instance ToPath GetSMSAttributes where toPath = const "/" instance ToQuery GetSMSAttributes where toQuery GetSMSAttributes'{..} = mconcat ["Action" =: ("GetSMSAttributes" :: ByteString), "Version" =: ("2010-03-31" :: ByteString), "attributes" =: toQuery (toQueryList "member" <$> _gsmsaAttributes)] -- | The response from the @GetSMSAttributes@ request. -- -- -- -- /See:/ 'getSMSAttributesResponse' smart constructor. data GetSMSAttributesResponse = GetSMSAttributesResponse' { _gsmsarsAttributes :: !(Maybe (Map Text Text)) , _gsmsarsResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'GetSMSAttributesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gsmsarsAttributes' - The SMS attribute names and their values. -- -- * 'gsmsarsResponseStatus' - -- | The response status code. getSMSAttributesResponse :: Int -- ^ 'gsmsarsResponseStatus' -> GetSMSAttributesResponse getSMSAttributesResponse pResponseStatus_ = GetSMSAttributesResponse' {_gsmsarsAttributes = Nothing, _gsmsarsResponseStatus = pResponseStatus_} -- | The SMS attribute names and their values. gsmsarsAttributes :: Lens' GetSMSAttributesResponse (HashMap Text Text) gsmsarsAttributes = lens _gsmsarsAttributes (\ s a -> s{_gsmsarsAttributes = a}) . _Default . _Map -- | -- | The response status code. gsmsarsResponseStatus :: Lens' GetSMSAttributesResponse Int gsmsarsResponseStatus = lens _gsmsarsResponseStatus (\ s a -> s{_gsmsarsResponseStatus = a}) instance NFData GetSMSAttributesResponse where