{-# 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.EC2.DescribeByoipCidrs
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Describes the IP address ranges that were specified in calls to
-- ProvisionByoipCidr.
--
-- To describe the address pools that were created when you provisioned the
-- address ranges, use DescribePublicIpv4Pools or DescribeIpv6Pools.
--
-- This operation returns paginated results.
module Amazonka.EC2.DescribeByoipCidrs
  ( -- * Creating a Request
    DescribeByoipCidrs (..),
    newDescribeByoipCidrs,

    -- * Request Lenses
    describeByoipCidrs_dryRun,
    describeByoipCidrs_nextToken,
    describeByoipCidrs_maxResults,

    -- * Destructuring the Response
    DescribeByoipCidrsResponse (..),
    newDescribeByoipCidrsResponse,

    -- * Response Lenses
    describeByoipCidrsResponse_byoipCidrs,
    describeByoipCidrsResponse_nextToken,
    describeByoipCidrsResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EC2.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newDescribeByoipCidrs' smart constructor.
data DescribeByoipCidrs = DescribeByoipCidrs'
  { -- | Checks whether you have the required permissions for the action, without
    -- actually making the request, and provides an error response. If you have
    -- the required permissions, the error response is @DryRunOperation@.
    -- Otherwise, it is @UnauthorizedOperation@.
    DescribeByoipCidrs -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
    -- | The token for the next page of results.
    DescribeByoipCidrs -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The maximum number of results to return with a single call. To retrieve
    -- the remaining results, make another call with the returned @nextToken@
    -- value.
    DescribeByoipCidrs -> Natural
maxResults :: Prelude.Natural
  }
  deriving (DescribeByoipCidrs -> DescribeByoipCidrs -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeByoipCidrs -> DescribeByoipCidrs -> Bool
$c/= :: DescribeByoipCidrs -> DescribeByoipCidrs -> Bool
== :: DescribeByoipCidrs -> DescribeByoipCidrs -> Bool
$c== :: DescribeByoipCidrs -> DescribeByoipCidrs -> Bool
Prelude.Eq, ReadPrec [DescribeByoipCidrs]
ReadPrec DescribeByoipCidrs
Int -> ReadS DescribeByoipCidrs
ReadS [DescribeByoipCidrs]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeByoipCidrs]
$creadListPrec :: ReadPrec [DescribeByoipCidrs]
readPrec :: ReadPrec DescribeByoipCidrs
$creadPrec :: ReadPrec DescribeByoipCidrs
readList :: ReadS [DescribeByoipCidrs]
$creadList :: ReadS [DescribeByoipCidrs]
readsPrec :: Int -> ReadS DescribeByoipCidrs
$creadsPrec :: Int -> ReadS DescribeByoipCidrs
Prelude.Read, Int -> DescribeByoipCidrs -> ShowS
[DescribeByoipCidrs] -> ShowS
DescribeByoipCidrs -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeByoipCidrs] -> ShowS
$cshowList :: [DescribeByoipCidrs] -> ShowS
show :: DescribeByoipCidrs -> String
$cshow :: DescribeByoipCidrs -> String
showsPrec :: Int -> DescribeByoipCidrs -> ShowS
$cshowsPrec :: Int -> DescribeByoipCidrs -> ShowS
Prelude.Show, forall x. Rep DescribeByoipCidrs x -> DescribeByoipCidrs
forall x. DescribeByoipCidrs -> Rep DescribeByoipCidrs x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeByoipCidrs x -> DescribeByoipCidrs
$cfrom :: forall x. DescribeByoipCidrs -> Rep DescribeByoipCidrs x
Prelude.Generic)

-- |
-- Create a value of 'DescribeByoipCidrs' 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:
--
-- 'dryRun', 'describeByoipCidrs_dryRun' - Checks whether you have the required permissions for the action, without
-- actually making the request, and provides an error response. If you have
-- the required permissions, the error response is @DryRunOperation@.
-- Otherwise, it is @UnauthorizedOperation@.
--
-- 'nextToken', 'describeByoipCidrs_nextToken' - The token for the next page of results.
--
-- 'maxResults', 'describeByoipCidrs_maxResults' - The maximum number of results to return with a single call. To retrieve
-- the remaining results, make another call with the returned @nextToken@
-- value.
newDescribeByoipCidrs ::
  -- | 'maxResults'
  Prelude.Natural ->
  DescribeByoipCidrs
