{-# 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.ProvisionIpamPoolCidr
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Provision a CIDR to an IPAM pool. You can use this action to provision
-- new CIDRs to a top-level pool or to transfer a CIDR from a top-level
-- pool to a pool within it.
--
-- For more information, see
-- <https://docs.aws.amazon.com/vpc/latest/ipam/prov-cidr-ipam.html Provision CIDRs to pools>
-- in the /Amazon VPC IPAM User Guide/.
module Amazonka.EC2.ProvisionIpamPoolCidr
  ( -- * Creating a Request
    ProvisionIpamPoolCidr (..),
    newProvisionIpamPoolCidr,

    -- * Request Lenses
    provisionIpamPoolCidr_cidr,
    provisionIpamPoolCidr_cidrAuthorizationContext,
    provisionIpamPoolCidr_dryRun,
    provisionIpamPoolCidr_ipamPoolId,

    -- * Destructuring the Response
    ProvisionIpamPoolCidrResponse (..),
    newProvisionIpamPoolCidrResponse,

    -- * Response Lenses
    provisionIpamPoolCidrResponse_ipamPoolCidr,
    provisionIpamPoolCidrResponse_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:/ 'newProvisionIpamPoolCidr' smart constructor.
data ProvisionIpamPoolCidr = ProvisionIpamPoolCidr'
  { -- | The CIDR you want to assign to the IPAM pool.
    ProvisionIpamPoolCidr -> Maybe Text
cidr :: Prelude.Maybe Prelude.Text,
    -- | A signed document that proves that you are authorized to bring a
    -- specified IP address range to Amazon using BYOIP. This option applies to
    -- public pools only.
    ProvisionIpamPoolCidr -> Maybe IpamCidrAuthorizationContext
cidrAuthorizationContext :: Prelude.Maybe IpamCidrAuthorizationContext,
    -- | A check for 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@.
    ProvisionIpamPoolCidr -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
    -- | The ID of the IPAM pool to which you want to assign a CIDR.
    ProvisionIpamPoolCidr -> Text
ipamPoolId :: Prelude.Text
  }
  deriving (ProvisionIpamPoolCidr -> ProvisionIpamPoolCidr -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProvisionIpamPoolCidr -> ProvisionIpamPoolCidr -> Bool
$c/= :: ProvisionIpamPoolCidr -> ProvisionIpamPoolCidr -> Bool
== :: ProvisionIpamPoolCidr -> ProvisionIpamPoolCidr -> Bool
$c== :: ProvisionIpamPoolCidr -> ProvisionIpamPoolCidr -> Bool
Prelude.Eq, ReadPrec [ProvisionIpamPoolCidr]
ReadPrec ProvisionIpamPoolCidr
Int -> ReadS ProvisionIpamPoolCidr
ReadS [ProvisionIpamPoolCidr]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ProvisionIpamPoolCidr]
$creadListPrec :: ReadPrec [ProvisionIpamPoolCidr]
readPrec :: ReadPrec ProvisionIpamPoolCidr
$creadPrec :: ReadPrec ProvisionIpamPoolCidr
readList :: ReadS [ProvisionIpamPoolCidr]
$creadList :: ReadS [ProvisionIpamPoolCidr]
readsPrec :: Int -> ReadS ProvisionIpamPoolCidr
$creadsPrec :: Int -> ReadS ProvisionIpamPoolCidr
Prelude.Read, Int -> ProvisionIpamPoolCidr -> ShowS
[ProvisionIpamPoolCidr] -> ShowS
ProvisionIpamPoolCidr -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProvisionIpamPoolCidr] -> ShowS
$cshowList :: [ProvisionIpamPoolCidr] -> ShowS
show :: ProvisionIpamPoolCidr -> String
$cshow :: ProvisionIpamPoolCidr -> String
showsPrec :: Int -> ProvisionIpamPoolCidr -> ShowS
$cshowsPrec :: Int -> ProvisionIpamPoolCidr -> ShowS
Prelude.Show, forall x. Rep ProvisionIpamPoolCidr x -> ProvisionIpamPoolCidr
forall x. ProvisionIpamPoolCidr -> Rep ProvisionIpamPoolCidr x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ProvisionIpamPoolCidr x -> ProvisionIpamPoolCidr
$cfrom :: forall x. ProvisionIpamPoolCidr -> Rep ProvisionIpamPoolCidr x
Prelude.Generic)

-- |
-- Create a value of 'ProvisionIpamPoolCidr' 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:
--
-- 'cidr', 'provisionIpamPoolCidr_cidr' - The CIDR you want to assign to the IPAM pool.
--
-- 'cidrAuthorizationContext', 'provisionIpamPoolCidr_cidrAuthorizationContext' - A signed document that proves that you are authorized to bring a
-- specified IP address range to Amazon using BYOIP. This option applies to
-- public pools only.
--
-- 'dryRun', 'provisionIpamPoolCidr_dryRun' - A check for 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@.
--
-- 'ipamPoolId', 'provisionIpamPoolCidr_ipamPoolId' - The ID of the IPAM pool to which you want to assign a CIDR.
newProvisionIpamPoolCidr ::
  -- | 'ipamPoolId'
  Prelude.Text ->
  ProvisionIpamPoolCidr
newProvisionIpamPoolCidr :: Text -> ProvisionIpamPoolCidr
newProvisionIpamPoolCidr Text
pIpamPoolId_ =
  ProvisionIpamPoolCidr'
    { $sel:cidr:ProvisionIpamPoolCidr' :: Maybe Text
cidr = forall a. Maybe a
Prelude.Nothing,
      $sel:cidrAuthorizationContext:ProvisionIpamPoolCidr' :: Maybe IpamCidrAuthorizationContext
cidrAuthorizationContext = forall a. Maybe a
Prelude.Nothing,
      $sel:dryRun:ProvisionIpamPoolCidr' :: Maybe Bool
dryRun = forall a. Maybe a
Prelude.Nothing,
      $sel:ipamPoolId:ProvisionIpamPoolCidr' :: Text
ipamPoolId = Text
pIpamPoolId_
    }

-- | The CIDR you want to assign to the IPAM pool.
provisionIpamPoolCidr_cidr :: Lens.Lens' ProvisionIpamPoolCidr (Prelude.Maybe Prelude.Text)
provisionIpamPoolCidr_cidr :: Lens' ProvisionIpamPoolCidr (Maybe Text)
provisionIpamPoolCidr_cidr = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProvisionIpamPoolCidr' {Maybe Text
cidr :: Maybe Text
$sel:cidr:ProvisionIpamPoolCidr' :: ProvisionIpamPoolCidr -> Maybe Text
cidr} -> Maybe Text
cidr) (\s :: ProvisionIpamPoolCidr
s@ProvisionIpamPoolCidr' {} Maybe Text
a -> ProvisionIpamPoolCidr
s {$sel:cidr:ProvisionIpamPoolCidr' :: Maybe Text
cidr = Maybe Text
a} :: ProvisionIpamPoolCidr)

-- | A signed document that proves that you are authorized to bring a
-- specified IP address range to Amazon using BYOIP. This option applies to
-- public pools only.
provisionIpamPoolCidr_cidrAuthorizationContext :: Lens.Lens' ProvisionIpamPoolCidr (Prelude.Maybe IpamCidrAuthorizationContext)
provisionIpamPoolCidr_cidrAuthorizationContext :: Lens' ProvisionIpamPoolCidr (Maybe IpamCidrAuthorizationContext)
provisionIpamPoolCidr_cidrAuthorizationContext = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProvisionIpamPoolCidr' {Maybe IpamCidrAuthorizationContext
cidrAuthorizationContext :: Maybe IpamCidrAuthorizationContext
$sel:cidrAuthorizationContext:ProvisionIpamPoolCidr' :: ProvisionIpamPoolCidr -> Maybe IpamCidrAuthorizationContext
cidrAuthorizationContext} -> Maybe IpamCidrAuthorizationContext
cidrAuthorizationContext) (\s :: ProvisionIpamPoolCidr
s@ProvisionIpamPoolCidr' {} Maybe IpamCidrAuthorizationContext
a -> ProvisionIpamPoolCidr
s {$sel:cidrAuthorizationContext:ProvisionIpamPoolCidr' :: Maybe IpamCidrAuthorizationContext
cidrAuthorizationContext = Maybe IpamCidrAuthorizationContext
a} :: ProvisionIpamPoolCidr)

-- | A check for 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@.
provisionIpamPoolCidr_dryRun :: Lens.Lens' ProvisionIpamPoolCidr (Prelude.Maybe Prelude.Bool)
provisionIpamPoolCidr_dryRun :: Lens' ProvisionIpamPoolCidr (Maybe Bool)
provisionIpamPoolCidr_dryRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProvisionIpamPoolCidr' {Maybe Bool
dryRun :: Maybe Bool
$sel:dryRun:ProvisionIpamPoolCidr' :: ProvisionIpamPoolCidr -> Maybe Bool
dryRun} -> Maybe Bool
dryRun) (\s :: ProvisionIpamPoolCidr
s@ProvisionIpamPoolCidr' {} Maybe Bool
a -> ProvisionIpamPoolCidr
s {$sel:dryRun:ProvisionIpamPoolCidr' :: Maybe Bool
dryRun = Maybe Bool
a} :: ProvisionIpamPoolCidr)

-- | The ID of the IPAM pool to which you want to assign a CIDR.
provisionIpamPoolCidr_ipamPoolId :: Lens.Lens' ProvisionIpamPoolCidr Prelude.Text
provisionIpamPoolCidr_ipamPoolId :: Lens' ProvisionIpamPoolCidr Text
provisionIpamPoolCidr_ipamPoolId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProvisionIpamPoolCidr' {Text
ipamPoolId :: Text
$sel:ipamPoolId:ProvisionIpamPoolCidr' :: ProvisionIpamPoolCidr -> Text
ipamPoolId} -> Text
ipamPoolId) (\s :: ProvisionIpamPoolCidr
s@ProvisionIpamPoolCidr' {} Text
a -> ProvisionIpamPoolCidr
s {$sel:ipamPoolId:ProvisionIpamPoolCidr' :: Text
ipamPoolId = Text
a} :: ProvisionIpamPoolCidr)

instance Core.AWSRequest ProvisionIpamPoolCidr where
  type
    AWSResponse ProvisionIpamPoolCidr =
      ProvisionIpamPoolCidrResponse
  request :: (Service -> Service)
-> ProvisionIpamPoolCidr -> Request ProvisionIpamPoolCidr
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 ProvisionIpamPoolCidr
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ProvisionIpamPoolCidr)))
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 IpamPoolCidr -> Int -> ProvisionIpamPoolCidrResponse
ProvisionIpamPoolCidrResponse'
            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
"ipamPoolCidr")
            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 ProvisionIpamPoolCidr where
  hashWithSalt :: Int -> ProvisionIpamPoolCidr -> Int
hashWithSalt Int
_salt ProvisionIpamPoolCidr' {Maybe Bool
Maybe Text
Maybe IpamCidrAuthorizationContext
Text
ipamPoolId :: Text
dryRun :: Maybe Bool
cidrAuthorizationContext :: Maybe IpamCidrAuthorizationContext
cidr :: Maybe Text
$sel:ipamPoolId:ProvisionIpamPoolCidr' :: ProvisionIpamPoolCidr -> Text
$sel:dryRun:ProvisionIpamPoolCidr' :: ProvisionIpamPoolCidr -> Maybe Bool
$sel:cidrAuthorizationContext:ProvisionIpamPoolCidr' :: ProvisionIpamPoolCidr -> Maybe IpamCidrAuthorizationContext
$sel:cidr:ProvisionIpamPoolCidr' :: ProvisionIpamPoolCidr -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
cidr
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe IpamCidrAuthorizationContext
cidrAuthorizationContext
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
dryRun
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
ipamPoolId

instance Prelude.NFData ProvisionIpamPoolCidr where
  rnf :: ProvisionIpamPoolCidr -> ()
rnf ProvisionIpamPoolCidr' {Maybe Bool
Maybe Text
Maybe IpamCidrAuthorizationContext
Text
ipamPoolId :: Text
dryRun :: Maybe Bool
cidrAuthorizationContext :: Maybe IpamCidrAuthorizationContext
cidr :: Maybe Text
$sel:ipamPoolId:ProvisionIpamPoolCidr' :: ProvisionIpamPoolCidr -> Text
$sel:dryRun:ProvisionIpamPoolCidr' :: ProvisionIpamPoolCidr -> Maybe Bool
$sel:cidrAuthorizationContext:ProvisionIpamPoolCidr' :: ProvisionIpamPoolCidr -> Maybe IpamCidrAuthorizationContext
$sel:cidr:ProvisionIpamPoolCidr' :: ProvisionIpamPoolCidr -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
cidr
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe IpamCidrAuthorizationContext
cidrAuthorizationContext
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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 Text
ipamPoolId

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

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

instance Data.ToQuery ProvisionIpamPoolCidr where
  toQuery :: ProvisionIpamPoolCidr -> QueryString
toQuery ProvisionIpamPoolCidr' {Maybe Bool
Maybe Text
Maybe IpamCidrAuthorizationContext
Text
ipamPoolId :: Text
dryRun :: Maybe Bool
cidrAuthorizationContext :: Maybe IpamCidrAuthorizationContext
cidr :: Maybe Text
$sel:ipamPoolId:ProvisionIpamPoolCidr' :: ProvisionIpamPoolCidr -> Text
$sel:dryRun:ProvisionIpamPoolCidr' :: ProvisionIpamPoolCidr -> Maybe Bool
$sel:cidrAuthorizationContext:ProvisionIpamPoolCidr' :: ProvisionIpamPoolCidr -> Maybe IpamCidrAuthorizationContext
$sel:cidr:ProvisionIpamPoolCidr' :: ProvisionIpamPoolCidr -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"ProvisionIpamPoolCidr" :: Prelude.ByteString),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2016-11-15" :: Prelude.ByteString),
        ByteString
"Cidr" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
cidr,
        ByteString
"CidrAuthorizationContext"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe IpamCidrAuthorizationContext
cidrAuthorizationContext,
        ByteString
"DryRun" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
dryRun,
        ByteString
"IpamPoolId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
ipamPoolId
      ]

-- | /See:/ 'newProvisionIpamPoolCidrResponse' smart constructor.
data ProvisionIpamPoolCidrResponse = ProvisionIpamPoolCidrResponse'
  { -- | Information about the provisioned CIDR.
    ProvisionIpamPoolCidrResponse -> Maybe IpamPoolCidr
ipamPoolCidr :: Prelude.Maybe IpamPoolCidr,
    -- | The response's http status code.
    ProvisionIpamPoolCidrResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ProvisionIpamPoolCidrResponse
-> ProvisionIpamPoolCidrResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProvisionIpamPoolCidrResponse
-> ProvisionIpamPoolCidrResponse -> Bool
$c/= :: ProvisionIpamPoolCidrResponse
-> ProvisionIpamPoolCidrResponse -> Bool
== :: ProvisionIpamPoolCidrResponse
-> ProvisionIpamPoolCidrResponse -> Bool
$c== :: ProvisionIpamPoolCidrResponse
-> ProvisionIpamPoolCidrResponse -> Bool
Prelude.Eq, ReadPrec [ProvisionIpamPoolCidrResponse]
ReadPrec ProvisionIpamPoolCidrResponse
Int -> ReadS ProvisionIpamPoolCidrResponse
ReadS [ProvisionIpamPoolCidrResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ProvisionIpamPoolCidrResponse]
$creadListPrec :: ReadPrec [ProvisionIpamPoolCidrResponse]
readPrec :: ReadPrec ProvisionIpamPoolCidrResponse
$creadPrec :: ReadPrec ProvisionIpamPoolCidrResponse
readList :: ReadS [ProvisionIpamPoolCidrResponse]
$creadList :: ReadS [ProvisionIpamPoolCidrResponse]
readsPrec :: Int -> ReadS ProvisionIpamPoolCidrResponse
$creadsPrec :: Int -> ReadS ProvisionIpamPoolCidrResponse
Prelude.Read, Int -> ProvisionIpamPoolCidrResponse -> ShowS
[ProvisionIpamPoolCidrResponse] -> ShowS
ProvisionIpamPoolCidrResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProvisionIpamPoolCidrResponse] -> ShowS
$cshowList :: [ProvisionIpamPoolCidrResponse] -> ShowS
show :: ProvisionIpamPoolCidrResponse -> String
$cshow :: ProvisionIpamPoolCidrResponse -> String
showsPrec :: Int -> ProvisionIpamPoolCidrResponse -> ShowS
$cshowsPrec :: Int -> ProvisionIpamPoolCidrResponse -> ShowS
Prelude.Show, forall x.
Rep ProvisionIpamPoolCidrResponse x
-> ProvisionIpamPoolCidrResponse
forall x.
ProvisionIpamPoolCidrResponse
-> Rep ProvisionIpamPoolCidrResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ProvisionIpamPoolCidrResponse x
-> ProvisionIpamPoolCidrResponse
$cfrom :: forall x.
ProvisionIpamPoolCidrResponse
-> Rep ProvisionIpamPoolCidrResponse x
Prelude.Generic)

