{-# 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.ModifyIpamResourceCidr
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Modify a resource CIDR. You can use this action to transfer resource
-- CIDRs between scopes and ignore resource CIDRs that you do not want to
-- manage. If set to false, the resource will not be tracked for overlap,
-- it cannot be auto-imported into a pool, and it will be removed from any
-- pool it has an allocation in.
--
-- For more information, see
-- <https://docs.aws.amazon.com/vpc/latest/ipam/move-resource-ipam.html Move resource CIDRs between scopes>
-- and
-- <https://docs.aws.amazon.com/vpc/latest/ipam/change-monitoring-state-ipam.html Change the monitoring state of resource CIDRs>
-- in the /Amazon VPC IPAM User Guide/.
module Amazonka.EC2.ModifyIpamResourceCidr
  ( -- * Creating a Request
    ModifyIpamResourceCidr (..),
    newModifyIpamResourceCidr,

    -- * Request Lenses
    modifyIpamResourceCidr_destinationIpamScopeId,
    modifyIpamResourceCidr_dryRun,
    modifyIpamResourceCidr_resourceId,
    modifyIpamResourceCidr_resourceCidr,
    modifyIpamResourceCidr_resourceRegion,
    modifyIpamResourceCidr_currentIpamScopeId,
    modifyIpamResourceCidr_monitored,

    -- * Destructuring the Response
    ModifyIpamResourceCidrResponse (..),
    newModifyIpamResourceCidrResponse,

    -- * Response Lenses
    modifyIpamResourceCidrResponse_ipamResourceCidr,
    modifyIpamResourceCidrResponse_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:/ 'newModifyIpamResourceCidr' smart constructor.
data ModifyIpamResourceCidr = ModifyIpamResourceCidr'
  { -- | The ID of the scope you want to transfer the resource CIDR to.
    ModifyIpamResourceCidr -> Maybe Text
destinationIpamScopeId :: Prelude.Maybe Prelude.Text,
    -- | 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@.
    ModifyIpamResourceCidr -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
    -- | The ID of the resource you want to modify.
    ModifyIpamResourceCidr -> Text
resourceId :: Prelude.Text,
    -- | The CIDR of the resource you want to modify.
    ModifyIpamResourceCidr -> Text
resourceCidr :: Prelude.Text,
    -- | The Amazon Web Services Region of the resource you want to modify.
    ModifyIpamResourceCidr -> Text
resourceRegion :: Prelude.Text,
    -- | The ID of the current scope that the resource CIDR is in.
    ModifyIpamResourceCidr -> Text
currentIpamScopeId :: Prelude.Text,
    -- | Determines if the resource is monitored by IPAM. If a resource is
    -- monitored, the resource is discovered by IPAM and you can view details
    -- about the resource’s CIDR.
    ModifyIpamResourceCidr -> Bool
monitored :: Prelude.Bool
  }
  deriving (ModifyIpamResourceCidr -> ModifyIpamResourceCidr -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ModifyIpamResourceCidr -> ModifyIpamResourceCidr -> Bool
$c/= :: ModifyIpamResourceCidr -> ModifyIpamResourceCidr -> Bool
== :: ModifyIpamResourceCidr -> ModifyIpamResourceCidr -> Bool
$c== :: ModifyIpamResourceCidr -> ModifyIpamResourceCidr -> Bool
Prelude.Eq, ReadPrec [ModifyIpamResourceCidr]
ReadPrec ModifyIpamResourceCidr
Int -> ReadS ModifyIpamResourceCidr
ReadS [ModifyIpamResourceCidr]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ModifyIpamResourceCidr]
$creadListPrec :: ReadPrec [ModifyIpamResourceCidr]
readPrec :: ReadPrec ModifyIpamResourceCidr
$creadPrec :: ReadPrec ModifyIpamResourceCidr
readList :: ReadS [ModifyIpamResourceCidr]
$creadList :: ReadS [ModifyIpamResourceCidr]
readsPrec :: Int -> ReadS ModifyIpamResourceCidr
$creadsPrec :: Int -> ReadS ModifyIpamResourceCidr
Prelude.Read, Int -> ModifyIpamResourceCidr -> ShowS
[ModifyIpamResourceCidr] -> ShowS
ModifyIpamResourceCidr -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ModifyIpamResourceCidr] -> ShowS
$cshowList :: [ModifyIpamResourceCidr] -> ShowS
show :: ModifyIpamResourceCidr -> String
$cshow :: ModifyIpamResourceCidr -> String
showsPrec :: Int -> ModifyIpamResourceCidr -> ShowS
$cshowsPrec :: Int -> ModifyIpamResourceCidr -> ShowS
Prelude.Show, forall x. Rep ModifyIpamResourceCidr x -> ModifyIpamResourceCidr
forall x. ModifyIpamResourceCidr -> Rep ModifyIpamResourceCidr x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ModifyIpamResourceCidr x -> ModifyIpamResourceCidr
$cfrom :: forall x. ModifyIpamResourceCidr -> Rep ModifyIpamResourceCidr x
Prelude.Generic)

