{-# 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.AccessAnalyzer.ListAccessPreviewFindings -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Retrieves a list of access preview findings generated by the specified -- access preview. -- -- This operation returns paginated results. module Amazonka.AccessAnalyzer.ListAccessPreviewFindings ( -- * Creating a Request ListAccessPreviewFindings (..), newListAccessPreviewFindings, -- * Request Lenses listAccessPreviewFindings_filter, listAccessPreviewFindings_maxResults, listAccessPreviewFindings_nextToken, listAccessPreviewFindings_accessPreviewId, listAccessPreviewFindings_analyzerArn, -- * Destructuring the Response ListAccessPreviewFindingsResponse (..), newListAccessPreviewFindingsResponse, -- * Response Lenses listAccessPreviewFindingsResponse_nextToken, listAccessPreviewFindingsResponse_httpStatus, listAccessPreviewFindingsResponse_findings, ) where import Amazonka.AccessAnalyzer.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:/ 'newListAccessPreviewFindings' smart constructor. data ListAccessPreviewFindings = ListAccessPreviewFindings' { -- | Criteria to filter the returned findings. filter' :: Prelude.Maybe (Prelude.HashMap Prelude.Text Criterion), -- | The maximum number of results to return in the response. maxResults :: Prelude.Maybe Prelude.Int, -- | A token used for pagination of results returned. nextToken :: Prelude.Maybe Prelude.Text, -- | The unique ID for the access preview. accessPreviewId :: Prelude.Text, -- | The -- -- used to generate the access. analyzerArn :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ListAccessPreviewFindings' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'filter'', 'listAccessPreviewFindings_filter' - Criteria to filter the returned findings. -- -- 'maxResults', 'listAccessPreviewFindings_maxResults' - The maximum number of results to return in the response. -- -- 'nextToken', 'listAccessPreviewFindings_nextToken' - A token used for pagination of results returned. -- -- 'accessPreviewId', 'listAccessPreviewFindings_accessPreviewId' - The unique ID for the access preview. -- -- 'analyzerArn', 'listAccessPreviewFindings_analyzerArn' - The -- -- used to generate the access. newListAccessPreviewFindings :: -- | 'accessPreviewId' Prelude.Text -> -- | 'analyzerArn' Prelude.Text -> ListAccessPreviewFindings newListAccessPreviewFindings pAccessPreviewId_ pAnalyzerArn_ = ListAccessPreviewFindings' { filter' = Prelude.Nothing, maxResults = Prelude.Nothing, nextToken = Prelude.Nothing, accessPreviewId = pAccessPreviewId_, analyzerArn = pAnalyzerArn_ } -- | Criteria to filter the returned findings. listAccessPreviewFindings_filter :: Lens.Lens' ListAccessPreviewFindings (Prelude.Maybe (Prelude.HashMap Prelude.Text Criterion)) listAccessPreviewFindings_filter = Lens.lens (\ListAccessPreviewFindings' {filter'} -> filter') (\s@ListAccessPreviewFindings' {} a -> s {filter' = a} :: ListAccessPreviewFindings) Prelude.. Lens.mapping Lens.coerced -- | The maximum number of results to return in the response. listAccessPreviewFindings_maxResults :: Lens.Lens' ListAccessPreviewFindings (Prelude.Maybe Prelude.Int) listAccessPreviewFindings_maxResults = Lens.lens (\ListAccessPreviewFindings' {maxResults} -> maxResults) (\s@ListAccessPreviewFindings' {} a -> s {maxResults = a} :: ListAccessPreviewFindings) -- | A token used for pagination of results returned. listAccessPreviewFindings_nextToken :: Lens.Lens' ListAccessPreviewFindings (Prelude.Maybe Prelude.Text) listAccessPreviewFindings_nextToken = Lens.lens (\ListAccessPreviewFindings' {nextToken} -> nextToken) (\s@ListAccessPreviewFindings' {} a -> s {nextToken = a} :: ListAccessPreviewFindings) -- | The unique ID for the access preview. listAccessPreviewFindings_accessPreviewId :: Lens.Lens' ListAccessPreviewFindings Prelude.Text listAccessPreviewFindings_accessPreviewId = Lens.lens (\ListAccessPreviewFindings' {accessPreviewId} -> accessPreviewId) (\s@ListAccessPreviewFindings' {} a -> s {accessPreviewId = a} :: ListAccessPreviewFindings) -- | The -- -- used to generate the access. listAccessPreviewFindings_analyzerArn :: Lens.Lens' ListAccessPreviewFindings Prelude.Text listAccessPreviewFindings_analyzerArn = Lens.lens (\ListAccessPreviewFindings' {analyzerArn} -> analyzerArn) (\s@ListAccessPreviewFindings' {} a -> s {analyzerArn = a} :: ListAccessPreviewFindings) instance Core.AWSPager ListAccessPreviewFindings where page rq rs | Core.stop ( rs Lens.^? listAccessPreviewFindingsResponse_nextToken Prelude.. Lens._Just ) = Prelude.Nothing | Core.stop ( rs Lens.^. listAccessPreviewFindingsResponse_findings ) = Prelude.Nothing | Prelude.otherwise = Prelude.Just Prelude.$ rq Prelude.& listAccessPreviewFindings_nextToken Lens..~ rs Lens.^? listAccessPreviewFindingsResponse_nextToken Prelude.. Lens._Just instance Core.AWSRequest ListAccessPreviewFindings where type AWSResponse ListAccessPreviewFindings = ListAccessPreviewFindingsResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> ListAccessPreviewFindingsResponse' Prelude.<$> (x Data..?> "nextToken") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) Prelude.<*> (x Data..?> "findings" Core..!@ Prelude.mempty) ) instance Prelude.Hashable ListAccessPreviewFindings where hashWithSalt _salt ListAccessPreviewFindings' {..} = _salt `Prelude.hashWithSalt` filter' `Prelude.hashWithSalt` maxResults `Prelude.hashWithSalt` nextToken `Prelude.hashWithSalt` accessPreviewId `Prelude.hashWithSalt` analyzerArn instance Prelude.NFData ListAccessPreviewFindings where rnf ListAccessPreviewFindings' {..} = Prelude.rnf filter' `Prelude.seq` Prelude.rnf maxResults `Prelude.seq` Prelude.rnf nextToken `Prelude.seq` Prelude.rnf accessPreviewId `Prelude.seq` Prelude.rnf analyzerArn instance Data.ToHeaders ListAccessPreviewFindings where toHeaders = Prelude.const ( Prelude.mconcat [ "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON ListAccessPreviewFindings where toJSON ListAccessPreviewFindings' {..} = Data.object ( Prelude.catMaybes [ ("filter" Data..=) Prelude.<$> filter', ("maxResults" Data..=) Prelude.<$> maxResults, ("nextToken" Data..=) Prelude.<$> nextToken, Prelude.Just ("analyzerArn" Data..= analyzerArn) ] ) instance Data.ToPath ListAccessPreviewFindings where toPath ListAccessPreviewFindings' {..} = Prelude.mconcat ["/access-preview/", Data.toBS accessPreviewId] instance Data.ToQuery ListAccessPreviewFindings where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newListAccessPreviewFindingsResponse' smart constructor. data ListAccessPreviewFindingsResponse = ListAccessPreviewFindingsResponse' { -- | A token used for pagination of results returned. nextToken :: Prelude.Maybe Prelude.Text, -- | The response's http status code. httpStatus :: Prelude.Int, -- | A list of access preview findings that match the specified filter -- criteria. findings :: [AccessPreviewFinding] } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ListAccessPreviewFindingsResponse' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'nextToken', 'listAccessPreviewFindingsResponse_nextToken' - A token used for pagination of results returned. -- -- 'httpStatus', 'listAccessPreviewFindingsResponse_httpStatus' - The response's http status code. -- -- 'findings', 'listAccessPreviewFindingsResponse_findings' - A list of access preview findings that match the specified filter -- criteria. newListAccessPreviewFindingsResponse :: -- | 'httpStatus' Prelude.Int -> ListAccessPreviewFindingsResponse newListAccessPreviewFindingsResponse pHttpStatus_ = ListAccessPreviewFindingsResponse' { nextToken = Prelude.Nothing, httpStatus = pHttpStatus_, findings = Prelude.mempty } -- | A token used for pagination of results returned. listAccessPreviewFindingsResponse_nextToken :: Lens.Lens' ListAccessPreviewFindingsResponse (Prelude.Maybe Prelude.Text) listAccessPreviewFindingsResponse_nextToken = Lens.lens (\ListAccessPreviewFindingsResponse' {nextToken} -> nextToken) (\s@ListAccessPreviewFindingsResponse' {} a -> s {nextToken = a} :: ListAccessPreviewFindingsResponse) -- | The response's http status code. listAccessPreviewFindingsResponse_httpStatus :: Lens.Lens' ListAccessPreviewFindingsResponse Prelude.Int listAccessPreviewFindingsResponse_httpStatus = Lens.lens (\ListAccessPreviewFindingsResponse' {httpStatus} -> httpStatus) (\s@ListAccessPreviewFindingsResponse' {} a -> s {httpStatus = a} :: ListAccessPreviewFindingsResponse) -- | A list of access preview findings that match the specified filter -- criteria. listAccessPreviewFindingsResponse_findings :: Lens.Lens' ListAccessPreviewFindingsResponse [AccessPreviewFinding] listAccessPreviewFindingsResponse_findings = Lens.lens (\ListAccessPreviewFindingsResponse' {findings} -> findings) (\s@ListAccessPreviewFindingsResponse' {} a -> s {findings = a} :: ListAccessPreviewFindingsResponse) Prelude.. Lens.coerced instance Prelude.NFData ListAccessPreviewFindingsResponse where rnf ListAccessPreviewFindingsResponse' {..} = Prelude.rnf nextToken `Prelude.seq` Prelude.rnf httpStatus `Prelude.seq` Prelude.rnf findings