amazonka-config-2.0: gen/Amazonka/Config/GetComplianceSummaryByResourceType.hs
{-# 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-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- 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.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:/ '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@.
resourceTypes :: Prelude.Maybe [Prelude.Text]
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, 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'
{ resourceTypes =
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 = Lens.lens (\GetComplianceSummaryByResourceType' {resourceTypes} -> resourceTypes) (\s@GetComplianceSummaryByResourceType' {} a -> s {resourceTypes = a} :: GetComplianceSummaryByResourceType) Prelude.. Lens.mapping Lens.coerced
instance
Core.AWSRequest
GetComplianceSummaryByResourceType
where
type
AWSResponse GetComplianceSummaryByResourceType =
GetComplianceSummaryByResourceTypeResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
GetComplianceSummaryByResourceTypeResponse'
Prelude.<$> ( x
Data..?> "ComplianceSummariesByResourceType"
Core..!@ Prelude.mempty
)
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance
Prelude.Hashable
GetComplianceSummaryByResourceType
where
hashWithSalt
_salt
GetComplianceSummaryByResourceType' {..} =
_salt `Prelude.hashWithSalt` resourceTypes
instance
Prelude.NFData
GetComplianceSummaryByResourceType
where
rnf GetComplianceSummaryByResourceType' {..} =
Prelude.rnf resourceTypes
instance
Data.ToHeaders
GetComplianceSummaryByResourceType
where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "X-Amz-Target"
Data.=# ( "StarlingDoveService.GetComplianceSummaryByResourceType" ::
Prelude.ByteString
),
"Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance
Data.ToJSON
GetComplianceSummaryByResourceType
where
toJSON GetComplianceSummaryByResourceType' {..} =
Data.object
( Prelude.catMaybes
[ ("ResourceTypes" Data..=)
Prelude.<$> resourceTypes
]
)
instance
Data.ToPath
GetComplianceSummaryByResourceType
where
toPath = Prelude.const "/"
instance
Data.ToQuery
GetComplianceSummaryByResourceType
where
toQuery = Prelude.const 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.
complianceSummariesByResourceType :: Prelude.Maybe [ComplianceSummaryByResourceType],
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, 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
pHttpStatus_ =
GetComplianceSummaryByResourceTypeResponse'
{ complianceSummariesByResourceType =
Prelude.Nothing,
httpStatus = 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 = Lens.lens (\GetComplianceSummaryByResourceTypeResponse' {complianceSummariesByResourceType} -> complianceSummariesByResourceType) (\s@GetComplianceSummaryByResourceTypeResponse' {} a -> s {complianceSummariesByResourceType = a} :: GetComplianceSummaryByResourceTypeResponse) Prelude.. Lens.mapping Lens.coerced
-- | The response's http status code.
getComplianceSummaryByResourceTypeResponse_httpStatus :: Lens.Lens' GetComplianceSummaryByResourceTypeResponse Prelude.Int
getComplianceSummaryByResourceTypeResponse_httpStatus = Lens.lens (\GetComplianceSummaryByResourceTypeResponse' {httpStatus} -> httpStatus) (\s@GetComplianceSummaryByResourceTypeResponse' {} a -> s {httpStatus = a} :: GetComplianceSummaryByResourceTypeResponse)
instance
Prelude.NFData
GetComplianceSummaryByResourceTypeResponse
where
rnf GetComplianceSummaryByResourceTypeResponse' {..} =
Prelude.rnf complianceSummariesByResourceType
`Prelude.seq` Prelude.rnf httpStatus