amazonka-iot-2.0: gen/Amazonka/IoT/Types/TransferData.hs
{-# 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.IoT.Types.TransferData
-- 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.IoT.Types.TransferData 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
-- | Data used to transfer a certificate to an Amazon Web Services account.
--
-- /See:/ 'newTransferData' smart constructor.
data TransferData = TransferData'
{ -- | The date the transfer was accepted.
acceptDate :: Prelude.Maybe Data.POSIX,
-- | The date the transfer was rejected.
rejectDate :: Prelude.Maybe Data.POSIX,
-- | The reason why the transfer was rejected.
rejectReason :: Prelude.Maybe Prelude.Text,
-- | The date the transfer took place.
transferDate :: Prelude.Maybe Data.POSIX,
-- | The transfer message.
transferMessage :: Prelude.Maybe Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'TransferData' 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:
--
-- 'acceptDate', 'transferData_acceptDate' - The date the transfer was accepted.
--
-- 'rejectDate', 'transferData_rejectDate' - The date the transfer was rejected.
--
-- 'rejectReason', 'transferData_rejectReason' - The reason why the transfer was rejected.
--
-- 'transferDate', 'transferData_transferDate' - The date the transfer took place.
--
-- 'transferMessage', 'transferData_transferMessage' - The transfer message.
newTransferData ::
TransferData
newTransferData =
TransferData'
{ acceptDate = Prelude.Nothing,
rejectDate = Prelude.Nothing,
rejectReason = Prelude.Nothing,
transferDate = Prelude.Nothing,
transferMessage = Prelude.Nothing
}
-- | The date the transfer was accepted.
transferData_acceptDate :: Lens.Lens' TransferData (Prelude.Maybe Prelude.UTCTime)
transferData_acceptDate = Lens.lens (\TransferData' {acceptDate} -> acceptDate) (\s@TransferData' {} a -> s {acceptDate = a} :: TransferData) Prelude.. Lens.mapping Data._Time
-- | The date the transfer was rejected.
transferData_rejectDate :: Lens.Lens' TransferData (Prelude.Maybe Prelude.UTCTime)
transferData_rejectDate = Lens.lens (\TransferData' {rejectDate} -> rejectDate) (\s@TransferData' {} a -> s {rejectDate = a} :: TransferData) Prelude.. Lens.mapping Data._Time
-- | The reason why the transfer was rejected.
transferData_rejectReason :: Lens.Lens' TransferData (Prelude.Maybe Prelude.Text)
transferData_rejectReason = Lens.lens (\TransferData' {rejectReason} -> rejectReason) (\s@TransferData' {} a -> s {rejectReason = a} :: TransferData)
-- | The date the transfer took place.
transferData_transferDate :: Lens.Lens' TransferData (Prelude.Maybe Prelude.UTCTime)
transferData_transferDate = Lens.lens (\TransferData' {transferDate} -> transferDate) (\s@TransferData' {} a -> s {transferDate = a} :: TransferData) Prelude.. Lens.mapping Data._Time
-- | The transfer message.
transferData_transferMessage :: Lens.Lens' TransferData (Prelude.Maybe Prelude.Text)
transferData_transferMessage = Lens.lens (\TransferData' {transferMessage} -> transferMessage) (\s@TransferData' {} a -> s {transferMessage = a} :: TransferData)
instance Data.FromJSON TransferData where
parseJSON =
Data.withObject
"TransferData"
( \x ->
TransferData'
Prelude.<$> (x Data..:? "acceptDate")
Prelude.<*> (x Data..:? "rejectDate")
Prelude.<*> (x Data..:? "rejectReason")
Prelude.<*> (x Data..:? "transferDate")
Prelude.<*> (x Data..:? "transferMessage")
)
instance Prelude.Hashable TransferData where
hashWithSalt _salt TransferData' {..} =
_salt
`Prelude.hashWithSalt` acceptDate
`Prelude.hashWithSalt` rejectDate
`Prelude.hashWithSalt` rejectReason
`Prelude.hashWithSalt` transferDate
`Prelude.hashWithSalt` transferMessage
instance Prelude.NFData TransferData where
rnf TransferData' {..} =
Prelude.rnf acceptDate
`Prelude.seq` Prelude.rnf rejectDate
`Prelude.seq` Prelude.rnf rejectReason
`Prelude.seq` Prelude.rnf transferDate
`Prelude.seq` Prelude.rnf transferMessage