-- |
-- Create a value of 'ProvisionIpamPoolCidrResponse' 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:
--
-- 'ipamPoolCidr', 'provisionIpamPoolCidrResponse_ipamPoolCidr' - Information about the provisioned CIDR.
--
-- 'httpStatus', 'provisionIpamPoolCidrResponse_httpStatus' - The response's http status code.
newProvisionIpamPoolCidrResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ProvisionIpamPoolCidrResponse
newProvisionIpamPoolCidrResponse :: Int -> ProvisionIpamPoolCidrResponse
newProvisionIpamPoolCidrResponse Int
pHttpStatus_ =
  ProvisionIpamPoolCidrResponse'
    { $sel:ipamPoolCidr:ProvisionIpamPoolCidrResponse' :: Maybe IpamPoolCidr
ipamPoolCidr =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ProvisionIpamPoolCidrResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Information about the provisioned CIDR.
provisionIpamPoolCidrResponse_ipamPoolCidr :: Lens.Lens' ProvisionIpamPoolCidrResponse (Prelude.Maybe IpamPoolCidr)
provisionIpamPoolCidrResponse_ipamPoolCidr :: Lens' ProvisionIpamPoolCidrResponse (Maybe IpamPoolCidr)
provisionIpamPoolCidrResponse_ipamPoolCidr = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProvisionIpamPoolCidrResponse' {Maybe IpamPoolCidr
ipamPoolCidr :: Maybe IpamPoolCidr
$sel:ipamPoolCidr:ProvisionIpamPoolCidrResponse' :: ProvisionIpamPoolCidrResponse -> Maybe IpamPoolCidr
ipamPoolCidr} -> Maybe IpamPoolCidr
ipamPoolCidr) (\s :: ProvisionIpamPoolCidrResponse
s@ProvisionIpamPoolCidrResponse' {} Maybe IpamPoolCidr
a -> ProvisionIpamPoolCidrResponse
s {$sel:ipamPoolCidr:ProvisionIpamPoolCidrResponse' :: Maybe IpamPoolCidr
ipamPoolCidr = Maybe IpamPoolCidr
a} :: ProvisionIpamPoolCidrResponse)

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

instance Prelude.NFData ProvisionIpamPoolCidrResponse where
  rnf :: ProvisionIpamPoolCidrResponse -> ()
rnf ProvisionIpamPoolCidrResponse' {Int
Maybe IpamPoolCidr
httpStatus :: Int
ipamPoolCidr :: Maybe IpamPoolCidr
$sel:httpStatus:ProvisionIpamPoolCidrResponse' :: ProvisionIpamPoolCidrResponse -> Int
$sel:ipamPoolCidr:ProvisionIpamPoolCidrResponse' :: ProvisionIpamPoolCidrResponse -> Maybe IpamPoolCidr
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe IpamPoolCidr
ipamPoolCidr
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus