{-# 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.Config.GetComplianceSummaryByResourceType
-- 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 the number of resources that are compliant and the number that
-- are noncompliant. You can specify one or more resource types to get
-- these numbers for each resource type. The maximum number returned is
-- 100.
module Amazonka.Config.GetComplianceSummaryByResourceType
  ( -- * Creating a Request
    GetComplianceSummaryByResourceType (..),
    newGetComplianceSummaryByResourceType,

    -- * Request Lenses
    getComplianceSummaryByResourceType_resourceTypes,

    -- * Destructuring the Response
    GetComplianceSummaryByResourceTypeResponse (..),
    newGetComplianceSummaryByResourceTypeResponse,

    -- * Response Lenses
    getComplianceSummaryByResourceTypeResponse_complianceSummariesByResourceType,
    getComplianceSummaryByResourceTypeResponse_httpStatus,
  )
where

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

-- |
--
-- /See:/ 'newGetComplianceSummaryByResourceType' smart constructor.
data GetComplianceSummaryByResourceType = GetComplianceSummaryByResourceType'
  { -- | Specify one or more resource types to get the number of resources that
    -- are compliant and the number that are noncompliant for each resource
    -- type.
    --
    -- For this request, you can specify an Amazon Web Services resource type
    -- such as @AWS::EC2::Instance@. You can specify that the resource type is
    -- an Amazon Web Services account by specifying @AWS::::Account@.
    GetComplianceSummaryByResourceType -> Maybe [Text]
resourceTypes :: Prelude.Maybe [Prelude.Text]
  }
  deriving (GetComplianceSummaryByResourceType
-> GetComplianceSummaryByResourceType -> Bool
(GetComplianceSummaryByResourceType
 -> GetComplianceSummaryByResourceType -> Bool)
-> (GetComplianceSummaryByResourceType
    -> GetComplianceSummaryByResourceType -> Bool)
-> Eq GetComplianceSummaryByResourceType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetComplianceSummaryByResourceType
-> GetComplianceSummaryByResourceType -> Bool
$c/= :: GetComplianceSummaryByResourceType
-> GetComplianceSummaryByResourceType -> Bool
== :: GetComplianceSummaryByResourceType
-> GetComplianceSummaryByResourceType -> Bool
$c== :: GetComplianceSummaryByResourceType
-> GetComplianceSummaryByResourceType -> Bool
Prelude.Eq, ReadPrec [GetComplianceSummaryByResourceType]
ReadPrec GetComplianceSummaryByResourceType
Int -> ReadS GetComplianceSummaryByResourceType
ReadS [GetComplianceSummaryByResourceType]
(Int -> ReadS GetComplianceSummaryByResourceType)
-> ReadS [GetComplianceSummaryByResourceType]
-> ReadPrec GetComplianceSummaryByResourceType
-> ReadPrec [GetComplianceSummaryByResourceType]
-> Read GetComplianceSummaryByResourceType
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetComplianceSummaryByResourceType]
$creadListPrec :: ReadPrec [GetComplianceSummaryByResourceType]
readPrec :: ReadPrec GetComplianceSummaryByResourceType
$creadPrec :: ReadPrec GetComplianceSummaryByResourceType
readList :: ReadS [GetComplianceSummaryByResourceType]
$creadList :: ReadS [GetComplianceSummaryByResourceType]
readsPrec :: Int -> ReadS GetComplianceSummaryByResourceType
$creadsPrec :: Int -> ReadS GetComplianceSummaryByResourceType
Prelude.Read, Int -> GetComplianceSummaryByResourceType -> ShowS
[GetComplianceSummaryByResourceType] -> ShowS
GetComplianceSummaryByResourceType -> String
(Int -> GetComplianceSummaryByResourceType -> ShowS)
-> (GetComplianceSummaryByResourceType -> String)
-> ([GetComplianceSummaryByResourceType] -> ShowS)
-> Show GetComplianceSummaryByResourceType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetComplianceSummaryByResourceType] -> ShowS
$cshowList :: [GetComplianceSummaryByResourceType] -> ShowS
show :: GetComplianceSummaryByResourceType -> String
$cshow :: GetComplianceSummaryByResourceType -> String
showsPrec :: Int -> GetComplianceSummaryByResourceType -> ShowS
$cshowsPrec :: Int -> GetComplianceSummaryByResourceType -> ShowS
Prelude.Show, (forall x.
 GetComplianceSummaryByResourceType
 -> Rep GetComplianceSummaryByResourceType x)
