{-# 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.SDB.GetAttributes -- Copyright : (c) 2013-2015 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Returns all of the attributes associated with the specified item. -- Optionally, the attributes returned can be limited to one or more -- attributes by specifying an attribute name parameter. -- -- If the item does not exist on the replica that was accessed for this -- operation, an empty set is returned. The system does not return an error -- as it cannot guarantee the item does not exist on other replicas. -- -- /See:/ for GetAttributes. module Network.AWS.SDB.GetAttributes ( -- * Creating a Request getAttributes , GetAttributes -- * Request Lenses , gaConsistentRead , gaAttributeNames , gaDomainName , gaItemName -- * Destructuring the Response , getAttributesResponse , GetAttributesResponse -- * Response Lenses , garsAttributes , garsResponseStatus ) where import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response import Network.AWS.SDB.Types import Network.AWS.SDB.Types.Product -- | /See:/ 'getAttributes' smart constructor. data GetAttributes = GetAttributes' { _gaConsistentRead :: !(Maybe Bool) , _gaAttributeNames :: !(Maybe [Text]) , _gaDomainName :: !Text , _gaItemName :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'GetAttributes' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gaConsistentRead' -- -- * 'gaAttributeNames' -- -- * 'gaDomainName' -- -- * 'gaItemName' getAttributes :: Text -- ^ 'gaDomainName' -> Text -- ^ 'gaItemName' -> GetAttributes getAttributes pDomainName_ pItemName_ = GetAttributes' { _gaConsistentRead = Nothing , _gaAttributeNames = Nothing , _gaDomainName = pDomainName_ , _gaItemName = pItemName_ } -- | Determines whether or not strong consistency should be enforced when -- data is read from SimpleDB. If 'true', any data previously written to -- SimpleDB will be returned. Otherwise, results will be consistent -- eventually, and the client may not see data that was written immediately -- before your read. gaConsistentRead :: Lens' GetAttributes (Maybe Bool) gaConsistentRead = lens _gaConsistentRead (\ s a -> s{_gaConsistentRead = a}); -- | The names of the attributes. gaAttributeNames :: Lens' GetAttributes [Text] gaAttributeNames = lens _gaAttributeNames (\ s a -> s{_gaAttributeNames = a}) . _Default . _Coerce; -- | The name of the domain in which to perform the operation. gaDomainName :: Lens' GetAttributes Text gaDomainName = lens _gaDomainName (\ s a -> s{_gaDomainName = a}); -- | The name of the item. gaItemName :: Lens' GetAttributes Text gaItemName = lens _gaItemName (\ s a -> s{_gaItemName = a}); instance AWSRequest GetAttributes where type Rs GetAttributes = GetAttributesResponse request = postQuery sDB response = receiveXMLWrapper "GetAttributesResult" (\ s h x -> GetAttributesResponse' <$> (may (parseXMLList "Attribute") x) <*> (pure (fromEnum s))) instance ToHeaders GetAttributes where toHeaders = const mempty instance ToPath GetAttributes where toPath = const "/" instance ToQuery GetAttributes where toQuery GetAttributes'{..} = mconcat ["Action" =: ("GetAttributes" :: ByteString), "Version" =: ("2009-04-15" :: ByteString), "ConsistentRead" =: _gaConsistentRead, toQuery (toQueryList "AttributeName" <$> _gaAttributeNames), "DomainName" =: _gaDomainName, "ItemName" =: _gaItemName] -- | /See:/ 'getAttributesResponse' smart constructor. data GetAttributesResponse = GetAttributesResponse' { _garsAttributes :: !(Maybe [Attribute]) , _garsResponseStatus :: !Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'GetAttributesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'garsAttributes' -- -- * 'garsResponseStatus' getAttributesResponse :: Int -- ^ 'garsResponseStatus' -> GetAttributesResponse getAttributesResponse pResponseStatus_ = GetAttributesResponse' { _garsAttributes = Nothing , _garsResponseStatus = pResponseStatus_ } -- | The list of attributes returned by the operation. garsAttributes :: Lens' GetAttributesResponse [Attribute] garsAttributes = lens _garsAttributes (\ s a -> s{_garsAttributes = a}) . _Default . _Coerce; -- | The response status code. garsResponseStatus :: Lens' GetAttributesResponse Int garsResponseStatus = lens _garsResponseStatus (\ s a -> s{_garsResponseStatus = a});