stratosphere-0.1.0: library-gen/Stratosphere/ResourceProperties/RDSSecurityGroupRule.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
-- | The Amazon RDS security group rule is an embedded property of the
-- AWS::RDS::DBSecurityGroup type.
module Stratosphere.ResourceProperties.RDSSecurityGroupRule where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
-- | Full data type definition for RDSSecurityGroupRule. See
-- 'rdsSecurityGroupRule' for a more convenient constructor.
data RDSSecurityGroupRule =
RDSSecurityGroupRule
{ _rDSSecurityGroupRuleCIDRIP :: Maybe (Val Text)
, _rDSSecurityGroupRuleEC2SecurityGroupId :: Maybe (Val Text)
, _rDSSecurityGroupRuleEC2SecurityGroupName :: Maybe (Val Text)
, _rDSSecurityGroupRuleEC2SecurityGroupOwnerId :: Maybe (Val Text)
} deriving (Show, Generic)
instance ToJSON RDSSecurityGroupRule where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }
instance FromJSON RDSSecurityGroupRule where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 21, omitNothingFields = True }
-- | Constructor for 'RDSSecurityGroupRule' containing required fields as
-- arguments.
rdsSecurityGroupRule
:: RDSSecurityGroupRule
rdsSecurityGroupRule =
RDSSecurityGroupRule
{ _rDSSecurityGroupRuleCIDRIP = Nothing
, _rDSSecurityGroupRuleEC2SecurityGroupId = Nothing
, _rDSSecurityGroupRuleEC2SecurityGroupName = Nothing
, _rDSSecurityGroupRuleEC2SecurityGroupOwnerId = Nothing
}
-- | The IP range to authorize. For an overview of CIDR ranges, go to the
-- Wikipedia Tutorial. Type: String
rdssgrCIDRIP :: Lens' RDSSecurityGroupRule (Maybe (Val Text))
rdssgrCIDRIP = lens _rDSSecurityGroupRuleCIDRIP (\s a -> s { _rDSSecurityGroupRuleCIDRIP = a })
-- | Id of the VPC or EC2 Security Group to authorize. For VPC DB Security
-- Groups, use EC2SecurityGroupId. For EC2 Security Groups, use
-- EC2SecurityGroupOwnerId and either EC2SecurityGroupName or
-- EC2SecurityGroupId. Type: String
rdssgrEC2SecurityGroupId :: Lens' RDSSecurityGroupRule (Maybe (Val Text))
rdssgrEC2SecurityGroupId = lens _rDSSecurityGroupRuleEC2SecurityGroupId (\s a -> s { _rDSSecurityGroupRuleEC2SecurityGroupId = a })
-- | Name of the EC2 Security Group to authorize. For VPC DB Security Groups,
-- use EC2SecurityGroupId. For EC2 Security Groups, use
-- EC2SecurityGroupOwnerId and either EC2SecurityGroupName or
-- EC2SecurityGroupId. Type: String
rdssgrEC2SecurityGroupName :: Lens' RDSSecurityGroupRule (Maybe (Val Text))
rdssgrEC2SecurityGroupName = lens _rDSSecurityGroupRuleEC2SecurityGroupName (\s a -> s { _rDSSecurityGroupRuleEC2SecurityGroupName = a })
-- | AWS Account Number of the owner of the EC2 Security Group specified in
-- the EC2SecurityGroupName parameter. The AWS Access Key ID is not an
-- acceptable value. For VPC DB Security Groups, use EC2SecurityGroupId. For
-- EC2 Security Groups, use EC2SecurityGroupOwnerId and either
-- EC2SecurityGroupName or EC2SecurityGroupId. Type: String
rdssgrEC2SecurityGroupOwnerId :: Lens' RDSSecurityGroupRule (Maybe (Val Text))
rdssgrEC2SecurityGroupOwnerId = lens _rDSSecurityGroupRuleEC2SecurityGroupOwnerId (\s a -> s { _rDSSecurityGroupRuleEC2SecurityGroupOwnerId = a })