{-# 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.Support.DescribeTrustedAdvisorChecks
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns information about all available AWS Trusted Advisor checks,
-- including the name, ID, category, description, and metadata. You must
-- specify a language code. The AWS Support API currently supports English
-- (\"en\") and Japanese (\"ja\"). The response contains a
-- TrustedAdvisorCheckDescription object for each check. You must set the
-- AWS Region to us-east-1.
--
-- -   You must have a Business or Enterprise Support plan to use the AWS
--     Support API.
--
-- -   If you call the AWS Support API from an account that does not have a
--     Business or Enterprise Support plan, the
--     @SubscriptionRequiredException@ error message appears. For
--     information about changing your support plan, see
--     <http://aws.amazon.com/premiumsupport/ AWS Support>.
--
-- -   The names and descriptions for Trusted Advisor checks are subject to
--     change. We recommend that you specify the check ID in your code to
--     uniquely identify a check.
module Amazonka.Support.DescribeTrustedAdvisorChecks
  ( -- * Creating a Request
    DescribeTrustedAdvisorChecks (..),
    newDescribeTrustedAdvisorChecks,

    -- * Request Lenses
    describeTrustedAdvisorChecks_language,

    -- * Destructuring the Response
    DescribeTrustedAdvisorChecksResponse (..),
    newDescribeTrustedAdvisorChecksResponse,

    -- * Response Lenses
    describeTrustedAdvisorChecksResponse_httpStatus,
    describeTrustedAdvisorChecksResponse_checks,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.Support.Types

-- | /See:/ 'newDescribeTrustedAdvisorChecks' smart constructor.
data DescribeTrustedAdvisorChecks = DescribeTrustedAdvisorChecks'
  { -- | The ISO 639-1 code for the language in which AWS provides support. AWS
    -- Support currently supports English (\"en\") and Japanese (\"ja\").
    -- Language parameters must be passed explicitly for operations that take
    -- them.
    DescribeTrustedAdvisorChecks -> Text
language :: Prelude.Text
  }
  deriving (DescribeTrustedAdvisorChecks
-> DescribeTrustedAdvisorChecks -> Bool
(DescribeTrustedAdvisorChecks
 -> DescribeTrustedAdvisorChecks -> Bool)
-> (DescribeTrustedAdvisorChecks
    -> DescribeTrustedAdvisorChecks -> Bool)
-> Eq DescribeTrustedAdvisorChecks
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeTrustedAdvisorChecks
-> DescribeTrustedAdvisorChecks -> Bool
$c/= :: DescribeTrustedAdvisorChecks
-> DescribeTrustedAdvisorChecks -> Bool
== :: DescribeTrustedAdvisorChecks
-> DescribeTrustedAdvisorChecks -> Bool
$c== :: DescribeTrustedAdvisorChecks
-> DescribeTrustedAdvisorChecks -> Bool
Prelude.Eq, ReadPrec [DescribeTrustedAdvisorChecks]
ReadPrec DescribeTrustedAdvisorChecks
Int -> ReadS DescribeTrustedAdvisorChecks
ReadS [DescribeTrustedAdvisorChecks]
(Int -> ReadS DescribeTrustedAdvisorChecks)
-> ReadS [DescribeTrustedAdvisorChecks]
-> ReadPrec DescribeTrustedAdvisorChecks
-> ReadPrec [DescribeTrustedAdvisorChecks]
-> Read DescribeTrustedAdvisorChecks
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeTrustedAdvisorChecks]
$creadListPrec :: ReadPrec [DescribeTrustedAdvisorChecks]
readPrec :: ReadPrec DescribeTrustedAdvisorChecks
$creadPrec :: ReadPrec DescribeTrustedAdvisorChecks
readList :: ReadS [DescribeTrustedAdvisorChecks]
$creadList :: ReadS [DescribeTrustedAdvisorChecks]
readsPrec :: Int -> ReadS DescribeTrustedAdvisorChecks
$creadsPrec :: Int -> ReadS DescribeTrustedAdvisorChecks
Prelude.Read, Int -> DescribeTrustedAdvisorChecks -> ShowS
[DescribeTrustedAdvisorChecks] -> ShowS
DescribeTrustedAdvisorChecks -> String
(Int -> DescribeTrustedAdvisorChecks -> ShowS)
-> (DescribeTrustedAdvisorChecks -> String)
-> ([DescribeTrustedAdvisorChecks] -> ShowS)
-> Show DescribeTrustedAdvisorChecks
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeTrustedAdvisorChecks] -> ShowS
$cshowList :: [DescribeTrustedAdvisorChecks] -> ShowS
show :: DescribeTrustedAdvisorChecks -> String
$cshow :: DescribeTrustedAdvisorChecks -> String
showsPrec :: Int -> DescribeTrustedAdvisorChecks -> ShowS
$cshowsPrec :: Int -> DescribeTrustedAdvisorChecks -> ShowS
Prelude.Show, (forall x.
 DescribeTrustedAdvisorChecks -> Rep DescribeTrustedAdvisorChecks x)
-> (forall x.
    Rep DescribeTrustedAdvisorChecks x -> DescribeTrustedAdvisorChecks)
-> Generic DescribeTrustedAdvisorChecks
forall x.
Rep DescribeTrustedAdvisorChecks x -> DescribeTrustedAdvisorChecks
forall x.
DescribeTrustedAdvisorChecks -> Rep DescribeTrustedAdvisorChecks x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeTrustedAdvisorChecks x -> DescribeTrustedAdvisorChecks
$cfrom :: forall x.
DescribeTrustedAdvisorChecks -> Rep DescribeTrustedAdvisorChecks x
Prelude.Generic)

-- |
-- Create a value of 'DescribeTrustedAdvisorChecks' 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:
--
-- 'language', 'describeTrustedAdvisorChecks_language' - The ISO 639-1 code for the language in which AWS provides support. AWS
-- Support currently supports English (\"en\") and Japanese (\"ja\").
-- Language parameters must be passed explicitly for operations that take
-- them.
newDescribeTrustedAdvisorChecks ::
  -- | 'language'
  Prelude.Text ->
  DescribeTrustedAdvisorChecks
newDescribeTrustedAdvisorChecks :: Text -> DescribeTrustedAdvisorChecks
newDescribeTrustedAdvisorChecks Text
pLanguage_ =
  DescribeTrustedAdvisorChecks' :: Text -> DescribeTrustedAdvisorChecks
DescribeTrustedAdvisorChecks'
    { $sel:language:DescribeTrustedAdvisorChecks' :: Text
language =
        Text
pLanguage_
    }

-- | The ISO 639-1 code for the language in which AWS provides support. AWS
-- Support currently supports English (\"en\") and Japanese (\"ja\").
-- Language parameters must be passed explicitly for operations that take
-- them.
describeTrustedAdvisorChecks_language :: Lens.Lens' DescribeTrustedAdvisorChecks Prelude.Text
describeTrustedAdvisorChecks_language :: (Text -> f Text)
-> DescribeTrustedAdvisorChecks -> f DescribeTrustedAdvisorChecks
describeTrustedAdvisorChecks_language = (DescribeTrustedAdvisorChecks -> Text)
-> (DescribeTrustedAdvisorChecks
    -> Text -> DescribeTrustedAdvisorChecks)
-> Lens
     DescribeTrustedAdvisorChecks DescribeTrustedAdvisorChecks Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrustedAdvisorChecks' {Text
language :: Text
$sel:language:DescribeTrustedAdvisorChecks' :: DescribeTrustedAdvisorChecks -> Text
language} -> Text
language) (\s :: DescribeTrustedAdvisorChecks
s@DescribeTrustedAdvisorChecks' {} Text
a -> DescribeTrustedAdvisorChecks
s {$sel:language:DescribeTrustedAdvisorChecks' :: Text
language = Text
a} :: DescribeTrustedAdvisorChecks)

instance Core.AWSRequest DescribeTrustedAdvisorChecks where
  type
    AWSResponse DescribeTrustedAdvisorChecks =
      DescribeTrustedAdvisorChecksResponse
  request :: DescribeTrustedAdvisorChecks
-> Request DescribeTrustedAdvisorChecks
request = Service
-> DescribeTrustedAdvisorChecks
-> Request DescribeTrustedAdvisorChecks
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy DescribeTrustedAdvisorChecks
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeTrustedAdvisorChecks)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse DescribeTrustedAdvisorChecks))
-> Logger
-> Service
-> Proxy DescribeTrustedAdvisorChecks
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeTrustedAdvisorChecks)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Int
-> [TrustedAdvisorCheckDescription]
-> DescribeTrustedAdvisorChecksResponse
DescribeTrustedAdvisorChecksResponse'
            (Int
 -> [TrustedAdvisorCheckDescription]
 -> DescribeTrustedAdvisorChecksResponse)
