packages feed

stratosphere-0.46.0: library-gen/Stratosphere/ResourceProperties/AmplifyAppAutoBranchCreationConfig.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html

module Stratosphere.ResourceProperties.AmplifyAppAutoBranchCreationConfig where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.AmplifyAppBasicAuthConfig
import Stratosphere.ResourceProperties.AmplifyAppEnvironmentVariable

-- | Full data type definition for AmplifyAppAutoBranchCreationConfig. See
-- 'amplifyAppAutoBranchCreationConfig' for a more convenient constructor.
data AmplifyAppAutoBranchCreationConfig =
  AmplifyAppAutoBranchCreationConfig
  { _amplifyAppAutoBranchCreationConfigAutoBranchCreationPatterns :: Maybe (ValList Text)
  , _amplifyAppAutoBranchCreationConfigBasicAuthConfig :: Maybe AmplifyAppBasicAuthConfig
  , _amplifyAppAutoBranchCreationConfigBuildSpec :: Maybe (Val Text)
  , _amplifyAppAutoBranchCreationConfigEnableAutoBranchCreation :: Maybe (Val Bool)
  , _amplifyAppAutoBranchCreationConfigEnableAutoBuild :: Maybe (Val Bool)
  , _amplifyAppAutoBranchCreationConfigEnablePullRequestPreview :: Maybe (Val Bool)
  , _amplifyAppAutoBranchCreationConfigEnvironmentVariables :: Maybe [AmplifyAppEnvironmentVariable]
  , _amplifyAppAutoBranchCreationConfigPullRequestEnvironmentName :: Maybe (Val Text)
  , _amplifyAppAutoBranchCreationConfigStage :: Maybe (Val Text)
  } deriving (Show, Eq)

instance ToJSON AmplifyAppAutoBranchCreationConfig where
  toJSON AmplifyAppAutoBranchCreationConfig{..} =
    object $
    catMaybes
    [ fmap (("AutoBranchCreationPatterns",) . toJSON) _amplifyAppAutoBranchCreationConfigAutoBranchCreationPatterns
    , fmap (("BasicAuthConfig",) . toJSON) _amplifyAppAutoBranchCreationConfigBasicAuthConfig
    , fmap (("BuildSpec",) . toJSON) _amplifyAppAutoBranchCreationConfigBuildSpec
    , fmap (("EnableAutoBranchCreation",) . toJSON) _amplifyAppAutoBranchCreationConfigEnableAutoBranchCreation
    , fmap (("EnableAutoBuild",) . toJSON) _amplifyAppAutoBranchCreationConfigEnableAutoBuild
    , fmap (("EnablePullRequestPreview",) . toJSON) _amplifyAppAutoBranchCreationConfigEnablePullRequestPreview
    , fmap (("EnvironmentVariables",) . toJSON) _amplifyAppAutoBranchCreationConfigEnvironmentVariables
    , fmap (("PullRequestEnvironmentName",) . toJSON) _amplifyAppAutoBranchCreationConfigPullRequestEnvironmentName
    , fmap (("Stage",) . toJSON) _amplifyAppAutoBranchCreationConfigStage
    ]

-- | Constructor for 'AmplifyAppAutoBranchCreationConfig' containing required
-- fields as arguments.
amplifyAppAutoBranchCreationConfig
  :: AmplifyAppAutoBranchCreationConfig
amplifyAppAutoBranchCreationConfig  =
  AmplifyAppAutoBranchCreationConfig
  { _amplifyAppAutoBranchCreationConfigAutoBranchCreationPatterns = Nothing
  , _amplifyAppAutoBranchCreationConfigBasicAuthConfig = Nothing
  , _amplifyAppAutoBranchCreationConfigBuildSpec = Nothing
  , _amplifyAppAutoBranchCreationConfigEnableAutoBranchCreation = Nothing
  , _amplifyAppAutoBranchCreationConfigEnableAutoBuild = Nothing
  , _amplifyAppAutoBranchCreationConfigEnablePullRequestPreview = Nothing
  , _amplifyAppAutoBranchCreationConfigEnvironmentVariables = Nothing
  , _amplifyAppAutoBranchCreationConfigPullRequestEnvironmentName = Nothing
  , _amplifyAppAutoBranchCreationConfigStage = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-autobranchcreationpatterns
aaabccAutoBranchCreationPatterns :: Lens' AmplifyAppAutoBranchCreationConfig (Maybe (ValList Text))
aaabccAutoBranchCreationPatterns = lens _amplifyAppAutoBranchCreationConfigAutoBranchCreationPatterns (\s a -> s { _amplifyAppAutoBranchCreationConfigAutoBranchCreationPatterns = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-basicauthconfig
aaabccBasicAuthConfig :: Lens' AmplifyAppAutoBranchCreationConfig (Maybe AmplifyAppBasicAuthConfig)
aaabccBasicAuthConfig = lens _amplifyAppAutoBranchCreationConfigBasicAuthConfig (\s a -> s { _amplifyAppAutoBranchCreationConfigBasicAuthConfig = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-buildspec
aaabccBuildSpec :: Lens' AmplifyAppAutoBranchCreationConfig (Maybe (Val Text))
aaabccBuildSpec = lens _amplifyAppAutoBranchCreationConfigBuildSpec (\s a -> s { _amplifyAppAutoBranchCreationConfigBuildSpec = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-enableautobranchcreation
aaabccEnableAutoBranchCreation :: Lens' AmplifyAppAutoBranchCreationConfig (Maybe (Val Bool))
aaabccEnableAutoBranchCreation = lens _amplifyAppAutoBranchCreationConfigEnableAutoBranchCreation (\s a -> s { _amplifyAppAutoBranchCreationConfigEnableAutoBranchCreation = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-enableautobuild
aaabccEnableAutoBuild :: Lens' AmplifyAppAutoBranchCreationConfig (Maybe (Val Bool))
aaabccEnableAutoBuild = lens _amplifyAppAutoBranchCreationConfigEnableAutoBuild (\s a -> s { _amplifyAppAutoBranchCreationConfigEnableAutoBuild = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-enablepullrequestpreview
aaabccEnablePullRequestPreview :: Lens' AmplifyAppAutoBranchCreationConfig (Maybe (Val Bool))
aaabccEnablePullRequestPreview = lens _amplifyAppAutoBranchCreationConfigEnablePullRequestPreview (\s a -> s { _amplifyAppAutoBranchCreationConfigEnablePullRequestPreview = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-environmentvariables
aaabccEnvironmentVariables :: Lens' AmplifyAppAutoBranchCreationConfig (Maybe [AmplifyAppEnvironmentVariable])
aaabccEnvironmentVariables = lens _amplifyAppAutoBranchCreationConfigEnvironmentVariables (\s a -> s { _amplifyAppAutoBranchCreationConfigEnvironmentVariables = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-pullrequestenvironmentname
aaabccPullRequestEnvironmentName :: Lens' AmplifyAppAutoBranchCreationConfig (Maybe (Val Text))
aaabccPullRequestEnvironmentName = lens _amplifyAppAutoBranchCreationConfigPullRequestEnvironmentName (\s a -> s { _amplifyAppAutoBranchCreationConfigPullRequestEnvironmentName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-stage
aaabccStage :: Lens' AmplifyAppAutoBranchCreationConfig (Maybe (Val Text))
aaabccStage = lens _amplifyAppAutoBranchCreationConfigStage (\s a -> s { _amplifyAppAutoBranchCreationConfigStage = a })