{-# 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.CodeCommit.DescribePullRequestEvents
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns information about one or more pull request events.
--
-- This operation returns paginated results.
module Amazonka.CodeCommit.DescribePullRequestEvents
  ( -- * Creating a Request
    DescribePullRequestEvents (..),
    newDescribePullRequestEvents,

    -- * Request Lenses
    describePullRequestEvents_actorArn,
    describePullRequestEvents_maxResults,
    describePullRequestEvents_nextToken,
    describePullRequestEvents_pullRequestEventType,
    describePullRequestEvents_pullRequestId,

    -- * Destructuring the Response
    DescribePullRequestEventsResponse (..),
    newDescribePullRequestEventsResponse,

    -- * Response Lenses
    describePullRequestEventsResponse_nextToken,
    describePullRequestEventsResponse_httpStatus,
    describePullRequestEventsResponse_pullRequestEvents,
  )
where

import Amazonka.CodeCommit.Types
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

-- | /See:/ 'newDescribePullRequestEvents' smart constructor.
data DescribePullRequestEvents = DescribePullRequestEvents'
  { -- | The Amazon Resource Name (ARN) of the user whose actions resulted in the
    -- event. Examples include updating the pull request with more commits or
    -- changing the status of a pull request.
    DescribePullRequestEvents -> Maybe Text
actorArn :: Prelude.Maybe Prelude.Text,
    -- | A non-zero, non-negative integer used to limit the number of returned
    -- results. The default is 100 events, which is also the maximum number of
    -- events that can be returned in a result.
    DescribePullRequestEvents -> Maybe Int
maxResults :: Prelude.Maybe Prelude.Int,
    -- | An enumeration token that, when provided in a request, returns the next
    -- batch of the results.
    DescribePullRequestEvents -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | Optional. The pull request event type about which you want to return
    -- information.
    DescribePullRequestEvents -> Maybe PullRequestEventType
pullRequestEventType :: Prelude.Maybe PullRequestEventType,
    -- | The system-generated ID of the pull request. To get this ID, use
    -- ListPullRequests.
    DescribePullRequestEvents -> Text
pullRequestId :: Prelude.Text
  }
  deriving (DescribePullRequestEvents -> DescribePullRequestEvents -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribePullRequestEvents -> DescribePullRequestEvents -> Bool
$c/= :: DescribePullRequestEvents -> DescribePullRequestEvents -> Bool
== :: DescribePullRequestEvents -> DescribePullRequestEvents -> Bool
$c== :: DescribePullRequestEvents -> DescribePullRequestEvents -> Bool
Prelude.Eq, ReadPrec [DescribePullRequestEvents]
ReadPrec DescribePullRequestEvents
Int -> ReadS DescribePullRequestEvents
ReadS [DescribePullRequestEvents]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribePullRequestEvents]
$creadListPrec :: ReadPrec [DescribePullRequestEvents]
readPrec :: ReadPrec DescribePullRequestEvents
$creadPrec :: ReadPrec DescribePullRequestEvents
readList :: ReadS [DescribePullRequestEvents]
$creadList :: ReadS [DescribePullRequestEvents]
readsPrec :: Int -> ReadS DescribePullRequestEvents
$creadsPrec :: Int -> ReadS DescribePullRequestEvents
Prelude.Read, Int -> DescribePullRequestEvents -> ShowS
[DescribePullRequestEvents] -> ShowS
DescribePullRequestEvents -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribePullRequestEvents] -> ShowS
$cshowList :: [DescribePullRequestEvents] -> ShowS
show :: DescribePullRequestEvents -> String
$cshow :: DescribePullRequestEvents -> String
showsPrec :: Int -> DescribePullRequestEvents -> ShowS
$cshowsPrec :: Int -> DescribePullRequestEvents -> ShowS
Prelude.Show, forall x.
Rep DescribePullRequestEvents x -> DescribePullRequestEvents
forall x.
DescribePullRequestEvents -> Rep DescribePullRequestEvents x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribePullRequestEvents x -> DescribePullRequestEvents
$cfrom :: forall x.
DescribePullRequestEvents -> Rep DescribePullRequestEvents x
Prelude.Generic)

-- |
-- Create a value of 'DescribePullRequestEvents' 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:
--
-- 'actorArn', 'describePullRequestEvents_actorArn' - The Amazon Resource Name (ARN) of the user whose actions resulted in the
-- event. Examples include updating the pull request with more commits or
-- changing the status of a pull request.
--
-- 'maxResults', 'describePullRequestEvents_maxResults' - A non-zero, non-negative integer used to limit the number of returned
-- results. The default is 100 events, which is also the maximum number of
-- events that can be returned in a result.
--
-- 'nextToken', 'describePullRequestEvents_nextToken' - An enumeration token that, when provided in a request, returns the next
-- batch of the results.
--
-- 'pullRequestEventType', 'describePullRequestEvents_pullRequestEventType' - Optional. The pull request event type about which you want to return
-- information.
--
-- 'pullRequestId', 'describePullRequestEvents_pullRequestId' - The system-generated ID of the pull request. To get this ID, use
-- ListPullRequests.
newDescribePullRequestEvents ::
  -- | 'pullRequestId'
  Prelude.Text ->
  DescribePullRequestEvents
newDescribePullRequestEvents :: Text -> DescribePullRequestEvents
newDescribePullRequestEvents Text
pPullRequestId_ =
  DescribePullRequestEvents'
    { $sel:actorArn:DescribePullRequestEvents' :: Maybe Text
actorArn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:DescribePullRequestEvents' :: Maybe Int
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribePullRequestEvents' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:pullRequestEventType:DescribePullRequestEvents' :: Maybe PullRequestEventType
pullRequestEventType = forall a. Maybe a
Prelude.Nothing,
      $sel:pullRequestId:DescribePullRequestEvents' :: Text
pullRequestId = Text
pPullRequestId_
    }

-- | The Amazon Resource Name (ARN) of the user whose actions resulted in the
-- event. Examples include updating the pull request with more commits or
-- changing the status of a pull request.
describePullRequestEvents_actorArn :: Lens.Lens' DescribePullRequestEvents (Prelude.Maybe Prelude.Text)
describePullRequestEvents_actorArn :: Lens' DescribePullRequestEvents (Maybe Text)
describePullRequestEvents_actorArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePullRequestEvents' {Maybe Text
actorArn :: Maybe Text
$sel:actorArn:DescribePullRequestEvents' :: DescribePullRequestEvents -> Maybe Text
actorArn} -> Maybe Text
actorArn) (\s :: DescribePullRequestEvents
s@DescribePullRequestEvents' {} Maybe Text
a -> DescribePullRequestEvents
s {$sel:actorArn:DescribePullRequestEvents' :: Maybe Text
actorArn = Maybe Text
a} :: DescribePullRequestEvents)

-- | A non-zero, non-negative integer used to limit the number of returned
-- results. The default is 100 events, which is also the maximum number of
-- events that can be returned in a result.
describePullRequestEvents_maxResults :: Lens.Lens' DescribePullRequestEvents (Prelude.Maybe Prelude.Int)
describePullRequestEvents_maxResults :: Lens' DescribePullRequestEvents (Maybe Int)
describePullRequestEvents_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePullRequestEvents' {Maybe Int
maxResults :: Maybe Int
$sel:maxResults:DescribePullRequestEvents' :: DescribePullRequestEvents -> Maybe Int
maxResults} -> Maybe Int
maxResults) (\s :: DescribePullRequestEvents
s@DescribePullRequestEvents' {} Maybe Int
a -> DescribePullRequestEvents
s {$sel:maxResults:DescribePullRequestEvents' :: Maybe Int
maxResults = Maybe Int
a} :: DescribePullRequestEvents)

-- | An enumeration token that, when provided in a request, returns the next
-- batch of the results.
describePullRequestEvents_nextToken :: Lens.Lens' DescribePullRequestEvents (Prelude.Maybe Prelude.Text)
describePullRequestEvents_nextToken :: Lens' DescribePullRequestEvents (Maybe Text)
describePullRequestEvents_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePullRequestEvents' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribePullRequestEvents' :: DescribePullRequestEvents -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribePullRequestEvents
s@DescribePullRequestEvents' {} Maybe Text
a -> DescribePullRequestEvents
s {$sel:nextToken:DescribePullRequestEvents' :: Maybe Text
nextToken = Maybe Text
a} :: DescribePullRequestEvents)

-- | Optional. The pull request event type about which you want to return
-- information.
describePullRequestEvents_pullRequestEventType :: Lens.Lens' DescribePullRequestEvents (Prelude.Maybe PullRequestEventType)
describePullRequestEvents_pullRequestEventType :: Lens' DescribePullRequestEvents (Maybe PullRequestEventType)
describePullRequestEvents_pullRequestEventType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePullRequestEvents' {Maybe PullRequestEventType
pullRequestEventType :: Maybe PullRequestEventType
$sel:pullRequestEventType:DescribePullRequestEvents' :: DescribePullRequestEvents -> Maybe PullRequestEventType
pullRequestEventType} -> Maybe PullRequestEventType
pullRequestEventType) (\s :: DescribePullRequestEvents
s@DescribePullRequestEvents' {} Maybe PullRequestEventType
a -> DescribePullRequestEvents
s {$sel:pullRequestEventType:DescribePullRequestEvents' :: Maybe PullRequestEventType
pullRequestEventType = Maybe PullRequestEventType
a} :: DescribePullRequestEvents)

-- | The system-generated ID of the pull request. To get this ID, use
-- ListPullRequests.
describePullRequestEvents_pullRequestId :: Lens.Lens' DescribePullRequestEvents Prelude.Text
describePullRequestEvents_pullRequestId :: Lens' DescribePullRequestEvents Text
describePullRequestEvents_pullRequestId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePullRequestEvents' {Text
pullRequestId :: Text
$sel:pullRequestId:DescribePullRequestEvents' :: DescribePullRequestEvents -> Text
pullRequestId} -> Text
pullRequestId) (\s :: DescribePullRequestEvents
s@DescribePullRequestEvents' {} Text
a -> DescribePullRequestEvents
s {$sel:pullRequestId:DescribePullRequestEvents' :: Text
pullRequestId = Text
a} :: DescribePullRequestEvents)

instance Core.AWSPager DescribePullRequestEvents where
  page :: DescribePullRequestEvents
-> AWSResponse DescribePullRequestEvents
-> Maybe DescribePullRequestEvents
page DescribePullRequestEvents
rq AWSResponse DescribePullRequestEvents
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribePullRequestEvents
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribePullRequestEventsResponse (Maybe Text)
describePullRequestEventsResponse_nextToken
            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 DescribePullRequestEvents
rs
            forall s a. s -> Getting a s a -> a
Lens.^. Lens' DescribePullRequestEventsResponse [PullRequestEvent]
describePullRequestEventsResponse_pullRequestEvents
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ DescribePullRequestEvents
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribePullRequestEvents (Maybe Text)
describePullRequestEvents_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribePullRequestEvents
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribePullRequestEventsResponse (Maybe Text)
describePullRequestEventsResponse_nextToken
          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 DescribePullRequestEvents where
  type
    AWSResponse DescribePullRequestEvents =
      DescribePullRequestEventsResponse
  request :: (Service -> Service)
-> DescribePullRequestEvents -> Request DescribePullRequestEvents
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribePullRequestEvents
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribePullRequestEvents)))
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 Text
-> Int -> [PullRequestEvent] -> DescribePullRequestEventsResponse
DescribePullRequestEventsResponse'
            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
"nextToken")
            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))
            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
"pullRequestEvents"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
      )

instance Prelude.Hashable DescribePullRequestEvents where
  hashWithSalt :: Int -> DescribePullRequestEvents -> Int
hashWithSalt Int
_salt DescribePullRequestEvents' {Maybe Int
Maybe Text
Maybe PullRequestEventType
Text
pullRequestId :: Text
pullRequestEventType :: Maybe PullRequestEventType
nextToken :: Maybe Text
maxResults :: Maybe Int
actorArn :: Maybe Text
$sel:pullRequestId:DescribePullRequestEvents' :: DescribePullRequestEvents -> Text
$sel:pullRequestEventType:DescribePullRequestEvents' :: DescribePullRequestEvents -> Maybe PullRequestEventType
$sel:nextToken:DescribePullRequestEvents' :: DescribePullRequestEvents -> Maybe Text
$sel:maxResults:DescribePullRequestEvents' :: DescribePullRequestEvents -> Maybe Int
$sel:actorArn:DescribePullRequestEvents' :: DescribePullRequestEvents -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
actorArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PullRequestEventType
pullRequestEventType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
pullRequestId

instance Prelude.NFData DescribePullRequestEvents where
  rnf :: DescribePullRequestEvents -> ()
