packages feed

stratosphere-0.60.0: library-gen/Stratosphere/Resources/DocDBDBClusterParameterGroup.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html

module Stratosphere.Resources.DocDBDBClusterParameterGroup where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.Tag

-- | Full data type definition for DocDBDBClusterParameterGroup. See
-- 'docDBDBClusterParameterGroup' for a more convenient constructor.
data DocDBDBClusterParameterGroup =
  DocDBDBClusterParameterGroup
  { _docDBDBClusterParameterGroupDescription :: Val Text
  , _docDBDBClusterParameterGroupFamily :: Val Text
  , _docDBDBClusterParameterGroupName :: Maybe (Val Text)
  , _docDBDBClusterParameterGroupParameters :: Object
  , _docDBDBClusterParameterGroupTags :: Maybe [Tag]
  } deriving (Show, Eq)

instance ToResourceProperties DocDBDBClusterParameterGroup where
  toResourceProperties DocDBDBClusterParameterGroup{..} =
    ResourceProperties
    { resourcePropertiesType = "AWS::DocDB::DBClusterParameterGroup"
    , resourcePropertiesProperties =
        keyMapFromList $ catMaybes
        [ (Just . ("Description",) . toJSON) _docDBDBClusterParameterGroupDescription
        , (Just . ("Family",) . toJSON) _docDBDBClusterParameterGroupFamily
        , fmap (("Name",) . toJSON) _docDBDBClusterParameterGroupName
        , (Just . ("Parameters",) . toJSON) _docDBDBClusterParameterGroupParameters
        , fmap (("Tags",) . toJSON) _docDBDBClusterParameterGroupTags
        ]
    }

-- | Constructor for 'DocDBDBClusterParameterGroup' containing required fields
-- as arguments.
docDBDBClusterParameterGroup
  :: Val Text -- ^ 'ddbdbcpgDescription'
  -> Val Text -- ^ 'ddbdbcpgFamily'
  -> Object -- ^ 'ddbdbcpgParameters'
  -> DocDBDBClusterParameterGroup
docDBDBClusterParameterGroup descriptionarg familyarg parametersarg =
  DocDBDBClusterParameterGroup
  { _docDBDBClusterParameterGroupDescription = descriptionarg
  , _docDBDBClusterParameterGroupFamily = familyarg
  , _docDBDBClusterParameterGroupName = Nothing
  , _docDBDBClusterParameterGroupParameters = parametersarg
  , _docDBDBClusterParameterGroupTags = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-description
ddbdbcpgDescription :: Lens' DocDBDBClusterParameterGroup (Val Text)
ddbdbcpgDescription = lens _docDBDBClusterParameterGroupDescription (\s a -> s { _docDBDBClusterParameterGroupDescription = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-family
ddbdbcpgFamily :: Lens' DocDBDBClusterParameterGroup (Val Text)
ddbdbcpgFamily = lens _docDBDBClusterParameterGroupFamily (\s a -> s { _docDBDBClusterParameterGroupFamily = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-name
ddbdbcpgName :: Lens' DocDBDBClusterParameterGroup (Maybe (Val Text))
ddbdbcpgName = lens _docDBDBClusterParameterGroupName (\s a -> s { _docDBDBClusterParameterGroupName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-parameters
ddbdbcpgParameters :: Lens' DocDBDBClusterParameterGroup Object
ddbdbcpgParameters = lens _docDBDBClusterParameterGroupParameters (\s a -> s { _docDBDBClusterParameterGroupParameters = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-tags
ddbdbcpgTags :: Lens' DocDBDBClusterParameterGroup (Maybe [Tag])
ddbdbcpgTags = lens _docDBDBClusterParameterGroupTags (\s a -> s { _docDBDBClusterParameterGroupTags = a })