amazonka-workdocs-1.5.0: gen/Network/AWS/WorkDocs/GetDocument.hs
{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.WorkDocs.GetDocument
-- Copyright : (c) 2013-2017 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves details of a document.
--
--
module Network.AWS.WorkDocs.GetDocument
(
-- * Creating a Request
getDocument
, GetDocument
-- * Request Lenses
, gdAuthenticationToken
, gdIncludeCustomMetadata
, gdDocumentId
-- * Destructuring the Response
, getDocumentResponse
, GetDocumentResponse
-- * Response Lenses
, gdrsCustomMetadata
, gdrsMetadata
, gdrsResponseStatus
) 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
-- | /See:/ 'getDocument' smart constructor.
data GetDocument = GetDocument'
{ _gdAuthenticationToken :: !(Maybe (Sensitive Text))
, _gdIncludeCustomMetadata :: !(Maybe Bool)
, _gdDocumentId :: !Text
} deriving (Eq, Show, Data, Typeable, Generic)
-- | Creates a value of 'GetDocument' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'gdAuthenticationToken' - Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.
--
-- * 'gdIncludeCustomMetadata' - Set this to @TRUE@ to include custom metadata in the response.
--
-- * 'gdDocumentId' - The ID of the document.
getDocument
:: Text -- ^ 'gdDocumentId'
-> GetDocument
getDocument pDocumentId_ =
GetDocument'
{ _gdAuthenticationToken = Nothing
, _gdIncludeCustomMetadata = Nothing
, _gdDocumentId = pDocumentId_
}
-- | Amazon WorkDocs authentication token. This field should not be set when using administrative API actions, as in accessing the API using AWS credentials.
gdAuthenticationToken :: Lens' GetDocument (Maybe Text)
gdAuthenticationToken = lens _gdAuthenticationToken (\ s a -> s{_gdAuthenticationToken = a}) . mapping _Sensitive;
-- | Set this to @TRUE@ to include custom metadata in the response.
gdIncludeCustomMetadata :: Lens' GetDocument (Maybe Bool)
gdIncludeCustomMetadata = lens _gdIncludeCustomMetadata (\ s a -> s{_gdIncludeCustomMetadata = a});
-- | The ID of the document.
gdDocumentId :: Lens' GetDocument Text
gdDocumentId = lens _gdDocumentId (\ s a -> s{_gdDocumentId = a});
instance AWSRequest GetDocument where
type Rs GetDocument = GetDocumentResponse
request = get workDocs
response
= receiveJSON
(\ s h x ->
GetDocumentResponse' <$>
(x .?> "CustomMetadata" .!@ mempty) <*>
(x .?> "Metadata")
<*> (pure (fromEnum s)))
instance Hashable GetDocument where
instance NFData GetDocument where
instance ToHeaders GetDocument where
toHeaders GetDocument'{..}
= mconcat
["Authentication" =# _gdAuthenticationToken,
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)]
instance ToPath GetDocument where
toPath GetDocument'{..}
= mconcat ["/api/v1/documents/", toBS _gdDocumentId]
instance ToQuery GetDocument where
toQuery GetDocument'{..}
= mconcat
["includeCustomMetadata" =: _gdIncludeCustomMetadata]
-- | /See:/ 'getDocumentResponse' smart constructor.
data GetDocumentResponse = GetDocumentResponse'
{ _gdrsCustomMetadata :: !(Maybe (Map Text Text))
, _gdrsMetadata :: !(Maybe DocumentMetadata)
, _gdrsResponseStatus :: !Int
} deriving (Eq, Show, Data, Typeable, Generic)
-- | Creates a value of 'GetDocumentResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'gdrsCustomMetadata' - The custom metadata on the document.
--
-- * 'gdrsMetadata' - The metadata details of the document.
--
-- * 'gdrsResponseStatus' - -- | The response status code.
getDocumentResponse
:: Int -- ^ 'gdrsResponseStatus'
-> GetDocumentResponse
getDocumentResponse pResponseStatus_ =
GetDocumentResponse'
{ _gdrsCustomMetadata = Nothing
, _gdrsMetadata = Nothing
, _gdrsResponseStatus = pResponseStatus_
}
-- | The custom metadata on the document.
gdrsCustomMetadata :: Lens' GetDocumentResponse (HashMap Text Text)
gdrsCustomMetadata = lens _gdrsCustomMetadata (\ s a -> s{_gdrsCustomMetadata = a}) . _Default . _Map;
-- | The metadata details of the document.
gdrsMetadata :: Lens' GetDocumentResponse (Maybe DocumentMetadata)
gdrsMetadata = lens _gdrsMetadata (\ s a -> s{_gdrsMetadata = a});
-- | -- | The response status code.
gdrsResponseStatus :: Lens' GetDocumentResponse Int
gdrsResponseStatus = lens _gdrsResponseStatus (\ s a -> s{_gdrsResponseStatus = a});
instance NFData GetDocumentResponse where