{-# 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.WorkDocs.DescribeComments
(
DescribeComments (..),
newDescribeComments,
describeComments_authenticationToken,
describeComments_limit,
describeComments_marker,
describeComments_documentId,
describeComments_versionId,
DescribeCommentsResponse (..),
newDescribeCommentsResponse,
describeCommentsResponse_comments,
describeCommentsResponse_marker,
describeCommentsResponse_httpStatus,
)
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.WorkDocs.Types
data =
{
:: Prelude.Maybe (Data.Sensitive Prelude.Text),
:: Prelude.Maybe Prelude.Natural,
:: Prelude.Maybe Prelude.Text,
:: Prelude.Text,
:: Prelude.Text
}
deriving (DescribeComments -> DescribeComments -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeComments -> DescribeComments -> Bool
$c/= :: DescribeComments -> DescribeComments -> Bool
== :: DescribeComments -> DescribeComments -> Bool
$c== :: DescribeComments -> DescribeComments -> Bool
Prelude.Eq, Int -> DescribeComments -> ShowS
[DescribeComments] -> ShowS
DescribeComments -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeComments] -> ShowS
$cshowList :: [DescribeComments] -> ShowS
show :: DescribeComments -> String
$cshow :: DescribeComments -> String
showsPrec :: Int -> DescribeComments -> ShowS
$cshowsPrec :: Int -> DescribeComments -> ShowS
Prelude.Show, forall x. Rep DescribeComments x -> DescribeComments
forall x. DescribeComments -> Rep DescribeComments x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeComments x -> DescribeComments
$cfrom :: forall x. DescribeComments -> Rep DescribeComments x
Prelude.Generic)
newDescribeComments ::
Prelude.Text ->
Prelude.Text ->
DescribeComments
Text
pDocumentId_ Text
pVersionId_ =
DescribeComments'
{ $sel:authenticationToken:DescribeComments' :: Maybe (Sensitive Text)
authenticationToken =
forall a. Maybe a
Prelude.Nothing,
$sel:limit:DescribeComments' :: Maybe Natural
limit = forall a. Maybe a
Prelude.Nothing,
$sel:marker:DescribeComments' :: Maybe Text
marker = forall a. Maybe a
Prelude.Nothing,
$sel:documentId:DescribeComments' :: Text
documentId = Text
pDocumentId_,
$sel:versionId:DescribeComments' :: Text
versionId = Text
pVersionId_
}
describeComments_authenticationToken :: Lens.Lens' DescribeComments (Prelude.Maybe Prelude.Text)
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeComments' {Maybe (Sensitive Text)
authenticationToken :: Maybe (Sensitive Text)
$sel:authenticationToken:DescribeComments' :: DescribeComments -> Maybe (Sensitive Text)
authenticationToken} -> Maybe (Sensitive Text)
authenticationToken) (\s :: DescribeComments
s@DescribeComments' {} Maybe (Sensitive Text)
a -> DescribeComments
s {$sel:authenticationToken:DescribeComments' :: Maybe (Sensitive Text)
authenticationToken = Maybe (Sensitive Text)
a} :: DescribeComments) 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. Iso' (Sensitive a) a
Data._Sensitive
describeComments_limit :: Lens.Lens' DescribeComments (Prelude.Maybe Prelude.Natural)
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeComments' {Maybe Natural
limit :: Maybe Natural
$sel:limit:DescribeComments' :: DescribeComments -> Maybe Natural
limit} -> Maybe Natural
limit) (\s :: DescribeComments
s@DescribeComments' {} Maybe Natural
a -> DescribeComments
s {$sel:limit:DescribeComments' :: Maybe Natural
limit = Maybe Natural
a} :: DescribeComments)
describeComments_marker :: Lens.Lens' DescribeComments (Prelude.Maybe Prelude.Text)
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeComments' {Maybe Text
marker :: Maybe Text
$sel:marker:DescribeComments' :: DescribeComments -> Maybe Text
marker} -> Maybe Text
marker) (\s :: DescribeComments
s@DescribeComments' {} Maybe Text
a -> DescribeComments
s {$sel:marker:DescribeComments' :: Maybe Text
marker = Maybe Text
a} :: DescribeComments)
describeComments_documentId :: Lens.Lens' DescribeComments Prelude.Text
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeComments' {Text
documentId :: Text
$sel:documentId:DescribeComments' :: DescribeComments -> Text
documentId} -> Text
documentId) (\s :: DescribeComments
s@DescribeComments' {} Text
a -> DescribeComments
s {$sel:documentId:DescribeComments' :: Text
documentId = Text
a} :: DescribeComments)
describeComments_versionId :: Lens.Lens' DescribeComments Prelude.Text
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeComments' {Text
versionId :: Text
$sel:versionId:DescribeComments' :: DescribeComments -> Text
versionId} -> Text
versionId) (\s :: DescribeComments
s@DescribeComments' {} Text
a -> DescribeComments
s {$sel:versionId:DescribeComments' :: Text
versionId = Text
a} :: DescribeComments)
instance Core.AWSPager DescribeComments where
page :: DescribeComments
-> AWSResponse DescribeComments -> Maybe DescribeComments
page DescribeComments
rq AWSResponse DescribeComments
rs
| forall a. AWSTruncated a => a -> Bool
Core.stop
( AWSResponse DescribeComments
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeCommentsResponse (Maybe Text)
describeCommentsResponse_marker
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
) =
forall a. Maybe a
Prelude.Nothing
| forall a. AWSTruncated a => a -> Bool
Core.stop
( AWSResponse DescribeComments
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeCommentsResponse (Maybe [Comment])
describeCommentsResponse_comments
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
) =
forall a. Maybe a
Prelude.Nothing
| Bool
Prelude.otherwise =
forall a. a -> Maybe a
Prelude.Just
forall a b. (a -> b) -> a -> b
Prelude.$ DescribeComments
rq
forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribeComments (Maybe Text)
describeComments_marker
forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeComments
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeCommentsResponse (Maybe Text)
describeCommentsResponse_marker
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
instance Core.AWSRequest DescribeComments where
type
AWSResponse DescribeComments =
DescribeCommentsResponse
request :: (Service -> Service)
-> DescribeComments -> Request DescribeComments
request Service -> Service
overrides =
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 DescribeComments
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeComments)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Maybe [Comment] -> Maybe Text -> Int -> DescribeCommentsResponse
DescribeCommentsResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Comments" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Marker")
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 DescribeComments where
hashWithSalt :: Int -> DescribeComments -> Int
hashWithSalt Int
_salt DescribeComments' {Maybe Natural
Maybe Text
Maybe (Sensitive Text)
Text
versionId :: Text
documentId :: Text
marker :: Maybe Text
limit :: Maybe Natural
authenticationToken :: Maybe (Sensitive Text)
$sel:versionId:DescribeComments' :: DescribeComments -> Text
$sel:documentId:DescribeComments' :: DescribeComments -> Text
$sel:marker:DescribeComments' :: DescribeComments -> Maybe Text
$sel:limit:DescribeComments' :: DescribeComments -> Maybe Natural
$sel:authenticationToken:DescribeComments' :: DescribeComments -> Maybe (Sensitive Text)
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
authenticationToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
limit
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
marker
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
documentId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
versionId
instance Prelude.NFData DescribeComments where
rnf :: DescribeComments -> ()
rnf DescribeComments' {Maybe Natural
Maybe Text
Maybe (Sensitive Text)
Text
versionId :: Text
documentId :: Text
marker :: Maybe Text
limit :: Maybe Natural
authenticationToken :: Maybe (Sensitive Text)
$sel:versionId:DescribeComments' :: DescribeComments -> Text
$sel:documentId:DescribeComments' :: DescribeComments -> Text
$sel:marker:DescribeComments' :: DescribeComments -> Maybe Text
$sel:limit:DescribeComments' :: DescribeComments -> Maybe Natural
$sel:authenticationToken:DescribeComments' :: DescribeComments -> Maybe (Sensitive Text)
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
authenticationToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
limit
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
marker
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
documentId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
versionId
instance Data.ToHeaders DescribeComments where
toHeaders :: DescribeComments -> ResponseHeaders
toHeaders DescribeComments' {Maybe Natural
Maybe Text
Maybe (Sensitive Text)
Text
versionId :: Text
documentId :: Text
marker :: Maybe Text
limit :: Maybe Natural
authenticationToken :: Maybe (Sensitive Text)
$sel:versionId:DescribeComments' :: DescribeComments -> Text
$sel:documentId:DescribeComments' :: DescribeComments -> Text
$sel:marker:DescribeComments' :: DescribeComments -> Maybe Text
$sel:limit:DescribeComments' :: DescribeComments -> Maybe Natural
$sel:authenticationToken:DescribeComments' :: DescribeComments -> Maybe (Sensitive Text)
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Authentication" forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# Maybe (Sensitive Text)
authenticationToken,
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# (ByteString
"application/x-amz-json-1.1" :: Prelude.ByteString)
]
instance Data.ToPath DescribeComments where
toPath :: DescribeComments -> ByteString
toPath DescribeComments' {Maybe Natural
Maybe Text
Maybe (Sensitive Text)
Text
versionId :: Text
documentId :: Text
marker :: Maybe Text
limit :: Maybe Natural
authenticationToken :: Maybe (Sensitive Text)
$sel:versionId:DescribeComments' :: DescribeComments -> Text
$sel:documentId:DescribeComments' :: DescribeComments -> Text
$sel:marker:DescribeComments' :: DescribeComments -> Maybe Text
$sel:limit:DescribeComments' :: DescribeComments -> Maybe Natural
$sel:authenticationToken:DescribeComments' :: DescribeComments -> Maybe (Sensitive Text)
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/api/v1/documents/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
documentId,
ByteString
"/versions/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
versionId,
ByteString
"/comments"
]
instance Data.ToQuery DescribeComments where
toQuery :: DescribeComments -> QueryString
toQuery DescribeComments' {Maybe Natural
Maybe Text
Maybe (Sensitive Text)
Text
versionId :: Text
documentId :: Text
marker :: Maybe Text
limit :: Maybe Natural
authenticationToken :: Maybe (Sensitive Text)
$sel:versionId:DescribeComments' :: DescribeComments -> Text
$sel:documentId:DescribeComments' :: DescribeComments -> Text
$sel:marker:DescribeComments' :: DescribeComments -> Maybe Text
$sel:limit:DescribeComments' :: DescribeComments -> Maybe Natural
$sel:authenticationToken:DescribeComments' :: DescribeComments -> Maybe (Sensitive Text)
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ByteString
"limit" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Natural
limit, ByteString
"marker" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
marker]
data =
{
:: Prelude.Maybe [Comment],
:: Prelude.Maybe Prelude.Text,
:: Prelude.Int
}
deriving (DescribeCommentsResponse -> DescribeCommentsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeCommentsResponse -> DescribeCommentsResponse -> Bool
$c/= :: DescribeCommentsResponse -> DescribeCommentsResponse -> Bool
== :: DescribeCommentsResponse -> DescribeCommentsResponse -> Bool
$c== :: DescribeCommentsResponse -> DescribeCommentsResponse -> Bool
Prelude.Eq, Int -> DescribeCommentsResponse -> ShowS
[DescribeCommentsResponse] -> ShowS
DescribeCommentsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeCommentsResponse] -> ShowS
$cshowList :: [DescribeCommentsResponse] -> ShowS
show :: DescribeCommentsResponse -> String
$cshow :: DescribeCommentsResponse -> String
showsPrec :: Int -> DescribeCommentsResponse -> ShowS
$cshowsPrec :: Int -> DescribeCommentsResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeCommentsResponse x -> DescribeCommentsResponse
forall x.
DescribeCommentsResponse -> Rep DescribeCommentsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeCommentsResponse x -> DescribeCommentsResponse
$cfrom :: forall x.
DescribeCommentsResponse -> Rep DescribeCommentsResponse x
Prelude.Generic)
newDescribeCommentsResponse ::
Prelude.Int ->
DescribeCommentsResponse
Int
pHttpStatus_ =
DescribeCommentsResponse'
{ $sel:comments:DescribeCommentsResponse' :: Maybe [Comment]
comments =
forall a. Maybe a
Prelude.Nothing,
$sel:marker:DescribeCommentsResponse' :: Maybe Text
marker = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DescribeCommentsResponse' :: Int
httpStatus = Int
pHttpStatus_
}
describeCommentsResponse_comments :: Lens.Lens' DescribeCommentsResponse (Prelude.Maybe [Comment])
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCommentsResponse' {Maybe [Comment]
comments :: Maybe [Comment]
$sel:comments:DescribeCommentsResponse' :: DescribeCommentsResponse -> Maybe [Comment]
comments} -> Maybe [Comment]
comments) (\s :: DescribeCommentsResponse
s@DescribeCommentsResponse' {} Maybe [Comment]
a -> DescribeCommentsResponse
s {$sel:comments:DescribeCommentsResponse' :: Maybe [Comment]
comments = Maybe [Comment]
a} :: DescribeCommentsResponse) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
describeCommentsResponse_marker :: Lens.Lens' DescribeCommentsResponse (Prelude.Maybe Prelude.Text)
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCommentsResponse' {Maybe Text
marker :: Maybe Text
$sel:marker:DescribeCommentsResponse' :: DescribeCommentsResponse -> Maybe Text
marker} -> Maybe Text
marker) (\s :: DescribeCommentsResponse
s@DescribeCommentsResponse' {} Maybe Text
a -> DescribeCommentsResponse
s {$sel:marker:DescribeCommentsResponse' :: Maybe Text
marker = Maybe Text
a} :: DescribeCommentsResponse)
describeCommentsResponse_httpStatus :: Lens.Lens' DescribeCommentsResponse Prelude.Int
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCommentsResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeCommentsResponse' :: DescribeCommentsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeCommentsResponse
s@DescribeCommentsResponse' {} Int
a -> DescribeCommentsResponse
s {$sel:httpStatus:DescribeCommentsResponse' :: Int
httpStatus = Int
a} :: DescribeCommentsResponse)
instance Prelude.NFData DescribeCommentsResponse where
rnf :: DescribeCommentsResponse -> ()
rnf DescribeCommentsResponse' {Int
Maybe [Comment]
Maybe Text
httpStatus :: Int
marker :: Maybe Text
comments :: Maybe [Comment]
$sel:httpStatus:DescribeCommentsResponse' :: DescribeCommentsResponse -> Int
$sel:marker:DescribeCommentsResponse' :: DescribeCommentsResponse -> Maybe Text
$sel:comments:DescribeCommentsResponse' :: DescribeCommentsResponse -> Maybe [Comment]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [Comment]
comments
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
marker
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus