{-# 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.MediaStoreData.DescribeObject
(
DescribeObject (..),
newDescribeObject,
describeObject_path,
DescribeObjectResponse (..),
newDescribeObjectResponse,
describeObjectResponse_cacheControl,
describeObjectResponse_contentLength,
describeObjectResponse_contentType,
describeObjectResponse_eTag,
describeObjectResponse_lastModified,
describeObjectResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MediaStoreData.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data DescribeObject = DescribeObject'
{
DescribeObject -> Text
path :: Prelude.Text
}
deriving (DescribeObject -> DescribeObject -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeObject -> DescribeObject -> Bool
$c/= :: DescribeObject -> DescribeObject -> Bool
== :: DescribeObject -> DescribeObject -> Bool
$c== :: DescribeObject -> DescribeObject -> Bool
Prelude.Eq, ReadPrec [DescribeObject]
ReadPrec DescribeObject
Int -> ReadS DescribeObject
ReadS [DescribeObject]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeObject]
$creadListPrec :: ReadPrec [DescribeObject]
readPrec :: ReadPrec DescribeObject
$creadPrec :: ReadPrec DescribeObject
readList :: ReadS [DescribeObject]
$creadList :: ReadS [DescribeObject]
readsPrec :: Int -> ReadS DescribeObject
$creadsPrec :: Int -> ReadS DescribeObject
Prelude.Read, Int -> DescribeObject -> ShowS
[DescribeObject] -> ShowS
DescribeObject -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeObject] -> ShowS
$cshowList :: [DescribeObject] -> ShowS
show :: DescribeObject -> String
$cshow :: DescribeObject -> String
showsPrec :: Int -> DescribeObject -> ShowS
$cshowsPrec :: Int -> DescribeObject -> ShowS
Prelude.Show, forall x. Rep DescribeObject x -> DescribeObject
forall x. DescribeObject -> Rep DescribeObject x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeObject x -> DescribeObject
$cfrom :: forall x. DescribeObject -> Rep DescribeObject x
Prelude.Generic)
newDescribeObject ::
Prelude.Text ->
DescribeObject
newDescribeObject :: Text -> DescribeObject
newDescribeObject Text
pPath_ =
DescribeObject' {$sel:path:DescribeObject' :: Text
path = Text
pPath_}
describeObject_path :: Lens.Lens' DescribeObject Prelude.Text
describeObject_path :: Lens' DescribeObject Text
describeObject_path = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeObject' {Text
path :: Text
$sel:path:DescribeObject' :: DescribeObject -> Text
path} -> Text
path) (\s :: DescribeObject
s@DescribeObject' {} Text
a -> DescribeObject
s {$sel:path:DescribeObject' :: Text
path = Text
a} :: DescribeObject)
instance Core.AWSRequest DescribeObject where
type
AWSResponse DescribeObject =
DescribeObjectResponse
request :: (Service -> Service) -> DescribeObject -> Request DescribeObject
request Service -> Service
overrides =
forall a. ToRequest a => Service -> a -> Request a
Request.head' (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeObject
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeObject)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> () -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveEmpty
( \Int
s ResponseHeaders
h ()
x ->
Maybe Text
-> Maybe Natural
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Int
-> DescribeObjectResponse
DescribeObjectResponse'
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
"Cache-Control")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (ResponseHeaders
h forall a.
FromText a =>
ResponseHeaders -> HeaderName -> Either String (Maybe a)
Data..#? HeaderName
"Content-Length")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (ResponseHeaders
h forall a.
FromText a =>
ResponseHeaders -> HeaderName -> Either String (Maybe a)
Data..#? HeaderName
"Content-Type")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (ResponseHeaders
h forall a.
FromText a =>
ResponseHeaders -> HeaderName -> Either String (Maybe a)
Data..#? HeaderName
"ETag")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (ResponseHeaders
h forall a.
FromText a =>
ResponseHeaders -> HeaderName -> Either String (Maybe a)
Data..#? HeaderName
"Last-Modified")
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 DescribeObject where
hashWithSalt :: Int -> DescribeObject -> Int
hashWithSalt Int
_salt DescribeObject' {Text
path :: Text
$sel:path:DescribeObject' :: DescribeObject -> Text
..} =
Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
path
instance Prelude.NFData DescribeObject where
rnf :: DescribeObject -> ()
rnf DescribeObject' {Text
path :: Text
$sel:path:DescribeObject' :: DescribeObject -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
path
instance Data.ToHeaders DescribeObject where
toHeaders :: DescribeObject -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToPath DescribeObject where
toPath :: DescribeObject -> ByteString
toPath DescribeObject' {Text
path :: Text
$sel:path:DescribeObject' :: DescribeObject -> Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
path]
instance Data.ToQuery DescribeObject where
toQuery :: DescribeObject -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DescribeObjectResponse = DescribeObjectResponse'
{
DescribeObjectResponse -> Maybe Text
cacheControl :: Prelude.Maybe Prelude.Text,
DescribeObjectResponse -> Maybe Natural
contentLength :: Prelude.Maybe Prelude.Natural,
DescribeObjectResponse -> Maybe Text
contentType :: Prelude.Maybe Prelude.Text,
DescribeObjectResponse -> Maybe Text
eTag :: Prelude.Maybe Prelude.Text,
DescribeObjectResponse -> Maybe POSIX
lastModified :: Prelude.Maybe Data.POSIX,
DescribeObjectResponse -> Int
httpStatus :: Prelude.Int
}
deriving (DescribeObjectResponse -> DescribeObjectResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeObjectResponse -> DescribeObjectResponse -> Bool
$c/= :: DescribeObjectResponse -> DescribeObjectResponse -> Bool
== :: DescribeObjectResponse -> DescribeObjectResponse -> Bool
$c== :: DescribeObjectResponse -> DescribeObjectResponse -> Bool
Prelude.Eq, ReadPrec [DescribeObjectResponse]
ReadPrec DescribeObjectResponse
Int -> ReadS DescribeObjectResponse
ReadS [DescribeObjectResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeObjectResponse]
$creadListPrec :: ReadPrec [DescribeObjectResponse]
readPrec :: ReadPrec DescribeObjectResponse
$creadPrec :: ReadPrec DescribeObjectResponse
readList :: ReadS [DescribeObjectResponse]
$creadList :: ReadS [DescribeObjectResponse]
readsPrec :: Int -> ReadS DescribeObjectResponse
$creadsPrec :: Int -> ReadS DescribeObjectResponse
Prelude.Read, Int -> DescribeObjectResponse -> ShowS
[DescribeObjectResponse] -> ShowS
DescribeObjectResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeObjectResponse] -> ShowS
$cshowList :: [DescribeObjectResponse] -> ShowS
show :: DescribeObjectResponse -> String
$cshow :: DescribeObjectResponse -> String
showsPrec :: Int -> DescribeObjectResponse -> ShowS
$cshowsPrec :: Int -> DescribeObjectResponse -> ShowS
Prelude.Show, forall x. Rep DescribeObjectResponse x -> DescribeObjectResponse
forall x. DescribeObjectResponse -> Rep DescribeObjectResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeObjectResponse x -> DescribeObjectResponse
$cfrom :: forall x. DescribeObjectResponse -> Rep DescribeObjectResponse x
Prelude.Generic)
newDescribeObjectResponse ::
Prelude.Int ->
DescribeObjectResponse
newDescribeObjectResponse :: Int -> DescribeObjectResponse
newDescribeObjectResponse Int
pHttpStatus_ =
DescribeObjectResponse'
{ $sel:cacheControl:DescribeObjectResponse' :: Maybe Text
cacheControl =
forall a. Maybe a
Prelude.Nothing,
$sel:contentLength:DescribeObjectResponse' :: Maybe Natural
contentLength = forall a. Maybe a
Prelude.Nothing,
$sel:contentType:DescribeObjectResponse' :: Maybe Text
contentType = forall a. Maybe a
Prelude.Nothing,
$sel:eTag:DescribeObjectResponse' :: Maybe Text
eTag = forall a. Maybe a
Prelude.Nothing,
$sel:lastModified:DescribeObjectResponse' :: Maybe POSIX
lastModified = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DescribeObjectResponse' :: Int
httpStatus = Int
pHttpStatus_
}
describeObjectResponse_cacheControl :: Lens.Lens' DescribeObjectResponse (Prelude.Maybe Prelude.Text)
describeObjectResponse_cacheControl :: Lens' DescribeObjectResponse (Maybe Text)
describeObjectResponse_cacheControl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeObjectResponse' {Maybe Text
cacheControl :: Maybe Text
$sel:cacheControl:DescribeObjectResponse' :: DescribeObjectResponse -> Maybe Text
cacheControl} -> Maybe Text
cacheControl) (\s :: DescribeObjectResponse
s@DescribeObjectResponse' {} Maybe Text
a -> DescribeObjectResponse
s {$sel:cacheControl:DescribeObjectResponse' :: Maybe Text
cacheControl = Maybe Text
a} :: DescribeObjectResponse)
describeObjectResponse_contentLength :: Lens.Lens' DescribeObjectResponse (Prelude.Maybe Prelude.Natural)
describeObjectResponse_contentLength :: Lens' DescribeObjectResponse (Maybe Natural)
describeObjectResponse_contentLength = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeObjectResponse' {Maybe Natural
contentLength :: Maybe Natural
$sel:contentLength:DescribeObjectResponse' :: DescribeObjectResponse -> Maybe Natural
contentLength} -> Maybe Natural
contentLength) (\s :: DescribeObjectResponse
s@DescribeObjectResponse' {} Maybe Natural
a -> DescribeObjectResponse
s {$sel:contentLength:DescribeObjectResponse' :: Maybe Natural
contentLength = Maybe Natural
a} :: DescribeObjectResponse)
describeObjectResponse_contentType :: Lens.Lens' DescribeObjectResponse (Prelude.Maybe Prelude.Text)
describeObjectResponse_contentType :: Lens' DescribeObjectResponse (Maybe Text)
describeObjectResponse_contentType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeObjectResponse' {Maybe Text
contentType :: Maybe Text
$sel:contentType:DescribeObjectResponse' :: DescribeObjectResponse -> Maybe Text
contentType} -> Maybe Text
contentType) (\s :: DescribeObjectResponse
s@DescribeObjectResponse' {} Maybe Text
a -> DescribeObjectResponse
s {$sel:contentType:DescribeObjectResponse' :: Maybe Text
contentType = Maybe Text
a} :: DescribeObjectResponse)
describeObjectResponse_eTag :: Lens.Lens' DescribeObjectResponse (Prelude.Maybe Prelude.Text)
describeObjectResponse_eTag :: Lens' DescribeObjectResponse (Maybe Text)
describeObjectResponse_eTag = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeObjectResponse' {Maybe Text
eTag :: Maybe Text
$sel:eTag:DescribeObjectResponse' :: DescribeObjectResponse -> Maybe Text
eTag} -> Maybe Text
eTag) (\s :: DescribeObjectResponse
s@DescribeObjectResponse' {} Maybe Text
a -> DescribeObjectResponse
s {$sel:eTag:DescribeObjectResponse' :: Maybe Text
eTag = Maybe Text
a} :: DescribeObjectResponse)
describeObjectResponse_lastModified :: Lens.Lens' DescribeObjectResponse (Prelude.Maybe Prelude.UTCTime)
describeObjectResponse_lastModified :: Lens' DescribeObjectResponse (Maybe UTCTime)
describeObjectResponse_lastModified = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeObjectResponse' {Maybe POSIX
lastModified :: Maybe POSIX
$sel:lastModified:DescribeObjectResponse' :: DescribeObjectResponse -> Maybe POSIX
lastModified} -> Maybe POSIX
lastModified) (\s :: DescribeObjectResponse
s@DescribeObjectResponse' {} Maybe POSIX
a -> DescribeObjectResponse
s {$sel:lastModified:DescribeObjectResponse' :: Maybe POSIX
lastModified = Maybe POSIX
a} :: DescribeObjectResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
describeObjectResponse_httpStatus :: Lens.Lens' DescribeObjectResponse Prelude.Int
describeObjectResponse_httpStatus :: Lens' DescribeObjectResponse Int
describeObjectResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeObjectResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeObjectResponse' :: DescribeObjectResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeObjectResponse
s@DescribeObjectResponse' {} Int
a -> DescribeObjectResponse
s {$sel:httpStatus:DescribeObjectResponse' :: Int
httpStatus = Int
a} :: DescribeObjectResponse)
instance Prelude.NFData DescribeObjectResponse where
rnf :: DescribeObjectResponse -> ()
rnf DescribeObjectResponse' {Int
Maybe Natural
Maybe Text
Maybe POSIX
httpStatus :: Int
lastModified :: Maybe POSIX
eTag :: Maybe Text
contentType :: Maybe Text
contentLength :: Maybe Natural
cacheControl :: Maybe Text
$sel:httpStatus:DescribeObjectResponse' :: DescribeObjectResponse -> Int
$sel:lastModified:DescribeObjectResponse' :: DescribeObjectResponse -> Maybe POSIX
$sel:eTag:DescribeObjectResponse' :: DescribeObjectResponse -> Maybe Text
$sel:contentType:DescribeObjectResponse' :: DescribeObjectResponse -> Maybe Text
$sel:contentLength:DescribeObjectResponse' :: DescribeObjectResponse -> Maybe Natural
$sel:cacheControl:DescribeObjectResponse' :: DescribeObjectResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
cacheControl
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
contentLength
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
contentType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
eTag
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModified
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus