{-# 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.Glue.Types.Node where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Glue.Types.CrawlerNodeDetails
import Amazonka.Glue.Types.JobNodeDetails
import Amazonka.Glue.Types.NodeType
import Amazonka.Glue.Types.TriggerNodeDetails
import qualified Amazonka.Prelude as Prelude
data Node = Node'
{
Node -> Maybe CrawlerNodeDetails
crawlerDetails :: Prelude.Maybe CrawlerNodeDetails,
Node -> Maybe JobNodeDetails
jobDetails :: Prelude.Maybe JobNodeDetails,
Node -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
Node -> Maybe TriggerNodeDetails
triggerDetails :: Prelude.Maybe TriggerNodeDetails,
Node -> Maybe NodeType
type' :: Prelude.Maybe NodeType,
Node -> Maybe Text
uniqueId :: Prelude.Maybe Prelude.Text
}
deriving (Node -> Node -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Node -> Node -> Bool
$c/= :: Node -> Node -> Bool
== :: Node -> Node -> Bool
$c== :: Node -> Node -> Bool
Prelude.Eq, ReadPrec [Node]
ReadPrec Node
Int -> ReadS Node
ReadS [Node]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Node]
$creadListPrec :: ReadPrec [Node]
readPrec :: ReadPrec Node
$creadPrec :: ReadPrec Node
readList :: ReadS [Node]
$creadList :: ReadS [Node]
readsPrec :: Int -> ReadS Node
$creadsPrec :: Int -> ReadS Node
Prelude.Read, Int -> Node -> ShowS
[Node] -> ShowS
Node -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Node] -> ShowS
$cshowList :: [Node] -> ShowS
show :: Node -> String
$cshow :: Node -> String
showsPrec :: Int -> Node -> ShowS
$cshowsPrec :: Int -> Node -> ShowS
Prelude.Show, forall x. Rep Node x -> Node
forall x. Node -> Rep Node x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Node x -> Node
$cfrom :: forall x. Node -> Rep Node x
Prelude.Generic)
newNode ::
Node
newNode :: Node
newNode =
Node'
{ $sel:crawlerDetails:Node' :: Maybe CrawlerNodeDetails
crawlerDetails = forall a. Maybe a
Prelude.Nothing,
$sel:jobDetails:Node' :: Maybe JobNodeDetails
jobDetails = forall a. Maybe a
Prelude.Nothing,
$sel:name:Node' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
$sel:triggerDetails:Node' :: Maybe TriggerNodeDetails
triggerDetails = forall a. Maybe a
Prelude.Nothing,
$sel:type':Node' :: Maybe NodeType
type' = forall a. Maybe a
Prelude.Nothing,
$sel:uniqueId:Node' :: Maybe Text
uniqueId = forall a. Maybe a
Prelude.Nothing
}
node_crawlerDetails :: Lens.Lens' Node (Prelude.Maybe CrawlerNodeDetails)
node_crawlerDetails :: Lens' Node (Maybe CrawlerNodeDetails)
node_crawlerDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Node' {Maybe CrawlerNodeDetails
crawlerDetails :: Maybe CrawlerNodeDetails
$sel:crawlerDetails:Node' :: Node -> Maybe CrawlerNodeDetails
crawlerDetails} -> Maybe CrawlerNodeDetails
crawlerDetails) (\s :: Node
s@Node' {} Maybe CrawlerNodeDetails
a -> Node
s {$sel:crawlerDetails:Node' :: Maybe CrawlerNodeDetails
crawlerDetails = Maybe CrawlerNodeDetails
a} :: Node)
node_jobDetails :: Lens.Lens' Node (Prelude.Maybe JobNodeDetails)
node_jobDetails :: Lens' Node (Maybe JobNodeDetails)
node_jobDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Node' {Maybe JobNodeDetails
jobDetails :: Maybe JobNodeDetails
$sel:jobDetails:Node' :: Node -> Maybe JobNodeDetails
jobDetails} -> Maybe JobNodeDetails
jobDetails) (\s :: Node
s@Node' {} Maybe JobNodeDetails
a -> Node
s {$sel:jobDetails:Node' :: Maybe JobNodeDetails
jobDetails = Maybe JobNodeDetails
a} :: Node)
node_name :: Lens.Lens' Node (Prelude.Maybe Prelude.Text)
node_name :: Lens' Node (Maybe Text)
node_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Node' {Maybe Text
name :: Maybe Text
$sel:name:Node' :: Node -> Maybe Text
name} -> Maybe Text
name) (\s :: Node
s@Node' {} Maybe Text
a -> Node
s {$sel:name:Node' :: Maybe Text
name = Maybe Text
a} :: Node)
node_triggerDetails :: Lens.Lens' Node (Prelude.Maybe TriggerNodeDetails)
node_triggerDetails :: Lens' Node (Maybe TriggerNodeDetails)
node_triggerDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Node' {Maybe TriggerNodeDetails
triggerDetails :: Maybe TriggerNodeDetails
$sel:triggerDetails:Node' :: Node -> Maybe TriggerNodeDetails
triggerDetails} -> Maybe TriggerNodeDetails
triggerDetails) (\s :: Node
s@Node' {} Maybe TriggerNodeDetails
a -> Node
s {$sel:triggerDetails:Node' :: Maybe TriggerNodeDetails
triggerDetails = Maybe TriggerNodeDetails
a} :: Node)
node_type :: Lens.Lens' Node (Prelude.Maybe NodeType)
node_type :: Lens' Node (Maybe NodeType)
node_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Node' {Maybe NodeType
type' :: Maybe NodeType
$sel:type':Node' :: Node -> Maybe NodeType
type'} -> Maybe NodeType
type') (\s :: Node
s@Node' {} Maybe NodeType
a -> Node
s {$sel:type':Node' :: Maybe NodeType
type' = Maybe NodeType
a} :: Node)
node_uniqueId :: Lens.Lens' Node (Prelude.Maybe Prelude.Text)
node_uniqueId :: Lens' Node (Maybe Text)
node_uniqueId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Node' {Maybe Text
uniqueId :: Maybe Text
$sel:uniqueId:Node' :: Node -> Maybe Text
uniqueId} -> Maybe Text
uniqueId) (\s :: Node
s@Node' {} Maybe Text
a -> Node
s {$sel:uniqueId:Node' :: Maybe Text
uniqueId = Maybe Text
a} :: Node)
instance Data.FromJSON Node where
parseJSON :: Value -> Parser Node
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"Node"
( \Object
x ->
Maybe CrawlerNodeDetails
-> Maybe JobNodeDetails
-> Maybe Text
-> Maybe TriggerNodeDetails
-> Maybe NodeType
-> Maybe Text
-> Node
Node'
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
"CrawlerDetails")
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
"JobDetails")
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
"Name")
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
"TriggerDetails")
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
"Type")
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
"UniqueId")
)
instance Prelude.Hashable Node where
hashWithSalt :: Int -> Node -> Int
hashWithSalt Int
_salt Node' {Maybe Text
Maybe CrawlerNodeDetails
Maybe NodeType
Maybe TriggerNodeDetails
Maybe JobNodeDetails
uniqueId :: Maybe Text
type' :: Maybe NodeType
triggerDetails :: Maybe TriggerNodeDetails
name :: Maybe Text
jobDetails :: Maybe JobNodeDetails
crawlerDetails :: Maybe CrawlerNodeDetails
$sel:uniqueId:Node' :: Node -> Maybe Text
$sel:type':Node' :: Node -> Maybe NodeType
$sel:triggerDetails:Node' :: Node -> Maybe TriggerNodeDetails
$sel:name:Node' :: Node -> Maybe Text
$sel:jobDetails:Node' :: Node -> Maybe JobNodeDetails
$sel:crawlerDetails:Node' :: Node -> Maybe CrawlerNodeDetails
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CrawlerNodeDetails
crawlerDetails
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe JobNodeDetails
jobDetails
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TriggerNodeDetails
triggerDetails
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NodeType
type'
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
uniqueId
instance Prelude.NFData Node where
rnf :: Node -> ()
rnf Node' {Maybe Text
Maybe CrawlerNodeDetails
Maybe NodeType
Maybe TriggerNodeDetails
Maybe JobNodeDetails
uniqueId :: Maybe Text
type' :: Maybe NodeType
triggerDetails :: Maybe TriggerNodeDetails
name :: Maybe Text
jobDetails :: Maybe JobNodeDetails
crawlerDetails :: Maybe CrawlerNodeDetails
$sel:uniqueId:Node' :: Node -> Maybe Text
$sel:type':Node' :: Node -> Maybe NodeType
$sel:triggerDetails:Node' :: Node -> Maybe TriggerNodeDetails
$sel:name:Node' :: Node -> Maybe Text
$sel:jobDetails:Node' :: Node -> Maybe JobNodeDetails
$sel:crawlerDetails:Node' :: Node -> Maybe CrawlerNodeDetails
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe CrawlerNodeDetails
crawlerDetails
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe JobNodeDetails
jobDetails
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TriggerNodeDetails
triggerDetails
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe NodeType
type'
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
uniqueId