-> (forall x.
    Rep GetComplianceSummaryByResourceType x
    -> GetComplianceSummaryByResourceType)
-> Generic GetComplianceSummaryByResourceType
forall x.
Rep GetComplianceSummaryByResourceType x
-> GetComplianceSummaryByResourceType
forall x.
GetComplianceSummaryByResourceType
-> Rep GetComplianceSummaryByResourceType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetComplianceSummaryByResourceType x
-> GetComplianceSummaryByResourceType
$cfrom :: forall x.
GetComplianceSummaryByResourceType
-> Rep GetComplianceSummaryByResourceType x
Prelude.Generic)

-- |
-- Create a value of 'GetComplianceSummaryByResourceType' 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:
--
-- 'resourceTypes', 'getComplianceSummaryByResourceType_resourceTypes' - Specify one or more resource types to get the number of resources that
-- are compliant and the number that are noncompliant for each resource
-- type.
--
-- For this request, you can specify an Amazon Web Services resource type
-- such as @AWS::EC2::Instance@. You can specify that the resource type is
-- an Amazon Web Services account by specifying @AWS::::Account@.
newGetComplianceSummaryByResourceType ::
  GetComplianceSummaryByResourceType
newGetComplianceSummaryByResourceType :: GetComplianceSummaryByResourceType
newGetComplianceSummaryByResourceType =
  GetComplianceSummaryByResourceType' :: Maybe [Text] -> GetComplianceSummaryByResourceType
GetComplianceSummaryByResourceType'
    { $sel:resourceTypes:GetComplianceSummaryByResourceType' :: Maybe [Text]
resourceTypes =
        Maybe [Text]
forall a. Maybe a
Prelude.Nothing
    }

-- | Specify one or more resource types to get the number of resources that
-- are compliant and the number that are noncompliant for each resource
-- type.
--
-- For this request, you can specify an Amazon Web Services resource type
-- such as @AWS::EC2::Instance@. You can specify that the resource type is
-- an Amazon Web Services account by specifying @AWS::::Account@.
getComplianceSummaryByResourceType_resourceTypes :: Lens.Lens' GetComplianceSummaryByResourceType (Prelude.Maybe [Prelude.Text])
getComplianceSummaryByResourceType_resourceTypes :: (Maybe [Text] -> f (Maybe [Text]))
-> GetComplianceSummaryByResourceType
-> f GetComplianceSummaryByResourceType
getComplianceSummaryByResourceType_resourceTypes = (GetComplianceSummaryByResourceType -> Maybe [Text])
-> (GetComplianceSummaryByResourceType
    -> Maybe [Text] -> GetComplianceSummaryByResourceType)
-> Lens
     GetComplianceSummaryByResourceType
     GetComplianceSummaryByResourceType
     (Maybe [Text])
     (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetComplianceSummaryByResourceType' {Maybe [Text]
resourceTypes :: Maybe [Text]
$sel:resourceTypes:GetComplianceSummaryByResourceType' :: GetComplianceSummaryByResourceType -> Maybe [Text]
resourceTypes} -> Maybe [Text]
resourceTypes) (\s :: GetComplianceSummaryByResourceType
s@GetComplianceSummaryByResourceType' {} Maybe [Text]
a -> GetComplianceSummaryByResourceType
s {$sel:resourceTypes:GetComplianceSummaryByResourceType' :: Maybe [Text]
resourceTypes = Maybe [Text]
a} :: GetComplianceSummaryByResourceType) ((Maybe [Text] -> f (Maybe [Text]))
 -> GetComplianceSummaryByResourceType
 -> f GetComplianceSummaryByResourceType)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> GetComplianceSummaryByResourceType
-> f GetComplianceSummaryByResourceType
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
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 AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance
  Core.AWSRequest
    GetComplianceSummaryByResourceType
  where
  type
    AWSResponse GetComplianceSummaryByResourceType =
      GetComplianceSummaryByResourceTypeResponse
  request :: GetComplianceSummaryByResourceType
