{-# 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.ResilienceHub.ListAppAssessments
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Lists the assessments for an AWS Resilience Hub application. You can use
-- request parameters to refine the results for the response object.
module Amazonka.ResilienceHub.ListAppAssessments
  ( -- * Creating a Request
    ListAppAssessments (..),
    newListAppAssessments,

    -- * Request Lenses
    listAppAssessments_appArn,
    listAppAssessments_assessmentName,
    listAppAssessments_assessmentStatus,
    listAppAssessments_complianceStatus,
    listAppAssessments_invoker,
    listAppAssessments_maxResults,
    listAppAssessments_nextToken,
    listAppAssessments_reverseOrder,

    -- * Destructuring the Response
    ListAppAssessmentsResponse (..),
    newListAppAssessmentsResponse,

    -- * Response Lenses
    listAppAssessmentsResponse_nextToken,
    listAppAssessmentsResponse_httpStatus,
    listAppAssessmentsResponse_assessmentSummaries,
  )
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 Amazonka.ResilienceHub.Types
import qualified Amazonka.Response as Response

-- | /See:/ 'newListAppAssessments' smart constructor.
data ListAppAssessments = ListAppAssessments'
  { -- | The Amazon Resource Name (ARN) of the application. The format for this
    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.
    -- For more information about ARNs, see
    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
    -- in the /AWS General Reference/.
    ListAppAssessments -> Maybe Text
appArn :: Prelude.Maybe Prelude.Text,
    -- | The name for the assessment.
    ListAppAssessments -> Maybe Text
assessmentName :: Prelude.Maybe Prelude.Text,
    -- | The current status of the assessment for the resiliency policy.
    ListAppAssessments -> Maybe (NonEmpty AssessmentStatus)
assessmentStatus :: Prelude.Maybe (Prelude.NonEmpty AssessmentStatus),
    -- | The current status of compliance for the resiliency policy.
    ListAppAssessments -> Maybe ComplianceStatus
complianceStatus :: Prelude.Maybe ComplianceStatus,
    -- | Specifies the entity that invoked a specific assessment, either a @User@
    -- or the @System@.
    ListAppAssessments -> Maybe AssessmentInvoker
invoker :: Prelude.Maybe AssessmentInvoker,
    -- | The maximum number of results to include in the response. If more
    -- results exist than the specified @MaxResults@ value, a token is included
    -- in the response so that the remaining results can be retrieved.
    ListAppAssessments -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | Null, or the token from a previous call to get the next set of results.
    ListAppAssessments -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The default is to sort by ascending __startTime__. To sort by descending
    -- __startTime__, set reverseOrder to @true@.
    ListAppAssessments -> Maybe Bool
reverseOrder :: Prelude.Maybe Prelude.Bool
  }
  deriving (ListAppAssessments -> ListAppAssessments -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListAppAssessments -> ListAppAssessments -> Bool
$c/= :: ListAppAssessments -> ListAppAssessments -> Bool
== :: ListAppAssessments -> ListAppAssessments -> Bool
$c== :: ListAppAssessments -> ListAppAssessments -> Bool
Prelude.Eq, ReadPrec [ListAppAssessments]
ReadPrec ListAppAssessments
Int -> ReadS ListAppAssessments
ReadS [ListAppAssessments]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListAppAssessments]
$creadListPrec :: ReadPrec [ListAppAssessments]
readPrec :: ReadPrec ListAppAssessments
$creadPrec :: ReadPrec ListAppAssessments
readList :: ReadS [ListAppAssessments]
$creadList :: ReadS [ListAppAssessments]
readsPrec :: Int -> ReadS ListAppAssessments
$creadsPrec :: Int -> ReadS ListAppAssessments
Prelude.Read, Int -> ListAppAssessments -> ShowS
[ListAppAssessments] -> ShowS
ListAppAssessments -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListAppAssessments] -> ShowS
$cshowList :: [ListAppAssessments] -> ShowS
show :: ListAppAssessments -> String
$cshow :: ListAppAssessments -> String
showsPrec :: Int -> ListAppAssessments -> ShowS
$cshowsPrec :: Int -> ListAppAssessments -> ShowS
Prelude.Show, forall x. Rep ListAppAssessments x -> ListAppAssessments
forall x. ListAppAssessments -> Rep ListAppAssessments x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListAppAssessments x -> ListAppAssessments
$cfrom :: forall x. ListAppAssessments -> Rep ListAppAssessments x
Prelude.Generic)

