{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- Module : Network.AWS.SQS.GetQueueUrl -- Copyright : (c) 2013-2014 Brendan Hay -- License : This Source Code Form is subject to the terms of -- the Mozilla Public License, v. 2.0. -- A copy of the MPL can be found in the LICENSE file or -- you can obtain it at http://mozilla.org/MPL/2.0/. -- Maintainer : Brendan Hay -- Stability : experimental -- Portability : non-portable (GHC extensions) -- -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | 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 go to in the /AmazonSQS Developer Guide/. -- -- module Network.AWS.SQS.GetQueueUrl ( -- * Request GetQueueUrl -- ** Request constructor , getQueueUrl -- ** Request lenses , gquQueueName , gquQueueOwnerAWSAccountId -- * Response , GetQueueUrlResponse -- ** Response constructor , getQueueUrlResponse -- ** Response lenses , gqurQueueUrl ) where import Network.AWS.Prelude import Network.AWS.Request.Query import Network.AWS.SQS.Types import qualified GHC.Exts data GetQueueUrl = GetQueueUrl { _gquQueueName :: Text , _gquQueueOwnerAWSAccountId :: Maybe Text } deriving (Eq, Ord, Read, Show) -- | 'GetQueueUrl' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'gquQueueName' @::@ 'Text' -- -- * 'gquQueueOwnerAWSAccountId' @::@ 'Maybe' 'Text' -- getQueueUrl :: Text -- ^ 'gquQueueName' -> GetQueueUrl getQueueUrl p1 = GetQueueUrl { _gquQueueName = p1 , _gquQueueOwnerAWSAccountId = Nothing } -- | The name of the queue whose URL must be fetched. Maximum 80 characters; -- alphanumeric characters, hyphens (-), and underscores (_) are allowed. gquQueueName :: Lens' GetQueueUrl Text gquQueueName = lens _gquQueueName (\s a -> s { _gquQueueName = a }) -- | The AWS account ID of the account that created the queue. gquQueueOwnerAWSAccountId :: Lens' GetQueueUrl (Maybe Text) gquQueueOwnerAWSAccountId = lens _gquQueueOwnerAWSAccountId (\s a -> s { _gquQueueOwnerAWSAccountId = a }) newtype GetQueueUrlResponse = GetQueueUrlResponse { _gqurQueueUrl :: Text } deriving (Eq, Ord, Read, Show, Monoid, IsString) -- | 'GetQueueUrlResponse' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'gqurQueueUrl' @::@ 'Text' -- getQueueUrlResponse :: Text -- ^ 'gqurQueueUrl' -> GetQueueUrlResponse getQueueUrlResponse p1 = GetQueueUrlResponse { _gqurQueueUrl = p1 } -- | The URL for the queue. gqurQueueUrl :: Lens' GetQueueUrlResponse Text gqurQueueUrl = lens _gqurQueueUrl (\s a -> s { _gqurQueueUrl = a }) instance ToPath GetQueueUrl where toPath = const "/" instance ToQuery GetQueueUrl where toQuery GetQueueUrl{..} = mconcat [ "QueueName" =? _gquQueueName , "QueueOwnerAWSAccountId" =? _gquQueueOwnerAWSAccountId ] instance ToHeaders GetQueueUrl instance AWSRequest GetQueueUrl where type Sv GetQueueUrl = SQS type Rs GetQueueUrl = GetQueueUrlResponse request = post "GetQueueUrl" response = xmlResponse instance FromXML GetQueueUrlResponse where parseXML = withElement "GetQueueUrlResult" $ \x -> GetQueueUrlResponse <$> x .@ "QueueUrl"