-> Request GetComplianceSummaryByResourceType
request = Service
-> GetComplianceSummaryByResourceType
-> Request GetComplianceSummaryByResourceType
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy GetComplianceSummaryByResourceType
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse GetComplianceSummaryByResourceType)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse GetComplianceSummaryByResourceType))
-> Logger
-> Service
-> Proxy GetComplianceSummaryByResourceType
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse GetComplianceSummaryByResourceType)))
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 ->
          Maybe [ComplianceSummaryByResourceType]
-> Int -> GetComplianceSummaryByResourceTypeResponse
GetComplianceSummaryByResourceTypeResponse'
            (Maybe [ComplianceSummaryByResourceType]
 -> Int -> GetComplianceSummaryByResourceTypeResponse)
-> Either String (Maybe [ComplianceSummaryByResourceType])
-> Either
     String (Int -> GetComplianceSummaryByResourceTypeResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( Object
x Object
-> Text
-> Either String (Maybe (Maybe [ComplianceSummaryByResourceType]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ComplianceSummariesByResourceType"
                            Either String (Maybe (Maybe [ComplianceSummaryByResourceType]))
-> Maybe [ComplianceSummaryByResourceType]
-> Either String (Maybe [ComplianceSummaryByResourceType])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [ComplianceSummaryByResourceType]
forall a. Monoid a => a
Prelude.mempty
                        )
              Either String (Int -> GetComplianceSummaryByResourceTypeResponse)
-> Either String Int
-> Either String GetComplianceSummaryByResourceTypeResponse
forall (f :: * -> *) a b. Applicative f => 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))
      )

instance
  Prelude.Hashable
    GetComplianceSummaryByResourceType

instance
  Prelude.NFData
    GetComplianceSummaryByResourceType

instance
  Core.ToHeaders
    GetComplianceSummaryByResourceType
  where
  toHeaders :: GetComplianceSummaryByResourceType -> ResponseHeaders
toHeaders =
    ResponseHeaders
-> GetComplianceSummaryByResourceType -> 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
"StarlingDoveService.GetComplianceSummaryByResourceType" ::
                          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
    GetComplianceSummaryByResourceType
  where
  toJSON :: GetComplianceSummaryByResourceType -> Value
toJSON GetComplianceSummaryByResourceType' {Maybe [Text]
resourceTypes :: Maybe [Text]
$sel:resourceTypes:GetComplianceSummaryByResourceType' :: GetComplianceSummaryByResourceType -> Maybe [Text]
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"ResourceTypes" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
resourceTypes
          ]
      )

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

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

