{-# 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.UnassignIpv6Addresses
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Unassigns one or more IPv6 addresses IPv4 Prefix Delegation prefixes
-- from a network interface.
module Amazonka.EC2.UnassignIpv6Addresses
  ( -- * Creating a Request
    UnassignIpv6Addresses (..),
    newUnassignIpv6Addresses,

    -- * Request Lenses
    unassignIpv6Addresses_ipv6Addresses,
    unassignIpv6Addresses_ipv6Prefixes,
    unassignIpv6Addresses_networkInterfaceId,

    -- * Destructuring the Response
    UnassignIpv6AddressesResponse (..),
    newUnassignIpv6AddressesResponse,

    -- * Response Lenses
    unassignIpv6AddressesResponse_networkInterfaceId,
    unassignIpv6AddressesResponse_unassignedIpv6Addresses,
    unassignIpv6AddressesResponse_unassignedIpv6Prefixes,
    unassignIpv6AddressesResponse_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:/ 'newUnassignIpv6Addresses' smart constructor.
data UnassignIpv6Addresses = UnassignIpv6Addresses'
  { -- | The IPv6 addresses to unassign from the network interface.
    UnassignIpv6Addresses -> Maybe [Text]
ipv6Addresses :: Prelude.Maybe [Prelude.Text],
    -- | The IPv6 prefixes to unassign from the network interface.
    UnassignIpv6Addresses -> Maybe [Text]
ipv6Prefixes :: Prelude.Maybe [Prelude.Text],
    -- | The ID of the network interface.
    UnassignIpv6Addresses -> Text
networkInterfaceId :: Prelude.Text
  }
  deriving (UnassignIpv6Addresses -> UnassignIpv6Addresses -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UnassignIpv6Addresses -> UnassignIpv6Addresses -> Bool
$c/= :: UnassignIpv6Addresses -> UnassignIpv6Addresses -> Bool
== :: UnassignIpv6Addresses -> UnassignIpv6Addresses -> Bool
$c== :: UnassignIpv6Addresses -> UnassignIpv6Addresses -> Bool
Prelude.Eq, ReadPrec [UnassignIpv6Addresses]
ReadPrec UnassignIpv6Addresses
Int -> ReadS UnassignIpv6Addresses
ReadS [UnassignIpv6Addresses]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UnassignIpv6Addresses]
$creadListPrec :: ReadPrec [UnassignIpv6Addresses]
readPrec :: ReadPrec UnassignIpv6Addresses
$creadPrec :: ReadPrec UnassignIpv6Addresses
readList :: ReadS [UnassignIpv6Addresses]
$creadList :: ReadS [UnassignIpv6Addresses]
readsPrec :: Int -> ReadS UnassignIpv6Addresses
$creadsPrec :: Int -> ReadS UnassignIpv6Addresses
Prelude.Read, Int -> UnassignIpv6Addresses -> ShowS
[UnassignIpv6Addresses] -> ShowS
UnassignIpv6Addresses -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UnassignIpv6Addresses] -> ShowS
$cshowList :: [UnassignIpv6Addresses] -> ShowS
show :: UnassignIpv6Addresses -> String
$cshow :: UnassignIpv6Addresses -> String
showsPrec :: Int -> UnassignIpv6Addresses -> ShowS
$cshowsPrec :: Int -> UnassignIpv6Addresses -> ShowS
Prelude.Show, forall x. Rep UnassignIpv6Addresses x -> UnassignIpv6Addresses
forall x. UnassignIpv6Addresses -> Rep UnassignIpv6Addresses x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UnassignIpv6Addresses x -> UnassignIpv6Addresses
$cfrom :: forall x. UnassignIpv6Addresses -> Rep UnassignIpv6Addresses x
Prelude.Generic)

-- |
-- Create a value of 'UnassignIpv6Addresses' 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:
--
-- 'ipv6Addresses', 'unassignIpv6Addresses_ipv6Addresses' - The IPv6 addresses to unassign from the network interface.
--
-- 'ipv6Prefixes', 'unassignIpv6Addresses_ipv6Prefixes' - The IPv6 prefixes to unassign from the network interface.
--
-- 'networkInterfaceId', 'unassignIpv6Addresses_networkInterfaceId' - The ID of the network interface.
newUnassignIpv6Addresses ::
  -- | 'networkInterfaceId'
  Prelude.Text ->
  UnassignIpv6Addresses
newUnassignIpv6Addresses :: Text -> UnassignIpv6Addresses
newUnassignIpv6Addresses Text
pNetworkInterfaceId_ =
  UnassignIpv6Addresses'
    { $sel:ipv6Addresses:UnassignIpv6Addresses' :: Maybe [Text]
ipv6Addresses =
        forall a. Maybe a
Prelude.Nothing,
      $sel:ipv6Prefixes:UnassignIpv6Addresses' :: Maybe [Text]
ipv6Prefixes = forall a. Maybe a
Prelude.Nothing,
      $sel:networkInterfaceId:UnassignIpv6Addresses' :: Text
networkInterfaceId = Text
pNetworkInterfaceId_
    }

-- | The IPv6 addresses to unassign from the network interface.
unassignIpv6Addresses_ipv6Addresses :: Lens.Lens' UnassignIpv6Addresses (Prelude.Maybe [Prelude.Text])
unassignIpv6Addresses_ipv6Addresses :: Lens' UnassignIpv6Addresses (Maybe [Text])
unassignIpv6Addresses_ipv6Addresses = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UnassignIpv6Addresses' {Maybe [Text]
ipv6Addresses :: Maybe [Text]
$sel:ipv6Addresses:UnassignIpv6Addresses' :: UnassignIpv6Addresses -> Maybe [Text]
ipv6Addresses} -> Maybe [Text]
ipv6Addresses) (\s :: UnassignIpv6Addresses
s@UnassignIpv6Addresses' {} Maybe [Text]
a -> UnassignIpv6Addresses
s {$sel:ipv6Addresses:UnassignIpv6Addresses' :: Maybe [Text]
ipv6Addresses = Maybe [Text]
a} :: UnassignIpv6Addresses) 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 IPv6 prefixes to unassign from the network interface.
unassignIpv6Addresses_ipv6Prefixes :: Lens.Lens' UnassignIpv6Addresses (Prelude.Maybe [Prelude.Text])
unassignIpv6Addresses_ipv6Prefixes :: Lens' UnassignIpv6Addresses (Maybe [Text])
unassignIpv6Addresses_ipv6Prefixes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UnassignIpv6Addresses' {Maybe [Text]
ipv6Prefixes :: Maybe [Text]
$sel:ipv6Prefixes:UnassignIpv6Addresses' :: UnassignIpv6Addresses -> Maybe [Text]
ipv6Prefixes} -> Maybe [Text]
ipv6Prefixes) (\s :: UnassignIpv6Addresses
s@UnassignIpv6Addresses' {} Maybe [Text]
a -> UnassignIpv6Addresses
s {$sel:ipv6Prefixes:UnassignIpv6Addresses' :: Maybe [Text]
ipv6Prefixes = Maybe [Text]
a} :: UnassignIpv6Addresses) 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 ID of the network interface.
unassignIpv6Addresses_networkInterfaceId :: Lens.Lens' UnassignIpv6Addresses Prelude.Text
unassignIpv6Addresses_networkInterfaceId :: Lens' UnassignIpv6Addresses Text
unassignIpv6Addresses_networkInterfaceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UnassignIpv6Addresses' {Text
networkInterfaceId :: Text
$sel:networkInterfaceId:UnassignIpv6Addresses' :: UnassignIpv6Addresses -> Text
networkInterfaceId} -> Text
networkInterfaceId) (\s :: UnassignIpv6Addresses
s@UnassignIpv6Addresses' {} Text
a -> UnassignIpv6Addresses
s {$sel:networkInterfaceId:UnassignIpv6Addresses' :: Text
networkInterfaceId = Text
a} :: UnassignIpv6Addresses)

instance Core.AWSRequest UnassignIpv6Addresses where
  type
    AWSResponse UnassignIpv6Addresses =
      UnassignIpv6AddressesResponse
  request :: (Service -> Service)
-> UnassignIpv6Addresses -> Request UnassignIpv6Addresses
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 UnassignIpv6Addresses
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UnassignIpv6Addresses)))
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 Text
-> Maybe [Text]
-> Maybe [Text]
-> Int
-> UnassignIpv6AddressesResponse
UnassignIpv6AddressesResponse'
            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
"networkInterfaceId")
            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
"unassignedIpv6Addresses"
                            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
"unassignedIpv6PrefixSet"
                            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.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable UnassignIpv6Addresses where
  hashWithSalt :: Int -> UnassignIpv6Addresses -> Int
hashWithSalt Int
_salt UnassignIpv6Addresses' {Maybe [Text]
Text
networkInterfaceId :: Text
ipv6Prefixes :: Maybe [Text]
ipv6Addresses :: Maybe [Text]
$sel:networkInterfaceId:UnassignIpv6Addresses' :: UnassignIpv6Addresses -> Text
$sel:ipv6Prefixes:UnassignIpv6Addresses' :: UnassignIpv6Addresses -> Maybe [Text]
$sel:ipv6Addresses:UnassignIpv6Addresses' :: UnassignIpv6Addresses -> Maybe [Text]
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
ipv6Addresses
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
ipv6Prefixes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
networkInterfaceId

instance Prelude.NFData UnassignIpv6Addresses where
  rnf :: UnassignIpv6Addresses -> ()
rnf UnassignIpv6Addresses' {Maybe [Text]
Text
networkInterfaceId :: Text
ipv6Prefixes :: Maybe [Text]
ipv6Addresses :: Maybe [Text]
$sel:networkInterfaceId:UnassignIpv6Addresses' :: UnassignIpv6Addresses -> Text
$sel:ipv6Prefixes:UnassignIpv6Addresses' :: UnassignIpv6Addresses -> Maybe [Text]
$sel:ipv6Addresses:UnassignIpv6Addresses' :: UnassignIpv6Addresses -> Maybe [Text]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
ipv6Addresses
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
ipv6Prefixes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
networkInterfaceId

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

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

instance Data.ToQuery UnassignIpv6Addresses where
  toQuery :: UnassignIpv6Addresses -> QueryString
toQuery UnassignIpv6Addresses' {Maybe [Text]
Text
networkInterfaceId :: Text
ipv6Prefixes :: Maybe [Text]
ipv6Addresses :: Maybe [Text]
$sel:networkInterfaceId:UnassignIpv6Addresses' :: UnassignIpv6Addresses -> Text
$sel:ipv6Prefixes:UnassignIpv6Addresses' :: UnassignIpv6Addresses -> Maybe [Text]
$sel:ipv6Addresses:UnassignIpv6Addresses' :: UnassignIpv6Addresses -> Maybe [Text]
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"UnassignIpv6Addresses" :: Prelude.ByteString),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2016-11-15" :: Prelude.ByteString),
        forall a. ToQuery a => a -> QueryString
Data.toQuery
          ( forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"Ipv6Addresses"
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
ipv6Addresses
          ),
        forall a. ToQuery a => a -> QueryString
Data.toQuery
          ( forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"Ipv6Prefix"
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
ipv6Prefixes
          ),
        ByteString
"NetworkInterfaceId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
networkInterfaceId
      ]