-- |
-- Create a value of 'ListAppAssessments' 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:
--
-- 'appArn', 'listAppAssessments_appArn' - The Amazon Resource Name (ARN) of the application. The format for this
-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.
-- For more information about ARNs, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
-- in the /AWS General Reference/.
--
-- 'assessmentName', 'listAppAssessments_assessmentName' - The name for the assessment.
--
-- 'assessmentStatus', 'listAppAssessments_assessmentStatus' - The current status of the assessment for the resiliency policy.
--
-- 'complianceStatus', 'listAppAssessments_complianceStatus' - The current status of compliance for the resiliency policy.
--
-- 'invoker', 'listAppAssessments_invoker' - Specifies the entity that invoked a specific assessment, either a @User@
-- or the @System@.
--
-- 'maxResults', 'listAppAssessments_maxResults' - The maximum number of results to include in the response. If more
-- results exist than the specified @MaxResults@ value, a token is included
-- in the response so that the remaining results can be retrieved.
--
-- 'nextToken', 'listAppAssessments_nextToken' - Null, or the token from a previous call to get the next set of results.
--
-- 'reverseOrder', 'listAppAssessments_reverseOrder' - The default is to sort by ascending __startTime__. To sort by descending
-- __startTime__, set reverseOrder to @true@.
newListAppAssessments ::
  ListAppAssessments
newListAppAssessments :: ListAppAssessments
newListAppAssessments =
  ListAppAssessments'
    { $sel:appArn:ListAppAssessments' :: Maybe Text
appArn = forall a. Maybe a
Prelude.Nothing,
      $sel:assessmentName:ListAppAssessments' :: Maybe Text
assessmentName = forall a. Maybe a
Prelude.Nothing,
      $sel:assessmentStatus:ListAppAssessments' :: Maybe (NonEmpty AssessmentStatus)
assessmentStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:complianceStatus:ListAppAssessments' :: Maybe ComplianceStatus
complianceStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:invoker:ListAppAssessments' :: Maybe AssessmentInvoker
invoker = forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:ListAppAssessments' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListAppAssessments' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:reverseOrder:ListAppAssessments' :: Maybe Bool
reverseOrder = forall a. Maybe a
Prelude.Nothing
    }

-- | The Amazon Resource Name (ARN) of the application. The format for this
-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.
-- For more information about ARNs, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
-- in the /AWS General Reference/.
listAppAssessments_appArn :: Lens.Lens' ListAppAssessments (Prelude.Maybe Prelude.Text)
listAppAssessments_appArn :: Lens' ListAppAssessments (Maybe Text)
listAppAssessments_appArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAppAssessments' {Maybe Text
appArn :: Maybe Text
$sel:appArn:ListAppAssessments' :: ListAppAssessments -> Maybe Text
appArn} -> Maybe Text
appArn) (\s :: ListAppAssessments
s@ListAppAssessments' {} Maybe Text
a -> ListAppAssessments
s {$sel:appArn:ListAppAssessments' :: Maybe Text
appArn = Maybe Text
a} :: ListAppAssessments)

-- | The name for the assessment.
listAppAssessments_assessmentName :: Lens.Lens' ListAppAssessments (Prelude.Maybe Prelude.Text)
listAppAssessments_assessmentName :: Lens' ListAppAssessments (Maybe Text)
listAppAssessments_assessmentName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAppAssessments' {Maybe Text
assessmentName :: Maybe Text
$sel:assessmentName:ListAppAssessments' :: ListAppAssessments -> Maybe Text
assessmentName} -> Maybe Text
assessmentName) (\s :: ListAppAssessments
s@ListAppAssessments' {} Maybe Text
a -> ListAppAssessments
s {$sel:assessmentName:ListAppAssessments' :: Maybe Text
assessmentName = Maybe Text
a} :: ListAppAssessments)