-> Either String Int
-> Either
     String
     ([TrustedAdvisorCheckDescription]
      -> DescribeTrustedAdvisorChecksResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            Either
  String
  ([TrustedAdvisorCheckDescription]
   -> DescribeTrustedAdvisorChecksResponse)
-> Either String [TrustedAdvisorCheckDescription]
-> Either String DescribeTrustedAdvisorChecksResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text -> Either String (Maybe [TrustedAdvisorCheckDescription])
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"checks" Either String (Maybe [TrustedAdvisorCheckDescription])
-> [TrustedAdvisorCheckDescription]
-> Either String [TrustedAdvisorCheckDescription]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [TrustedAdvisorCheckDescription]
forall a. Monoid a => a
Prelude.mempty)
      )

instance
  Prelude.Hashable
    DescribeTrustedAdvisorChecks

instance Prelude.NFData DescribeTrustedAdvisorChecks

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

instance Core.ToJSON DescribeTrustedAdvisorChecks where
  toJSON :: DescribeTrustedAdvisorChecks -> Value
toJSON DescribeTrustedAdvisorChecks' {Text
language :: Text
$sel:language:DescribeTrustedAdvisorChecks' :: DescribeTrustedAdvisorChecks -> Text
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"language" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
language)]
      )

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

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

