{-# 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.IoTFleetWise.Types.NetworkInterface where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoTFleetWise.Types.CanInterface
import Amazonka.IoTFleetWise.Types.NetworkInterfaceType
import Amazonka.IoTFleetWise.Types.ObdInterface
import qualified Amazonka.Prelude as Prelude
data NetworkInterface = NetworkInterface'
{
NetworkInterface -> Maybe CanInterface
canInterface :: Prelude.Maybe CanInterface,
NetworkInterface -> Maybe ObdInterface
obdInterface :: Prelude.Maybe ObdInterface,
NetworkInterface -> Text
interfaceId :: Prelude.Text,
NetworkInterface -> NetworkInterfaceType
type' :: NetworkInterfaceType
}
deriving (NetworkInterface -> NetworkInterface -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NetworkInterface -> NetworkInterface -> Bool
$c/= :: NetworkInterface -> NetworkInterface -> Bool
== :: NetworkInterface -> NetworkInterface -> Bool
$c== :: NetworkInterface -> NetworkInterface -> Bool
Prelude.Eq, ReadPrec [NetworkInterface]
ReadPrec NetworkInterface
Int -> ReadS NetworkInterface
ReadS [NetworkInterface]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [NetworkInterface]
$creadListPrec :: ReadPrec [NetworkInterface]
readPrec :: ReadPrec NetworkInterface
$creadPrec :: ReadPrec NetworkInterface
readList :: ReadS [NetworkInterface]
$creadList :: ReadS [NetworkInterface]
readsPrec :: Int -> ReadS NetworkInterface
$creadsPrec :: Int -> ReadS NetworkInterface
Prelude.Read, Int -> NetworkInterface -> ShowS
[NetworkInterface] -> ShowS
NetworkInterface -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NetworkInterface] -> ShowS
$cshowList :: [NetworkInterface] -> ShowS
show :: NetworkInterface -> String
$cshow :: NetworkInterface -> String
showsPrec :: Int -> NetworkInterface -> ShowS
$cshowsPrec :: Int -> NetworkInterface -> ShowS
Prelude.Show, forall x. Rep NetworkInterface x -> NetworkInterface
forall x. NetworkInterface -> Rep NetworkInterface x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep NetworkInterface x -> NetworkInterface
$cfrom :: forall x. NetworkInterface -> Rep NetworkInterface x
Prelude.Generic)
newNetworkInterface ::
Prelude.Text ->
NetworkInterfaceType ->
NetworkInterface
newNetworkInterface :: Text -> NetworkInterfaceType -> NetworkInterface
newNetworkInterface Text
pInterfaceId_ NetworkInterfaceType
pType_ =
NetworkInterface'
{ $sel:canInterface:NetworkInterface' :: Maybe CanInterface
canInterface = forall a. Maybe a
Prelude.Nothing,
$sel:obdInterface:NetworkInterface' :: Maybe ObdInterface
obdInterface = forall a. Maybe a
Prelude.Nothing,
$sel:interfaceId:NetworkInterface' :: Text
interfaceId = Text
pInterfaceId_,
$sel:type':NetworkInterface' :: NetworkInterfaceType
type' = NetworkInterfaceType
pType_
}
networkInterface_canInterface :: Lens.Lens' NetworkInterface (Prelude.Maybe CanInterface)
networkInterface_canInterface :: Lens' NetworkInterface (Maybe CanInterface)
networkInterface_canInterface = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkInterface' {Maybe CanInterface
canInterface :: Maybe CanInterface
$sel:canInterface:NetworkInterface' :: NetworkInterface -> Maybe CanInterface
canInterface} -> Maybe CanInterface
canInterface) (\s :: NetworkInterface
s@NetworkInterface' {} Maybe CanInterface
a -> NetworkInterface
s {$sel:canInterface:NetworkInterface' :: Maybe CanInterface
canInterface = Maybe CanInterface
a} :: NetworkInterface)
networkInterface_obdInterface :: Lens.Lens' NetworkInterface (Prelude.Maybe ObdInterface)
networkInterface_obdInterface :: Lens' NetworkInterface (Maybe ObdInterface)
networkInterface_obdInterface = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkInterface' {Maybe ObdInterface
obdInterface :: Maybe ObdInterface
$sel:obdInterface:NetworkInterface' :: NetworkInterface -> Maybe ObdInterface
obdInterface} -> Maybe ObdInterface
obdInterface) (\s :: NetworkInterface
s@NetworkInterface' {} Maybe ObdInterface
a -> NetworkInterface
s {$sel:obdInterface:NetworkInterface' :: Maybe ObdInterface
obdInterface = Maybe ObdInterface
a} :: NetworkInterface)
networkInterface_interfaceId :: Lens.Lens' NetworkInterface Prelude.Text
networkInterface_interfaceId :: Lens' NetworkInterface Text
networkInterface_interfaceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkInterface' {Text
interfaceId :: Text
$sel:interfaceId:NetworkInterface' :: NetworkInterface -> Text
interfaceId} -> Text
interfaceId) (\s :: NetworkInterface
s@NetworkInterface' {} Text
a -> NetworkInterface
s {$sel:interfaceId:NetworkInterface' :: Text
interfaceId = Text
a} :: NetworkInterface)
networkInterface_type :: Lens.Lens' NetworkInterface NetworkInterfaceType
networkInterface_type :: Lens' NetworkInterface NetworkInterfaceType
networkInterface_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkInterface' {NetworkInterfaceType
type' :: NetworkInterfaceType
$sel:type':NetworkInterface' :: NetworkInterface -> NetworkInterfaceType
type'} -> NetworkInterfaceType
type') (\s :: NetworkInterface
s@NetworkInterface' {} NetworkInterfaceType
a -> NetworkInterface
s {$sel:type':NetworkInterface' :: NetworkInterfaceType
type' = NetworkInterfaceType
a} :: NetworkInterface)
instance Data.FromJSON NetworkInterface where
parseJSON :: Value -> Parser NetworkInterface
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"NetworkInterface"
( \Object
x ->
Maybe CanInterface
-> Maybe ObdInterface
-> Text
-> NetworkInterfaceType
-> NetworkInterface
NetworkInterface'
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
"canInterface")
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
"obdInterface")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"interfaceId")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"type")
)
instance Prelude.Hashable NetworkInterface where
hashWithSalt :: Int -> NetworkInterface -> Int
hashWithSalt Int
_salt NetworkInterface' {Maybe CanInterface
Maybe ObdInterface
Text
NetworkInterfaceType
type' :: NetworkInterfaceType
interfaceId :: Text
obdInterface :: Maybe ObdInterface
canInterface :: Maybe CanInterface
$sel:type':NetworkInterface' :: NetworkInterface -> NetworkInterfaceType
$sel:interfaceId:NetworkInterface' :: NetworkInterface -> Text
$sel:obdInterface:NetworkInterface' :: NetworkInterface -> Maybe ObdInterface
$sel:canInterface:NetworkInterface' :: NetworkInterface -> Maybe CanInterface
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CanInterface
canInterface
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ObdInterface
obdInterface
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
interfaceId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NetworkInterfaceType
type'
instance Prelude.NFData NetworkInterface where
rnf :: NetworkInterface -> ()
rnf NetworkInterface' {Maybe CanInterface
Maybe ObdInterface
Text
NetworkInterfaceType
type' :: NetworkInterfaceType
interfaceId :: Text
obdInterface :: Maybe ObdInterface
canInterface :: Maybe CanInterface
$sel:type':NetworkInterface' :: NetworkInterface -> NetworkInterfaceType
$sel:interfaceId:NetworkInterface' :: NetworkInterface -> Text
$sel:obdInterface:NetworkInterface' :: NetworkInterface -> Maybe ObdInterface
$sel:canInterface:NetworkInterface' :: NetworkInterface -> Maybe CanInterface
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe CanInterface
canInterface
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ObdInterface
obdInterface
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
interfaceId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NetworkInterfaceType
type'
instance Data.ToJSON NetworkInterface where
toJSON :: NetworkInterface -> Value
toJSON NetworkInterface' {Maybe CanInterface
Maybe ObdInterface
Text
NetworkInterfaceType
type' :: NetworkInterfaceType
interfaceId :: Text
obdInterface :: Maybe ObdInterface
canInterface :: Maybe CanInterface
$sel:type':NetworkInterface' :: NetworkInterface -> NetworkInterfaceType
$sel:interfaceId:NetworkInterface' :: NetworkInterface -> Text
$sel:obdInterface:NetworkInterface' :: NetworkInterface -> Maybe ObdInterface
$sel:canInterface:NetworkInterface' :: NetworkInterface -> Maybe CanInterface
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"canInterface" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe CanInterface
canInterface,
(Key
"obdInterface" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ObdInterface
obdInterface,
forall a. a -> Maybe a
Prelude.Just (Key
"interfaceId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
interfaceId),
forall a. a -> Maybe a
Prelude.Just (Key
"type" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NetworkInterfaceType
type')
]
)