module Stratosphere.Resources.SecurityGroupEgress where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
data SecurityGroupEgress =
SecurityGroupEgress
{ _securityGroupEgressCidrIp :: Maybe (Val Text)
, _securityGroupEgressDestinationSecurityGroupId :: Maybe (Val Text)
, _securityGroupEgressFromPort :: Val Integer'
, _securityGroupEgressGroupId :: Val Text
, _securityGroupEgressIpProtocol :: Val Text
, _securityGroupEgressToPort :: Val Integer'
} deriving (Show, Generic)
instance ToJSON SecurityGroupEgress where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }
instance FromJSON SecurityGroupEgress where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 20, omitNothingFields = True }
securityGroupEgress
:: Val Integer'
-> Val Text
-> Val Text
-> Val Integer'
-> SecurityGroupEgress
securityGroupEgress fromPortarg groupIdarg ipProtocolarg toPortarg =
SecurityGroupEgress
{ _securityGroupEgressCidrIp = Nothing
, _securityGroupEgressDestinationSecurityGroupId = Nothing
, _securityGroupEgressFromPort = fromPortarg
, _securityGroupEgressGroupId = groupIdarg
, _securityGroupEgressIpProtocol = ipProtocolarg
, _securityGroupEgressToPort = toPortarg
}
sgeCidrIp :: Lens' SecurityGroupEgress (Maybe (Val Text))
sgeCidrIp = lens _securityGroupEgressCidrIp (\s a -> s { _securityGroupEgressCidrIp = a })
sgeDestinationSecurityGroupId :: Lens' SecurityGroupEgress (Maybe (Val Text))
sgeDestinationSecurityGroupId = lens _securityGroupEgressDestinationSecurityGroupId (\s a -> s { _securityGroupEgressDestinationSecurityGroupId = a })
sgeFromPort :: Lens' SecurityGroupEgress (Val Integer')
sgeFromPort = lens _securityGroupEgressFromPort (\s a -> s { _securityGroupEgressFromPort = a })
sgeGroupId :: Lens' SecurityGroupEgress (Val Text)
sgeGroupId = lens _securityGroupEgressGroupId (\s a -> s { _securityGroupEgressGroupId = a })
sgeIpProtocol :: Lens' SecurityGroupEgress (Val Text)
sgeIpProtocol = lens _securityGroupEgressIpProtocol (\s a -> s { _securityGroupEgressIpProtocol = a })
sgeToPort :: Lens' SecurityGroupEgress (Val Integer')
sgeToPort = lens _securityGroupEgressToPort (\s a -> s { _securityGroupEgressToPort = a })