amazonka-route53resolver-2.0: gen/Amazonka/Route53Resolver/ListResolverRules.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.Route53Resolver.ListResolverRules
-- 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 the Resolver rules that were created using the current Amazon Web
-- Services account.
--
-- This operation returns paginated results.
module Amazonka.Route53Resolver.ListResolverRules
( -- * Creating a Request
ListResolverRules (..),
newListResolverRules,
-- * Request Lenses
listResolverRules_filters,
listResolverRules_maxResults,
listResolverRules_nextToken,
-- * Destructuring the Response
ListResolverRulesResponse (..),
newListResolverRulesResponse,
-- * Response Lenses
listResolverRulesResponse_maxResults,
listResolverRulesResponse_nextToken,
listResolverRulesResponse_resolverRules,
listResolverRulesResponse_httpStatus,
)
where
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
import Amazonka.Route53Resolver.Types
-- | /See:/ 'newListResolverRules' smart constructor.
data ListResolverRules = ListResolverRules'
{ -- | An optional specification to return a subset of Resolver rules, such as
-- all Resolver rules that are associated with the same Resolver endpoint.
--
-- If you submit a second or subsequent @ListResolverRules@ request and
-- specify the @NextToken@ parameter, you must use the same values for
-- @Filters@, if any, as in the previous request.
filters :: Prelude.Maybe [Filter],
-- | The maximum number of Resolver rules that you want to return in the
-- response to a @ListResolverRules@ request. If you don\'t specify a value
-- for @MaxResults@, Resolver returns up to 100 Resolver rules.
maxResults :: Prelude.Maybe Prelude.Natural,
-- | For the first @ListResolverRules@ request, omit this value.
--
-- If you have more than @MaxResults@ Resolver rules, you can submit
-- another @ListResolverRules@ request to get the next group of Resolver
-- rules. In the next request, specify the value of @NextToken@ from the
-- previous response.
nextToken :: Prelude.Maybe Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'ListResolverRules' 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:
--
-- 'filters', 'listResolverRules_filters' - An optional specification to return a subset of Resolver rules, such as
-- all Resolver rules that are associated with the same Resolver endpoint.
--
-- If you submit a second or subsequent @ListResolverRules@ request and
-- specify the @NextToken@ parameter, you must use the same values for
-- @Filters@, if any, as in the previous request.
--
-- 'maxResults', 'listResolverRules_maxResults' - The maximum number of Resolver rules that you want to return in the
-- response to a @ListResolverRules@ request. If you don\'t specify a value
-- for @MaxResults@, Resolver returns up to 100 Resolver rules.
--
-- 'nextToken', 'listResolverRules_nextToken' - For the first @ListResolverRules@ request, omit this value.
--
-- If you have more than @MaxResults@ Resolver rules, you can submit
-- another @ListResolverRules@ request to get the next group of Resolver
-- rules. In the next request, specify the value of @NextToken@ from the
-- previous response.
newListResolverRules ::
ListResolverRules
newListResolverRules =
ListResolverRules'
{ filters = Prelude.Nothing,
maxResults = Prelude.Nothing,
nextToken = Prelude.Nothing
}
-- | An optional specification to return a subset of Resolver rules, such as
-- all Resolver rules that are associated with the same Resolver endpoint.
--
-- If you submit a second or subsequent @ListResolverRules@ request and
-- specify the @NextToken@ parameter, you must use the same values for
-- @Filters@, if any, as in the previous request.
listResolverRules_filters :: Lens.Lens' ListResolverRules (Prelude.Maybe [Filter])
listResolverRules_filters = Lens.lens (\ListResolverRules' {filters} -> filters) (\s@ListResolverRules' {} a -> s {filters = a} :: ListResolverRules) Prelude.. Lens.mapping Lens.coerced
-- | The maximum number of Resolver rules that you want to return in the
-- response to a @ListResolverRules@ request. If you don\'t specify a value
-- for @MaxResults@, Resolver returns up to 100 Resolver rules.
listResolverRules_maxResults :: Lens.Lens' ListResolverRules (Prelude.Maybe Prelude.Natural)
listResolverRules_maxResults = Lens.lens (\ListResolverRules' {maxResults} -> maxResults) (\s@ListResolverRules' {} a -> s {maxResults = a} :: ListResolverRules)
-- | For the first @ListResolverRules@ request, omit this value.
--
-- If you have more than @MaxResults@ Resolver rules, you can submit
-- another @ListResolverRules@ request to get the next group of Resolver
-- rules. In the next request, specify the value of @NextToken@ from the
-- previous response.
listResolverRules_nextToken :: Lens.Lens' ListResolverRules (Prelude.Maybe Prelude.Text)
listResolverRules_nextToken = Lens.lens (\ListResolverRules' {nextToken} -> nextToken) (\s@ListResolverRules' {} a -> s {nextToken = a} :: ListResolverRules)
instance Core.AWSPager ListResolverRules where
page rq rs
| Core.stop
( rs
Lens.^? listResolverRulesResponse_nextToken
Prelude.. Lens._Just
) =
Prelude.Nothing
| Core.stop
( rs
Lens.^? listResolverRulesResponse_resolverRules
Prelude.. Lens._Just
) =
Prelude.Nothing
| Prelude.otherwise =
Prelude.Just
Prelude.$ rq
Prelude.& listResolverRules_nextToken
Lens..~ rs
Lens.^? listResolverRulesResponse_nextToken
Prelude.. Lens._Just
instance Core.AWSRequest ListResolverRules where
type
AWSResponse ListResolverRules =
ListResolverRulesResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
ListResolverRulesResponse'
Prelude.<$> (x Data..?> "MaxResults")
Prelude.<*> (x Data..?> "NextToken")
Prelude.<*> (x Data..?> "ResolverRules" Core..!@ Prelude.mempty)
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable ListResolverRules where
hashWithSalt _salt ListResolverRules' {..} =
_salt
`Prelude.hashWithSalt` filters
`Prelude.hashWithSalt` maxResults
`Prelude.hashWithSalt` nextToken
instance Prelude.NFData ListResolverRules where
rnf ListResolverRules' {..} =
Prelude.rnf filters
`Prelude.seq` Prelude.rnf maxResults
`Prelude.seq` Prelude.rnf nextToken
instance Data.ToHeaders ListResolverRules where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "X-Amz-Target"
Data.=# ( "Route53Resolver.ListResolverRules" ::
Prelude.ByteString
),
"Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON ListResolverRules where
toJSON ListResolverRules' {..} =
Data.object
( Prelude.catMaybes
[ ("Filters" Data..=) Prelude.<$> filters,
("MaxResults" Data..=) Prelude.<$> maxResults,
("NextToken" Data..=) Prelude.<$> nextToken
]
)
instance Data.ToPath ListResolverRules where
toPath = Prelude.const "/"
instance Data.ToQuery ListResolverRules where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newListResolverRulesResponse' smart constructor.
data ListResolverRulesResponse = ListResolverRulesResponse'
{ -- | The value that you specified for @MaxResults@ in the request.
maxResults :: Prelude.Maybe Prelude.Natural,
-- | If more than @MaxResults@ Resolver rules match the specified criteria,
-- you can submit another @ListResolverRules@ request to get the next group
-- of results. In the next request, specify the value of @NextToken@ from
-- the previous response.
nextToken :: Prelude.Maybe Prelude.Text,
-- | The Resolver rules that were created using the current Amazon Web
-- Services account and that match the specified filters, if any.
resolverRules :: Prelude.Maybe [ResolverRule],
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'ListResolverRulesResponse' 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:
--
-- 'maxResults', 'listResolverRulesResponse_maxResults' - The value that you specified for @MaxResults@ in the request.
--
-- 'nextToken', 'listResolverRulesResponse_nextToken' - If more than @MaxResults@ Resolver rules match the specified criteria,
-- you can submit another @ListResolverRules@ request to get the next group
-- of results. In the next request, specify the value of @NextToken@ from
-- the previous response.
--
-- 'resolverRules', 'listResolverRulesResponse_resolverRules' - The Resolver rules that were created using the current Amazon Web
-- Services account and that match the specified filters, if any.
--
-- 'httpStatus', 'listResolverRulesResponse_httpStatus' - The response's http status code.
newListResolverRulesResponse ::
-- | 'httpStatus'
Prelude.Int ->
ListResolverRulesResponse
newListResolverRulesResponse pHttpStatus_ =
ListResolverRulesResponse'
{ maxResults =
Prelude.Nothing,
nextToken = Prelude.Nothing,
resolverRules = Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | The value that you specified for @MaxResults@ in the request.
listResolverRulesResponse_maxResults :: Lens.Lens' ListResolverRulesResponse (Prelude.Maybe Prelude.Natural)
listResolverRulesResponse_maxResults = Lens.lens (\ListResolverRulesResponse' {maxResults} -> maxResults) (\s@ListResolverRulesResponse' {} a -> s {maxResults = a} :: ListResolverRulesResponse)
-- | If more than @MaxResults@ Resolver rules match the specified criteria,
-- you can submit another @ListResolverRules@ request to get the next group
-- of results. In the next request, specify the value of @NextToken@ from
-- the previous response.
listResolverRulesResponse_nextToken :: Lens.Lens' ListResolverRulesResponse (Prelude.Maybe Prelude.Text)
listResolverRulesResponse_nextToken = Lens.lens (\ListResolverRulesResponse' {nextToken} -> nextToken) (\s@ListResolverRulesResponse' {} a -> s {nextToken = a} :: ListResolverRulesResponse)
-- | The Resolver rules that were created using the current Amazon Web
-- Services account and that match the specified filters, if any.
listResolverRulesResponse_resolverRules :: Lens.Lens' ListResolverRulesResponse (Prelude.Maybe [ResolverRule])
listResolverRulesResponse_resolverRules = Lens.lens (\ListResolverRulesResponse' {resolverRules} -> resolverRules) (\s@ListResolverRulesResponse' {} a -> s {resolverRules = a} :: ListResolverRulesResponse) Prelude.. Lens.mapping Lens.coerced
-- | The response's http status code.
listResolverRulesResponse_httpStatus :: Lens.Lens' ListResolverRulesResponse Prelude.Int
listResolverRulesResponse_httpStatus = Lens.lens (\ListResolverRulesResponse' {httpStatus} -> httpStatus) (\s@ListResolverRulesResponse' {} a -> s {httpStatus = a} :: ListResolverRulesResponse)
instance Prelude.NFData ListResolverRulesResponse where
rnf ListResolverRulesResponse' {..} =
Prelude.rnf maxResults
`Prelude.seq` Prelude.rnf nextToken
`Prelude.seq` Prelude.rnf resolverRules
`Prelude.seq` Prelude.rnf httpStatus