-- | The current status of the assessment for the resiliency policy.
listAppAssessments_assessmentStatus :: Lens.Lens' ListAppAssessments (Prelude.Maybe (Prelude.NonEmpty AssessmentStatus))
listAppAssessments_assessmentStatus :: Lens' ListAppAssessments (Maybe (NonEmpty AssessmentStatus))
listAppAssessments_assessmentStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAppAssessments' {Maybe (NonEmpty AssessmentStatus)
assessmentStatus :: Maybe (NonEmpty AssessmentStatus)
$sel:assessmentStatus:ListAppAssessments' :: ListAppAssessments -> Maybe (NonEmpty AssessmentStatus)
assessmentStatus} -> Maybe (NonEmpty AssessmentStatus)
assessmentStatus) (\s :: ListAppAssessments
s@ListAppAssessments' {} Maybe (NonEmpty AssessmentStatus)
a -> ListAppAssessments
s {$sel:assessmentStatus:ListAppAssessments' :: Maybe (NonEmpty AssessmentStatus)
assessmentStatus = Maybe (NonEmpty AssessmentStatus)
a} :: ListAppAssessments) 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 current status of compliance for the resiliency policy.
listAppAssessments_complianceStatus :: Lens.Lens' ListAppAssessments (Prelude.Maybe ComplianceStatus)
listAppAssessments_complianceStatus :: Lens' ListAppAssessments (Maybe ComplianceStatus)
listAppAssessments_complianceStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAppAssessments' {Maybe ComplianceStatus
complianceStatus :: Maybe ComplianceStatus
$sel:complianceStatus:ListAppAssessments' :: ListAppAssessments -> Maybe ComplianceStatus
complianceStatus} -> Maybe ComplianceStatus
complianceStatus) (\s :: ListAppAssessments
s@ListAppAssessments' {} Maybe ComplianceStatus
a -> ListAppAssessments
s {$sel:complianceStatus:ListAppAssessments' :: Maybe ComplianceStatus
complianceStatus = Maybe ComplianceStatus
a} :: ListAppAssessments)

-- | Specifies the entity that invoked a specific assessment, either a @User@
-- or the @System@.
listAppAssessments_invoker :: Lens.Lens' ListAppAssessments (Prelude.Maybe AssessmentInvoker)
listAppAssessments_invoker :: Lens' ListAppAssessments (Maybe AssessmentInvoker)
listAppAssessments_invoker = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAppAssessments' {Maybe AssessmentInvoker
invoker :: Maybe AssessmentInvoker
$sel:invoker:ListAppAssessments' :: ListAppAssessments -> Maybe AssessmentInvoker
invoker} -> Maybe AssessmentInvoker
invoker) (\s :: ListAppAssessments
s@ListAppAssessments' {} Maybe AssessmentInvoker
a -> ListAppAssessments
s {$sel:invoker:ListAppAssessments' :: Maybe AssessmentInvoker
invoker = Maybe AssessmentInvoker
a} :: ListAppAssessments)

-- | The maximum number of results to include in the response. If more
-- results exist than the specified @MaxResults@ value, a token is included
-- in the response so that the remaining results can be retrieved.
listAppAssessments_maxResults :: Lens.Lens' ListAppAssessments (Prelude.Maybe Prelude.Natural)
listAppAssessments_maxResults :: Lens' ListAppAssessments (Maybe Natural)
listAppAssessments_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAppAssessments' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:ListAppAssessments' :: ListAppAssessments -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: ListAppAssessments
s@ListAppAssessments' {} Maybe Natural
a -> ListAppAssessments
s {$sel:maxResults:ListAppAssessments' :: Maybe Natural
maxResults = Maybe Natural
a} :: ListAppAssessments)

-- | Null, or the token from a previous call to get the next set of results.
listAppAssessments_nextToken :: Lens.Lens' ListAppAssessments (Prelude.Maybe Prelude.Text)
listAppAssessments_nextToken :: Lens' ListAppAssessments (Maybe Text)
listAppAssessments_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAppAssessments' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListAppAssessments' :: ListAppAssessments -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListAppAssessments
s@ListAppAssessments' {} Maybe Text
a -> ListAppAssessments
s {$sel:nextToken:ListAppAssessments' :: Maybe Text
nextToken = Maybe Text
a} :: ListAppAssessments)