newDescribeByoipCidrs :: Natural -> DescribeByoipCidrs
newDescribeByoipCidrs Natural
pMaxResults_ =
  DescribeByoipCidrs'
    { $sel:dryRun:DescribeByoipCidrs' :: Maybe Bool
dryRun = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeByoipCidrs' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:DescribeByoipCidrs' :: Natural
maxResults = Natural
pMaxResults_
    }

-- | Checks whether you have the required permissions for the action, without
-- actually making the request, and provides an error response. If you have
-- the required permissions, the error response is @DryRunOperation@.
-- Otherwise, it is @UnauthorizedOperation@.
describeByoipCidrs_dryRun :: Lens.Lens' DescribeByoipCidrs (Prelude.Maybe Prelude.Bool)
describeByoipCidrs_dryRun :: Lens' DescribeByoipCidrs (Maybe Bool)
describeByoipCidrs_dryRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeByoipCidrs' {Maybe Bool
dryRun :: Maybe Bool
$sel:dryRun:DescribeByoipCidrs' :: DescribeByoipCidrs -> Maybe Bool
dryRun} -> Maybe Bool
dryRun) (\s :: DescribeByoipCidrs
s@DescribeByoipCidrs' {} Maybe Bool
a -> DescribeByoipCidrs
s {$sel:dryRun:DescribeByoipCidrs' :: Maybe Bool
dryRun = Maybe Bool
a} :: DescribeByoipCidrs)

-- | The token for the next page of results.
describeByoipCidrs_nextToken :: Lens.Lens' DescribeByoipCidrs (Prelude.Maybe Prelude.Text)
describeByoipCidrs_nextToken :: Lens' DescribeByoipCidrs (Maybe Text)
describeByoipCidrs_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeByoipCidrs' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeByoipCidrs' :: DescribeByoipCidrs -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeByoipCidrs
s@DescribeByoipCidrs' {} Maybe Text
a -> DescribeByoipCidrs
s {$sel:nextToken:DescribeByoipCidrs' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeByoipCidrs)

-- | The maximum number of results to return with a single call. To retrieve
-- the remaining results, make another call with the returned @nextToken@
-- value.
describeByoipCidrs_maxResults :: Lens.Lens' DescribeByoipCidrs Prelude.Natural
describeByoipCidrs_maxResults :: Lens' DescribeByoipCidrs Natural
describeByoipCidrs_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeByoipCidrs' {Natural
maxResults :: Natural
$sel:maxResults:DescribeByoipCidrs' :: DescribeByoipCidrs -> Natural
maxResults} -> Natural
maxResults) (\s :: DescribeByoipCidrs
s@DescribeByoipCidrs' {} Natural
a -> DescribeByoipCidrs
s {$sel:maxResults:DescribeByoipCidrs' :: Natural
maxResults = Natural
a} :: DescribeByoipCidrs)

instance Core.AWSPager DescribeByoipCidrs where
  page :: DescribeByoipCidrs
-> AWSResponse DescribeByoipCidrs -> Maybe DescribeByoipCidrs
page DescribeByoipCidrs
rq AWSResponse DescribeByoipCidrs
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeByoipCidrs
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeByoipCidrsResponse (Maybe Text)
describeByoipCidrsResponse_nextToken
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeByoipCidrs
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeByoipCidrsResponse (Maybe [ByoipCidr])
describeByoipCidrsResponse_byoipCidrs
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ DescribeByoipCidrs
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribeByoipCidrs (Maybe Text)
describeByoipCidrs_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeByoipCidrs
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeByoipCidrsResponse (Maybe Text)
describeByoipCidrsResponse_nextToken
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance Core.AWSRequest DescribeByoipCidrs where
  type
    AWSResponse DescribeByoipCidrs =
      DescribeByoipCidrsResponse
  request :: (Service -> Service)
-> DescribeByoipCidrs -> Request DescribeByoipCidrs
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeByoipCidrs
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeByoipCidrs)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXML
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe [ByoipCidr]
-> Maybe Text -> Int -> DescribeByoipCidrsResponse
DescribeByoipCidrsResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( [Node]
x
                            forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"byoipCidrSet"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                            forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"nextToken")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable DescribeByoipCidrs where
  hashWithSalt :: Int -> DescribeByoipCidrs -> Int
