amazonka-snowball-1.4.4: gen/Network/AWS/Snowball/DescribeAddresses.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.Snowball.DescribeAddresses
-- 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)
--
-- Returns a specified number of 'ADDRESS' objects. Calling this API in one of the US regions will return addresses from the list of all addresses associated with this account in all US regions.
module Network.AWS.Snowball.DescribeAddresses
(
-- * Creating a Request
describeAddresses
, DescribeAddresses
-- * Request Lenses
, daNextToken
, daMaxResults
-- * Destructuring the Response
, describeAddressesResponse
, DescribeAddressesResponse
-- * Response Lenses
, drsAddresses
, drsNextToken
, drsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.Snowball.Types
import Network.AWS.Snowball.Types.Product
-- | /See:/ 'describeAddresses' smart constructor.
data DescribeAddresses = DescribeAddresses'
{ _daNextToken :: !(Maybe Text)
, _daMaxResults :: !(Maybe Nat)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'DescribeAddresses' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'daNextToken'
--
-- * 'daMaxResults'
describeAddresses
:: DescribeAddresses
describeAddresses =
DescribeAddresses'
{ _daNextToken = Nothing
, _daMaxResults = Nothing
}
-- | HTTP requests are stateless. To identify what object comes \"next\" in the list of 'ADDRESS' objects, you have the option of specifying a value for 'NextToken' as the starting point for your list of returned addresses.
daNextToken :: Lens' DescribeAddresses (Maybe Text)
daNextToken = lens _daNextToken (\ s a -> s{_daNextToken = a});
-- | The number of 'ADDRESS' objects to return.
daMaxResults :: Lens' DescribeAddresses (Maybe Natural)
daMaxResults = lens _daMaxResults (\ s a -> s{_daMaxResults = a}) . mapping _Nat;
instance AWSRequest DescribeAddresses where
type Rs DescribeAddresses = DescribeAddressesResponse
request = postJSON snowball
response
= receiveJSON
(\ s h x ->
DescribeAddressesResponse' <$>
(x .?> "Addresses" .!@ mempty) <*>
(x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable DescribeAddresses
instance NFData DescribeAddresses
instance ToHeaders DescribeAddresses where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSIESnowballJobManagementService.DescribeAddresses"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeAddresses where
toJSON DescribeAddresses'{..}
= object
(catMaybes
[("NextToken" .=) <$> _daNextToken,
("MaxResults" .=) <$> _daMaxResults])
instance ToPath DescribeAddresses where
toPath = const "/"
instance ToQuery DescribeAddresses where
toQuery = const mempty
-- | /See:/ 'describeAddressesResponse' smart constructor.
data DescribeAddressesResponse = DescribeAddressesResponse'
{ _drsAddresses :: !(Maybe [Address])
, _drsNextToken :: !(Maybe Text)
, _drsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'DescribeAddressesResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'drsAddresses'
--
-- * 'drsNextToken'
--
-- * 'drsResponseStatus'
describeAddressesResponse
:: Int -- ^ 'drsResponseStatus'
-> DescribeAddressesResponse
describeAddressesResponse pResponseStatus_ =
DescribeAddressesResponse'
{ _drsAddresses = Nothing
, _drsNextToken = Nothing
, _drsResponseStatus = pResponseStatus_
}
-- | The Snowball shipping addresses that were created for this account.
drsAddresses :: Lens' DescribeAddressesResponse [Address]
drsAddresses = lens _drsAddresses (\ s a -> s{_drsAddresses = a}) . _Default . _Coerce;
-- | HTTP requests are stateless. If you use the automatically generated 'NextToken' value in your next 'DescribeAddresses' call, your list of returned addresses will start from this point in the array.
drsNextToken :: Lens' DescribeAddressesResponse (Maybe Text)
drsNextToken = lens _drsNextToken (\ s a -> s{_drsNextToken = a});
-- | The response status code.
drsResponseStatus :: Lens' DescribeAddressesResponse Int
drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});
instance NFData DescribeAddressesResponse