-- | The default is to sort by ascending __startTime__. To sort by descending
-- __startTime__, set reverseOrder to @true@.
listAppAssessments_reverseOrder :: Lens.Lens' ListAppAssessments (Prelude.Maybe Prelude.Bool)
listAppAssessments_reverseOrder :: Lens' ListAppAssessments (Maybe Bool)
listAppAssessments_reverseOrder = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAppAssessments' {Maybe Bool
reverseOrder :: Maybe Bool
$sel:reverseOrder:ListAppAssessments' :: ListAppAssessments -> Maybe Bool
reverseOrder} -> Maybe Bool
reverseOrder) (\s :: ListAppAssessments
s@ListAppAssessments' {} Maybe Bool
a -> ListAppAssessments
s {$sel:reverseOrder:ListAppAssessments' :: Maybe Bool
reverseOrder = Maybe Bool
a} :: ListAppAssessments)

instance Core.AWSRequest ListAppAssessments where
  type
    AWSResponse ListAppAssessments =
      ListAppAssessmentsResponse
  request :: (Service -> Service)
-> ListAppAssessments -> Request ListAppAssessments
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 ListAppAssessments
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListAppAssessments)))
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 -> [AppAssessmentSummary] -> ListAppAssessmentsResponse
ListAppAssessmentsResponse'
            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
"assessmentSummaries"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
      )

instance Prelude.Hashable ListAppAssessments where
  hashWithSalt :: Int -> ListAppAssessments -> Int
hashWithSalt Int
_salt ListAppAssessments' {Maybe Bool
Maybe Natural
Maybe (NonEmpty AssessmentStatus)
Maybe Text
Maybe AssessmentInvoker
Maybe ComplianceStatus
reverseOrder :: Maybe Bool
nextToken :: Maybe Text
maxResults :: Maybe Natural
invoker :: Maybe AssessmentInvoker
complianceStatus :: Maybe ComplianceStatus
assessmentStatus :: Maybe (NonEmpty AssessmentStatus)
assessmentName :: Maybe Text
appArn :: Maybe Text
$sel:reverseOrder:ListAppAssessments' :: ListAppAssessments -> Maybe Bool
$sel:nextToken:ListAppAssessments' :: ListAppAssessments -> Maybe Text
$sel:maxResults:ListAppAssessments' :: ListAppAssessments -> Maybe Natural
$sel:invoker:ListAppAssessments' :: ListAppAssessments -> Maybe AssessmentInvoker
$sel:complianceStatus:ListAppAssessments' :: ListAppAssessments -> Maybe ComplianceStatus
$sel:assessmentStatus:ListAppAssessments' :: ListAppAssessments -> Maybe (NonEmpty AssessmentStatus)
$sel:assessmentName:ListAppAssessments' :: ListAppAssessments -> Maybe Text
$sel:appArn:ListAppAssessments' :: ListAppAssessments -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
appArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
assessmentName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty AssessmentStatus)
assessmentStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ComplianceStatus
complianceStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AssessmentInvoker
invoker
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
reverseOrder

instance Prelude.NFData ListAppAssessments where
  rnf :: ListAppAssessments -> ()
rnf ListAppAssessments' {Maybe Bool
Maybe Natural
Maybe (NonEmpty AssessmentStatus)
Maybe Text
Maybe AssessmentInvoker
Maybe ComplianceStatus
reverseOrder :: Maybe Bool
nextToken :: Maybe Text
maxResults :: Maybe Natural
invoker :: Maybe AssessmentInvoker
complianceStatus :: Maybe ComplianceStatus
assessmentStatus :: Maybe (NonEmpty AssessmentStatus)
assessmentName :: Maybe Text
appArn :: Maybe Text
$sel:reverseOrder:ListAppAssessments' :: ListAppAssessments -> Maybe Bool
$sel:nextToken:ListAppAssessments' :: ListAppAssessments -> Maybe Text
$sel:maxResults:ListAppAssessments' :: ListAppAssessments -> Maybe Natural
$sel:invoker:ListAppAssessments' :: ListAppAssessments -> Maybe AssessmentInvoker
$sel:complianceStatus:ListAppAssessments' :: ListAppAssessments -> Maybe ComplianceStatus
$sel:assessmentStatus:ListAppAssessments' :: ListAppAssessments -> Maybe (NonEmpty AssessmentStatus)
$sel:assessmentName:ListAppAssessments' :: ListAppAssessments -> Maybe Text
$sel:appArn:ListAppAssessments' :: ListAppAssessments -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
appArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
assessmentName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty AssessmentStatus)
assessmentStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ComplianceStatus
complianceStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AssessmentInvoker
invoker
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
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 Bool
reverseOrder

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