-- |
-- Create a value of 'ModifyIpamResourceCidr' 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:
--
-- 'destinationIpamScopeId', 'modifyIpamResourceCidr_destinationIpamScopeId' - The ID of the scope you want to transfer the resource CIDR to.
--
-- 'dryRun', 'modifyIpamResourceCidr_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@.
--
-- 'resourceId', 'modifyIpamResourceCidr_resourceId' - The ID of the resource you want to modify.
--
-- 'resourceCidr', 'modifyIpamResourceCidr_resourceCidr' - The CIDR of the resource you want to modify.
--
-- 'resourceRegion', 'modifyIpamResourceCidr_resourceRegion' - The Amazon Web Services Region of the resource you want to modify.
--
-- 'currentIpamScopeId', 'modifyIpamResourceCidr_currentIpamScopeId' - The ID of the current scope that the resource CIDR is in.
--
-- 'monitored', 'modifyIpamResourceCidr_monitored' - Determines if the resource is monitored by IPAM. If a resource is
-- monitored, the resource is discovered by IPAM and you can view details
-- about the resource’s CIDR.
newModifyIpamResourceCidr ::
  -- | 'resourceId'
  Prelude.Text ->
  -- | 'resourceCidr'
  Prelude.Text ->
  -- | 'resourceRegion'
  Prelude.Text ->
  -- | 'currentIpamScopeId'
  Prelude.Text ->
  -- | 'monitored'
  Prelude.Bool ->
  ModifyIpamResourceCidr
newModifyIpamResourceCidr :: Text -> Text -> Text -> Text -> Bool -> ModifyIpamResourceCidr
newModifyIpamResourceCidr
  Text
pResourceId_
  Text
pResourceCidr_
  Text
pResourceRegion_
  Text
pCurrentIpamScopeId_
  Bool
pMonitored_ =
    ModifyIpamResourceCidr'
      { $sel:destinationIpamScopeId:ModifyIpamResourceCidr' :: Maybe Text
destinationIpamScopeId =
          forall a. Maybe a
Prelude.Nothing,
        $sel:dryRun:ModifyIpamResourceCidr' :: Maybe Bool
dryRun = forall a. Maybe a
Prelude.Nothing,
        $sel:resourceId:ModifyIpamResourceCidr' :: Text
resourceId = Text
pResourceId_,
        $sel:resourceCidr:ModifyIpamResourceCidr' :: Text
resourceCidr = Text
pResourceCidr_,
        $sel:resourceRegion:ModifyIpamResourceCidr' :: Text
resourceRegion = Text
pResourceRegion_,
        $sel:currentIpamScopeId:ModifyIpamResourceCidr' :: Text
currentIpamScopeId = Text
pCurrentIpamScopeId_,
        $sel:monitored:ModifyIpamResourceCidr' :: Bool
monitored = Bool
pMonitored_
      }

-- | The ID of the scope you want to transfer the resource CIDR to.
modifyIpamResourceCidr_destinationIpamScopeId :: Lens.Lens' ModifyIpamResourceCidr (Prelude.Maybe Prelude.Text)
modifyIpamResourceCidr_destinationIpamScopeId :: Lens' ModifyIpamResourceCidr (Maybe Text)
modifyIpamResourceCidr_destinationIpamScopeId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyIpamResourceCidr' {Maybe Text
destinationIpamScopeId :: Maybe Text
$sel:destinationIpamScopeId:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Maybe Text
destinationIpamScopeId} -> Maybe Text
destinationIpamScopeId) (\s :: ModifyIpamResourceCidr
s@ModifyIpamResourceCidr' {} Maybe Text
a -> ModifyIpamResourceCidr
s {$sel:destinationIpamScopeId:ModifyIpamResourceCidr' :: Maybe Text
destinationIpamScopeId = Maybe Text
a} :: ModifyIpamResourceCidr)

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

-- | The ID of the resource you want to modify.
modifyIpamResourceCidr_resourceId :: Lens.Lens' ModifyIpamResourceCidr Prelude.Text
modifyIpamResourceCidr_resourceId :: Lens' ModifyIpamResourceCidr Text
modifyIpamResourceCidr_resourceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyIpamResourceCidr' {Text
resourceId :: Text
$sel:resourceId:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Text
resourceId} -> Text
resourceId) (\s :: ModifyIpamResourceCidr
s@ModifyIpamResourceCidr' {} Text
a -> ModifyIpamResourceCidr
s {$sel:resourceId:ModifyIpamResourceCidr' :: Text
resourceId = Text
a} :: ModifyIpamResourceCidr)

-- | The CIDR of the resource you want to modify.
modifyIpamResourceCidr_resourceCidr :: Lens.Lens' ModifyIpamResourceCidr Prelude.Text
modifyIpamResourceCidr_resourceCidr :: Lens' ModifyIpamResourceCidr Text
modifyIpamResourceCidr_resourceCidr = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyIpamResourceCidr' {Text
resourceCidr :: Text
$sel:resourceCidr:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Text
resourceCidr} -> Text
resourceCidr) (\s :: ModifyIpamResourceCidr
s@ModifyIpamResourceCidr' {} Text
a -> ModifyIpamResourceCidr
s {$sel:resourceCidr:ModifyIpamResourceCidr' :: Text
resourceCidr = Text
a} :: ModifyIpamResourceCidr)

-- | The Amazon Web Services Region of the resource you want to modify.
modifyIpamResourceCidr_resourceRegion :: Lens.Lens' ModifyIpamResourceCidr Prelude.Text
modifyIpamResourceCidr_resourceRegion :: Lens' ModifyIpamResourceCidr Text
modifyIpamResourceCidr_resourceRegion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyIpamResourceCidr' {Text
resourceRegion :: Text
$sel:resourceRegion:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Text
resourceRegion} -> Text
resourceRegion) (\s :: ModifyIpamResourceCidr
s@ModifyIpamResourceCidr' {} Text
a -> ModifyIpamResourceCidr
s {$sel:resourceRegion:ModifyIpamResourceCidr' :: Text
resourceRegion = Text
a} :: ModifyIpamResourceCidr)

-- | The ID of the current scope that the resource CIDR is in.
modifyIpamResourceCidr_currentIpamScopeId :: Lens.Lens' ModifyIpamResourceCidr Prelude.Text
modifyIpamResourceCidr_currentIpamScopeId :: Lens' ModifyIpamResourceCidr Text
modifyIpamResourceCidr_currentIpamScopeId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyIpamResourceCidr' {Text
currentIpamScopeId :: Text
$sel:currentIpamScopeId:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Text
currentIpamScopeId} -> Text
currentIpamScopeId) (\s :: ModifyIpamResourceCidr
s@ModifyIpamResourceCidr' {} Text
a -> ModifyIpamResourceCidr
s {$sel:currentIpamScopeId:ModifyIpamResourceCidr' :: Text
currentIpamScopeId = Text
a} :: ModifyIpamResourceCidr)

-- | Determines if the resource is monitored by IPAM. If a resource is
-- monitored, the resource is discovered by IPAM and you can view details
-- about the resource’s CIDR.
modifyIpamResourceCidr_monitored :: Lens.Lens' ModifyIpamResourceCidr Prelude.Bool
modifyIpamResourceCidr_monitored :: Lens' ModifyIpamResourceCidr Bool
modifyIpamResourceCidr_monitored = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyIpamResourceCidr' {Bool
monitored :: Bool
$sel:monitored:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Bool
monitored} -> Bool
monitored) (\s :: ModifyIpamResourceCidr
s@ModifyIpamResourceCidr' {} Bool
a -> ModifyIpamResourceCidr
s {$sel:monitored:ModifyIpamResourceCidr' :: Bool
monitored = Bool
a} :: ModifyIpamResourceCidr)

instance Core.AWSRequest ModifyIpamResourceCidr where
  type
    AWSResponse ModifyIpamResourceCidr =
      ModifyIpamResourceCidrResponse
  request :: (Service -> Service)
-> ModifyIpamResourceCidr -> Request ModifyIpamResourceCidr
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 ModifyIpamResourceCidr
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ModifyIpamResourceCidr)))
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 IpamResourceCidr -> Int -> ModifyIpamResourceCidrResponse
ModifyIpamResourceCidrResponse'
            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
"ipamResourceCidr")
            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 ModifyIpamResourceCidr where
  hashWithSalt :: Int -> ModifyIpamResourceCidr -> Int
hashWithSalt Int
_salt ModifyIpamResourceCidr' {Bool
Maybe Bool
Maybe Text
Text
monitored :: Bool
currentIpamScopeId :: Text
resourceRegion :: Text
resourceCidr :: Text
resourceId :: Text
dryRun :: Maybe Bool
destinationIpamScopeId :: Maybe Text
$sel:monitored:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Bool
$sel:currentIpamScopeId:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Text
$sel:resourceRegion:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Text
$sel:resourceCidr:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Text
$sel:resourceId:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Text
$sel:dryRun:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Maybe Bool
$sel:destinationIpamScopeId:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
destinationIpamScopeId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
dryRun
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
resourceId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
resourceCidr
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
resourceRegion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
currentIpamScopeId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Bool
monitored

