module AWS.EC2.Types.Acl
( IcmpTypeCode(..)
, NetworkAcl(..)
, NetworkAclAssociation(..)
, NetworkAclEntry(..)
, NetworkAclEntryRequest(..)
, NetworkAclRuleAction(..)
, PortRange(..)
) where
import AWS.EC2.Types.Common (ResourceTag)
import AWS.Lib.FromText
data IcmpTypeCode = IcmpTypeCode
{ icmpTypeCodeCode :: Int
, icmpTypeCodeType :: Int
}
deriving (Show, Read, Eq)
data NetworkAcl = NetworkAcl
{ networkAclId :: Text
, networkAclVpcId :: Text
, networkAclDefault :: Bool
, networkAclEntrySet :: [NetworkAclEntry]
, networkAclAssociationSet :: [NetworkAclAssociation]
, networkAclTagSet :: [ResourceTag]
}
deriving (Show, Read, Eq)
data NetworkAclAssociation = NetworkAclAssociation
{ networkAclAssociationId :: Text
, networkAclAssociationNetworkAclId :: Text
, networkAclAssociationSubnetId :: Text
}
deriving (Show, Read, Eq)
data NetworkAclEntry = NetworkAclEntry
{ networkAclEntryRuleNumber :: Int
, networkAclEntryProtocol :: Int
, networkAclEntryRuleAction :: NetworkAclRuleAction
, networkAclEntryEgress :: Bool
, networkAclEntryCidrBlock :: AddrRange IPv4
, networkAclEntryIcmpTypeCode :: Maybe IcmpTypeCode
, networkAclEntryPortRange :: Maybe PortRange
}
deriving (Show, Read, Eq)
data NetworkAclEntryRequest = NetworkAclEntryRequest
{ networkAclEntryRequestNetworkAclId :: Text
, networkAclEntryRequestRuleNumber :: Int
, networkAclEntryRequestProtocol :: Int
, networkAclEntryRequestRuleAction :: NetworkAclRuleAction
, networkAclEntryRequestEgress :: Bool
, networkAclEntryRequestCidrBlock :: AddrRange IPv4
, networkAclEntryRequestIcmp :: Maybe IcmpTypeCode
, networkAclEntryRequestPortRange :: Maybe PortRange
}
deriving (Show, Read, Eq)
data NetworkAclRuleAction
= NetworkAclRuleActionAllow
| NetworkAclRuleActionDeny
deriving (Show, Read, Eq)
data PortRange = PortRange
{ portRangeFrom :: Int
, portRangeTo :: Int
}
deriving (Show, Read, Eq)
deriveFromText "NetworkAclRuleAction" ["allow", "deny"]