rnf DescribePullRequestEvents' {Maybe Int
Maybe Text
Maybe PullRequestEventType
Text
pullRequestId :: Text
pullRequestEventType :: Maybe PullRequestEventType
nextToken :: Maybe Text
maxResults :: Maybe Int
actorArn :: Maybe Text
$sel:pullRequestId:DescribePullRequestEvents' :: DescribePullRequestEvents -> Text
$sel:pullRequestEventType:DescribePullRequestEvents' :: DescribePullRequestEvents -> Maybe PullRequestEventType
$sel:nextToken:DescribePullRequestEvents' :: DescribePullRequestEvents -> Maybe Text
$sel:maxResults:DescribePullRequestEvents' :: DescribePullRequestEvents -> Maybe Int
$sel:actorArn:DescribePullRequestEvents' :: DescribePullRequestEvents -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
actorArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
maxResults
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PullRequestEventType
pullRequestEventType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
pullRequestId

instance Data.ToHeaders DescribePullRequestEvents where
  toHeaders :: DescribePullRequestEvents -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"CodeCommit_20150413.DescribePullRequestEvents" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON DescribePullRequestEvents where
  toJSON :: DescribePullRequestEvents -> Value
toJSON DescribePullRequestEvents' {Maybe Int
Maybe Text
Maybe PullRequestEventType
Text
pullRequestId :: Text
pullRequestEventType :: Maybe PullRequestEventType
nextToken :: Maybe Text
maxResults :: Maybe Int
actorArn :: Maybe Text
$sel:pullRequestId:DescribePullRequestEvents' :: DescribePullRequestEvents -> Text
$sel:pullRequestEventType:DescribePullRequestEvents' :: DescribePullRequestEvents -> Maybe PullRequestEventType
$sel:nextToken:DescribePullRequestEvents' :: DescribePullRequestEvents -> Maybe Text
$sel:maxResults:DescribePullRequestEvents' :: DescribePullRequestEvents -> Maybe Int
$sel:actorArn:DescribePullRequestEvents' :: DescribePullRequestEvents -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"actorArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
actorArn,
            (Key
"maxResults" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
maxResults,
            (Key
"nextToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
nextToken,
            (Key
"pullRequestEventType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe PullRequestEventType
pullRequestEventType,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"pullRequestId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
pullRequestId)
          ]
      )

instance Data.ToPath DescribePullRequestEvents where
  toPath :: DescribePullRequestEvents -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery DescribePullRequestEvents where
  toQuery :: DescribePullRequestEvents -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newDescribePullRequestEventsResponse' smart constructor.
data DescribePullRequestEventsResponse = DescribePullRequestEventsResponse'
  { -- | An enumeration token that can be used in a request to return the next
    -- batch of the results.
    DescribePullRequestEventsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribePullRequestEventsResponse -> Int
httpStatus :: Prelude.Int,
    -- | Information about the pull request events.
    DescribePullRequestEventsResponse -> [PullRequestEvent]
pullRequestEvents :: [PullRequestEvent]
  }
  deriving (DescribePullRequestEventsResponse
-> DescribePullRequestEventsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribePullRequestEventsResponse
-> DescribePullRequestEventsResponse -> Bool
$c/= :: DescribePullRequestEventsResponse
-> DescribePullRequestEventsResponse -> Bool
== :: DescribePullRequestEventsResponse
-> DescribePullRequestEventsResponse -> Bool
$c== :: DescribePullRequestEventsResponse
-> DescribePullRequestEventsResponse -> Bool
Prelude.Eq, ReadPrec [DescribePullRequestEventsResponse]
ReadPrec DescribePullRequestEventsResponse
Int -> ReadS DescribePullRequestEventsResponse
ReadS [DescribePullRequestEventsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribePullRequestEventsResponse]
$creadListPrec :: ReadPrec [DescribePullRequestEventsResponse]
readPrec :: ReadPrec DescribePullRequestEventsResponse
$creadPrec :: ReadPrec DescribePullRequestEventsResponse
readList :: ReadS [DescribePullRequestEventsResponse]
$creadList :: ReadS [DescribePullRequestEventsResponse]
readsPrec :: Int -> ReadS DescribePullRequestEventsResponse
$creadsPrec :: Int -> ReadS DescribePullRequestEventsResponse
Prelude.Read, Int -> DescribePullRequestEventsResponse -> ShowS
[DescribePullRequestEventsResponse] -> ShowS
DescribePullRequestEventsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribePullRequestEventsResponse] -> ShowS
$cshowList :: [DescribePullRequestEventsResponse] -> ShowS
show :: DescribePullRequestEventsResponse -> String
$cshow :: DescribePullRequestEventsResponse -> String
showsPrec :: Int -> DescribePullRequestEventsResponse -> ShowS
$cshowsPrec :: Int -> DescribePullRequestEventsResponse -> ShowS
Prelude.Show, forall x.
Rep DescribePullRequestEventsResponse x
-> DescribePullRequestEventsResponse
forall x.
DescribePullRequestEventsResponse
-> Rep DescribePullRequestEventsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribePullRequestEventsResponse x
-> DescribePullRequestEventsResponse
$cfrom :: forall x.
DescribePullRequestEventsResponse
-> Rep DescribePullRequestEventsResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribePullRequestEventsResponse' 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:
--
-- 'nextToken', 'describePullRequestEventsResponse_nextToken' - An enumeration token that can be used in a request to return the next
-- batch of the results.
--
-- 'httpStatus', 'describePullRequestEventsResponse_httpStatus' - The response's http status code.
--
-- 'pullRequestEvents', 'describePullRequestEventsResponse_pullRequestEvents' - Information about the pull request events.
newDescribePullRequestEventsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribePullRequestEventsResponse
newDescribePullRequestEventsResponse :: Int -> DescribePullRequestEventsResponse
newDescribePullRequestEventsResponse Int
pHttpStatus_ =
  DescribePullRequestEventsResponse'
    { $sel:nextToken:DescribePullRequestEventsResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribePullRequestEventsResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:pullRequestEvents:DescribePullRequestEventsResponse' :: [PullRequestEvent]
pullRequestEvents = forall a. Monoid a => a
Prelude.mempty
    }

-- | An enumeration token that can be used in a request to return the next
-- batch of the results.
describePullRequestEventsResponse_nextToken :: Lens.Lens' DescribePullRequestEventsResponse (Prelude.Maybe Prelude.Text)
describePullRequestEventsResponse_nextToken :: Lens' DescribePullRequestEventsResponse (Maybe Text)
describePullRequestEventsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePullRequestEventsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribePullRequestEventsResponse' :: DescribePullRequestEventsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribePullRequestEventsResponse
s@DescribePullRequestEventsResponse' {} Maybe Text
a -> DescribePullRequestEventsResponse
s {$sel:nextToken:DescribePullRequestEventsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: DescribePullRequestEventsResponse)

-- | The response's http status code.
describePullRequestEventsResponse_httpStatus :: Lens.Lens' DescribePullRequestEventsResponse Prelude.Int
describePullRequestEventsResponse_httpStatus :: Lens' DescribePullRequestEventsResponse Int
describePullRequestEventsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePullRequestEventsResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribePullRequestEventsResponse' :: DescribePullRequestEventsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribePullRequestEventsResponse
s@DescribePullRequestEventsResponse' {} Int
a -> DescribePullRequestEventsResponse
s {$sel:httpStatus:DescribePullRequestEventsResponse' :: Int
httpStatus = Int
a} :: DescribePullRequestEventsResponse)

-- | Information about the pull request events.
describePullRequestEventsResponse_pullRequestEvents :: Lens.Lens' DescribePullRequestEventsResponse [PullRequestEvent]
describePullRequestEventsResponse_pullRequestEvents :: Lens' DescribePullRequestEventsResponse [PullRequestEvent]
describePullRequestEventsResponse_pullRequestEvents = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePullRequestEventsResponse' {[PullRequestEvent]
pullRequestEvents :: [PullRequestEvent]
$sel:pullRequestEvents:DescribePullRequestEventsResponse' :: DescribePullRequestEventsResponse -> [PullRequestEvent]
pullRequestEvents} -> [PullRequestEvent]
pullRequestEvents) (\s :: DescribePullRequestEventsResponse
s@DescribePullRequestEventsResponse' {} [PullRequestEvent]
a -> DescribePullRequestEventsResponse
s {$sel:pullRequestEvents:DescribePullRequestEventsResponse' :: [PullRequestEvent]
pullRequestEvents = [PullRequestEvent]
a} :: DescribePullRequestEventsResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance
  Prelude.NFData
    DescribePullRequestEventsResponse
  where
  rnf :: DescribePullRequestEventsResponse -> ()
rnf DescribePullRequestEventsResponse' {Int
[PullRequestEvent]
Maybe Text
pullRequestEvents :: [PullRequestEvent]
httpStatus :: Int
nextToken :: Maybe Text
$sel:pullRequestEvents:DescribePullRequestEventsResponse' :: DescribePullRequestEventsResponse -> [PullRequestEvent]
$sel:httpStatus:DescribePullRequestEventsResponse' :: DescribePullRequestEventsResponse -> Int
$sel:nextToken:DescribePullRequestEventsResponse' :: DescribePullRequestEventsResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [PullRequestEvent]
pullRequestEvents