{-# 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.SQS.GetQueueURL -- 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 URL of an existing queue. This action provides a simple way to retrieve the URL of an Amazon SQS queue. -- -- -- To access a queue that belongs to another AWS account, use the @QueueOwnerAWSAccountId@ parameter to specify the account ID of the queue's owner. The queue's owner must grant you permission to access the queue. For more information about shared queue access, see @'AddPermission' @ or see in the /Amazon Simple Queue Service Developer Guide/ . -- module Network.AWS.SQS.GetQueueURL ( -- * Creating a Request getQueueURL , GetQueueURL -- * Request Lenses , gquQueueOwnerAWSAccountId , gquQueueName -- * Destructuring the Response , getQueueURLResponse , GetQueueURLResponse -- * Response Lenses , gqursResponseStatus , gqursQueueURL ) where import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response import Network.AWS.SQS.Types import Network.AWS.SQS.Types.Product -- | -- -- -- -- /See:/ 'getQueueURL' smart constructor. data GetQueueURL = GetQueueURL' { _gquQueueOwnerAWSAccountId :: !(Maybe Text) , _gquQueueName :: !Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'GetQueueURL' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gquQueueOwnerAWSAccountId' - The AWS account ID of the account that created the queue. -- -- * 'gquQueueName' - The name of the queue whose URL must be fetched. Maximum 80 characters. Valid values: alphanumeric characters, hyphens (@-@ ), and underscores (@_@ ). Queue names are case-sensitive. getQueueURL :: Text -- ^ 'gquQueueName' -> GetQueueURL getQueueURL pQueueName_ = GetQueueURL' {_gquQueueOwnerAWSAccountId = Nothing, _gquQueueName = pQueueName_} -- | The AWS account ID of the account that created the queue. gquQueueOwnerAWSAccountId :: Lens' GetQueueURL (Maybe Text) gquQueueOwnerAWSAccountId = lens _gquQueueOwnerAWSAccountId (\ s a -> s{_gquQueueOwnerAWSAccountId = a}) -- | The name of the queue whose URL must be fetched. Maximum 80 characters. Valid values: alphanumeric characters, hyphens (@-@ ), and underscores (@_@ ). Queue names are case-sensitive. gquQueueName :: Lens' GetQueueURL Text gquQueueName = lens _gquQueueName (\ s a -> s{_gquQueueName = a}) instance AWSRequest GetQueueURL where type Rs GetQueueURL = GetQueueURLResponse request = postQuery sqs response = receiveXMLWrapper "GetQueueUrlResult" (\ s h x -> GetQueueURLResponse' <$> (pure (fromEnum s)) <*> (x .@ "QueueUrl")) instance Hashable GetQueueURL where instance NFData GetQueueURL where instance ToHeaders GetQueueURL where toHeaders = const mempty instance ToPath GetQueueURL where toPath = const "/" instance ToQuery GetQueueURL where toQuery GetQueueURL'{..} = mconcat ["Action" =: ("GetQueueUrl" :: ByteString), "Version" =: ("2012-11-05" :: ByteString), "QueueOwnerAWSAccountId" =: _gquQueueOwnerAWSAccountId, "QueueName" =: _gquQueueName] -- | For more information, see in the /Amazon Simple Queue Service Developer Guide/ . -- -- -- -- /See:/ 'getQueueURLResponse' smart constructor. data GetQueueURLResponse = GetQueueURLResponse' { _gqursResponseStatus :: !Int , _gqursQueueURL :: !Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'GetQueueURLResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gqursResponseStatus' - -- | The response status code. -- -- * 'gqursQueueURL' - The URL of the queue. getQueueURLResponse :: Int -- ^ 'gqursResponseStatus' -> Text -- ^ 'gqursQueueURL' -> GetQueueURLResponse getQueueURLResponse pResponseStatus_ pQueueURL_ = GetQueueURLResponse' {_gqursResponseStatus = pResponseStatus_, _gqursQueueURL = pQueueURL_} -- | -- | The response status code. gqursResponseStatus :: Lens' GetQueueURLResponse Int gqursResponseStatus = lens _gqursResponseStatus (\ s a -> s{_gqursResponseStatus = a}) -- | The URL of the queue. gqursQueueURL :: Lens' GetQueueURLResponse Text gqursQueueURL = lens _gqursQueueURL (\ s a -> s{_gqursQueueURL = a}) instance NFData GetQueueURLResponse where