{-# 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.NetworkAcl 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.NetworkAclAssociation
import Amazonka.EC2.Types.NetworkAclEntry
import Amazonka.EC2.Types.Tag
import qualified Amazonka.Prelude as Prelude
data NetworkAcl = NetworkAcl'
{
NetworkAcl -> Maybe [NetworkAclAssociation]
associations :: Prelude.Maybe [NetworkAclAssociation],
NetworkAcl -> Maybe [NetworkAclEntry]
entries :: Prelude.Maybe [NetworkAclEntry],
NetworkAcl -> Maybe Bool
isDefault :: Prelude.Maybe Prelude.Bool,
NetworkAcl -> Maybe Text
networkAclId :: Prelude.Maybe Prelude.Text,
NetworkAcl -> Maybe Text
ownerId :: Prelude.Maybe Prelude.Text,
NetworkAcl -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
NetworkAcl -> Maybe Text
vpcId :: Prelude.Maybe Prelude.Text
}
deriving (NetworkAcl -> NetworkAcl -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NetworkAcl -> NetworkAcl -> Bool
$c/= :: NetworkAcl -> NetworkAcl -> Bool
== :: NetworkAcl -> NetworkAcl -> Bool
$c== :: NetworkAcl -> NetworkAcl -> Bool
Prelude.Eq, ReadPrec [NetworkAcl]
ReadPrec NetworkAcl
Int -> ReadS NetworkAcl
ReadS [NetworkAcl]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [NetworkAcl]
$creadListPrec :: ReadPrec [NetworkAcl]
readPrec :: ReadPrec NetworkAcl
$creadPrec :: ReadPrec NetworkAcl
readList :: ReadS [NetworkAcl]
$creadList :: ReadS [NetworkAcl]
readsPrec :: Int -> ReadS NetworkAcl
$creadsPrec :: Int -> ReadS NetworkAcl
Prelude.Read, Int -> NetworkAcl -> ShowS
[NetworkAcl] -> ShowS
NetworkAcl -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NetworkAcl] -> ShowS
$cshowList :: [NetworkAcl] -> ShowS
show :: NetworkAcl -> String
$cshow :: NetworkAcl -> String
showsPrec :: Int -> NetworkAcl -> ShowS
$cshowsPrec :: Int -> NetworkAcl -> ShowS
Prelude.Show, forall x. Rep NetworkAcl x -> NetworkAcl
forall x. NetworkAcl -> Rep NetworkAcl x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep NetworkAcl x -> NetworkAcl
$cfrom :: forall x. NetworkAcl -> Rep NetworkAcl x
Prelude.Generic)
newNetworkAcl ::
NetworkAcl
newNetworkAcl :: NetworkAcl
newNetworkAcl =
NetworkAcl'
{ $sel:associations:NetworkAcl' :: Maybe [NetworkAclAssociation]
associations = forall a. Maybe a
Prelude.Nothing,
$sel:entries:NetworkAcl' :: Maybe [NetworkAclEntry]
entries = forall a. Maybe a
Prelude.Nothing,
$sel:isDefault:NetworkAcl' :: Maybe Bool
isDefault = forall a. Maybe a
Prelude.Nothing,
$sel:networkAclId:NetworkAcl' :: Maybe Text
networkAclId = forall a. Maybe a
Prelude.Nothing,
$sel:ownerId:NetworkAcl' :: Maybe Text
ownerId = forall a. Maybe a
Prelude.Nothing,
$sel:tags:NetworkAcl' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:vpcId:NetworkAcl' :: Maybe Text
vpcId = forall a. Maybe a
Prelude.Nothing
}
networkAcl_associations :: Lens.Lens' NetworkAcl (Prelude.Maybe [NetworkAclAssociation])
networkAcl_associations :: Lens' NetworkAcl (Maybe [NetworkAclAssociation])
networkAcl_associations = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkAcl' {Maybe [NetworkAclAssociation]
associations :: Maybe [NetworkAclAssociation]
$sel:associations:NetworkAcl' :: NetworkAcl -> Maybe [NetworkAclAssociation]
associations} -> Maybe [NetworkAclAssociation]
associations) (\s :: NetworkAcl
s@NetworkAcl' {} Maybe [NetworkAclAssociation]
a -> NetworkAcl
s {$sel:associations:NetworkAcl' :: Maybe [NetworkAclAssociation]
associations = Maybe [NetworkAclAssociation]
a} :: NetworkAcl) 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
networkAcl_entries :: Lens.Lens' NetworkAcl (Prelude.Maybe [NetworkAclEntry])
networkAcl_entries :: Lens' NetworkAcl (Maybe [NetworkAclEntry])
networkAcl_entries = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkAcl' {Maybe [NetworkAclEntry]
entries :: Maybe [NetworkAclEntry]
$sel:entries:NetworkAcl' :: NetworkAcl -> Maybe [NetworkAclEntry]
entries} -> Maybe [NetworkAclEntry]
entries) (\s :: NetworkAcl
s@NetworkAcl' {} Maybe [NetworkAclEntry]
a -> NetworkAcl
s {$sel:entries:NetworkAcl' :: Maybe [NetworkAclEntry]
entries = Maybe [NetworkAclEntry]
a} :: NetworkAcl) 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
networkAcl_isDefault :: Lens.Lens' NetworkAcl (Prelude.Maybe Prelude.Bool)
networkAcl_isDefault :: Lens' NetworkAcl (Maybe Bool)
networkAcl_isDefault = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkAcl' {Maybe Bool
isDefault :: Maybe Bool
$sel:isDefault:NetworkAcl' :: NetworkAcl -> Maybe Bool
isDefault} -> Maybe Bool
isDefault) (\s :: NetworkAcl
s@NetworkAcl' {} Maybe Bool
a -> NetworkAcl
s {$sel:isDefault:NetworkAcl' :: Maybe Bool
isDefault = Maybe Bool
a} :: NetworkAcl)
networkAcl_networkAclId :: Lens.Lens' NetworkAcl (Prelude.Maybe Prelude.Text)
networkAcl_networkAclId :: Lens' NetworkAcl (Maybe Text)
networkAcl_networkAclId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkAcl' {Maybe Text
networkAclId :: Maybe Text
$sel:networkAclId:NetworkAcl' :: NetworkAcl -> Maybe Text
networkAclId} -> Maybe Text
networkAclId) (\s :: NetworkAcl
s@NetworkAcl' {} Maybe Text
a -> NetworkAcl
s {$sel:networkAclId:NetworkAcl' :: Maybe Text
networkAclId = Maybe Text
a} :: NetworkAcl)
networkAcl_ownerId :: Lens.Lens' NetworkAcl (Prelude.Maybe Prelude.Text)
networkAcl_ownerId :: Lens' NetworkAcl (Maybe Text)
networkAcl_ownerId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkAcl' {Maybe Text
ownerId :: Maybe Text
$sel:ownerId:NetworkAcl' :: NetworkAcl -> Maybe Text
ownerId} -> Maybe Text
ownerId) (\s :: NetworkAcl
s@NetworkAcl' {} Maybe Text
a -> NetworkAcl
s {$sel:ownerId:NetworkAcl' :: Maybe Text
ownerId = Maybe Text
a} :: NetworkAcl)
networkAcl_tags :: Lens.Lens' NetworkAcl (Prelude.Maybe [Tag])
networkAcl_tags :: Lens' NetworkAcl (Maybe [Tag])
networkAcl_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkAcl' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:NetworkAcl' :: NetworkAcl -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: NetworkAcl
s@NetworkAcl' {} Maybe [Tag]
a -> NetworkAcl
s {$sel:tags:NetworkAcl' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: NetworkAcl) 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
networkAcl_vpcId :: Lens.Lens' NetworkAcl (Prelude.Maybe Prelude.Text)
networkAcl_vpcId :: Lens' NetworkAcl (Maybe Text)
networkAcl_vpcId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\NetworkAcl' {Maybe Text
vpcId :: Maybe Text
$sel:vpcId:NetworkAcl' :: NetworkAcl -> Maybe Text
vpcId} -> Maybe Text
vpcId) (\s :: NetworkAcl
s@NetworkAcl' {} Maybe Text
a -> NetworkAcl
s {$sel:vpcId:NetworkAcl' :: Maybe Text
vpcId = Maybe Text
a} :: NetworkAcl)
instance Data.FromXML NetworkAcl where
parseXML :: [Node] -> Either String NetworkAcl
parseXML [Node]
x =
Maybe [NetworkAclAssociation]
-> Maybe [NetworkAclEntry]
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe [Tag]
-> Maybe Text
-> NetworkAcl
NetworkAcl'
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
"associationSet"
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
)
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
"entrySet"
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
)
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
"default")
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
"networkAclId")
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
"ownerId")
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
"tagSet"
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
)
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
"vpcId")
instance Prelude.Hashable NetworkAcl where
hashWithSalt :: Int -> NetworkAcl -> Int
hashWithSalt Int
_salt NetworkAcl' {Maybe Bool
Maybe [NetworkAclAssociation]
Maybe [NetworkAclEntry]
Maybe [Tag]
Maybe Text
vpcId :: Maybe Text
tags :: Maybe [Tag]
ownerId :: Maybe Text
networkAclId :: Maybe Text
isDefault :: Maybe Bool
entries :: Maybe [NetworkAclEntry]
associations :: Maybe [NetworkAclAssociation]
$sel:vpcId:NetworkAcl' :: NetworkAcl -> Maybe Text
$sel:tags:NetworkAcl' :: NetworkAcl -> Maybe [Tag]
$sel:ownerId:NetworkAcl' :: NetworkAcl -> Maybe Text
$sel:networkAclId:NetworkAcl' :: NetworkAcl -> Maybe Text
$sel:isDefault:NetworkAcl' :: NetworkAcl -> Maybe Bool
$sel:entries:NetworkAcl' :: NetworkAcl -> Maybe [NetworkAclEntry]
$sel:associations:NetworkAcl' :: NetworkAcl -> Maybe [NetworkAclAssociation]
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [NetworkAclAssociation]
associations
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [NetworkAclEntry]
entries
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
isDefault
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
networkAclId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ownerId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
vpcId
instance Prelude.NFData NetworkAcl where
rnf :: NetworkAcl -> ()
rnf NetworkAcl' {Maybe Bool
Maybe [NetworkAclAssociation]
Maybe [NetworkAclEntry]
Maybe [Tag]
Maybe Text
vpcId :: Maybe Text
tags :: Maybe [Tag]
ownerId :: Maybe Text
networkAclId :: Maybe Text
isDefault :: Maybe Bool
entries :: Maybe [NetworkAclEntry]
associations :: Maybe [NetworkAclAssociation]
$sel:vpcId:NetworkAcl' :: NetworkAcl -> Maybe Text
$sel:tags:NetworkAcl' :: NetworkAcl -> Maybe [Tag]
$sel:ownerId:NetworkAcl' :: NetworkAcl -> Maybe Text
$sel:networkAclId:NetworkAcl' :: NetworkAcl -> Maybe Text
$sel:isDefault:NetworkAcl' :: NetworkAcl -> Maybe Bool
$sel:entries:NetworkAcl' :: NetworkAcl -> Maybe [NetworkAclEntry]
$sel:associations:NetworkAcl' :: NetworkAcl -> Maybe [NetworkAclAssociation]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [NetworkAclAssociation]
associations
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [NetworkAclEntry]
entries
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
isDefault
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
networkAclId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ownerId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
vpcId