{-# 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.ListEngineVersions -- 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 a list of engine versions that are available to choose from, -- including the Auto option. module Amazonka.Athena.ListEngineVersions ( -- * Creating a Request ListEngineVersions (..), newListEngineVersions, -- * Request Lenses listEngineVersions_maxResults, listEngineVersions_nextToken, -- * Destructuring the Response ListEngineVersionsResponse (..), newListEngineVersionsResponse, -- * Response Lenses listEngineVersionsResponse_engineVersions, listEngineVersionsResponse_nextToken, listEngineVersionsResponse_httpStatus, ) 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:/ 'newListEngineVersions' smart constructor. data ListEngineVersions = ListEngineVersions' { -- | The maximum number of engine versions to return in this request. 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 } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ListEngineVersions' 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', 'listEngineVersions_maxResults' - The maximum number of engine versions to return in this request. -- -- 'nextToken', 'listEngineVersions_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. newListEngineVersions :: ListEngineVersions newListEngineVersions = ListEngineVersions' { maxResults = Prelude.Nothing, nextToken = Prelude.Nothing } -- | The maximum number of engine versions to return in this request. listEngineVersions_maxResults :: Lens.Lens' ListEngineVersions (Prelude.Maybe Prelude.Natural) listEngineVersions_maxResults = Lens.lens (\ListEngineVersions' {maxResults} -> maxResults) (\s@ListEngineVersions' {} a -> s {maxResults = a} :: ListEngineVersions) -- | 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. listEngineVersions_nextToken :: Lens.Lens' ListEngineVersions (Prelude.Maybe Prelude.Text) listEngineVersions_nextToken = Lens.lens (\ListEngineVersions' {nextToken} -> nextToken) (\s@ListEngineVersions' {} a -> s {nextToken = a} :: ListEngineVersions) instance Core.AWSRequest ListEngineVersions where type AWSResponse ListEngineVersions = ListEngineVersionsResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> ListEngineVersionsResponse' Prelude.<$> (x Data..?> "EngineVersions" Core..!@ Prelude.mempty) Prelude.<*> (x Data..?> "NextToken") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable ListEngineVersions where hashWithSalt _salt ListEngineVersions' {..} = _salt `Prelude.hashWithSalt` maxResults `Prelude.hashWithSalt` nextToken instance Prelude.NFData ListEngineVersions where rnf ListEngineVersions' {..} = Prelude.rnf maxResults `Prelude.seq` Prelude.rnf nextToken instance Data.ToHeaders ListEngineVersions where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "AmazonAthena.ListEngineVersions" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON ListEngineVersions where toJSON ListEngineVersions' {..} = Data.object ( Prelude.catMaybes [ ("MaxResults" Data..=) Prelude.<$> maxResults, ("NextToken" Data..=) Prelude.<$> nextToken ] ) instance Data.ToPath ListEngineVersions where toPath = Prelude.const "/" instance Data.ToQuery ListEngineVersions where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newListEngineVersionsResponse' smart constructor. data ListEngineVersionsResponse = ListEngineVersionsResponse' { -- | A list of engine versions that are available to choose from. engineVersions :: Prelude.Maybe [EngineVersion], -- | 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 } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ListEngineVersionsResponse' 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: -- -- 'engineVersions', 'listEngineVersionsResponse_engineVersions' - A list of engine versions that are available to choose from. -- -- 'nextToken', 'listEngineVersionsResponse_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', 'listEngineVersionsResponse_httpStatus' - The response's http status code. newListEngineVersionsResponse :: -- | 'httpStatus' Prelude.Int -> ListEngineVersionsResponse newListEngineVersionsResponse pHttpStatus_ = ListEngineVersionsResponse' { engineVersions = Prelude.Nothing, nextToken = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | A list of engine versions that are available to choose from. listEngineVersionsResponse_engineVersions :: Lens.Lens' ListEngineVersionsResponse (Prelude.Maybe [EngineVersion]) listEngineVersionsResponse_engineVersions = Lens.lens (\ListEngineVersionsResponse' {engineVersions} -> engineVersions) (\s@ListEngineVersionsResponse' {} a -> s {engineVersions = a} :: ListEngineVersionsResponse) Prelude.. Lens.mapping Lens.coerced -- | 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. listEngineVersionsResponse_nextToken :: Lens.Lens' ListEngineVersionsResponse (Prelude.Maybe Prelude.Text) listEngineVersionsResponse_nextToken = Lens.lens (\ListEngineVersionsResponse' {nextToken} -> nextToken) (\s@ListEngineVersionsResponse' {} a -> s {nextToken = a} :: ListEngineVersionsResponse) -- | The response's http status code. listEngineVersionsResponse_httpStatus :: Lens.Lens' ListEngineVersionsResponse Prelude.Int listEngineVersionsResponse_httpStatus = Lens.lens (\ListEngineVersionsResponse' {httpStatus} -> httpStatus) (\s@ListEngineVersionsResponse' {} a -> s {httpStatus = a} :: ListEngineVersionsResponse) instance Prelude.NFData ListEngineVersionsResponse where rnf ListEngineVersionsResponse' {..} = Prelude.rnf engineVersions `Prelude.seq` Prelude.rnf nextToken `Prelude.seq` Prelude.rnf httpStatus