hashWithSalt Int
_salt DescribeByoipCidrs' {Natural
Maybe Bool
Maybe Text
maxResults :: Natural
nextToken :: Maybe Text
dryRun :: Maybe Bool
$sel:maxResults:DescribeByoipCidrs' :: DescribeByoipCidrs -> Natural
$sel:nextToken:DescribeByoipCidrs' :: DescribeByoipCidrs -> Maybe Text
$sel:dryRun:DescribeByoipCidrs' :: DescribeByoipCidrs -> Maybe Bool
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
dryRun
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Natural
maxResults

instance Prelude.NFData DescribeByoipCidrs where
  rnf :: DescribeByoipCidrs -> ()
rnf DescribeByoipCidrs' {Natural
Maybe Bool
Maybe Text
maxResults :: Natural
nextToken :: Maybe Text
dryRun :: Maybe Bool
$sel:maxResults:DescribeByoipCidrs' :: DescribeByoipCidrs -> Natural
$sel:nextToken:DescribeByoipCidrs' :: DescribeByoipCidrs -> Maybe Text
$sel:dryRun:DescribeByoipCidrs' :: DescribeByoipCidrs -> Maybe Bool
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
dryRun
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Natural
maxResults

instance Data.ToHeaders DescribeByoipCidrs where
  toHeaders :: DescribeByoipCidrs -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToPath DescribeByoipCidrs where
  toPath :: DescribeByoipCidrs -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery DescribeByoipCidrs where
  toQuery :: DescribeByoipCidrs -> QueryString
toQuery DescribeByoipCidrs' {Natural
Maybe Bool
Maybe Text
maxResults :: Natural
nextToken :: Maybe Text
dryRun :: Maybe Bool
$sel:maxResults:DescribeByoipCidrs' :: DescribeByoipCidrs -> Natural
$sel:nextToken:DescribeByoipCidrs' :: DescribeByoipCidrs -> Maybe Text
$sel:dryRun:DescribeByoipCidrs' :: DescribeByoipCidrs -> Maybe Bool
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"DescribeByoipCidrs" :: Prelude.ByteString),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2016-11-15" :: Prelude.ByteString),
        ByteString
"DryRun" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
dryRun,
        ByteString
"NextToken" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken,
        ByteString
"MaxResults" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Natural
maxResults
      ]