-- | /See:/ 'newUnassignIpv6AddressesResponse' smart constructor.
data UnassignIpv6AddressesResponse = UnassignIpv6AddressesResponse'
  { -- | The ID of the network interface.
    UnassignIpv6AddressesResponse -> Maybe Text
networkInterfaceId :: Prelude.Maybe Prelude.Text,
    -- | The IPv6 addresses that have been unassigned from the network interface.
    UnassignIpv6AddressesResponse -> Maybe [Text]
unassignedIpv6Addresses :: Prelude.Maybe [Prelude.Text],
    -- | The IPv4 prefixes that have been unassigned from the network interface.
    UnassignIpv6AddressesResponse -> Maybe [Text]
unassignedIpv6Prefixes :: Prelude.Maybe [Prelude.Text],
    -- | The response's http status code.
    UnassignIpv6AddressesResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UnassignIpv6AddressesResponse
-> UnassignIpv6AddressesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UnassignIpv6AddressesResponse
-> UnassignIpv6AddressesResponse -> Bool
$c/= :: UnassignIpv6AddressesResponse
-> UnassignIpv6AddressesResponse -> Bool
== :: UnassignIpv6AddressesResponse
-> UnassignIpv6AddressesResponse -> Bool
$c== :: UnassignIpv6AddressesResponse
-> UnassignIpv6AddressesResponse -> Bool
Prelude.Eq, ReadPrec [UnassignIpv6AddressesResponse]
ReadPrec UnassignIpv6AddressesResponse
Int -> ReadS UnassignIpv6AddressesResponse
ReadS [UnassignIpv6AddressesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UnassignIpv6AddressesResponse]
$creadListPrec :: ReadPrec [UnassignIpv6AddressesResponse]
readPrec :: ReadPrec UnassignIpv6AddressesResponse
$creadPrec :: ReadPrec UnassignIpv6AddressesResponse
readList :: ReadS [UnassignIpv6AddressesResponse]
$creadList :: ReadS [UnassignIpv6AddressesResponse]
readsPrec :: Int -> ReadS UnassignIpv6AddressesResponse
$creadsPrec :: Int -> ReadS UnassignIpv6AddressesResponse
Prelude.Read, Int -> UnassignIpv6AddressesResponse -> ShowS
[UnassignIpv6AddressesResponse] -> ShowS
UnassignIpv6AddressesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UnassignIpv6AddressesResponse] -> ShowS
$cshowList :: [UnassignIpv6AddressesResponse] -> ShowS
show :: UnassignIpv6AddressesResponse -> String
$cshow :: UnassignIpv6AddressesResponse -> String
showsPrec :: Int -> UnassignIpv6AddressesResponse -> ShowS
$cshowsPrec :: Int -> UnassignIpv6AddressesResponse -> ShowS
Prelude.Show, forall x.
Rep UnassignIpv6AddressesResponse x
-> UnassignIpv6AddressesResponse
forall x.
UnassignIpv6AddressesResponse
-> Rep UnassignIpv6AddressesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UnassignIpv6AddressesResponse x
-> UnassignIpv6AddressesResponse
$cfrom :: forall x.
UnassignIpv6AddressesResponse
-> Rep UnassignIpv6AddressesResponse x
Prelude.Generic)

-- |
-- Create a value of 'UnassignIpv6AddressesResponse' 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:
--
-- 'networkInterfaceId', 'unassignIpv6AddressesResponse_networkInterfaceId' - The ID of the network interface.
--
-- 'unassignedIpv6Addresses', 'unassignIpv6AddressesResponse_unassignedIpv6Addresses' - The IPv6 addresses that have been unassigned from the network interface.
--
-- 'unassignedIpv6Prefixes', 'unassignIpv6AddressesResponse_unassignedIpv6Prefixes' - The IPv4 prefixes that have been unassigned from the network interface.
--
-- 'httpStatus', 'unassignIpv6AddressesResponse_httpStatus' - The response's http status code.
newUnassignIpv6AddressesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UnassignIpv6AddressesResponse
newUnassignIpv6AddressesResponse :: Int -> UnassignIpv6AddressesResponse
newUnassignIpv6AddressesResponse Int
pHttpStatus_ =
  UnassignIpv6AddressesResponse'
    { $sel:networkInterfaceId:UnassignIpv6AddressesResponse' :: Maybe Text
networkInterfaceId =
        forall a. Maybe a
Prelude.Nothing,
      $sel:unassignedIpv6Addresses:UnassignIpv6AddressesResponse' :: Maybe [Text]
unassignedIpv6Addresses = forall a. Maybe a
Prelude.Nothing,
      $sel:unassignedIpv6Prefixes:UnassignIpv6AddressesResponse' :: Maybe [Text]
unassignedIpv6Prefixes = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UnassignIpv6AddressesResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The ID of the network interface.
unassignIpv6AddressesResponse_networkInterfaceId :: Lens.Lens' UnassignIpv6AddressesResponse (Prelude.Maybe Prelude.Text)
unassignIpv6AddressesResponse_networkInterfaceId :: Lens' UnassignIpv6AddressesResponse (Maybe Text)
unassignIpv6AddressesResponse_networkInterfaceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UnassignIpv6AddressesResponse' {Maybe Text
networkInterfaceId :: Maybe Text
$sel:networkInterfaceId:UnassignIpv6AddressesResponse' :: UnassignIpv6AddressesResponse -> Maybe Text
networkInterfaceId} -> Maybe Text
networkInterfaceId) (\s :: UnassignIpv6AddressesResponse
s@UnassignIpv6AddressesResponse' {} Maybe Text
a -> UnassignIpv6AddressesResponse
s {$sel:networkInterfaceId:UnassignIpv6AddressesResponse' :: Maybe Text
networkInterfaceId = Maybe Text
a} :: UnassignIpv6AddressesResponse)

