{-# 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.EC2.Types.PathStatement where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EC2.Internal
import Amazonka.EC2.Types.PacketHeaderStatement
import Amazonka.EC2.Types.ResourceStatement
import qualified Amazonka.Prelude as Prelude
data PathStatement = PathStatement'
{
:: Prelude.Maybe PacketHeaderStatement,
PathStatement -> Maybe ResourceStatement
resourceStatement :: Prelude.Maybe ResourceStatement
}
deriving (PathStatement -> PathStatement -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PathStatement -> PathStatement -> Bool
$c/= :: PathStatement -> PathStatement -> Bool
== :: PathStatement -> PathStatement -> Bool
$c== :: PathStatement -> PathStatement -> Bool
Prelude.Eq, ReadPrec [PathStatement]
ReadPrec PathStatement
Int -> ReadS PathStatement
ReadS [PathStatement]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PathStatement]
$creadListPrec :: ReadPrec [PathStatement]
readPrec :: ReadPrec PathStatement
$creadPrec :: ReadPrec PathStatement
readList :: ReadS [PathStatement]
$creadList :: ReadS [PathStatement]
readsPrec :: Int -> ReadS PathStatement
$creadsPrec :: Int -> ReadS PathStatement
Prelude.Read, Int -> PathStatement -> ShowS
[PathStatement] -> ShowS
PathStatement -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PathStatement] -> ShowS
$cshowList :: [PathStatement] -> ShowS
show :: PathStatement -> String
$cshow :: PathStatement -> String
showsPrec :: Int -> PathStatement -> ShowS
$cshowsPrec :: Int -> PathStatement -> ShowS
Prelude.Show, forall x. Rep PathStatement x -> PathStatement
forall x. PathStatement -> Rep PathStatement x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PathStatement x -> PathStatement
$cfrom :: forall x. PathStatement -> Rep PathStatement x
Prelude.Generic)
newPathStatement ::
PathStatement
newPathStatement :: PathStatement
newPathStatement =
PathStatement'
{ $sel:packetHeaderStatement:PathStatement' :: Maybe PacketHeaderStatement
packetHeaderStatement =
forall a. Maybe a
Prelude.Nothing,
$sel:resourceStatement:PathStatement' :: Maybe ResourceStatement
resourceStatement = forall a. Maybe a
Prelude.Nothing
}
pathStatement_packetHeaderStatement :: Lens.Lens' PathStatement (Prelude.Maybe PacketHeaderStatement)
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PathStatement' {Maybe PacketHeaderStatement
packetHeaderStatement :: Maybe PacketHeaderStatement
$sel:packetHeaderStatement:PathStatement' :: PathStatement -> Maybe PacketHeaderStatement
packetHeaderStatement} -> Maybe PacketHeaderStatement
packetHeaderStatement) (\s :: PathStatement
s@PathStatement' {} Maybe PacketHeaderStatement
a -> PathStatement
s {$sel:packetHeaderStatement:PathStatement' :: Maybe PacketHeaderStatement
packetHeaderStatement = Maybe PacketHeaderStatement
a} :: PathStatement)
pathStatement_resourceStatement :: Lens.Lens' PathStatement (Prelude.Maybe ResourceStatement)
pathStatement_resourceStatement :: Lens' PathStatement (Maybe ResourceStatement)
pathStatement_resourceStatement = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PathStatement' {Maybe ResourceStatement
resourceStatement :: Maybe ResourceStatement
$sel:resourceStatement:PathStatement' :: PathStatement -> Maybe ResourceStatement
resourceStatement} -> Maybe ResourceStatement
resourceStatement) (\s :: PathStatement
s@PathStatement' {} Maybe ResourceStatement
a -> PathStatement
s {$sel:resourceStatement:PathStatement' :: Maybe ResourceStatement
resourceStatement = Maybe ResourceStatement
a} :: PathStatement)
instance Data.FromXML PathStatement where
parseXML :: [Node] -> Either String PathStatement
parseXML [Node]
x =
Maybe PacketHeaderStatement
-> Maybe ResourceStatement -> PathStatement
PathStatement'
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
"packetHeaderStatement")
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
"resourceStatement")
instance Prelude.Hashable PathStatement where
hashWithSalt :: Int -> PathStatement -> Int
hashWithSalt Int
_salt PathStatement' {Maybe PacketHeaderStatement
Maybe ResourceStatement
resourceStatement :: Maybe ResourceStatement
packetHeaderStatement :: Maybe PacketHeaderStatement
$sel:resourceStatement:PathStatement' :: PathStatement -> Maybe ResourceStatement
$sel:packetHeaderStatement:PathStatement' :: PathStatement -> Maybe PacketHeaderStatement
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PacketHeaderStatement
packetHeaderStatement
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ResourceStatement
resourceStatement
instance Prelude.NFData PathStatement where
rnf :: PathStatement -> ()
rnf PathStatement' {Maybe PacketHeaderStatement
Maybe ResourceStatement
resourceStatement :: Maybe ResourceStatement
packetHeaderStatement :: Maybe PacketHeaderStatement
$sel:resourceStatement:PathStatement' :: PathStatement -> Maybe ResourceStatement
$sel:packetHeaderStatement:PathStatement' :: PathStatement -> Maybe PacketHeaderStatement
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe PacketHeaderStatement
packetHeaderStatement
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ResourceStatement
resourceStatement