{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.MechanicalTurk.GetFileUploadURL
(
GetFileUploadURL (..),
newGetFileUploadURL,
getFileUploadURL_assignmentId,
getFileUploadURL_questionIdentifier,
GetFileUploadURLResponse (..),
newGetFileUploadURLResponse,
getFileUploadURLResponse_fileUploadURL,
getFileUploadURLResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MechanicalTurk.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data GetFileUploadURL = GetFileUploadURL'
{
GetFileUploadURL -> Text
assignmentId :: Prelude.Text,
GetFileUploadURL -> Text
questionIdentifier :: Prelude.Text
}
deriving (GetFileUploadURL -> GetFileUploadURL -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetFileUploadURL -> GetFileUploadURL -> Bool
$c/= :: GetFileUploadURL -> GetFileUploadURL -> Bool
== :: GetFileUploadURL -> GetFileUploadURL -> Bool
$c== :: GetFileUploadURL -> GetFileUploadURL -> Bool
Prelude.Eq, ReadPrec [GetFileUploadURL]
ReadPrec GetFileUploadURL
Int -> ReadS GetFileUploadURL
ReadS [GetFileUploadURL]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetFileUploadURL]
$creadListPrec :: ReadPrec [GetFileUploadURL]
readPrec :: ReadPrec GetFileUploadURL
$creadPrec :: ReadPrec GetFileUploadURL
readList :: ReadS [GetFileUploadURL]
$creadList :: ReadS [GetFileUploadURL]
readsPrec :: Int -> ReadS GetFileUploadURL
$creadsPrec :: Int -> ReadS GetFileUploadURL
Prelude.Read, Int -> GetFileUploadURL -> ShowS
[GetFileUploadURL] -> ShowS
GetFileUploadURL -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetFileUploadURL] -> ShowS
$cshowList :: [GetFileUploadURL] -> ShowS
show :: GetFileUploadURL -> String
$cshow :: GetFileUploadURL -> String
showsPrec :: Int -> GetFileUploadURL -> ShowS
$cshowsPrec :: Int -> GetFileUploadURL -> ShowS
Prelude.Show, forall x. Rep GetFileUploadURL x -> GetFileUploadURL
forall x. GetFileUploadURL -> Rep GetFileUploadURL x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetFileUploadURL x -> GetFileUploadURL
$cfrom :: forall x. GetFileUploadURL -> Rep GetFileUploadURL x
Prelude.Generic)
newGetFileUploadURL ::
Prelude.Text ->
Prelude.Text ->
GetFileUploadURL
newGetFileUploadURL :: Text -> Text -> GetFileUploadURL
newGetFileUploadURL
Text
pAssignmentId_
Text
pQuestionIdentifier_ =
GetFileUploadURL'
{ $sel:assignmentId:GetFileUploadURL' :: Text
assignmentId = Text
pAssignmentId_,
$sel:questionIdentifier:GetFileUploadURL' :: Text
questionIdentifier = Text
pQuestionIdentifier_
}
getFileUploadURL_assignmentId :: Lens.Lens' GetFileUploadURL Prelude.Text
getFileUploadURL_assignmentId :: Lens' GetFileUploadURL Text
getFileUploadURL_assignmentId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetFileUploadURL' {Text
assignmentId :: Text
$sel:assignmentId:GetFileUploadURL' :: GetFileUploadURL -> Text
assignmentId} -> Text
assignmentId) (\s :: GetFileUploadURL
s@GetFileUploadURL' {} Text
a -> GetFileUploadURL
s {$sel:assignmentId:GetFileUploadURL' :: Text
assignmentId = Text
a} :: GetFileUploadURL)
getFileUploadURL_questionIdentifier :: Lens.Lens' GetFileUploadURL Prelude.Text
getFileUploadURL_questionIdentifier :: Lens' GetFileUploadURL Text
getFileUploadURL_questionIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetFileUploadURL' {Text
questionIdentifier :: Text
$sel:questionIdentifier:GetFileUploadURL' :: GetFileUploadURL -> Text
questionIdentifier} -> Text
questionIdentifier) (\s :: GetFileUploadURL
s@GetFileUploadURL' {} Text
a -> GetFileUploadURL
s {$sel:questionIdentifier:GetFileUploadURL' :: Text
questionIdentifier = Text
a} :: GetFileUploadURL)
instance Core.AWSRequest GetFileUploadURL where
type
AWSResponse GetFileUploadURL =
GetFileUploadURLResponse
request :: (Service -> Service)
-> GetFileUploadURL -> Request GetFileUploadURL
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetFileUploadURL
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetFileUploadURL)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Maybe Text -> Int -> GetFileUploadURLResponse
GetFileUploadURLResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"FileUploadURL")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable GetFileUploadURL where
hashWithSalt :: Int -> GetFileUploadURL -> Int
hashWithSalt Int
_salt GetFileUploadURL' {Text
questionIdentifier :: Text
assignmentId :: Text
$sel:questionIdentifier:GetFileUploadURL' :: GetFileUploadURL -> Text
$sel:assignmentId:GetFileUploadURL' :: GetFileUploadURL -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
assignmentId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
questionIdentifier
instance Prelude.NFData GetFileUploadURL where
rnf :: GetFileUploadURL -> ()
rnf GetFileUploadURL' {Text
questionIdentifier :: Text
assignmentId :: Text
$sel:questionIdentifier:GetFileUploadURL' :: GetFileUploadURL -> Text
$sel:assignmentId:GetFileUploadURL' :: GetFileUploadURL -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
assignmentId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
questionIdentifier
instance Data.ToHeaders GetFileUploadURL where
toHeaders :: GetFileUploadURL -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"MTurkRequesterServiceV20170117.GetFileUploadURL" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON GetFileUploadURL where
toJSON :: GetFileUploadURL -> Value
toJSON GetFileUploadURL' {Text
questionIdentifier :: Text
assignmentId :: Text
$sel:questionIdentifier:GetFileUploadURL' :: GetFileUploadURL -> Text
$sel:assignmentId:GetFileUploadURL' :: GetFileUploadURL -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"AssignmentId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
assignmentId),
forall a. a -> Maybe a
Prelude.Just
(Key
"QuestionIdentifier" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
questionIdentifier)
]
)
instance Data.ToPath GetFileUploadURL where
toPath :: GetFileUploadURL -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery GetFileUploadURL where
toQuery :: GetFileUploadURL -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetFileUploadURLResponse = GetFileUploadURLResponse'
{
GetFileUploadURLResponse -> Maybe Text
fileUploadURL :: Prelude.Maybe Prelude.Text,
GetFileUploadURLResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetFileUploadURLResponse -> GetFileUploadURLResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetFileUploadURLResponse -> GetFileUploadURLResponse -> Bool
$c/= :: GetFileUploadURLResponse -> GetFileUploadURLResponse -> Bool
== :: GetFileUploadURLResponse -> GetFileUploadURLResponse -> Bool
$c== :: GetFileUploadURLResponse -> GetFileUploadURLResponse -> Bool
Prelude.Eq, ReadPrec [GetFileUploadURLResponse]
ReadPrec GetFileUploadURLResponse
Int -> ReadS GetFileUploadURLResponse
ReadS [GetFileUploadURLResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetFileUploadURLResponse]
$creadListPrec :: ReadPrec [GetFileUploadURLResponse]
readPrec :: ReadPrec GetFileUploadURLResponse
$creadPrec :: ReadPrec GetFileUploadURLResponse
readList :: ReadS [GetFileUploadURLResponse]
$creadList :: ReadS [GetFileUploadURLResponse]
readsPrec :: Int -> ReadS GetFileUploadURLResponse
$creadsPrec :: Int -> ReadS GetFileUploadURLResponse
Prelude.Read, Int -> GetFileUploadURLResponse -> ShowS
[GetFileUploadURLResponse] -> ShowS
GetFileUploadURLResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetFileUploadURLResponse] -> ShowS
$cshowList :: [GetFileUploadURLResponse] -> ShowS
show :: GetFileUploadURLResponse -> String
$cshow :: GetFileUploadURLResponse -> String
showsPrec :: Int -> GetFileUploadURLResponse -> ShowS
$cshowsPrec :: Int -> GetFileUploadURLResponse -> ShowS
Prelude.Show, forall x.
Rep GetFileUploadURLResponse x -> GetFileUploadURLResponse
forall x.
GetFileUploadURLResponse -> Rep GetFileUploadURLResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetFileUploadURLResponse x -> GetFileUploadURLResponse
$cfrom :: forall x.
GetFileUploadURLResponse -> Rep GetFileUploadURLResponse x
Prelude.Generic)
newGetFileUploadURLResponse ::
Prelude.Int ->
GetFileUploadURLResponse
newGetFileUploadURLResponse :: Int -> GetFileUploadURLResponse
newGetFileUploadURLResponse Int
pHttpStatus_ =
GetFileUploadURLResponse'
{ $sel:fileUploadURL:GetFileUploadURLResponse' :: Maybe Text
fileUploadURL =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetFileUploadURLResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getFileUploadURLResponse_fileUploadURL :: Lens.Lens' GetFileUploadURLResponse (Prelude.Maybe Prelude.Text)
getFileUploadURLResponse_fileUploadURL :: Lens' GetFileUploadURLResponse (Maybe Text)
getFileUploadURLResponse_fileUploadURL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetFileUploadURLResponse' {Maybe Text
fileUploadURL :: Maybe Text
$sel:fileUploadURL:GetFileUploadURLResponse' :: GetFileUploadURLResponse -> Maybe Text
fileUploadURL} -> Maybe Text
fileUploadURL) (\s :: GetFileUploadURLResponse
s@GetFileUploadURLResponse' {} Maybe Text
a -> GetFileUploadURLResponse
s {$sel:fileUploadURL:GetFileUploadURLResponse' :: Maybe Text
fileUploadURL = Maybe Text
a} :: GetFileUploadURLResponse)
getFileUploadURLResponse_httpStatus :: Lens.Lens' GetFileUploadURLResponse Prelude.Int
getFileUploadURLResponse_httpStatus :: Lens' GetFileUploadURLResponse Int
getFileUploadURLResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetFileUploadURLResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetFileUploadURLResponse' :: GetFileUploadURLResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetFileUploadURLResponse
s@GetFileUploadURLResponse' {} Int
a -> GetFileUploadURLResponse
s {$sel:httpStatus:GetFileUploadURLResponse' :: Int
httpStatus = Int
a} :: GetFileUploadURLResponse)
instance Prelude.NFData GetFileUploadURLResponse where
rnf :: GetFileUploadURLResponse -> ()
rnf GetFileUploadURLResponse' {Int
Maybe Text
httpStatus :: Int
fileUploadURL :: Maybe Text
$sel:httpStatus:GetFileUploadURLResponse' :: GetFileUploadURLResponse -> Int
$sel:fileUploadURL:GetFileUploadURLResponse' :: GetFileUploadURLResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
fileUploadURL
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus