{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.WorkDocs.DescribeComments
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- List all the comments for the specified document version.
--
-- This operation returns paginated results.
module Amazonka.WorkDocs.DescribeComments
  ( -- * Creating a Request
    DescribeComments (..),
    newDescribeComments,

    -- * Request Lenses
    describeComments_authenticationToken,
    describeComments_limit,
    describeComments_marker,
    describeComments_documentId,
    describeComments_versionId,

    -- * Destructuring the Response
    DescribeCommentsResponse (..),
    newDescribeCommentsResponse,

    -- * Response Lenses
    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

-- | /See:/ 'newDescribeComments' smart constructor.
data DescribeComments = DescribeComments'
  { -- | Amazon WorkDocs authentication token. Not required when using AWS
    -- administrator credentials to access the API.
    DescribeComments -> Maybe (Sensitive Text)
authenticationToken :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The maximum number of items to return.
    DescribeComments -> Maybe Natural
limit :: Prelude.Maybe Prelude.Natural,
    -- | The marker for the next set of results. This marker was received from a
    -- previous call.
    DescribeComments -> Maybe Text
marker :: Prelude.Maybe Prelude.Text,
    -- | The ID of the document.
    DescribeComments -> Text
documentId :: Prelude.Text,
    -- | The ID of the document version.
    DescribeComments -> Text
versionId :: 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)

-- |
-- Create a value of 'DescribeComments' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'authenticationToken', 'describeComments_authenticationToken' - Amazon WorkDocs authentication token. Not required when using AWS
-- administrator credentials to access the API.
--
-- 'limit', 'describeComments_limit' - The maximum number of items to return.
--
-- 'marker', 'describeComments_marker' - The marker for the next set of results. This marker was received from a
-- previous call.
--
-- 'documentId', 'describeComments_documentId' - The ID of the document.
--
-- 'versionId', 'describeComments_versionId' - The ID of the document version.
newDescribeComments ::
  -- | 'documentId'
  Prelude.Text ->
  -- | 'versionId'
  Prelude.Text ->
  DescribeComments
newDescribeComments :: Text -> Text -> DescribeComments
newDescribeComments 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_
    }

-- | Amazon WorkDocs authentication token. Not required when using AWS
-- administrator credentials to access the API.
describeComments_authenticationToken :: Lens.Lens' DescribeComments (Prelude.Maybe Prelude.Text)
describeComments_authenticationToken :: Lens' DescribeComments (Maybe Text)
describeComments_authenticationToken = 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

-- | The maximum number of items to return.
describeComments_limit :: Lens.Lens' DescribeComments (Prelude.Maybe Prelude.Natural)
describeComments_limit :: Lens' DescribeComments (Maybe Natural)
describeComments_limit = 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)

-- | The marker for the next set of results. This marker was received from a
-- previous call.
describeComments_marker :: Lens.Lens' DescribeComments (Prelude.Maybe Prelude.Text)
describeComments_marker :: Lens' DescribeComments (Maybe Text)
describeComments_marker = 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)

-- | The ID of the document.
describeComments_documentId :: Lens.Lens' DescribeComments Prelude.Text
describeComments_documentId :: Lens' DescribeComments Text
describeComments_documentId = 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)

-- | The ID of the document version.
describeComments_versionId :: Lens.Lens' DescribeComments Prelude.Text
describeComments_versionId :: Lens' DescribeComments Text
describeComments_versionId = 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]

-- | /See:/ 'newDescribeCommentsResponse' smart constructor.
data DescribeCommentsResponse = DescribeCommentsResponse'
  { -- | The list of comments for the specified document version.
    DescribeCommentsResponse -> Maybe [Comment]
comments :: Prelude.Maybe [Comment],
    -- | The marker for the next set of results. This marker was received from a
    -- previous call.
    DescribeCommentsResponse -> Maybe Text
marker :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeCommentsResponse -> Int
httpStatus :: 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)

-- |
-- Create a value of 'DescribeCommentsResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'comments', 'describeCommentsResponse_comments' - The list of comments for the specified document version.
--
-- 'marker', 'describeCommentsResponse_marker' - The marker for the next set of results. This marker was received from a
-- previous call.
--
-- 'httpStatus', 'describeCommentsResponse_httpStatus' - The response's http status code.
newDescribeCommentsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeCommentsResponse
newDescribeCommentsResponse :: Int -> DescribeCommentsResponse
newDescribeCommentsResponse 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_
    }

-- | The list of comments for the specified document version.
describeCommentsResponse_comments :: Lens.Lens' DescribeCommentsResponse (Prelude.Maybe [Comment])
describeCommentsResponse_comments :: Lens' DescribeCommentsResponse (Maybe [Comment])
describeCommentsResponse_comments = 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

-- | The marker for the next set of results. This marker was received from a
-- previous call.
describeCommentsResponse_marker :: Lens.Lens' DescribeCommentsResponse (Prelude.Maybe Prelude.Text)
describeCommentsResponse_marker :: Lens' DescribeCommentsResponse (Maybe Text)
describeCommentsResponse_marker = 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)

-- | The response's http status code.
describeCommentsResponse_httpStatus :: Lens.Lens' DescribeCommentsResponse Prelude.Int
describeCommentsResponse_httpStatus :: Lens' DescribeCommentsResponse Int
describeCommentsResponse_httpStatus = 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