instance Prelude.NFData ModifyIpamResourceCidr where
  rnf :: ModifyIpamResourceCidr -> ()
rnf ModifyIpamResourceCidr' {Bool
Maybe Bool
Maybe Text
Text
monitored :: Bool
currentIpamScopeId :: Text
resourceRegion :: Text
resourceCidr :: Text
resourceId :: Text
dryRun :: Maybe Bool
destinationIpamScopeId :: Maybe Text
$sel:monitored:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Bool
$sel:currentIpamScopeId:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Text
$sel:resourceRegion:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Text
$sel:resourceCidr:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Text
$sel:resourceId:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Text
$sel:dryRun:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Maybe Bool
$sel:destinationIpamScopeId:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
destinationIpamScopeId
      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
resourceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
resourceCidr
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
resourceRegion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
currentIpamScopeId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Bool
monitored

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

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

instance Data.ToQuery ModifyIpamResourceCidr where
  toQuery :: ModifyIpamResourceCidr -> QueryString
toQuery ModifyIpamResourceCidr' {Bool
Maybe Bool
Maybe Text
Text
monitored :: Bool
currentIpamScopeId :: Text
resourceRegion :: Text
resourceCidr :: Text
resourceId :: Text
dryRun :: Maybe Bool
destinationIpamScopeId :: Maybe Text
$sel:monitored:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Bool
$sel:currentIpamScopeId:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Text
$sel:resourceRegion:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Text
$sel:resourceCidr:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Text
$sel:resourceId:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Text
$sel:dryRun:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Maybe Bool
$sel:destinationIpamScopeId:ModifyIpamResourceCidr' :: ModifyIpamResourceCidr -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"ModifyIpamResourceCidr" :: Prelude.ByteString),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2016-11-15" :: Prelude.ByteString),
        ByteString
"DestinationIpamScopeId"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
destinationIpamScopeId,
        ByteString
"DryRun" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
dryRun,
        ByteString
"ResourceId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
resourceId,
        ByteString
"ResourceCidr" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
resourceCidr,
        ByteString
"ResourceRegion" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
resourceRegion,
        ByteString
"CurrentIpamScopeId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
currentIpamScopeId,
        ByteString
"Monitored" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Bool
monitored
      ]

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

-- |
-- Create a value of 'ModifyIpamResourceCidrResponse' 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:
--
-- 'ipamResourceCidr', 'modifyIpamResourceCidrResponse_ipamResourceCidr' - The CIDR of the resource.
--
-- 'httpStatus', 'modifyIpamResourceCidrResponse_httpStatus' - The response's http status code.
newModifyIpamResourceCidrResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ModifyIpamResourceCidrResponse
newModifyIpamResourceCidrResponse :: Int -> ModifyIpamResourceCidrResponse
newModifyIpamResourceCidrResponse Int
pHttpStatus_ =
  ModifyIpamResourceCidrResponse'
    { $sel:ipamResourceCidr:ModifyIpamResourceCidrResponse' :: Maybe IpamResourceCidr
ipamResourceCidr =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ModifyIpamResourceCidrResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The CIDR of the resource.
modifyIpamResourceCidrResponse_ipamResourceCidr :: Lens.Lens' ModifyIpamResourceCidrResponse (Prelude.Maybe IpamResourceCidr)
modifyIpamResourceCidrResponse_ipamResourceCidr :: Lens' ModifyIpamResourceCidrResponse (Maybe IpamResourceCidr)
modifyIpamResourceCidrResponse_ipamResourceCidr = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModifyIpamResourceCidrResponse' {Maybe IpamResourceCidr
ipamResourceCidr :: Maybe IpamResourceCidr
$sel:ipamResourceCidr:ModifyIpamResourceCidrResponse' :: ModifyIpamResourceCidrResponse -> Maybe IpamResourceCidr
ipamResourceCidr} -> Maybe IpamResourceCidr
ipamResourceCidr) (\s :: ModifyIpamResourceCidrResponse
s@ModifyIpamResourceCidrResponse' {} Maybe IpamResourceCidr
a -> ModifyIpamResourceCidrResponse
s {$sel:ipamResourceCidr:ModifyIpamResourceCidrResponse' :: Maybe IpamResourceCidr
ipamResourceCidr = Maybe IpamResourceCidr
a} :: ModifyIpamResourceCidrResponse)

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

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