{-# 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.Athena.ListNotebookSessions -- 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, in descending order, the sessions that have been created in a -- notebook that are in an active state like @CREATING@, @CREATED@, @IDLE@ -- or @BUSY@. Newer sessions are listed first; older sessions are listed -- later. module Amazonka.Athena.ListNotebookSessions ( -- * Creating a Request ListNotebookSessions (..), newListNotebookSessions, -- * Request Lenses listNotebookSessions_maxResults, listNotebookSessions_nextToken, listNotebookSessions_notebookId, -- * Destructuring the Response ListNotebookSessionsResponse (..), newListNotebookSessionsResponse, -- * Response Lenses listNotebookSessionsResponse_nextToken, listNotebookSessionsResponse_httpStatus, listNotebookSessionsResponse_notebookSessionsList, ) where import Amazonka.Athena.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:/ 'newListNotebookSessions' smart constructor. data ListNotebookSessions = ListNotebookSessions' { -- | The maximum number of notebook sessions to return. maxResults :: Prelude.Maybe Prelude.Natural, -- | A token generated by the Athena service that specifies where to continue -- pagination if a previous request was truncated. To obtain the next set -- of pages, pass in the @NextToken@ from the response object of the -- previous page call. nextToken :: Prelude.Maybe Prelude.Text, -- | The ID of the notebook to list sessions for. notebookId :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ListNotebookSessions' 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: -- -- 'maxResults', 'listNotebookSessions_maxResults' - The maximum number of notebook sessions to return. -- -- 'nextToken', 'listNotebookSessions_nextToken' - A token generated by the Athena service that specifies where to continue -- pagination if a previous request was truncated. To obtain the next set -- of pages, pass in the @NextToken@ from the response object of the -- previous page call. -- -- 'notebookId', 'listNotebookSessions_notebookId' - The ID of the notebook to list sessions for. newListNotebookSessions :: -- | 'notebookId' Prelude.Text -> ListNotebookSessions newListNotebookSessions pNotebookId_ = ListNotebookSessions' { maxResults = Prelude.Nothing, nextToken = Prelude.Nothing, notebookId = pNotebookId_ } -- | The maximum number of notebook sessions to return. listNotebookSessions_maxResults :: Lens.Lens' ListNotebookSessions (Prelude.Maybe Prelude.Natural) listNotebookSessions_maxResults = Lens.lens (\ListNotebookSessions' {maxResults} -> maxResults) (\s@ListNotebookSessions' {} a -> s {maxResults = a} :: ListNotebookSessions) -- | A token generated by the Athena service that specifies where to continue -- pagination if a previous request was truncated. To obtain the next set -- of pages, pass in the @NextToken@ from the response object of the -- previous page call. listNotebookSessions_nextToken :: Lens.Lens' ListNotebookSessions (Prelude.Maybe Prelude.Text) listNotebookSessions_nextToken = Lens.lens (\ListNotebookSessions' {nextToken} -> nextToken) (\s@ListNotebookSessions' {} a -> s {nextToken = a} :: ListNotebookSessions) -- | The ID of the notebook to list sessions for. listNotebookSessions_notebookId :: Lens.Lens' ListNotebookSessions Prelude.Text listNotebookSessions_notebookId = Lens.lens (\ListNotebookSessions' {notebookId} -> notebookId) (\s@ListNotebookSessions' {} a -> s {notebookId = a} :: ListNotebookSessions) instance Core.AWSRequest ListNotebookSessions where type AWSResponse ListNotebookSessions = ListNotebookSessionsResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> ListNotebookSessionsResponse' Prelude.<$> (x Data..?> "NextToken") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) Prelude.<*> ( x Data..?> "NotebookSessionsList" Core..!@ Prelude.mempty ) ) instance Prelude.Hashable ListNotebookSessions where hashWithSalt _salt ListNotebookSessions' {..} = _salt `Prelude.hashWithSalt` maxResults `Prelude.hashWithSalt` nextToken `Prelude.hashWithSalt` notebookId instance Prelude.NFData ListNotebookSessions where rnf ListNotebookSessions' {..} = Prelude.rnf maxResults `Prelude.seq` Prelude.rnf nextToken `Prelude.seq` Prelude.rnf notebookId instance Data.ToHeaders ListNotebookSessions where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "AmazonAthena.ListNotebookSessions" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON ListNotebookSessions where toJSON ListNotebookSessions' {..} = Data.object ( Prelude.catMaybes [ ("MaxResults" Data..=) Prelude.<$> maxResults, ("NextToken" Data..=) Prelude.<$> nextToken, Prelude.Just ("NotebookId" Data..= notebookId) ] ) instance Data.ToPath ListNotebookSessions where toPath = Prelude.const "/" instance Data.ToQuery ListNotebookSessions where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newListNotebookSessionsResponse' smart constructor. data ListNotebookSessionsResponse = ListNotebookSessionsResponse' { -- | A token generated by the Athena service that specifies where to continue -- pagination if a previous request was truncated. To obtain the next set -- of pages, pass in the @NextToken@ from the response object of the -- previous page call. nextToken :: Prelude.Maybe Prelude.Text, -- | The response's http status code. httpStatus :: Prelude.Int, -- | A list of the sessions belonging to the notebook. notebookSessionsList :: [NotebookSessionSummary] } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ListNotebookSessionsResponse' 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', 'listNotebookSessionsResponse_nextToken' - A token generated by the Athena service that specifies where to continue -- pagination if a previous request was truncated. To obtain the next set -- of pages, pass in the @NextToken@ from the response object of the -- previous page call. -- -- 'httpStatus', 'listNotebookSessionsResponse_httpStatus' - The response's http status code. -- -- 'notebookSessionsList', 'listNotebookSessionsResponse_notebookSessionsList' - A list of the sessions belonging to the notebook. newListNotebookSessionsResponse :: -- | 'httpStatus' Prelude.Int -> ListNotebookSessionsResponse newListNotebookSessionsResponse pHttpStatus_ = ListNotebookSessionsResponse' { nextToken = Prelude.Nothing, httpStatus = pHttpStatus_, notebookSessionsList = Prelude.mempty } -- | A token generated by the Athena service that specifies where to continue -- pagination if a previous request was truncated. To obtain the next set -- of pages, pass in the @NextToken@ from the response object of the -- previous page call. listNotebookSessionsResponse_nextToken :: Lens.Lens' ListNotebookSessionsResponse (Prelude.Maybe Prelude.Text) listNotebookSessionsResponse_nextToken = Lens.lens (\ListNotebookSessionsResponse' {nextToken} -> nextToken) (\s@ListNotebookSessionsResponse' {} a -> s {nextToken = a} :: ListNotebookSessionsResponse) -- | The response's http status code. listNotebookSessionsResponse_httpStatus :: Lens.Lens' ListNotebookSessionsResponse Prelude.Int listNotebookSessionsResponse_httpStatus = Lens.lens (\ListNotebookSessionsResponse' {httpStatus} -> httpStatus) (\s@ListNotebookSessionsResponse' {} a -> s {httpStatus = a} :: ListNotebookSessionsResponse) -- | A list of the sessions belonging to the notebook. listNotebookSessionsResponse_notebookSessionsList :: Lens.Lens' ListNotebookSessionsResponse [NotebookSessionSummary] listNotebookSessionsResponse_notebookSessionsList = Lens.lens (\ListNotebookSessionsResponse' {notebookSessionsList} -> notebookSessionsList) (\s@ListNotebookSessionsResponse' {} a -> s {notebookSessionsList = a} :: ListNotebookSessionsResponse) Prelude.. Lens.coerced instance Prelude.NFData ListNotebookSessionsResponse where rnf ListNotebookSessionsResponse' {..} = Prelude.rnf nextToken `Prelude.seq` Prelude.rnf httpStatus `Prelude.seq` Prelude.rnf notebookSessionsList