{-# 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.Lightsail.GetLoadBalancers -- 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 information about all load balancers in an account. -- -- -- If you are describing a long list of load balancers, you can paginate the output to make the list more manageable. You can use the pageToken and nextPageToken values to retrieve the next items in the list. -- module Network.AWS.Lightsail.GetLoadBalancers ( -- * Creating a Request getLoadBalancers , GetLoadBalancers -- * Request Lenses , glbPageToken -- * Destructuring the Response , getLoadBalancersResponse , GetLoadBalancersResponse -- * Response Lenses , glbsrsNextPageToken , glbsrsLoadBalancers , glbsrsResponseStatus ) where import Network.AWS.Lens import Network.AWS.Lightsail.Types import Network.AWS.Lightsail.Types.Product import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'getLoadBalancers' smart constructor. newtype GetLoadBalancers = GetLoadBalancers' { _glbPageToken :: Maybe Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'GetLoadBalancers' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'glbPageToken' - A token used for paginating the results from your GetLoadBalancers request. getLoadBalancers :: GetLoadBalancers getLoadBalancers = GetLoadBalancers' {_glbPageToken = Nothing} -- | A token used for paginating the results from your GetLoadBalancers request. glbPageToken :: Lens' GetLoadBalancers (Maybe Text) glbPageToken = lens _glbPageToken (\ s a -> s{_glbPageToken = a}) instance AWSRequest GetLoadBalancers where type Rs GetLoadBalancers = GetLoadBalancersResponse request = postJSON lightsail response = receiveJSON (\ s h x -> GetLoadBalancersResponse' <$> (x .?> "nextPageToken") <*> (x .?> "loadBalancers" .!@ mempty) <*> (pure (fromEnum s))) instance Hashable GetLoadBalancers where instance NFData GetLoadBalancers where instance ToHeaders GetLoadBalancers where toHeaders = const (mconcat ["X-Amz-Target" =# ("Lightsail_20161128.GetLoadBalancers" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON GetLoadBalancers where toJSON GetLoadBalancers'{..} = object (catMaybes [("pageToken" .=) <$> _glbPageToken]) instance ToPath GetLoadBalancers where toPath = const "/" instance ToQuery GetLoadBalancers where toQuery = const mempty -- | /See:/ 'getLoadBalancersResponse' smart constructor. data GetLoadBalancersResponse = GetLoadBalancersResponse' { _glbsrsNextPageToken :: !(Maybe Text) , _glbsrsLoadBalancers :: !(Maybe [LoadBalancer]) , _glbsrsResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'GetLoadBalancersResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'glbsrsNextPageToken' - A token used for advancing to the next page of results from your GetLoadBalancers request. -- -- * 'glbsrsLoadBalancers' - An array of LoadBalancer objects describing your load balancers. -- -- * 'glbsrsResponseStatus' - -- | The response status code. getLoadBalancersResponse :: Int -- ^ 'glbsrsResponseStatus' -> GetLoadBalancersResponse getLoadBalancersResponse pResponseStatus_ = GetLoadBalancersResponse' { _glbsrsNextPageToken = Nothing , _glbsrsLoadBalancers = Nothing , _glbsrsResponseStatus = pResponseStatus_ } -- | A token used for advancing to the next page of results from your GetLoadBalancers request. glbsrsNextPageToken :: Lens' GetLoadBalancersResponse (Maybe Text) glbsrsNextPageToken = lens _glbsrsNextPageToken (\ s a -> s{_glbsrsNextPageToken = a}) -- | An array of LoadBalancer objects describing your load balancers. glbsrsLoadBalancers :: Lens' GetLoadBalancersResponse [LoadBalancer] glbsrsLoadBalancers = lens _glbsrsLoadBalancers (\ s a -> s{_glbsrsLoadBalancers = a}) . _Default . _Coerce -- | -- | The response status code. glbsrsResponseStatus :: Lens' GetLoadBalancersResponse Int glbsrsResponseStatus = lens _glbsrsResponseStatus (\ s a -> s{_glbsrsResponseStatus = a}) instance NFData GetLoadBalancersResponse where