-- | /See:/ 'newDescribeByoipCidrsResponse' smart constructor.
data DescribeByoipCidrsResponse = DescribeByoipCidrsResponse'
  { -- | Information about your address ranges.
    DescribeByoipCidrsResponse -> Maybe [ByoipCidr]
byoipCidrs :: Prelude.Maybe [ByoipCidr],
    -- | The token to use to retrieve the next page of results. This value is
    -- @null@ when there are no more results to return.
    DescribeByoipCidrsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeByoipCidrsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeByoipCidrsResponse -> DescribeByoipCidrsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeByoipCidrsResponse -> DescribeByoipCidrsResponse -> Bool
$c/= :: DescribeByoipCidrsResponse -> DescribeByoipCidrsResponse -> Bool
== :: DescribeByoipCidrsResponse -> DescribeByoipCidrsResponse -> Bool
$c== :: DescribeByoipCidrsResponse -> DescribeByoipCidrsResponse -> Bool
Prelude.Eq, ReadPrec [DescribeByoipCidrsResponse]
ReadPrec DescribeByoipCidrsResponse
Int -> ReadS DescribeByoipCidrsResponse
ReadS [DescribeByoipCidrsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeByoipCidrsResponse]
$creadListPrec :: ReadPrec [DescribeByoipCidrsResponse]
readPrec :: ReadPrec DescribeByoipCidrsResponse
$creadPrec :: ReadPrec DescribeByoipCidrsResponse
readList :: ReadS [DescribeByoipCidrsResponse]
$creadList :: ReadS [DescribeByoipCidrsResponse]
readsPrec :: Int -> ReadS DescribeByoipCidrsResponse
$creadsPrec :: Int -> ReadS DescribeByoipCidrsResponse
Prelude.Read, Int -> DescribeByoipCidrsResponse -> ShowS
[DescribeByoipCidrsResponse] -> ShowS
DescribeByoipCidrsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeByoipCidrsResponse] -> ShowS
$cshowList :: [DescribeByoipCidrsResponse] -> ShowS
show :: DescribeByoipCidrsResponse -> String
$cshow :: DescribeByoipCidrsResponse -> String
showsPrec :: Int -> DescribeByoipCidrsResponse -> ShowS
$cshowsPrec :: Int -> DescribeByoipCidrsResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeByoipCidrsResponse x -> DescribeByoipCidrsResponse
forall x.
DescribeByoipCidrsResponse -> Rep DescribeByoipCidrsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeByoipCidrsResponse x -> DescribeByoipCidrsResponse
$cfrom :: forall x.
DescribeByoipCidrsResponse -> Rep DescribeByoipCidrsResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeByoipCidrsResponse' 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:
--
-- 'byoipCidrs', 'describeByoipCidrsResponse_byoipCidrs' - Information about your address ranges.
--
-- 'nextToken', 'describeByoipCidrsResponse_nextToken' - The token to use to retrieve the next page of results. This value is
-- @null@ when there are no more results to return.
--
-- 'httpStatus', 'describeByoipCidrsResponse_httpStatus' - The response's http status code.
newDescribeByoipCidrsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeByoipCidrsResponse
newDescribeByoipCidrsResponse :: Int -> DescribeByoipCidrsResponse
newDescribeByoipCidrsResponse Int
pHttpStatus_ =
  DescribeByoipCidrsResponse'
    { $sel:byoipCidrs:DescribeByoipCidrsResponse' :: Maybe [ByoipCidr]
byoipCidrs =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeByoipCidrsResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeByoipCidrsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Information about your address ranges.
describeByoipCidrsResponse_byoipCidrs :: Lens.Lens' DescribeByoipCidrsResponse (Prelude.Maybe [ByoipCidr])
describeByoipCidrsResponse_byoipCidrs :: Lens' DescribeByoipCidrsResponse (Maybe [ByoipCidr])
describeByoipCidrsResponse_byoipCidrs = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeByoipCidrsResponse' {Maybe [ByoipCidr]
byoipCidrs :: Maybe [ByoipCidr]
$sel:byoipCidrs:DescribeByoipCidrsResponse' :: DescribeByoipCidrsResponse -> Maybe [ByoipCidr]
byoipCidrs} -> Maybe [ByoipCidr]
byoipCidrs) (\s :: DescribeByoipCidrsResponse
s@DescribeByoipCidrsResponse' {} Maybe [ByoipCidr]
a -> DescribeByoipCidrsResponse
s {$sel:byoipCidrs:DescribeByoipCidrsResponse' :: Maybe [ByoipCidr]
byoipCidrs = Maybe [ByoipCidr]
a} :: DescribeByoipCidrsResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The token to use to retrieve the next page of results. This value is
-- @null@ when there are no more results to return.
describeByoipCidrsResponse_nextToken :: Lens.Lens' DescribeByoipCidrsResponse (Prelude.Maybe Prelude.Text)
describeByoipCidrsResponse_nextToken :: Lens' DescribeByoipCidrsResponse (Maybe Text)
describeByoipCidrsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeByoipCidrsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeByoipCidrsResponse' :: DescribeByoipCidrsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeByoipCidrsResponse
s@DescribeByoipCidrsResponse' {} Maybe Text
a -> DescribeByoipCidrsResponse
s {$sel:nextToken:DescribeByoipCidrsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeByoipCidrsResponse)

-- | The response's http status code.
describeByoipCidrsResponse_httpStatus :: Lens.Lens' DescribeByoipCidrsResponse Prelude.Int
describeByoipCidrsResponse_httpStatus :: Lens' DescribeByoipCidrsResponse Int
describeByoipCidrsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeByoipCidrsResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeByoipCidrsResponse' :: DescribeByoipCidrsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeByoipCidrsResponse
s@DescribeByoipCidrsResponse' {} Int
a -> DescribeByoipCidrsResponse
s {$sel:httpStatus:DescribeByoipCidrsResponse' :: Int
httpStatus = Int
a} :: DescribeByoipCidrsResponse)

instance Prelude.NFData DescribeByoipCidrsResponse where
  rnf :: DescribeByoipCidrsResponse -> ()
rnf DescribeByoipCidrsResponse' {Int
Maybe [ByoipCidr]
Maybe Text
httpStatus :: Int
nextToken :: Maybe Text
byoipCidrs :: Maybe [ByoipCidr]
$sel:httpStatus:DescribeByoipCidrsResponse' :: DescribeByoipCidrsResponse -> Int
$sel:nextToken:DescribeByoipCidrsResponse' :: DescribeByoipCidrsResponse -> Maybe Text
$sel:byoipCidrs:DescribeByoipCidrsResponse' :: DescribeByoipCidrsResponse -> Maybe [ByoipCidr]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [ByoipCidr]
byoipCidrs
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus