{-# 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 #-}
module Amazonka.Chime.Types.PhoneNumberOrder where
import Amazonka.Chime.Types.OrderedPhoneNumber
import Amazonka.Chime.Types.PhoneNumberOrderStatus
import Amazonka.Chime.Types.PhoneNumberProductType
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 PhoneNumberOrder = PhoneNumberOrder'
{
PhoneNumberOrder -> Maybe ISO8601
createdTimestamp :: Prelude.Maybe Data.ISO8601,
PhoneNumberOrder -> Maybe [OrderedPhoneNumber]
orderedPhoneNumbers :: Prelude.Maybe [OrderedPhoneNumber],
PhoneNumberOrder -> Maybe Text
phoneNumberOrderId :: Prelude.Maybe Prelude.Text,
PhoneNumberOrder -> Maybe PhoneNumberProductType
productType :: Prelude.Maybe PhoneNumberProductType,
PhoneNumberOrder -> Maybe PhoneNumberOrderStatus
status :: Prelude.Maybe PhoneNumberOrderStatus,
PhoneNumberOrder -> Maybe ISO8601
updatedTimestamp :: Prelude.Maybe Data.ISO8601
}
deriving (PhoneNumberOrder -> PhoneNumberOrder -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhoneNumberOrder -> PhoneNumberOrder -> Bool
$c/= :: PhoneNumberOrder -> PhoneNumberOrder -> Bool
== :: PhoneNumberOrder -> PhoneNumberOrder -> Bool
$c== :: PhoneNumberOrder -> PhoneNumberOrder -> Bool
Prelude.Eq, Int -> PhoneNumberOrder -> ShowS
[PhoneNumberOrder] -> ShowS
PhoneNumberOrder -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PhoneNumberOrder] -> ShowS
$cshowList :: [PhoneNumberOrder] -> ShowS
show :: PhoneNumberOrder -> String
$cshow :: PhoneNumberOrder -> String
showsPrec :: Int -> PhoneNumberOrder -> ShowS
$cshowsPrec :: Int -> PhoneNumberOrder -> ShowS
Prelude.Show, forall x. Rep PhoneNumberOrder x -> PhoneNumberOrder
forall x. PhoneNumberOrder -> Rep PhoneNumberOrder x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PhoneNumberOrder x -> PhoneNumberOrder
$cfrom :: forall x. PhoneNumberOrder -> Rep PhoneNumberOrder x
Prelude.Generic)
newPhoneNumberOrder ::
PhoneNumberOrder
newPhoneNumberOrder :: PhoneNumberOrder
newPhoneNumberOrder =
PhoneNumberOrder'
{ $sel:createdTimestamp:PhoneNumberOrder' :: Maybe ISO8601
createdTimestamp =
forall a. Maybe a
Prelude.Nothing,
$sel:orderedPhoneNumbers:PhoneNumberOrder' :: Maybe [OrderedPhoneNumber]
orderedPhoneNumbers = forall a. Maybe a
Prelude.Nothing,
$sel:phoneNumberOrderId:PhoneNumberOrder' :: Maybe Text
phoneNumberOrderId = forall a. Maybe a
Prelude.Nothing,
$sel:productType:PhoneNumberOrder' :: Maybe PhoneNumberProductType
productType = forall a. Maybe a
Prelude.Nothing,
$sel:status:PhoneNumberOrder' :: Maybe PhoneNumberOrderStatus
status = forall a. Maybe a
Prelude.Nothing,
$sel:updatedTimestamp:PhoneNumberOrder' :: Maybe ISO8601
updatedTimestamp = forall a. Maybe a
Prelude.Nothing
}
phoneNumberOrder_createdTimestamp :: Lens.Lens' PhoneNumberOrder (Prelude.Maybe Prelude.UTCTime)
phoneNumberOrder_createdTimestamp :: Lens' PhoneNumberOrder (Maybe UTCTime)
phoneNumberOrder_createdTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PhoneNumberOrder' {Maybe ISO8601
createdTimestamp :: Maybe ISO8601
$sel:createdTimestamp:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe ISO8601
createdTimestamp} -> Maybe ISO8601
createdTimestamp) (\s :: PhoneNumberOrder
s@PhoneNumberOrder' {} Maybe ISO8601
a -> PhoneNumberOrder
s {$sel:createdTimestamp:PhoneNumberOrder' :: Maybe ISO8601
createdTimestamp = Maybe ISO8601
a} :: PhoneNumberOrder) 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
phoneNumberOrder_orderedPhoneNumbers :: Lens.Lens' PhoneNumberOrder (Prelude.Maybe [OrderedPhoneNumber])
phoneNumberOrder_orderedPhoneNumbers :: Lens' PhoneNumberOrder (Maybe [OrderedPhoneNumber])
phoneNumberOrder_orderedPhoneNumbers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PhoneNumberOrder' {Maybe [OrderedPhoneNumber]
orderedPhoneNumbers :: Maybe [OrderedPhoneNumber]
$sel:orderedPhoneNumbers:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe [OrderedPhoneNumber]
orderedPhoneNumbers} -> Maybe [OrderedPhoneNumber]
orderedPhoneNumbers) (\s :: PhoneNumberOrder
s@PhoneNumberOrder' {} Maybe [OrderedPhoneNumber]
a -> PhoneNumberOrder
s {$sel:orderedPhoneNumbers:PhoneNumberOrder' :: Maybe [OrderedPhoneNumber]
orderedPhoneNumbers = Maybe [OrderedPhoneNumber]
a} :: PhoneNumberOrder) 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
phoneNumberOrder_phoneNumberOrderId :: Lens.Lens' PhoneNumberOrder (Prelude.Maybe Prelude.Text)
phoneNumberOrder_phoneNumberOrderId :: Lens' PhoneNumberOrder (Maybe Text)
phoneNumberOrder_phoneNumberOrderId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PhoneNumberOrder' {Maybe Text
phoneNumberOrderId :: Maybe Text
$sel:phoneNumberOrderId:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe Text
phoneNumberOrderId} -> Maybe Text
phoneNumberOrderId) (\s :: PhoneNumberOrder
s@PhoneNumberOrder' {} Maybe Text
a -> PhoneNumberOrder
s {$sel:phoneNumberOrderId:PhoneNumberOrder' :: Maybe Text
phoneNumberOrderId = Maybe Text
a} :: PhoneNumberOrder)
phoneNumberOrder_productType :: Lens.Lens' PhoneNumberOrder (Prelude.Maybe PhoneNumberProductType)
phoneNumberOrder_productType :: Lens' PhoneNumberOrder (Maybe PhoneNumberProductType)
phoneNumberOrder_productType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PhoneNumberOrder' {Maybe PhoneNumberProductType
productType :: Maybe PhoneNumberProductType
$sel:productType:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe PhoneNumberProductType
productType} -> Maybe PhoneNumberProductType
productType) (\s :: PhoneNumberOrder
s@PhoneNumberOrder' {} Maybe PhoneNumberProductType
a -> PhoneNumberOrder
s {$sel:productType:PhoneNumberOrder' :: Maybe PhoneNumberProductType
productType = Maybe PhoneNumberProductType
a} :: PhoneNumberOrder)
phoneNumberOrder_status :: Lens.Lens' PhoneNumberOrder (Prelude.Maybe PhoneNumberOrderStatus)
phoneNumberOrder_status :: Lens' PhoneNumberOrder (Maybe PhoneNumberOrderStatus)
phoneNumberOrder_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PhoneNumberOrder' {Maybe PhoneNumberOrderStatus
status :: Maybe PhoneNumberOrderStatus
$sel:status:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe PhoneNumberOrderStatus
status} -> Maybe PhoneNumberOrderStatus
status) (\s :: PhoneNumberOrder
s@PhoneNumberOrder' {} Maybe PhoneNumberOrderStatus
a -> PhoneNumberOrder
s {$sel:status:PhoneNumberOrder' :: Maybe PhoneNumberOrderStatus
status = Maybe PhoneNumberOrderStatus
a} :: PhoneNumberOrder)
phoneNumberOrder_updatedTimestamp :: Lens.Lens' PhoneNumberOrder (Prelude.Maybe Prelude.UTCTime)
phoneNumberOrder_updatedTimestamp :: Lens' PhoneNumberOrder (Maybe UTCTime)
phoneNumberOrder_updatedTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PhoneNumberOrder' {Maybe ISO8601
updatedTimestamp :: Maybe ISO8601
$sel:updatedTimestamp:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe ISO8601
updatedTimestamp} -> Maybe ISO8601
updatedTimestamp) (\s :: PhoneNumberOrder
s@PhoneNumberOrder' {} Maybe ISO8601
a -> PhoneNumberOrder
s {$sel:updatedTimestamp:PhoneNumberOrder' :: Maybe ISO8601
updatedTimestamp = Maybe ISO8601
a} :: PhoneNumberOrder) 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
instance Data.FromJSON PhoneNumberOrder where
parseJSON :: Value -> Parser PhoneNumberOrder
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"PhoneNumberOrder"
( \Object
x ->
Maybe ISO8601
-> Maybe [OrderedPhoneNumber]
-> Maybe Text
-> Maybe PhoneNumberProductType
-> Maybe PhoneNumberOrderStatus
-> Maybe ISO8601
-> PhoneNumberOrder
PhoneNumberOrder'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CreatedTimestamp")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"OrderedPhoneNumbers"
forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty
)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"PhoneNumberOrderId")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ProductType")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Status")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"UpdatedTimestamp")
)
instance Prelude.Hashable PhoneNumberOrder where
hashWithSalt :: Int -> PhoneNumberOrder -> Int
hashWithSalt Int
_salt PhoneNumberOrder' {Maybe [OrderedPhoneNumber]
Maybe Text
Maybe ISO8601
Maybe PhoneNumberOrderStatus
Maybe PhoneNumberProductType
updatedTimestamp :: Maybe ISO8601
status :: Maybe PhoneNumberOrderStatus
productType :: Maybe PhoneNumberProductType
phoneNumberOrderId :: Maybe Text
orderedPhoneNumbers :: Maybe [OrderedPhoneNumber]
createdTimestamp :: Maybe ISO8601
$sel:updatedTimestamp:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe ISO8601
$sel:status:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe PhoneNumberOrderStatus
$sel:productType:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe PhoneNumberProductType
$sel:phoneNumberOrderId:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe Text
$sel:orderedPhoneNumbers:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe [OrderedPhoneNumber]
$sel:createdTimestamp:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe ISO8601
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
createdTimestamp
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [OrderedPhoneNumber]
orderedPhoneNumbers
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
phoneNumberOrderId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PhoneNumberProductType
productType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PhoneNumberOrderStatus
status
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
updatedTimestamp
instance Prelude.NFData PhoneNumberOrder where
rnf :: PhoneNumberOrder -> ()
rnf PhoneNumberOrder' {Maybe [OrderedPhoneNumber]
Maybe Text
Maybe ISO8601
Maybe PhoneNumberOrderStatus
Maybe PhoneNumberProductType
updatedTimestamp :: Maybe ISO8601
status :: Maybe PhoneNumberOrderStatus
productType :: Maybe PhoneNumberProductType
phoneNumberOrderId :: Maybe Text
orderedPhoneNumbers :: Maybe [OrderedPhoneNumber]
createdTimestamp :: Maybe ISO8601
$sel:updatedTimestamp:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe ISO8601
$sel:status:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe PhoneNumberOrderStatus
$sel:productType:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe PhoneNumberProductType
$sel:phoneNumberOrderId:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe Text
$sel:orderedPhoneNumbers:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe [OrderedPhoneNumber]
$sel:createdTimestamp:PhoneNumberOrder' :: PhoneNumberOrder -> Maybe ISO8601
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
createdTimestamp
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [OrderedPhoneNumber]
orderedPhoneNumbers
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
phoneNumberOrderId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PhoneNumberProductType
productType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PhoneNumberOrderStatus
status
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
updatedTimestamp