instance Data.ToPath ListAppAssessments where
  toPath :: ListAppAssessments -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/list-app-assessments"

instance Data.ToQuery ListAppAssessments where
  toQuery :: ListAppAssessments -> QueryString
toQuery ListAppAssessments' {Maybe Bool
Maybe Natural
Maybe (NonEmpty AssessmentStatus)
Maybe Text
Maybe AssessmentInvoker
Maybe ComplianceStatus
reverseOrder :: Maybe Bool
nextToken :: Maybe Text
maxResults :: Maybe Natural
invoker :: Maybe AssessmentInvoker
complianceStatus :: Maybe ComplianceStatus
assessmentStatus :: Maybe (NonEmpty AssessmentStatus)
assessmentName :: Maybe Text
appArn :: Maybe Text
$sel:reverseOrder:ListAppAssessments' :: ListAppAssessments -> Maybe Bool
$sel:nextToken:ListAppAssessments' :: ListAppAssessments -> Maybe Text
$sel:maxResults:ListAppAssessments' :: ListAppAssessments -> Maybe Natural
$sel:invoker:ListAppAssessments' :: ListAppAssessments -> Maybe AssessmentInvoker
$sel:complianceStatus:ListAppAssessments' :: ListAppAssessments -> Maybe ComplianceStatus
$sel:assessmentStatus:ListAppAssessments' :: ListAppAssessments -> Maybe (NonEmpty AssessmentStatus)
$sel:assessmentName:ListAppAssessments' :: ListAppAssessments -> Maybe Text
$sel:appArn:ListAppAssessments' :: ListAppAssessments -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"appArn" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
appArn,
        ByteString
"assessmentName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
assessmentName,
        ByteString
"assessmentStatus"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: forall a. ToQuery a => a -> QueryString
Data.toQuery
            ( forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"member"
                forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty AssessmentStatus)
assessmentStatus
            ),
        ByteString
"complianceStatus" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe ComplianceStatus
complianceStatus,
        ByteString
"invoker" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe AssessmentInvoker
invoker,
        ByteString
"maxResults" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Natural
maxResults,
        ByteString
"nextToken" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken,
        ByteString
"reverseOrder" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
reverseOrder
      ]

-- | /See:/ 'newListAppAssessmentsResponse' smart constructor.
data ListAppAssessmentsResponse = ListAppAssessmentsResponse'
  { -- | The token for the next set of results, or null if there are no more
    -- results.
    ListAppAssessmentsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    ListAppAssessmentsResponse -> Int
httpStatus :: Prelude.Int,
    -- | The summaries for the specified assessments, returned as an object. This
    -- object includes application versions, associated Amazon Resource Numbers
    -- (ARNs), cost, messages, resiliency scores, and more.
    ListAppAssessmentsResponse -> [AppAssessmentSummary]
assessmentSummaries :: [AppAssessmentSummary]
  }
  deriving (ListAppAssessmentsResponse -> ListAppAssessmentsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListAppAssessmentsResponse -> ListAppAssessmentsResponse -> Bool
$c/= :: ListAppAssessmentsResponse -> ListAppAssessmentsResponse -> Bool
== :: ListAppAssessmentsResponse -> ListAppAssessmentsResponse -> Bool
$c== :: ListAppAssessmentsResponse -> ListAppAssessmentsResponse -> Bool
Prelude.Eq, ReadPrec [ListAppAssessmentsResponse]
ReadPrec ListAppAssessmentsResponse
Int -> ReadS ListAppAssessmentsResponse
ReadS [ListAppAssessmentsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListAppAssessmentsResponse]
$creadListPrec :: ReadPrec [ListAppAssessmentsResponse]
readPrec :: ReadPrec ListAppAssessmentsResponse
$creadPrec :: ReadPrec ListAppAssessmentsResponse
readList :: ReadS [ListAppAssessmentsResponse]
$creadList :: ReadS [ListAppAssessmentsResponse]
readsPrec :: Int -> ReadS ListAppAssessmentsResponse
$creadsPrec :: Int -> ReadS ListAppAssessmentsResponse
Prelude.Read, Int -> ListAppAssessmentsResponse -> ShowS
[ListAppAssessmentsResponse] -> ShowS
ListAppAssessmentsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListAppAssessmentsResponse] -> ShowS
$cshowList :: [ListAppAssessmentsResponse] -> ShowS
show :: ListAppAssessmentsResponse -> String
$cshow :: ListAppAssessmentsResponse -> String
showsPrec :: Int -> ListAppAssessmentsResponse -> ShowS
$cshowsPrec :: Int -> ListAppAssessmentsResponse -> ShowS
Prelude.Show, forall x.
Rep ListAppAssessmentsResponse x -> ListAppAssessmentsResponse
forall x.
ListAppAssessmentsResponse -> Rep ListAppAssessmentsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListAppAssessmentsResponse x -> ListAppAssessmentsResponse
$cfrom :: forall x.
ListAppAssessmentsResponse -> Rep ListAppAssessmentsResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListAppAssessmentsResponse' 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', 'listAppAssessmentsResponse_nextToken' - The token for the next set of results, or null if there are no more
-- results.
--
-- 'httpStatus', 'listAppAssessmentsResponse_httpStatus' - The response's http status code.
--
-- 'assessmentSummaries', 'listAppAssessmentsResponse_assessmentSummaries' - The summaries for the specified assessments, returned as an object. This
-- object includes application versions, associated Amazon Resource Numbers
-- (ARNs), cost, messages, resiliency scores, and more.
newListAppAssessmentsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListAppAssessmentsResponse
newListAppAssessmentsResponse :: Int -> ListAppAssessmentsResponse
newListAppAssessmentsResponse Int
pHttpStatus_ =
  ListAppAssessmentsResponse'
    { $sel:nextToken:ListAppAssessmentsResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListAppAssessmentsResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:assessmentSummaries:ListAppAssessmentsResponse' :: [AppAssessmentSummary]
assessmentSummaries = forall a. Monoid a => a
Prelude.mempty
    }