-- | The IPv6 addresses that have been unassigned from the network interface.
unassignIpv6AddressesResponse_unassignedIpv6Addresses :: Lens.Lens' UnassignIpv6AddressesResponse (Prelude.Maybe [Prelude.Text])
unassignIpv6AddressesResponse_unassignedIpv6Addresses :: Lens' UnassignIpv6AddressesResponse (Maybe [Text])
unassignIpv6AddressesResponse_unassignedIpv6Addresses = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UnassignIpv6AddressesResponse' {Maybe [Text]
unassignedIpv6Addresses :: Maybe [Text]
$sel:unassignedIpv6Addresses:UnassignIpv6AddressesResponse' :: UnassignIpv6AddressesResponse -> Maybe [Text]
unassignedIpv6Addresses} -> Maybe [Text]
unassignedIpv6Addresses) (\s :: UnassignIpv6AddressesResponse
s@UnassignIpv6AddressesResponse' {} Maybe [Text]
a -> UnassignIpv6AddressesResponse
s {$sel:unassignedIpv6Addresses:UnassignIpv6AddressesResponse' :: Maybe [Text]
unassignedIpv6Addresses = Maybe [Text]
a} :: UnassignIpv6AddressesResponse) 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 IPv4 prefixes that have been unassigned from the network interface.
unassignIpv6AddressesResponse_unassignedIpv6Prefixes :: Lens.Lens' UnassignIpv6AddressesResponse (Prelude.Maybe [Prelude.Text])
unassignIpv6AddressesResponse_unassignedIpv6Prefixes :: Lens' UnassignIpv6AddressesResponse (Maybe [Text])
unassignIpv6AddressesResponse_unassignedIpv6Prefixes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UnassignIpv6AddressesResponse' {Maybe [Text]
unassignedIpv6Prefixes :: Maybe [Text]
$sel:unassignedIpv6Prefixes:UnassignIpv6AddressesResponse' :: UnassignIpv6AddressesResponse -> Maybe [Text]
unassignedIpv6Prefixes} -> Maybe [Text]
unassignedIpv6Prefixes) (\s :: UnassignIpv6AddressesResponse
s@UnassignIpv6AddressesResponse' {} Maybe [Text]
a -> UnassignIpv6AddressesResponse
s {$sel:unassignedIpv6Prefixes:UnassignIpv6AddressesResponse' :: Maybe [Text]
unassignedIpv6Prefixes = Maybe [Text]
a} :: UnassignIpv6AddressesResponse) 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 response's http status code.
unassignIpv6AddressesResponse_httpStatus :: Lens.Lens' UnassignIpv6AddressesResponse Prelude.Int
unassignIpv6AddressesResponse_httpStatus :: Lens' UnassignIpv6AddressesResponse Int
unassignIpv6AddressesResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UnassignIpv6AddressesResponse' {Int
httpStatus :: Int
$sel:httpStatus:UnassignIpv6AddressesResponse' :: UnassignIpv6AddressesResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UnassignIpv6AddressesResponse
s@UnassignIpv6AddressesResponse' {} Int
a -> UnassignIpv6AddressesResponse
s {$sel:httpStatus:UnassignIpv6AddressesResponse' :: Int
httpStatus = Int
a} :: UnassignIpv6AddressesResponse)

instance Prelude.NFData UnassignIpv6AddressesResponse where
  rnf :: UnassignIpv6AddressesResponse -> ()
rnf UnassignIpv6AddressesResponse' {Int
Maybe [Text]
Maybe Text
httpStatus :: Int
unassignedIpv6Prefixes :: Maybe [Text]
unassignedIpv6Addresses :: Maybe [Text]
networkInterfaceId :: Maybe Text
$sel:httpStatus:UnassignIpv6AddressesResponse' :: UnassignIpv6AddressesResponse -> Int
$sel:unassignedIpv6Prefixes:UnassignIpv6AddressesResponse' :: UnassignIpv6AddressesResponse -> Maybe [Text]
$sel:unassignedIpv6Addresses:UnassignIpv6AddressesResponse' :: UnassignIpv6AddressesResponse -> Maybe [Text]
$sel:networkInterfaceId:UnassignIpv6AddressesResponse' :: UnassignIpv6AddressesResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
networkInterfaceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
unassignedIpv6Addresses
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
unassignedIpv6Prefixes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus