{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.Redshift.Types.ReservedNodeExchangeStatus
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Redshift.Types.ReservedNodeExchangeStatus where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.Redshift.Internal
import Amazonka.Redshift.Types.ReservedNodeExchangeStatusType

-- | Reserved-node status details, such as the source reserved-node
-- identifier, the target reserved-node identifier, the node type, the node
-- count, and other details.
--
-- /See:/ 'newReservedNodeExchangeStatus' smart constructor.
data ReservedNodeExchangeStatus = ReservedNodeExchangeStatus'
  { -- | A date and time that indicate when the reserved-node exchange was
    -- requested.
    ReservedNodeExchangeStatus -> Maybe ISO8601
requestTime :: Prelude.Maybe Data.ISO8601,
    -- | The identifier of the reserved-node exchange request.
    ReservedNodeExchangeStatus -> Maybe Text
reservedNodeExchangeRequestId :: Prelude.Maybe Prelude.Text,
    -- | The source reserved-node count in the cluster.
    ReservedNodeExchangeStatus -> Maybe Int
sourceReservedNodeCount :: Prelude.Maybe Prelude.Int,
    -- | The identifier of the source reserved node.
    ReservedNodeExchangeStatus -> Maybe Text
sourceReservedNodeId :: Prelude.Maybe Prelude.Text,
    -- | The source reserved-node type, for example ds2.xlarge.
    ReservedNodeExchangeStatus -> Maybe Text
sourceReservedNodeType :: Prelude.Maybe Prelude.Text,
    -- | The status of the reserved-node exchange request. Statuses include
    -- in-progress and requested.
    ReservedNodeExchangeStatus -> Maybe ReservedNodeExchangeStatusType
status :: Prelude.Maybe ReservedNodeExchangeStatusType,
    -- | The count of target reserved nodes in the cluster.
    ReservedNodeExchangeStatus -> Maybe Int
targetReservedNodeCount :: Prelude.Maybe Prelude.Int,
    -- | The identifier of the target reserved node offering.
    ReservedNodeExchangeStatus -> Maybe Text
targetReservedNodeOfferingId :: Prelude.Maybe Prelude.Text,
    -- | The node type of the target reserved node, for example ra3.4xlarge.
    ReservedNodeExchangeStatus -> Maybe Text
targetReservedNodeType :: Prelude.Maybe Prelude.Text
  }
  deriving (ReservedNodeExchangeStatus -> ReservedNodeExchangeStatus -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ReservedNodeExchangeStatus -> ReservedNodeExchangeStatus -> Bool
$c/= :: ReservedNodeExchangeStatus -> ReservedNodeExchangeStatus -> Bool
== :: ReservedNodeExchangeStatus -> ReservedNodeExchangeStatus -> Bool
$c== :: ReservedNodeExchangeStatus -> ReservedNodeExchangeStatus -> Bool
Prelude.Eq, ReadPrec [ReservedNodeExchangeStatus]
ReadPrec ReservedNodeExchangeStatus
Int -> ReadS ReservedNodeExchangeStatus
ReadS [ReservedNodeExchangeStatus]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ReservedNodeExchangeStatus]
$creadListPrec :: ReadPrec [ReservedNodeExchangeStatus]
readPrec :: ReadPrec ReservedNodeExchangeStatus
$creadPrec :: ReadPrec ReservedNodeExchangeStatus
readList :: ReadS [ReservedNodeExchangeStatus]
$creadList :: ReadS [ReservedNodeExchangeStatus]
readsPrec :: Int -> ReadS ReservedNodeExchangeStatus
$creadsPrec :: Int -> ReadS ReservedNodeExchangeStatus
Prelude.Read, Int -> ReservedNodeExchangeStatus -> ShowS
[ReservedNodeExchangeStatus] -> ShowS
ReservedNodeExchangeStatus -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ReservedNodeExchangeStatus] -> ShowS
$cshowList :: [ReservedNodeExchangeStatus] -> ShowS
show :: ReservedNodeExchangeStatus -> String
$cshow :: ReservedNodeExchangeStatus -> String
showsPrec :: Int -> ReservedNodeExchangeStatus -> ShowS
$cshowsPrec :: Int -> ReservedNodeExchangeStatus -> ShowS
Prelude.Show, forall x.
Rep ReservedNodeExchangeStatus x -> ReservedNodeExchangeStatus
forall x.
ReservedNodeExchangeStatus -> Rep ReservedNodeExchangeStatus x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ReservedNodeExchangeStatus x -> ReservedNodeExchangeStatus
$cfrom :: forall x.
ReservedNodeExchangeStatus -> Rep ReservedNodeExchangeStatus x
Prelude.Generic)

-- |
-- Create a value of 'ReservedNodeExchangeStatus' 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:
--
-- 'requestTime', 'reservedNodeExchangeStatus_requestTime' - A date and time that indicate when the reserved-node exchange was
-- requested.
--
-- 'reservedNodeExchangeRequestId', 'reservedNodeExchangeStatus_reservedNodeExchangeRequestId' - The identifier of the reserved-node exchange request.
--
-- 'sourceReservedNodeCount', 'reservedNodeExchangeStatus_sourceReservedNodeCount' - The source reserved-node count in the cluster.
--
-- 'sourceReservedNodeId', 'reservedNodeExchangeStatus_sourceReservedNodeId' - The identifier of the source reserved node.
--
-- 'sourceReservedNodeType', 'reservedNodeExchangeStatus_sourceReservedNodeType' - The source reserved-node type, for example ds2.xlarge.
--
-- 'status', 'reservedNodeExchangeStatus_status' - The status of the reserved-node exchange request. Statuses include
-- in-progress and requested.
--
-- 'targetReservedNodeCount', 'reservedNodeExchangeStatus_targetReservedNodeCount' - The count of target reserved nodes in the cluster.
--
-- 'targetReservedNodeOfferingId', 'reservedNodeExchangeStatus_targetReservedNodeOfferingId' - The identifier of the target reserved node offering.
--
-- 'targetReservedNodeType', 'reservedNodeExchangeStatus_targetReservedNodeType' - The node type of the target reserved node, for example ra3.4xlarge.
newReservedNodeExchangeStatus ::
  ReservedNodeExchangeStatus
newReservedNodeExchangeStatus :: ReservedNodeExchangeStatus
newReservedNodeExchangeStatus =
  ReservedNodeExchangeStatus'
    { $sel:requestTime:ReservedNodeExchangeStatus' :: Maybe ISO8601
requestTime =
        forall a. Maybe a
Prelude.Nothing,
      $sel:reservedNodeExchangeRequestId:ReservedNodeExchangeStatus' :: Maybe Text
reservedNodeExchangeRequestId = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceReservedNodeCount:ReservedNodeExchangeStatus' :: Maybe Int
sourceReservedNodeCount = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceReservedNodeId:ReservedNodeExchangeStatus' :: Maybe Text
sourceReservedNodeId = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceReservedNodeType:ReservedNodeExchangeStatus' :: Maybe Text
sourceReservedNodeType = forall a. Maybe a
Prelude.Nothing,
      $sel:status:ReservedNodeExchangeStatus' :: Maybe ReservedNodeExchangeStatusType
status = forall a. Maybe a
Prelude.Nothing,
      $sel:targetReservedNodeCount:ReservedNodeExchangeStatus' :: Maybe Int
targetReservedNodeCount = forall a. Maybe a
Prelude.Nothing,
      $sel:targetReservedNodeOfferingId:ReservedNodeExchangeStatus' :: Maybe Text
targetReservedNodeOfferingId = forall a. Maybe a
Prelude.Nothing,
      $sel:targetReservedNodeType:ReservedNodeExchangeStatus' :: Maybe Text
targetReservedNodeType = forall a. Maybe a
Prelude.Nothing
    }

-- | A date and time that indicate when the reserved-node exchange was
-- requested.
reservedNodeExchangeStatus_requestTime :: Lens.Lens' ReservedNodeExchangeStatus (Prelude.Maybe Prelude.UTCTime)
reservedNodeExchangeStatus_requestTime :: Lens' ReservedNodeExchangeStatus (Maybe UTCTime)
reservedNodeExchangeStatus_requestTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReservedNodeExchangeStatus' {Maybe ISO8601
requestTime :: Maybe ISO8601
$sel:requestTime:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe ISO8601
requestTime} -> Maybe ISO8601
requestTime) (\s :: ReservedNodeExchangeStatus
s@ReservedNodeExchangeStatus' {} Maybe ISO8601
a -> ReservedNodeExchangeStatus
s {$sel:requestTime:ReservedNodeExchangeStatus' :: Maybe ISO8601
requestTime = Maybe ISO8601
a} :: ReservedNodeExchangeStatus) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The identifier of the reserved-node exchange request.
reservedNodeExchangeStatus_reservedNodeExchangeRequestId :: Lens.Lens' ReservedNodeExchangeStatus (Prelude.Maybe Prelude.Text)
reservedNodeExchangeStatus_reservedNodeExchangeRequestId :: Lens' ReservedNodeExchangeStatus (Maybe Text)
reservedNodeExchangeStatus_reservedNodeExchangeRequestId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReservedNodeExchangeStatus' {Maybe Text
reservedNodeExchangeRequestId :: Maybe Text
$sel:reservedNodeExchangeRequestId:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Text
reservedNodeExchangeRequestId} -> Maybe Text
reservedNodeExchangeRequestId) (\s :: ReservedNodeExchangeStatus
s@ReservedNodeExchangeStatus' {} Maybe Text
a -> ReservedNodeExchangeStatus
s {$sel:reservedNodeExchangeRequestId:ReservedNodeExchangeStatus' :: Maybe Text
reservedNodeExchangeRequestId = Maybe Text
a} :: ReservedNodeExchangeStatus)

-- | The source reserved-node count in the cluster.
reservedNodeExchangeStatus_sourceReservedNodeCount :: Lens.Lens' ReservedNodeExchangeStatus (Prelude.Maybe Prelude.Int)
reservedNodeExchangeStatus_sourceReservedNodeCount :: Lens' ReservedNodeExchangeStatus (Maybe Int)
reservedNodeExchangeStatus_sourceReservedNodeCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReservedNodeExchangeStatus' {Maybe Int
sourceReservedNodeCount :: Maybe Int
$sel:sourceReservedNodeCount:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Int
sourceReservedNodeCount} -> Maybe Int
sourceReservedNodeCount) (\s :: ReservedNodeExchangeStatus
s@ReservedNodeExchangeStatus' {} Maybe Int
a -> ReservedNodeExchangeStatus
s {$sel:sourceReservedNodeCount:ReservedNodeExchangeStatus' :: Maybe Int
sourceReservedNodeCount = Maybe Int
a} :: ReservedNodeExchangeStatus)

-- | The identifier of the source reserved node.
reservedNodeExchangeStatus_sourceReservedNodeId :: Lens.Lens' ReservedNodeExchangeStatus (Prelude.Maybe Prelude.Text)
reservedNodeExchangeStatus_sourceReservedNodeId :: Lens' ReservedNodeExchangeStatus (Maybe Text)
reservedNodeExchangeStatus_sourceReservedNodeId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReservedNodeExchangeStatus' {Maybe Text
sourceReservedNodeId :: Maybe Text
$sel:sourceReservedNodeId:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Text
sourceReservedNodeId} -> Maybe Text
sourceReservedNodeId) (\s :: ReservedNodeExchangeStatus
s@ReservedNodeExchangeStatus' {} Maybe Text
a -> ReservedNodeExchangeStatus
s {$sel:sourceReservedNodeId:ReservedNodeExchangeStatus' :: Maybe Text
sourceReservedNodeId = Maybe Text
a} :: ReservedNodeExchangeStatus)

-- | The source reserved-node type, for example ds2.xlarge.
reservedNodeExchangeStatus_sourceReservedNodeType :: Lens.Lens' ReservedNodeExchangeStatus (Prelude.Maybe Prelude.Text)
reservedNodeExchangeStatus_sourceReservedNodeType :: Lens' ReservedNodeExchangeStatus (Maybe Text)
reservedNodeExchangeStatus_sourceReservedNodeType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReservedNodeExchangeStatus' {Maybe Text
sourceReservedNodeType :: Maybe Text
$sel:sourceReservedNodeType:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Text
sourceReservedNodeType} -> Maybe Text
sourceReservedNodeType) (\s :: ReservedNodeExchangeStatus
s@ReservedNodeExchangeStatus' {} Maybe Text
a -> ReservedNodeExchangeStatus
s {$sel:sourceReservedNodeType:ReservedNodeExchangeStatus' :: Maybe Text
sourceReservedNodeType = Maybe Text
a} :: ReservedNodeExchangeStatus)

-- | The status of the reserved-node exchange request. Statuses include
-- in-progress and requested.
reservedNodeExchangeStatus_status :: Lens.Lens' ReservedNodeExchangeStatus (Prelude.Maybe ReservedNodeExchangeStatusType)
reservedNodeExchangeStatus_status :: Lens'
  ReservedNodeExchangeStatus (Maybe ReservedNodeExchangeStatusType)
reservedNodeExchangeStatus_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReservedNodeExchangeStatus' {Maybe ReservedNodeExchangeStatusType
status :: Maybe ReservedNodeExchangeStatusType
$sel:status:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe ReservedNodeExchangeStatusType
status} -> Maybe ReservedNodeExchangeStatusType
status) (\s :: ReservedNodeExchangeStatus
s@ReservedNodeExchangeStatus' {} Maybe ReservedNodeExchangeStatusType
a -> ReservedNodeExchangeStatus
s {$sel:status:ReservedNodeExchangeStatus' :: Maybe ReservedNodeExchangeStatusType
status = Maybe ReservedNodeExchangeStatusType
a} :: ReservedNodeExchangeStatus)

-- | The count of target reserved nodes in the cluster.
reservedNodeExchangeStatus_targetReservedNodeCount :: Lens.Lens' ReservedNodeExchangeStatus (Prelude.Maybe Prelude.Int)
reservedNodeExchangeStatus_targetReservedNodeCount :: Lens' ReservedNodeExchangeStatus (Maybe Int)
reservedNodeExchangeStatus_targetReservedNodeCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReservedNodeExchangeStatus' {Maybe Int
targetReservedNodeCount :: Maybe Int
$sel:targetReservedNodeCount:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Int
targetReservedNodeCount} -> Maybe Int
targetReservedNodeCount) (\s :: ReservedNodeExchangeStatus
s@ReservedNodeExchangeStatus' {} Maybe Int
a -> ReservedNodeExchangeStatus
s {$sel:targetReservedNodeCount:ReservedNodeExchangeStatus' :: Maybe Int
targetReservedNodeCount = Maybe Int
a} :: ReservedNodeExchangeStatus)

-- | The identifier of the target reserved node offering.
reservedNodeExchangeStatus_targetReservedNodeOfferingId :: Lens.Lens' ReservedNodeExchangeStatus (Prelude.Maybe Prelude.Text)
reservedNodeExchangeStatus_targetReservedNodeOfferingId :: Lens' ReservedNodeExchangeStatus (Maybe Text)
reservedNodeExchangeStatus_targetReservedNodeOfferingId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReservedNodeExchangeStatus' {Maybe Text
targetReservedNodeOfferingId :: Maybe Text
$sel:targetReservedNodeOfferingId:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Text
targetReservedNodeOfferingId} -> Maybe Text
targetReservedNodeOfferingId) (\s :: ReservedNodeExchangeStatus
s@ReservedNodeExchangeStatus' {} Maybe Text
a -> ReservedNodeExchangeStatus
s {$sel:targetReservedNodeOfferingId:ReservedNodeExchangeStatus' :: Maybe Text
targetReservedNodeOfferingId = Maybe Text
a} :: ReservedNodeExchangeStatus)

-- | The node type of the target reserved node, for example ra3.4xlarge.
reservedNodeExchangeStatus_targetReservedNodeType :: Lens.Lens' ReservedNodeExchangeStatus (Prelude.Maybe Prelude.Text)
reservedNodeExchangeStatus_targetReservedNodeType :: Lens' ReservedNodeExchangeStatus (Maybe Text)
reservedNodeExchangeStatus_targetReservedNodeType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReservedNodeExchangeStatus' {Maybe Text
targetReservedNodeType :: Maybe Text
$sel:targetReservedNodeType:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Text
targetReservedNodeType} -> Maybe Text
targetReservedNodeType) (\s :: ReservedNodeExchangeStatus
s@ReservedNodeExchangeStatus' {} Maybe Text
a -> ReservedNodeExchangeStatus
s {$sel:targetReservedNodeType:ReservedNodeExchangeStatus' :: Maybe Text
targetReservedNodeType = Maybe Text
a} :: ReservedNodeExchangeStatus)

instance Data.FromXML ReservedNodeExchangeStatus where
  parseXML :: [Node] -> Either String ReservedNodeExchangeStatus
parseXML [Node]
x =
    Maybe ISO8601
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe ReservedNodeExchangeStatusType
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> ReservedNodeExchangeStatus
ReservedNodeExchangeStatus'
      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
"RequestTime")
      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
"ReservedNodeExchangeRequestId")
      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
"SourceReservedNodeCount")
      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
"SourceReservedNodeId")
      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
"SourceReservedNodeType")
      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
"Status")
      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
"TargetReservedNodeCount")
      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
"TargetReservedNodeOfferingId")
      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
"TargetReservedNodeType")

instance Prelude.Hashable ReservedNodeExchangeStatus where
  hashWithSalt :: Int -> ReservedNodeExchangeStatus -> Int
hashWithSalt Int
_salt ReservedNodeExchangeStatus' {Maybe Int
Maybe Text
Maybe ISO8601
Maybe ReservedNodeExchangeStatusType
targetReservedNodeType :: Maybe Text
targetReservedNodeOfferingId :: Maybe Text
targetReservedNodeCount :: Maybe Int
status :: Maybe ReservedNodeExchangeStatusType
sourceReservedNodeType :: Maybe Text
sourceReservedNodeId :: Maybe Text
sourceReservedNodeCount :: Maybe Int
reservedNodeExchangeRequestId :: Maybe Text
requestTime :: Maybe ISO8601
$sel:targetReservedNodeType:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Text
$sel:targetReservedNodeOfferingId:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Text
$sel:targetReservedNodeCount:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Int
$sel:status:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe ReservedNodeExchangeStatusType
$sel:sourceReservedNodeType:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Text
$sel:sourceReservedNodeId:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Text
$sel:sourceReservedNodeCount:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Int
$sel:reservedNodeExchangeRequestId:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Text
$sel:requestTime:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe ISO8601
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
requestTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
reservedNodeExchangeRequestId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
sourceReservedNodeCount
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
sourceReservedNodeId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
sourceReservedNodeType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ReservedNodeExchangeStatusType
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
targetReservedNodeCount
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
targetReservedNodeOfferingId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
targetReservedNodeType

instance Prelude.NFData ReservedNodeExchangeStatus where
  rnf :: ReservedNodeExchangeStatus -> ()
rnf ReservedNodeExchangeStatus' {Maybe Int
Maybe Text
Maybe ISO8601
Maybe ReservedNodeExchangeStatusType
targetReservedNodeType :: Maybe Text
targetReservedNodeOfferingId :: Maybe Text
targetReservedNodeCount :: Maybe Int
status :: Maybe ReservedNodeExchangeStatusType
sourceReservedNodeType :: Maybe Text
sourceReservedNodeId :: Maybe Text
sourceReservedNodeCount :: Maybe Int
reservedNodeExchangeRequestId :: Maybe Text
requestTime :: Maybe ISO8601
$sel:targetReservedNodeType:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Text
$sel:targetReservedNodeOfferingId:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Text
$sel:targetReservedNodeCount:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Int
$sel:status:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe ReservedNodeExchangeStatusType
$sel:sourceReservedNodeType:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Text
$sel:sourceReservedNodeId:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Text
$sel:sourceReservedNodeCount:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Int
$sel:reservedNodeExchangeRequestId:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe Text
$sel:requestTime:ReservedNodeExchangeStatus' :: ReservedNodeExchangeStatus -> Maybe ISO8601
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
requestTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
reservedNodeExchangeRequestId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
sourceReservedNodeCount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
sourceReservedNodeId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
sourceReservedNodeType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ReservedNodeExchangeStatusType
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
targetReservedNodeCount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
targetReservedNodeOfferingId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
targetReservedNodeType