-- | The token for the next set of results, or null if there are no more
-- results.
listAppAssessmentsResponse_nextToken :: Lens.Lens' ListAppAssessmentsResponse (Prelude.Maybe Prelude.Text)
listAppAssessmentsResponse_nextToken :: Lens' ListAppAssessmentsResponse (Maybe Text)
listAppAssessmentsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAppAssessmentsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListAppAssessmentsResponse' :: ListAppAssessmentsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListAppAssessmentsResponse
s@ListAppAssessmentsResponse' {} Maybe Text
a -> ListAppAssessmentsResponse
s {$sel:nextToken:ListAppAssessmentsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListAppAssessmentsResponse)

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

-- | The summaries for the specified assessments, returned as an object. This
-- object includes application versions, associated Amazon Resource Numbers
-- (ARNs), cost, messages, resiliency scores, and more.
listAppAssessmentsResponse_assessmentSummaries :: Lens.Lens' ListAppAssessmentsResponse [AppAssessmentSummary]
listAppAssessmentsResponse_assessmentSummaries :: Lens' ListAppAssessmentsResponse [AppAssessmentSummary]
listAppAssessmentsResponse_assessmentSummaries = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAppAssessmentsResponse' {[AppAssessmentSummary]
assessmentSummaries :: [AppAssessmentSummary]
$sel:assessmentSummaries:ListAppAssessmentsResponse' :: ListAppAssessmentsResponse -> [AppAssessmentSummary]
assessmentSummaries} -> [AppAssessmentSummary]
assessmentSummaries) (\s :: ListAppAssessmentsResponse
s@ListAppAssessmentsResponse' {} [AppAssessmentSummary]
a -> ListAppAssessmentsResponse
s {$sel:assessmentSummaries:ListAppAssessmentsResponse' :: [AppAssessmentSummary]
assessmentSummaries = [AppAssessmentSummary]
a} :: ListAppAssessmentsResponse) 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 ListAppAssessmentsResponse where
  rnf :: ListAppAssessmentsResponse -> ()
rnf ListAppAssessmentsResponse' {Int
[AppAssessmentSummary]
Maybe Text
assessmentSummaries :: [AppAssessmentSummary]
httpStatus :: Int
nextToken :: Maybe Text
$sel:assessmentSummaries:ListAppAssessmentsResponse' :: ListAppAssessmentsResponse -> [AppAssessmentSummary]
$sel:httpStatus:ListAppAssessmentsResponse' :: ListAppAssessmentsResponse -> Int
$sel:nextToken:ListAppAssessmentsResponse' :: ListAppAssessmentsResponse -> 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 [AppAssessmentSummary]
assessmentSummaries