{-# 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.S3.GetObjectTorrent
(
GetObjectTorrent (..),
newGetObjectTorrent,
getObjectTorrent_expectedBucketOwner,
getObjectTorrent_requestPayer,
getObjectTorrent_bucket,
getObjectTorrent_key,
GetObjectTorrentResponse (..),
newGetObjectTorrentResponse,
getObjectTorrentResponse_requestCharged,
getObjectTorrentResponse_httpStatus,
getObjectTorrentResponse_body,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.S3.Types
data GetObjectTorrent = GetObjectTorrent'
{
GetObjectTorrent -> Maybe Text
expectedBucketOwner :: Prelude.Maybe Prelude.Text,
GetObjectTorrent -> Maybe RequestPayer
requestPayer :: Prelude.Maybe RequestPayer,
GetObjectTorrent -> BucketName
bucket :: BucketName,
GetObjectTorrent -> ObjectKey
key :: ObjectKey
}
deriving (GetObjectTorrent -> GetObjectTorrent -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetObjectTorrent -> GetObjectTorrent -> Bool
$c/= :: GetObjectTorrent -> GetObjectTorrent -> Bool
== :: GetObjectTorrent -> GetObjectTorrent -> Bool
$c== :: GetObjectTorrent -> GetObjectTorrent -> Bool
Prelude.Eq, ReadPrec [GetObjectTorrent]
ReadPrec GetObjectTorrent
Int -> ReadS GetObjectTorrent
ReadS [GetObjectTorrent]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetObjectTorrent]
$creadListPrec :: ReadPrec [GetObjectTorrent]
readPrec :: ReadPrec GetObjectTorrent
$creadPrec :: ReadPrec GetObjectTorrent
readList :: ReadS [GetObjectTorrent]
$creadList :: ReadS [GetObjectTorrent]
readsPrec :: Int -> ReadS GetObjectTorrent
$creadsPrec :: Int -> ReadS GetObjectTorrent
Prelude.Read, Int -> GetObjectTorrent -> ShowS
[GetObjectTorrent] -> ShowS
GetObjectTorrent -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetObjectTorrent] -> ShowS
$cshowList :: [GetObjectTorrent] -> ShowS
show :: GetObjectTorrent -> String
$cshow :: GetObjectTorrent -> String
showsPrec :: Int -> GetObjectTorrent -> ShowS
$cshowsPrec :: Int -> GetObjectTorrent -> ShowS
Prelude.Show, forall x. Rep GetObjectTorrent x -> GetObjectTorrent
forall x. GetObjectTorrent -> Rep GetObjectTorrent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetObjectTorrent x -> GetObjectTorrent
$cfrom :: forall x. GetObjectTorrent -> Rep GetObjectTorrent x
Prelude.Generic)
newGetObjectTorrent ::
BucketName ->
ObjectKey ->
GetObjectTorrent
newGetObjectTorrent :: BucketName -> ObjectKey -> GetObjectTorrent
newGetObjectTorrent BucketName
pBucket_ ObjectKey
pKey_ =
GetObjectTorrent'
{ $sel:expectedBucketOwner:GetObjectTorrent' :: Maybe Text
expectedBucketOwner =
forall a. Maybe a
Prelude.Nothing,
$sel:requestPayer:GetObjectTorrent' :: Maybe RequestPayer
requestPayer = forall a. Maybe a
Prelude.Nothing,
$sel:bucket:GetObjectTorrent' :: BucketName
bucket = BucketName
pBucket_,
$sel:key:GetObjectTorrent' :: ObjectKey
key = ObjectKey
pKey_
}
getObjectTorrent_expectedBucketOwner :: Lens.Lens' GetObjectTorrent (Prelude.Maybe Prelude.Text)
getObjectTorrent_expectedBucketOwner :: Lens' GetObjectTorrent (Maybe Text)
getObjectTorrent_expectedBucketOwner = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetObjectTorrent' {Maybe Text
expectedBucketOwner :: Maybe Text
$sel:expectedBucketOwner:GetObjectTorrent' :: GetObjectTorrent -> Maybe Text
expectedBucketOwner} -> Maybe Text
expectedBucketOwner) (\s :: GetObjectTorrent
s@GetObjectTorrent' {} Maybe Text
a -> GetObjectTorrent
s {$sel:expectedBucketOwner:GetObjectTorrent' :: Maybe Text
expectedBucketOwner = Maybe Text
a} :: GetObjectTorrent)
getObjectTorrent_requestPayer :: Lens.Lens' GetObjectTorrent (Prelude.Maybe RequestPayer)
getObjectTorrent_requestPayer :: Lens' GetObjectTorrent (Maybe RequestPayer)
getObjectTorrent_requestPayer = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetObjectTorrent' {Maybe RequestPayer
requestPayer :: Maybe RequestPayer
$sel:requestPayer:GetObjectTorrent' :: GetObjectTorrent -> Maybe RequestPayer
requestPayer} -> Maybe RequestPayer
requestPayer) (\s :: GetObjectTorrent
s@GetObjectTorrent' {} Maybe RequestPayer
a -> GetObjectTorrent
s {$sel:requestPayer:GetObjectTorrent' :: Maybe RequestPayer
requestPayer = Maybe RequestPayer
a} :: GetObjectTorrent)
getObjectTorrent_bucket :: Lens.Lens' GetObjectTorrent BucketName
getObjectTorrent_bucket :: Lens' GetObjectTorrent BucketName
getObjectTorrent_bucket = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetObjectTorrent' {BucketName
bucket :: BucketName
$sel:bucket:GetObjectTorrent' :: GetObjectTorrent -> BucketName
bucket} -> BucketName
bucket) (\s :: GetObjectTorrent
s@GetObjectTorrent' {} BucketName
a -> GetObjectTorrent
s {$sel:bucket:GetObjectTorrent' :: BucketName
bucket = BucketName
a} :: GetObjectTorrent)
getObjectTorrent_key :: Lens.Lens' GetObjectTorrent ObjectKey
getObjectTorrent_key :: Lens' GetObjectTorrent ObjectKey
getObjectTorrent_key = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetObjectTorrent' {ObjectKey
key :: ObjectKey
$sel:key:GetObjectTorrent' :: GetObjectTorrent -> ObjectKey
key} -> ObjectKey
key) (\s :: GetObjectTorrent
s@GetObjectTorrent' {} ObjectKey
a -> GetObjectTorrent
s {$sel:key:GetObjectTorrent' :: ObjectKey
key = ObjectKey
a} :: GetObjectTorrent)
instance Core.AWSRequest GetObjectTorrent where
type
AWSResponse GetObjectTorrent =
GetObjectTorrentResponse
request :: (Service -> Service)
-> GetObjectTorrent -> Request GetObjectTorrent
request Service -> Service
overrides =
forall a. Request a -> Request a
Request.s3vhost
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetObjectTorrent
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetObjectTorrent)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int
-> ResponseHeaders
-> ResponseBody
-> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveBody
( \Int
s ResponseHeaders
h ResponseBody
x ->
Maybe RequestCharged
-> Int -> ResponseBody -> GetObjectTorrentResponse
GetObjectTorrentResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (ResponseHeaders
h forall a.
FromText a =>
ResponseHeaders -> HeaderName -> Either String (Maybe a)
Data..#? HeaderName
"x-amz-request-charged")
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))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure ResponseBody
x)
)
instance Prelude.Hashable GetObjectTorrent where
hashWithSalt :: Int -> GetObjectTorrent -> Int
hashWithSalt Int
_salt GetObjectTorrent' {Maybe Text
Maybe RequestPayer
ObjectKey
BucketName
key :: ObjectKey
bucket :: BucketName
requestPayer :: Maybe RequestPayer
expectedBucketOwner :: Maybe Text
$sel:key:GetObjectTorrent' :: GetObjectTorrent -> ObjectKey
$sel:bucket:GetObjectTorrent' :: GetObjectTorrent -> BucketName
$sel:requestPayer:GetObjectTorrent' :: GetObjectTorrent -> Maybe RequestPayer
$sel:expectedBucketOwner:GetObjectTorrent' :: GetObjectTorrent -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
expectedBucketOwner
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RequestPayer
requestPayer
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` BucketName
bucket
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ObjectKey
key
instance Prelude.NFData GetObjectTorrent where
rnf :: GetObjectTorrent -> ()
rnf GetObjectTorrent' {Maybe Text
Maybe RequestPayer
ObjectKey
BucketName
key :: ObjectKey
bucket :: BucketName
requestPayer :: Maybe RequestPayer
expectedBucketOwner :: Maybe Text
$sel:key:GetObjectTorrent' :: GetObjectTorrent -> ObjectKey
$sel:bucket:GetObjectTorrent' :: GetObjectTorrent -> BucketName
$sel:requestPayer:GetObjectTorrent' :: GetObjectTorrent -> Maybe RequestPayer
$sel:expectedBucketOwner:GetObjectTorrent' :: GetObjectTorrent -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
expectedBucketOwner
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RequestPayer
requestPayer
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf BucketName
bucket
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ObjectKey
key
instance Data.ToHeaders GetObjectTorrent where
toHeaders :: GetObjectTorrent -> ResponseHeaders
toHeaders GetObjectTorrent' {Maybe Text
Maybe RequestPayer
ObjectKey
BucketName
key :: ObjectKey
bucket :: BucketName
requestPayer :: Maybe RequestPayer
expectedBucketOwner :: Maybe Text
$sel:key:GetObjectTorrent' :: GetObjectTorrent -> ObjectKey
$sel:bucket:GetObjectTorrent' :: GetObjectTorrent -> BucketName
$sel:requestPayer:GetObjectTorrent' :: GetObjectTorrent -> Maybe RequestPayer
$sel:expectedBucketOwner:GetObjectTorrent' :: GetObjectTorrent -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"x-amz-expected-bucket-owner"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# Maybe Text
expectedBucketOwner,
HeaderName
"x-amz-request-payer" forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# Maybe RequestPayer
requestPayer
]
instance Data.ToPath GetObjectTorrent where
toPath :: GetObjectTorrent -> ByteString
toPath GetObjectTorrent' {Maybe Text
Maybe RequestPayer
ObjectKey
BucketName
key :: ObjectKey
bucket :: BucketName
requestPayer :: Maybe RequestPayer
expectedBucketOwner :: Maybe Text
$sel:key:GetObjectTorrent' :: GetObjectTorrent -> ObjectKey
$sel:bucket:GetObjectTorrent' :: GetObjectTorrent -> BucketName
$sel:requestPayer:GetObjectTorrent' :: GetObjectTorrent -> Maybe RequestPayer
$sel:expectedBucketOwner:GetObjectTorrent' :: GetObjectTorrent -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ByteString
"/", forall a. ToByteString a => a -> ByteString
Data.toBS BucketName
bucket, ByteString
"/", forall a. ToByteString a => a -> ByteString
Data.toBS ObjectKey
key]
instance Data.ToQuery GetObjectTorrent where
toQuery :: GetObjectTorrent -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const (forall a. Monoid a => [a] -> a
Prelude.mconcat [QueryString
"torrent"])
data GetObjectTorrentResponse = GetObjectTorrentResponse'
{ GetObjectTorrentResponse -> Maybe RequestCharged
requestCharged :: Prelude.Maybe RequestCharged,
GetObjectTorrentResponse -> Int
httpStatus :: Prelude.Int,
GetObjectTorrentResponse -> ResponseBody
body :: Data.ResponseBody
}
deriving (Int -> GetObjectTorrentResponse -> ShowS
[GetObjectTorrentResponse] -> ShowS
GetObjectTorrentResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetObjectTorrentResponse] -> ShowS
$cshowList :: [GetObjectTorrentResponse] -> ShowS
show :: GetObjectTorrentResponse -> String
$cshow :: GetObjectTorrentResponse -> String
showsPrec :: Int -> GetObjectTorrentResponse -> ShowS
$cshowsPrec :: Int -> GetObjectTorrentResponse -> ShowS
Prelude.Show, forall x.
Rep GetObjectTorrentResponse x -> GetObjectTorrentResponse
forall x.
GetObjectTorrentResponse -> Rep GetObjectTorrentResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetObjectTorrentResponse x -> GetObjectTorrentResponse
$cfrom :: forall x.
GetObjectTorrentResponse -> Rep GetObjectTorrentResponse x
Prelude.Generic)
newGetObjectTorrentResponse ::
Prelude.Int ->
Data.ResponseBody ->
GetObjectTorrentResponse
newGetObjectTorrentResponse :: Int -> ResponseBody -> GetObjectTorrentResponse
newGetObjectTorrentResponse Int
pHttpStatus_ ResponseBody
pBody_ =
GetObjectTorrentResponse'
{ $sel:requestCharged:GetObjectTorrentResponse' :: Maybe RequestCharged
requestCharged =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetObjectTorrentResponse' :: Int
httpStatus = Int
pHttpStatus_,
$sel:body:GetObjectTorrentResponse' :: ResponseBody
body = ResponseBody
pBody_
}
getObjectTorrentResponse_requestCharged :: Lens.Lens' GetObjectTorrentResponse (Prelude.Maybe RequestCharged)
getObjectTorrentResponse_requestCharged :: Lens' GetObjectTorrentResponse (Maybe RequestCharged)
getObjectTorrentResponse_requestCharged = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetObjectTorrentResponse' {Maybe RequestCharged
requestCharged :: Maybe RequestCharged
$sel:requestCharged:GetObjectTorrentResponse' :: GetObjectTorrentResponse -> Maybe RequestCharged
requestCharged} -> Maybe RequestCharged
requestCharged) (\s :: GetObjectTorrentResponse
s@GetObjectTorrentResponse' {} Maybe RequestCharged
a -> GetObjectTorrentResponse
s {$sel:requestCharged:GetObjectTorrentResponse' :: Maybe RequestCharged
requestCharged = Maybe RequestCharged
a} :: GetObjectTorrentResponse)
getObjectTorrentResponse_httpStatus :: Lens.Lens' GetObjectTorrentResponse Prelude.Int
getObjectTorrentResponse_httpStatus :: Lens' GetObjectTorrentResponse Int
getObjectTorrentResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetObjectTorrentResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetObjectTorrentResponse' :: GetObjectTorrentResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetObjectTorrentResponse
s@GetObjectTorrentResponse' {} Int
a -> GetObjectTorrentResponse
s {$sel:httpStatus:GetObjectTorrentResponse' :: Int
httpStatus = Int
a} :: GetObjectTorrentResponse)
getObjectTorrentResponse_body :: Lens.Lens' GetObjectTorrentResponse Data.ResponseBody
getObjectTorrentResponse_body :: Lens' GetObjectTorrentResponse ResponseBody
getObjectTorrentResponse_body = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetObjectTorrentResponse' {ResponseBody
body :: ResponseBody
$sel:body:GetObjectTorrentResponse' :: GetObjectTorrentResponse -> ResponseBody
body} -> ResponseBody
body) (\s :: GetObjectTorrentResponse
s@GetObjectTorrentResponse' {} ResponseBody
a -> GetObjectTorrentResponse
s {$sel:body:GetObjectTorrentResponse' :: ResponseBody
body = ResponseBody
a} :: GetObjectTorrentResponse)