-- | Information about the Trusted Advisor checks returned by the
-- DescribeTrustedAdvisorChecks operation.
--
-- /See:/ 'newDescribeTrustedAdvisorChecksResponse' smart constructor.
data DescribeTrustedAdvisorChecksResponse = DescribeTrustedAdvisorChecksResponse'
  { -- | The response's http status code.
    DescribeTrustedAdvisorChecksResponse -> Int
httpStatus :: Prelude.Int,
    -- | Information about all available Trusted Advisor checks.
    DescribeTrustedAdvisorChecksResponse
-> [TrustedAdvisorCheckDescription]
checks :: [TrustedAdvisorCheckDescription]
  }
  deriving (DescribeTrustedAdvisorChecksResponse
-> DescribeTrustedAdvisorChecksResponse -> Bool
(DescribeTrustedAdvisorChecksResponse
 -> DescribeTrustedAdvisorChecksResponse -> Bool)
-> (DescribeTrustedAdvisorChecksResponse
    -> DescribeTrustedAdvisorChecksResponse -> Bool)
-> Eq DescribeTrustedAdvisorChecksResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeTrustedAdvisorChecksResponse
-> DescribeTrustedAdvisorChecksResponse -> Bool
$c/= :: DescribeTrustedAdvisorChecksResponse
-> DescribeTrustedAdvisorChecksResponse -> Bool
== :: DescribeTrustedAdvisorChecksResponse
-> DescribeTrustedAdvisorChecksResponse -> Bool
$c== :: DescribeTrustedAdvisorChecksResponse
-> DescribeTrustedAdvisorChecksResponse -> Bool
Prelude.Eq, ReadPrec [DescribeTrustedAdvisorChecksResponse]
ReadPrec DescribeTrustedAdvisorChecksResponse
Int -> ReadS DescribeTrustedAdvisorChecksResponse
ReadS [DescribeTrustedAdvisorChecksResponse]
(Int -> ReadS DescribeTrustedAdvisorChecksResponse)
-> ReadS [DescribeTrustedAdvisorChecksResponse]
-> ReadPrec DescribeTrustedAdvisorChecksResponse
-> ReadPrec [DescribeTrustedAdvisorChecksResponse]
-> Read DescribeTrustedAdvisorChecksResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeTrustedAdvisorChecksResponse]
$creadListPrec :: ReadPrec [DescribeTrustedAdvisorChecksResponse]
readPrec :: ReadPrec DescribeTrustedAdvisorChecksResponse
$creadPrec :: ReadPrec DescribeTrustedAdvisorChecksResponse
readList :: ReadS [DescribeTrustedAdvisorChecksResponse]
$creadList :: ReadS [DescribeTrustedAdvisorChecksResponse]
readsPrec :: Int -> ReadS DescribeTrustedAdvisorChecksResponse
$creadsPrec :: Int -> ReadS DescribeTrustedAdvisorChecksResponse
Prelude.Read, Int -> DescribeTrustedAdvisorChecksResponse -> ShowS
[DescribeTrustedAdvisorChecksResponse] -> ShowS
DescribeTrustedAdvisorChecksResponse -> String
(Int -> DescribeTrustedAdvisorChecksResponse -> ShowS)
-> (DescribeTrustedAdvisorChecksResponse -> String)
-> ([DescribeTrustedAdvisorChecksResponse] -> ShowS)
-> Show DescribeTrustedAdvisorChecksResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeTrustedAdvisorChecksResponse] -> ShowS
$cshowList :: [DescribeTrustedAdvisorChecksResponse] -> ShowS
show :: DescribeTrustedAdvisorChecksResponse -> String
$cshow :: DescribeTrustedAdvisorChecksResponse -> String
showsPrec :: Int -> DescribeTrustedAdvisorChecksResponse -> ShowS
$cshowsPrec :: Int -> DescribeTrustedAdvisorChecksResponse -> ShowS
Prelude.Show, (forall x.
 DescribeTrustedAdvisorChecksResponse
 -> Rep DescribeTrustedAdvisorChecksResponse x)
