{-# 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.WorkDocs.InitiateDocumentVersionUpload
(
initiateDocumentVersionUpload
, InitiateDocumentVersionUpload
, idvuDocumentSizeInBytes
, idvuContentCreatedTimestamp
, idvuAuthenticationToken
, idvuName
, idvuId
, idvuContentModifiedTimestamp
, idvuContentType
, idvuParentFolderId
, initiateDocumentVersionUploadResponse
, InitiateDocumentVersionUploadResponse
, idvursMetadata
, idvursUploadMetadata
, idvursResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.WorkDocs.Types
import Network.AWS.WorkDocs.Types.Product
data InitiateDocumentVersionUpload = InitiateDocumentVersionUpload'
{ _idvuDocumentSizeInBytes :: !(Maybe Integer)
, _idvuContentCreatedTimestamp :: !(Maybe POSIX)
, _idvuAuthenticationToken :: !(Maybe (Sensitive Text))
, _idvuName :: !(Maybe Text)
, _idvuId :: !(Maybe Text)
, _idvuContentModifiedTimestamp :: !(Maybe POSIX)
, _idvuContentType :: !(Maybe Text)
, _idvuParentFolderId :: !Text
} deriving (Eq, Show, Data, Typeable, Generic)
initiateDocumentVersionUpload
:: Text
-> InitiateDocumentVersionUpload
initiateDocumentVersionUpload pParentFolderId_ =
InitiateDocumentVersionUpload'
{ _idvuDocumentSizeInBytes = Nothing
, _idvuContentCreatedTimestamp = Nothing
, _idvuAuthenticationToken = Nothing
, _idvuName = Nothing
, _idvuId = Nothing
, _idvuContentModifiedTimestamp = Nothing
, _idvuContentType = Nothing
, _idvuParentFolderId = pParentFolderId_
}
idvuDocumentSizeInBytes :: Lens' InitiateDocumentVersionUpload (Maybe Integer)
idvuDocumentSizeInBytes = lens _idvuDocumentSizeInBytes (\ s a -> s{_idvuDocumentSizeInBytes = a})
idvuContentCreatedTimestamp :: Lens' InitiateDocumentVersionUpload (Maybe UTCTime)
idvuContentCreatedTimestamp = lens _idvuContentCreatedTimestamp (\ s a -> s{_idvuContentCreatedTimestamp = a}) . mapping _Time
idvuAuthenticationToken :: Lens' InitiateDocumentVersionUpload (Maybe Text)
idvuAuthenticationToken = lens _idvuAuthenticationToken (\ s a -> s{_idvuAuthenticationToken = a}) . mapping _Sensitive
idvuName :: Lens' InitiateDocumentVersionUpload (Maybe Text)
idvuName = lens _idvuName (\ s a -> s{_idvuName = a})
idvuId :: Lens' InitiateDocumentVersionUpload (Maybe Text)
idvuId = lens _idvuId (\ s a -> s{_idvuId = a})
idvuContentModifiedTimestamp :: Lens' InitiateDocumentVersionUpload (Maybe UTCTime)
idvuContentModifiedTimestamp = lens _idvuContentModifiedTimestamp (\ s a -> s{_idvuContentModifiedTimestamp = a}) . mapping _Time
idvuContentType :: Lens' InitiateDocumentVersionUpload (Maybe Text)
idvuContentType = lens _idvuContentType (\ s a -> s{_idvuContentType = a})
idvuParentFolderId :: Lens' InitiateDocumentVersionUpload Text
idvuParentFolderId = lens _idvuParentFolderId (\ s a -> s{_idvuParentFolderId = a})
instance AWSRequest InitiateDocumentVersionUpload
where
type Rs InitiateDocumentVersionUpload =
InitiateDocumentVersionUploadResponse
request = postJSON workDocs
response
= receiveJSON
(\ s h x ->
InitiateDocumentVersionUploadResponse' <$>
(x .?> "Metadata") <*> (x .?> "UploadMetadata") <*>
(pure (fromEnum s)))
instance Hashable InitiateDocumentVersionUpload where
instance NFData InitiateDocumentVersionUpload where
instance ToHeaders InitiateDocumentVersionUpload
where
toHeaders InitiateDocumentVersionUpload'{..}
= mconcat
["Authentication" =# _idvuAuthenticationToken,
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)]
instance ToJSON InitiateDocumentVersionUpload where
toJSON InitiateDocumentVersionUpload'{..}
= object
(catMaybes
[("DocumentSizeInBytes" .=) <$>
_idvuDocumentSizeInBytes,
("ContentCreatedTimestamp" .=) <$>
_idvuContentCreatedTimestamp,
("Name" .=) <$> _idvuName, ("Id" .=) <$> _idvuId,
("ContentModifiedTimestamp" .=) <$>
_idvuContentModifiedTimestamp,
("ContentType" .=) <$> _idvuContentType,
Just ("ParentFolderId" .= _idvuParentFolderId)])
instance ToPath InitiateDocumentVersionUpload where
toPath = const "/api/v1/documents"
instance ToQuery InitiateDocumentVersionUpload where
toQuery = const mempty
data InitiateDocumentVersionUploadResponse = InitiateDocumentVersionUploadResponse'
{ _idvursMetadata :: !(Maybe DocumentMetadata)
, _idvursUploadMetadata :: !(Maybe UploadMetadata)
, _idvursResponseStatus :: !Int
} deriving (Eq, Show, Data, Typeable, Generic)
initiateDocumentVersionUploadResponse
:: Int
-> InitiateDocumentVersionUploadResponse
initiateDocumentVersionUploadResponse pResponseStatus_ =
InitiateDocumentVersionUploadResponse'
{ _idvursMetadata = Nothing
, _idvursUploadMetadata = Nothing
, _idvursResponseStatus = pResponseStatus_
}
idvursMetadata :: Lens' InitiateDocumentVersionUploadResponse (Maybe DocumentMetadata)
idvursMetadata = lens _idvursMetadata (\ s a -> s{_idvursMetadata = a})
idvursUploadMetadata :: Lens' InitiateDocumentVersionUploadResponse (Maybe UploadMetadata)
idvursUploadMetadata = lens _idvursUploadMetadata (\ s a -> s{_idvursUploadMetadata = a})
idvursResponseStatus :: Lens' InitiateDocumentVersionUploadResponse Int
idvursResponseStatus = lens _idvursResponseStatus (\ s a -> s{_idvursResponseStatus = a})
instance NFData InitiateDocumentVersionUploadResponse
where