{-# 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.DirectConnect.DescribeLocations -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Returns the list of AWS Direct Connect locations in the current AWS region. These are the locations that may be selected when calling CreateConnection or CreateInterconnect. -- -- module Network.AWS.DirectConnect.DescribeLocations ( -- * Creating a Request describeLocations , DescribeLocations -- * Destructuring the Response , describeLocationsResponse , DescribeLocationsResponse -- * Response Lenses , dlrsLocations , dlrsResponseStatus ) where import Network.AWS.DirectConnect.Types import Network.AWS.DirectConnect.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'describeLocations' smart constructor. data DescribeLocations = DescribeLocations' deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DescribeLocations' with the minimum fields required to make a request. -- describeLocations :: DescribeLocations describeLocations = DescribeLocations' instance AWSRequest DescribeLocations where type Rs DescribeLocations = DescribeLocationsResponse request = postJSON directConnect response = receiveJSON (\ s h x -> DescribeLocationsResponse' <$> (x .?> "locations" .!@ mempty) <*> (pure (fromEnum s))) instance Hashable DescribeLocations instance NFData DescribeLocations instance ToHeaders DescribeLocations where toHeaders = const (mconcat ["X-Amz-Target" =# ("OvertureService.DescribeLocations" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON DescribeLocations where toJSON = const (Object mempty) instance ToPath DescribeLocations where toPath = const "/" instance ToQuery DescribeLocations where toQuery = const mempty -- | A location is a network facility where AWS Direct Connect routers are available to be connected. Generally, these are colocation hubs where many network providers have equipment, and where cross connects can be delivered. Locations include a name and facility code, and must be provided when creating a connection. -- -- -- -- /See:/ 'describeLocationsResponse' smart constructor. data DescribeLocationsResponse = DescribeLocationsResponse' { _dlrsLocations :: !(Maybe [Location]) , _dlrsResponseStatus :: !Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DescribeLocationsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dlrsLocations' - A list of colocation hubs where network providers have equipment. Most regions have multiple locations available. -- -- * 'dlrsResponseStatus' - -- | The response status code. describeLocationsResponse :: Int -- ^ 'dlrsResponseStatus' -> DescribeLocationsResponse describeLocationsResponse pResponseStatus_ = DescribeLocationsResponse' { _dlrsLocations = Nothing , _dlrsResponseStatus = pResponseStatus_ } -- | A list of colocation hubs where network providers have equipment. Most regions have multiple locations available. dlrsLocations :: Lens' DescribeLocationsResponse [Location] dlrsLocations = lens _dlrsLocations (\ s a -> s{_dlrsLocations = a}) . _Default . _Coerce; -- | -- | The response status code. dlrsResponseStatus :: Lens' DescribeLocationsResponse Int dlrsResponseStatus = lens _dlrsResponseStatus (\ s a -> s{_dlrsResponseStatus = a}); instance NFData DescribeLocationsResponse