{-# 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 #-}
module Network.AWS.MediaStoreData.DescribeObject
(
describeObject
, DescribeObject
, dPath
, describeObjectResponse
, DescribeObjectResponse
, drsETag
, drsContentLength
, drsCacheControl
, drsLastModified
, drsContentType
, drsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.MediaStoreData.Types
import Network.AWS.MediaStoreData.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
newtype DescribeObject = DescribeObject'
{ _dPath :: Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeObject
:: Text
-> DescribeObject
describeObject pPath_ = DescribeObject' {_dPath = pPath_}
dPath :: Lens' DescribeObject Text
dPath = lens _dPath (\ s a -> s{_dPath = a})
instance AWSRequest DescribeObject where
type Rs DescribeObject = DescribeObjectResponse
request = head' mediaStoreData
response
= receiveEmpty
(\ s h x ->
DescribeObjectResponse' <$>
(h .#? "ETag") <*> (h .#? "Content-Length") <*>
(h .#? "Cache-Control")
<*> (h .#? "Last-Modified")
<*> (h .#? "Content-Type")
<*> (pure (fromEnum s)))
instance Hashable DescribeObject where
instance NFData DescribeObject where
instance ToHeaders DescribeObject where
toHeaders = const mempty
instance ToPath DescribeObject where
toPath DescribeObject'{..}
= mconcat ["/", toBS _dPath]
instance ToQuery DescribeObject where
toQuery = const mempty
data DescribeObjectResponse = DescribeObjectResponse'
{ _drsETag :: !(Maybe Text)
, _drsContentLength :: !(Maybe Nat)
, _drsCacheControl :: !(Maybe Text)
, _drsLastModified :: !(Maybe POSIX)
, _drsContentType :: !(Maybe Text)
, _drsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeObjectResponse
:: Int
-> DescribeObjectResponse
describeObjectResponse pResponseStatus_ =
DescribeObjectResponse'
{ _drsETag = Nothing
, _drsContentLength = Nothing
, _drsCacheControl = Nothing
, _drsLastModified = Nothing
, _drsContentType = Nothing
, _drsResponseStatus = pResponseStatus_
}
drsETag :: Lens' DescribeObjectResponse (Maybe Text)
drsETag = lens _drsETag (\ s a -> s{_drsETag = a})
drsContentLength :: Lens' DescribeObjectResponse (Maybe Natural)
drsContentLength = lens _drsContentLength (\ s a -> s{_drsContentLength = a}) . mapping _Nat
drsCacheControl :: Lens' DescribeObjectResponse (Maybe Text)
drsCacheControl = lens _drsCacheControl (\ s a -> s{_drsCacheControl = a})
drsLastModified :: Lens' DescribeObjectResponse (Maybe UTCTime)
drsLastModified = lens _drsLastModified (\ s a -> s{_drsLastModified = a}) . mapping _Time
drsContentType :: Lens' DescribeObjectResponse (Maybe Text)
drsContentType = lens _drsContentType (\ s a -> s{_drsContentType = a})
drsResponseStatus :: Lens' DescribeObjectResponse Int
drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a})
instance NFData DescribeObjectResponse where