stratosphere-0.4.2: library-gen/Stratosphere/ResourceProperties/CodeCommitRepositoryRepositoryTrigger.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html
module Stratosphere.ResourceProperties.CodeCommitRepositoryRepositoryTrigger where
import Control.Lens hiding ((.=))
import Data.Aeson
import Data.Maybe (catMaybes)
import Data.Monoid (mempty)
import Data.Text
import Stratosphere.Values
-- | Full data type definition for CodeCommitRepositoryRepositoryTrigger. See
-- 'codeCommitRepositoryRepositoryTrigger' for a more convenient
-- constructor.
data CodeCommitRepositoryRepositoryTrigger =
CodeCommitRepositoryRepositoryTrigger
{ _codeCommitRepositoryRepositoryTriggerBranches :: Maybe [Val Text]
, _codeCommitRepositoryRepositoryTriggerCustomData :: Maybe (Val Text)
, _codeCommitRepositoryRepositoryTriggerDestinationArn :: Maybe (Val Text)
, _codeCommitRepositoryRepositoryTriggerEvents :: Maybe [Val Text]
, _codeCommitRepositoryRepositoryTriggerName :: Maybe (Val Text)
} deriving (Show, Eq)
instance ToJSON CodeCommitRepositoryRepositoryTrigger where
toJSON CodeCommitRepositoryRepositoryTrigger{..} =
object $
catMaybes
[ ("Branches" .=) <$> _codeCommitRepositoryRepositoryTriggerBranches
, ("CustomData" .=) <$> _codeCommitRepositoryRepositoryTriggerCustomData
, ("DestinationArn" .=) <$> _codeCommitRepositoryRepositoryTriggerDestinationArn
, ("Events" .=) <$> _codeCommitRepositoryRepositoryTriggerEvents
, ("Name" .=) <$> _codeCommitRepositoryRepositoryTriggerName
]
instance FromJSON CodeCommitRepositoryRepositoryTrigger where
parseJSON (Object obj) =
CodeCommitRepositoryRepositoryTrigger <$>
obj .:? "Branches" <*>
obj .:? "CustomData" <*>
obj .:? "DestinationArn" <*>
obj .:? "Events" <*>
obj .:? "Name"
parseJSON _ = mempty
-- | Constructor for 'CodeCommitRepositoryRepositoryTrigger' containing
-- required fields as arguments.
codeCommitRepositoryRepositoryTrigger
:: CodeCommitRepositoryRepositoryTrigger
codeCommitRepositoryRepositoryTrigger =
CodeCommitRepositoryRepositoryTrigger
{ _codeCommitRepositoryRepositoryTriggerBranches = Nothing
, _codeCommitRepositoryRepositoryTriggerCustomData = Nothing
, _codeCommitRepositoryRepositoryTriggerDestinationArn = Nothing
, _codeCommitRepositoryRepositoryTriggerEvents = Nothing
, _codeCommitRepositoryRepositoryTriggerName = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html#cfn-codecommit-repository-repositorytrigger-branches
ccrrtBranches :: Lens' CodeCommitRepositoryRepositoryTrigger (Maybe [Val Text])
ccrrtBranches = lens _codeCommitRepositoryRepositoryTriggerBranches (\s a -> s { _codeCommitRepositoryRepositoryTriggerBranches = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html#cfn-codecommit-repository-repositorytrigger-customdata
ccrrtCustomData :: Lens' CodeCommitRepositoryRepositoryTrigger (Maybe (Val Text))
ccrrtCustomData = lens _codeCommitRepositoryRepositoryTriggerCustomData (\s a -> s { _codeCommitRepositoryRepositoryTriggerCustomData = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html#cfn-codecommit-repository-repositorytrigger-destinationarn
ccrrtDestinationArn :: Lens' CodeCommitRepositoryRepositoryTrigger (Maybe (Val Text))
ccrrtDestinationArn = lens _codeCommitRepositoryRepositoryTriggerDestinationArn (\s a -> s { _codeCommitRepositoryRepositoryTriggerDestinationArn = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html#cfn-codecommit-repository-repositorytrigger-events
ccrrtEvents :: Lens' CodeCommitRepositoryRepositoryTrigger (Maybe [Val Text])
ccrrtEvents = lens _codeCommitRepositoryRepositoryTriggerEvents (\s a -> s { _codeCommitRepositoryRepositoryTriggerEvents = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html#cfn-codecommit-repository-repositorytrigger-name
ccrrtName :: Lens' CodeCommitRepositoryRepositoryTrigger (Maybe (Val Text))
ccrrtName = lens _codeCommitRepositoryRepositoryTriggerName (\s a -> s { _codeCommitRepositoryRepositoryTriggerName = a })