-- |
--
-- /See:/ 'newGetComplianceSummaryByResourceTypeResponse' smart constructor.
data GetComplianceSummaryByResourceTypeResponse = GetComplianceSummaryByResourceTypeResponse'
  { -- | The number of resources that are compliant and the number that are
    -- noncompliant. If one or more resource types were provided with the
    -- request, the numbers are returned for each resource type. The maximum
    -- number returned is 100.
    GetComplianceSummaryByResourceTypeResponse
-> Maybe [ComplianceSummaryByResourceType]
complianceSummariesByResourceType :: Prelude.Maybe [ComplianceSummaryByResourceType],
    -- | The response's http status code.
    GetComplianceSummaryByResourceTypeResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetComplianceSummaryByResourceTypeResponse
-> GetComplianceSummaryByResourceTypeResponse -> Bool
(GetComplianceSummaryByResourceTypeResponse
 -> GetComplianceSummaryByResourceTypeResponse -> Bool)
-> (GetComplianceSummaryByResourceTypeResponse
    -> GetComplianceSummaryByResourceTypeResponse -> Bool)
-> Eq GetComplianceSummaryByResourceTypeResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetComplianceSummaryByResourceTypeResponse
-> GetComplianceSummaryByResourceTypeResponse -> Bool
$c/= :: GetComplianceSummaryByResourceTypeResponse
-> GetComplianceSummaryByResourceTypeResponse -> Bool
== :: GetComplianceSummaryByResourceTypeResponse
-> GetComplianceSummaryByResourceTypeResponse -> Bool
$c== :: GetComplianceSummaryByResourceTypeResponse
-> GetComplianceSummaryByResourceTypeResponse -> Bool
Prelude.Eq, ReadPrec [GetComplianceSummaryByResourceTypeResponse]
ReadPrec GetComplianceSummaryByResourceTypeResponse
Int -> ReadS GetComplianceSummaryByResourceTypeResponse
ReadS [GetComplianceSummaryByResourceTypeResponse]
(Int -> ReadS GetComplianceSummaryByResourceTypeResponse)
-> ReadS [GetComplianceSummaryByResourceTypeResponse]
-> ReadPrec GetComplianceSummaryByResourceTypeResponse
-> ReadPrec [GetComplianceSummaryByResourceTypeResponse]
-> Read GetComplianceSummaryByResourceTypeResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetComplianceSummaryByResourceTypeResponse]
$creadListPrec :: ReadPrec [GetComplianceSummaryByResourceTypeResponse]
readPrec :: ReadPrec GetComplianceSummaryByResourceTypeResponse
$creadPrec :: ReadPrec GetComplianceSummaryByResourceTypeResponse
readList :: ReadS [GetComplianceSummaryByResourceTypeResponse]
$creadList :: ReadS [GetComplianceSummaryByResourceTypeResponse]
readsPrec :: Int -> ReadS GetComplianceSummaryByResourceTypeResponse
$creadsPrec :: Int -> ReadS GetComplianceSummaryByResourceTypeResponse
Prelude.Read, Int -> GetComplianceSummaryByResourceTypeResponse -> ShowS
[GetComplianceSummaryByResourceTypeResponse] -> ShowS
GetComplianceSummaryByResourceTypeResponse -> String
(Int -> GetComplianceSummaryByResourceTypeResponse -> ShowS)
-> (GetComplianceSummaryByResourceTypeResponse -> String)
-> ([GetComplianceSummaryByResourceTypeResponse] -> ShowS)
-> Show GetComplianceSummaryByResourceTypeResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetComplianceSummaryByResourceTypeResponse] -> ShowS
$cshowList :: [GetComplianceSummaryByResourceTypeResponse] -> ShowS
show :: GetComplianceSummaryByResourceTypeResponse -> String
$cshow :: GetComplianceSummaryByResourceTypeResponse -> String
showsPrec :: Int -> GetComplianceSummaryByResourceTypeResponse -> ShowS
$cshowsPrec :: Int -> GetComplianceSummaryByResourceTypeResponse -> ShowS
Prelude.Show, (forall x.
 GetComplianceSummaryByResourceTypeResponse
 -> Rep GetComplianceSummaryByResourceTypeResponse x)
-> (forall x.
    Rep GetComplianceSummaryByResourceTypeResponse x
    -> GetComplianceSummaryByResourceTypeResponse)
-> Generic GetComplianceSummaryByResourceTypeResponse
forall x.
Rep GetComplianceSummaryByResourceTypeResponse x
-> GetComplianceSummaryByResourceTypeResponse
forall x.
GetComplianceSummaryByResourceTypeResponse
-> Rep GetComplianceSummaryByResourceTypeResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetComplianceSummaryByResourceTypeResponse x
-> GetComplianceSummaryByResourceTypeResponse
$cfrom :: forall x.
GetComplianceSummaryByResourceTypeResponse
-> Rep GetComplianceSummaryByResourceTypeResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetComplianceSummaryByResourceTypeResponse' 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:
--
-- 'complianceSummariesByResourceType', 'getComplianceSummaryByResourceTypeResponse_complianceSummariesByResourceType' - The number of resources that are compliant and the number that are
-- noncompliant. If one or more resource types were provided with the
-- request, the numbers are returned for each resource type. The maximum
-- number returned is 100.
--
-- 'httpStatus', 'getComplianceSummaryByResourceTypeResponse_httpStatus' - The response's http status code.
newGetComplianceSummaryByResourceTypeResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetComplianceSummaryByResourceTypeResponse
newGetComplianceSummaryByResourceTypeResponse :: Int -> GetComplianceSummaryByResourceTypeResponse
newGetComplianceSummaryByResourceTypeResponse
  Int
pHttpStatus_ =
    GetComplianceSummaryByResourceTypeResponse' :: Maybe [ComplianceSummaryByResourceType]
-> Int -> GetComplianceSummaryByResourceTypeResponse
GetComplianceSummaryByResourceTypeResponse'
      { $sel:complianceSummariesByResourceType:GetComplianceSummaryByResourceTypeResponse' :: Maybe [ComplianceSummaryByResourceType]
complianceSummariesByResourceType =
          Maybe [ComplianceSummaryByResourceType]
forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:GetComplianceSummaryByResourceTypeResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The number of resources that are compliant and the number that are
-- noncompliant. If one or more resource types were provided with the
-- request, the numbers are returned for each resource type. The maximum
-- number returned is 100.
getComplianceSummaryByResourceTypeResponse_complianceSummariesByResourceType :: Lens.Lens' GetComplianceSummaryByResourceTypeResponse (Prelude.Maybe [ComplianceSummaryByResourceType])
getComplianceSummaryByResourceTypeResponse_complianceSummariesByResourceType :: (Maybe [ComplianceSummaryByResourceType]
 -> f (Maybe [ComplianceSummaryByResourceType]))
-> GetComplianceSummaryByResourceTypeResponse
-> f GetComplianceSummaryByResourceTypeResponse
getComplianceSummaryByResourceTypeResponse_complianceSummariesByResourceType = (GetComplianceSummaryByResourceTypeResponse
 -> Maybe [ComplianceSummaryByResourceType])
-> (GetComplianceSummaryByResourceTypeResponse
    -> Maybe [ComplianceSummaryByResourceType]
    -> GetComplianceSummaryByResourceTypeResponse)
-> Lens
     GetComplianceSummaryByResourceTypeResponse
     GetComplianceSummaryByResourceTypeResponse
     (Maybe [ComplianceSummaryByResourceType])
     (Maybe [ComplianceSummaryByResourceType])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetComplianceSummaryByResourceTypeResponse' {Maybe [ComplianceSummaryByResourceType]
complianceSummariesByResourceType :: Maybe [ComplianceSummaryByResourceType]
$sel:complianceSummariesByResourceType:GetComplianceSummaryByResourceTypeResponse' :: GetComplianceSummaryByResourceTypeResponse
-> Maybe [ComplianceSummaryByResourceType]
complianceSummariesByResourceType} -> Maybe [ComplianceSummaryByResourceType]
complianceSummariesByResourceType) (\s :: GetComplianceSummaryByResourceTypeResponse
s@GetComplianceSummaryByResourceTypeResponse' {} Maybe [ComplianceSummaryByResourceType]
a -> GetComplianceSummaryByResourceTypeResponse
s {$sel:complianceSummariesByResourceType:GetComplianceSummaryByResourceTypeResponse' :: Maybe [ComplianceSummaryByResourceType]
complianceSummariesByResourceType = Maybe [ComplianceSummaryByResourceType]
a} :: GetComplianceSummaryByResourceTypeResponse) ((Maybe [ComplianceSummaryByResourceType]
  -> f (Maybe [ComplianceSummaryByResourceType]))
 -> GetComplianceSummaryByResourceTypeResponse
 -> f GetComplianceSummaryByResourceTypeResponse)
-> ((Maybe [ComplianceSummaryByResourceType]
     -> f (Maybe [ComplianceSummaryByResourceType]))
    -> Maybe [ComplianceSummaryByResourceType]
    -> f (Maybe [ComplianceSummaryByResourceType]))
-> (Maybe [ComplianceSummaryByResourceType]
    -> f (Maybe [ComplianceSummaryByResourceType]))
-> GetComplianceSummaryByResourceTypeResponse
-> f GetComplianceSummaryByResourceTypeResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [ComplianceSummaryByResourceType]
  [ComplianceSummaryByResourceType]
  [ComplianceSummaryByResourceType]
  [ComplianceSummaryByResourceType]
-> Iso
     (Maybe [ComplianceSummaryByResourceType])
     (Maybe [ComplianceSummaryByResourceType])
     (Maybe [ComplianceSummaryByResourceType])
     (Maybe [ComplianceSummaryByResourceType])
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 AnIso
  [ComplianceSummaryByResourceType]
  [ComplianceSummaryByResourceType]
  [ComplianceSummaryByResourceType]
  [ComplianceSummaryByResourceType]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

instance
  Prelude.NFData
    GetComplianceSummaryByResourceTypeResponse