{-# 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.DAX.DescribeParameterGroups -- 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 parameter group descriptions. If a parameter group -- name is specified, the list will contain only the descriptions for that -- group. -- -- This operation returns paginated results. module Amazonka.DAX.DescribeParameterGroups ( -- * Creating a Request DescribeParameterGroups (..), newDescribeParameterGroups, -- * Request Lenses describeParameterGroups_maxResults, describeParameterGroups_nextToken, describeParameterGroups_parameterGroupNames, -- * Destructuring the Response DescribeParameterGroupsResponse (..), newDescribeParameterGroupsResponse, -- * Response Lenses describeParameterGroupsResponse_nextToken, describeParameterGroupsResponse_parameterGroups, describeParameterGroupsResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import Amazonka.DAX.Types 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:/ 'newDescribeParameterGroups' smart constructor. data DescribeParameterGroups = DescribeParameterGroups' { -- | The maximum number of results to include in the response. If more -- results exist than the specified @MaxResults@ value, a token is included -- in the response so that the remaining results can be retrieved. -- -- The value for @MaxResults@ must be between 20 and 100. maxResults :: Prelude.Maybe Prelude.Int, -- | An optional token returned from a prior request. Use this token for -- pagination of results from this action. If this parameter is specified, -- the response includes only results beyond the token, up to the value -- specified by @MaxResults@. nextToken :: Prelude.Maybe Prelude.Text, -- | The names of the parameter groups. parameterGroupNames :: Prelude.Maybe [Prelude.Text] } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeParameterGroups' 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', 'describeParameterGroups_maxResults' - The maximum number of results to include in the response. If more -- results exist than the specified @MaxResults@ value, a token is included -- in the response so that the remaining results can be retrieved. -- -- The value for @MaxResults@ must be between 20 and 100. -- -- 'nextToken', 'describeParameterGroups_nextToken' - An optional token returned from a prior request. Use this token for -- pagination of results from this action. If this parameter is specified, -- the response includes only results beyond the token, up to the value -- specified by @MaxResults@. -- -- 'parameterGroupNames', 'describeParameterGroups_parameterGroupNames' - The names of the parameter groups. newDescribeParameterGroups :: DescribeParameterGroups newDescribeParameterGroups = DescribeParameterGroups' { maxResults = Prelude.Nothing, nextToken = Prelude.Nothing, parameterGroupNames = Prelude.Nothing } -- | The maximum number of results to include in the response. If more -- results exist than the specified @MaxResults@ value, a token is included -- in the response so that the remaining results can be retrieved. -- -- The value for @MaxResults@ must be between 20 and 100. describeParameterGroups_maxResults :: Lens.Lens' DescribeParameterGroups (Prelude.Maybe Prelude.Int) describeParameterGroups_maxResults = Lens.lens (\DescribeParameterGroups' {maxResults} -> maxResults) (\s@DescribeParameterGroups' {} a -> s {maxResults = a} :: DescribeParameterGroups) -- | An optional token returned from a prior request. Use this token for -- pagination of results from this action. If this parameter is specified, -- the response includes only results beyond the token, up to the value -- specified by @MaxResults@. describeParameterGroups_nextToken :: Lens.Lens' DescribeParameterGroups (Prelude.Maybe Prelude.Text) describeParameterGroups_nextToken = Lens.lens (\DescribeParameterGroups' {nextToken} -> nextToken) (\s@DescribeParameterGroups' {} a -> s {nextToken = a} :: DescribeParameterGroups) -- | The names of the parameter groups. describeParameterGroups_parameterGroupNames :: Lens.Lens' DescribeParameterGroups (Prelude.Maybe [Prelude.Text]) describeParameterGroups_parameterGroupNames = Lens.lens (\DescribeParameterGroups' {parameterGroupNames} -> parameterGroupNames) (\s@DescribeParameterGroups' {} a -> s {parameterGroupNames = a} :: DescribeParameterGroups) Prelude.. Lens.mapping Lens.coerced instance Core.AWSPager DescribeParameterGroups where page rq rs | Core.stop ( rs Lens.^? describeParameterGroupsResponse_nextToken Prelude.. Lens._Just ) = Prelude.Nothing | Core.stop ( rs Lens.^? describeParameterGroupsResponse_parameterGroups Prelude.. Lens._Just ) = Prelude.Nothing | Prelude.otherwise = Prelude.Just Prelude.$ rq Prelude.& describeParameterGroups_nextToken Lens..~ rs Lens.^? describeParameterGroupsResponse_nextToken Prelude.. Lens._Just instance Core.AWSRequest DescribeParameterGroups where type AWSResponse DescribeParameterGroups = DescribeParameterGroupsResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> DescribeParameterGroupsResponse' Prelude.<$> (x Data..?> "NextToken") Prelude.<*> ( x Data..?> "ParameterGroups" Core..!@ Prelude.mempty ) Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable DescribeParameterGroups where hashWithSalt _salt DescribeParameterGroups' {..} = _salt `Prelude.hashWithSalt` maxResults `Prelude.hashWithSalt` nextToken `Prelude.hashWithSalt` parameterGroupNames instance Prelude.NFData DescribeParameterGroups where rnf DescribeParameterGroups' {..} = Prelude.rnf maxResults `Prelude.seq` Prelude.rnf nextToken `Prelude.seq` Prelude.rnf parameterGroupNames instance Data.ToHeaders DescribeParameterGroups where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "AmazonDAXV3.DescribeParameterGroups" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON DescribeParameterGroups where toJSON DescribeParameterGroups' {..} = Data.object ( Prelude.catMaybes [ ("MaxResults" Data..=) Prelude.<$> maxResults, ("NextToken" Data..=) Prelude.<$> nextToken, ("ParameterGroupNames" Data..=) Prelude.<$> parameterGroupNames ] ) instance Data.ToPath DescribeParameterGroups where toPath = Prelude.const "/" instance Data.ToQuery DescribeParameterGroups where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDescribeParameterGroupsResponse' smart constructor. data DescribeParameterGroupsResponse = DescribeParameterGroupsResponse' { -- | Provides an identifier to allow retrieval of paginated results. nextToken :: Prelude.Maybe Prelude.Text, -- | An array of parameter groups. Each element in the array represents one -- parameter group. parameterGroups :: Prelude.Maybe [ParameterGroup], -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeParameterGroupsResponse' 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', 'describeParameterGroupsResponse_nextToken' - Provides an identifier to allow retrieval of paginated results. -- -- 'parameterGroups', 'describeParameterGroupsResponse_parameterGroups' - An array of parameter groups. Each element in the array represents one -- parameter group. -- -- 'httpStatus', 'describeParameterGroupsResponse_httpStatus' - The response's http status code. newDescribeParameterGroupsResponse :: -- | 'httpStatus' Prelude.Int -> DescribeParameterGroupsResponse newDescribeParameterGroupsResponse pHttpStatus_ = DescribeParameterGroupsResponse' { nextToken = Prelude.Nothing, parameterGroups = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | Provides an identifier to allow retrieval of paginated results. describeParameterGroupsResponse_nextToken :: Lens.Lens' DescribeParameterGroupsResponse (Prelude.Maybe Prelude.Text) describeParameterGroupsResponse_nextToken = Lens.lens (\DescribeParameterGroupsResponse' {nextToken} -> nextToken) (\s@DescribeParameterGroupsResponse' {} a -> s {nextToken = a} :: DescribeParameterGroupsResponse) -- | An array of parameter groups. Each element in the array represents one -- parameter group. describeParameterGroupsResponse_parameterGroups :: Lens.Lens' DescribeParameterGroupsResponse (Prelude.Maybe [ParameterGroup]) describeParameterGroupsResponse_parameterGroups = Lens.lens (\DescribeParameterGroupsResponse' {parameterGroups} -> parameterGroups) (\s@DescribeParameterGroupsResponse' {} a -> s {parameterGroups = a} :: DescribeParameterGroupsResponse) Prelude.. Lens.mapping Lens.coerced -- | The response's http status code. describeParameterGroupsResponse_httpStatus :: Lens.Lens' DescribeParameterGroupsResponse Prelude.Int describeParameterGroupsResponse_httpStatus = Lens.lens (\DescribeParameterGroupsResponse' {httpStatus} -> httpStatus) (\s@DescribeParameterGroupsResponse' {} a -> s {httpStatus = a} :: DescribeParameterGroupsResponse) instance Prelude.NFData DescribeParameterGroupsResponse where rnf DescribeParameterGroupsResponse' {..} = Prelude.rnf nextToken `Prelude.seq` Prelude.rnf parameterGroups `Prelude.seq` Prelude.rnf httpStatus