-> (forall x.
    Rep DescribeTrustedAdvisorChecksResponse x
    -> DescribeTrustedAdvisorChecksResponse)
-> Generic DescribeTrustedAdvisorChecksResponse
forall x.
Rep DescribeTrustedAdvisorChecksResponse x
-> DescribeTrustedAdvisorChecksResponse
forall x.
DescribeTrustedAdvisorChecksResponse
-> Rep DescribeTrustedAdvisorChecksResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeTrustedAdvisorChecksResponse x
-> DescribeTrustedAdvisorChecksResponse
$cfrom :: forall x.
DescribeTrustedAdvisorChecksResponse
-> Rep DescribeTrustedAdvisorChecksResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeTrustedAdvisorChecksResponse' 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:
--
-- 'httpStatus', 'describeTrustedAdvisorChecksResponse_httpStatus' - The response's http status code.
--
-- 'checks', 'describeTrustedAdvisorChecksResponse_checks' - Information about all available Trusted Advisor checks.
newDescribeTrustedAdvisorChecksResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeTrustedAdvisorChecksResponse
newDescribeTrustedAdvisorChecksResponse :: Int -> DescribeTrustedAdvisorChecksResponse
newDescribeTrustedAdvisorChecksResponse Int
pHttpStatus_ =
  DescribeTrustedAdvisorChecksResponse' :: Int
-> [TrustedAdvisorCheckDescription]
-> DescribeTrustedAdvisorChecksResponse
DescribeTrustedAdvisorChecksResponse'
    { $sel:httpStatus:DescribeTrustedAdvisorChecksResponse' :: Int
httpStatus =
        Int
pHttpStatus_,
      $sel:checks:DescribeTrustedAdvisorChecksResponse' :: [TrustedAdvisorCheckDescription]
checks = [TrustedAdvisorCheckDescription]
forall a. Monoid a => a
Prelude.mempty
    }

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

-- | Information about all available Trusted Advisor checks.
describeTrustedAdvisorChecksResponse_checks :: Lens.Lens' DescribeTrustedAdvisorChecksResponse [TrustedAdvisorCheckDescription]
describeTrustedAdvisorChecksResponse_checks :: ([TrustedAdvisorCheckDescription]
 -> f [TrustedAdvisorCheckDescription])
-> DescribeTrustedAdvisorChecksResponse
-> f DescribeTrustedAdvisorChecksResponse
describeTrustedAdvisorChecksResponse_checks = (DescribeTrustedAdvisorChecksResponse
 -> [TrustedAdvisorCheckDescription])
-> (DescribeTrustedAdvisorChecksResponse
    -> [TrustedAdvisorCheckDescription]
    -> DescribeTrustedAdvisorChecksResponse)
-> Lens
     DescribeTrustedAdvisorChecksResponse
     DescribeTrustedAdvisorChecksResponse
     [TrustedAdvisorCheckDescription]
     [TrustedAdvisorCheckDescription]
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrustedAdvisorChecksResponse' {[TrustedAdvisorCheckDescription]
checks :: [TrustedAdvisorCheckDescription]
$sel:checks:DescribeTrustedAdvisorChecksResponse' :: DescribeTrustedAdvisorChecksResponse
-> [TrustedAdvisorCheckDescription]
checks} -> [TrustedAdvisorCheckDescription]
checks) (\s :: DescribeTrustedAdvisorChecksResponse
s@DescribeTrustedAdvisorChecksResponse' {} [TrustedAdvisorCheckDescription]
a -> DescribeTrustedAdvisorChecksResponse
s {$sel:checks:DescribeTrustedAdvisorChecksResponse' :: [TrustedAdvisorCheckDescription]
checks = [TrustedAdvisorCheckDescription]
a} :: DescribeTrustedAdvisorChecksResponse) (([TrustedAdvisorCheckDescription]
  -> f [TrustedAdvisorCheckDescription])
 -> DescribeTrustedAdvisorChecksResponse
 -> f DescribeTrustedAdvisorChecksResponse)
-> (([TrustedAdvisorCheckDescription]
     -> f [TrustedAdvisorCheckDescription])
    -> [TrustedAdvisorCheckDescription]
    -> f [TrustedAdvisorCheckDescription])
-> ([TrustedAdvisorCheckDescription]
    -> f [TrustedAdvisorCheckDescription])
-> DescribeTrustedAdvisorChecksResponse
-> f DescribeTrustedAdvisorChecksResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. ([TrustedAdvisorCheckDescription]
 -> f [TrustedAdvisorCheckDescription])
-> [TrustedAdvisorCheckDescription]
-> f [TrustedAdvisorCheckDescription]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance
  Prelude.NFData
    DescribeTrustedAdvisorChecksResponse