packages feed

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

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html

module Stratosphere.Resources.KinesisAnalyticsV2ApplicationReferenceDataSource where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource

-- | Full data type definition for
-- KinesisAnalyticsV2ApplicationReferenceDataSource. See
-- 'kinesisAnalyticsV2ApplicationReferenceDataSource' for a more convenient
-- constructor.
data KinesisAnalyticsV2ApplicationReferenceDataSource =
  KinesisAnalyticsV2ApplicationReferenceDataSource
  { _kinesisAnalyticsV2ApplicationReferenceDataSourceApplicationName :: Val Text
  , _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource :: KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource
  } deriving (Show, Eq)

instance ToResourceProperties KinesisAnalyticsV2ApplicationReferenceDataSource where
  toResourceProperties KinesisAnalyticsV2ApplicationReferenceDataSource{..} =
    ResourceProperties
    { resourcePropertiesType = "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource"
    , resourcePropertiesProperties =
        keyMapFromList $ catMaybes
        [ (Just . ("ApplicationName",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceApplicationName
        , (Just . ("ReferenceDataSource",) . toJSON) _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource
        ]
    }

-- | Constructor for 'KinesisAnalyticsV2ApplicationReferenceDataSource'
-- containing required fields as arguments.
kinesisAnalyticsV2ApplicationReferenceDataSource
  :: Val Text -- ^ 'kavardsApplicationName'
  -> KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource -- ^ 'kavardsReferenceDataSource'
  -> KinesisAnalyticsV2ApplicationReferenceDataSource
kinesisAnalyticsV2ApplicationReferenceDataSource applicationNamearg referenceDataSourcearg =
  KinesisAnalyticsV2ApplicationReferenceDataSource
  { _kinesisAnalyticsV2ApplicationReferenceDataSourceApplicationName = applicationNamearg
  , _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource = referenceDataSourcearg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-applicationname
kavardsApplicationName :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSource (Val Text)
kavardsApplicationName = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceApplicationName (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceApplicationName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource
kavardsReferenceDataSource :: Lens' KinesisAnalyticsV2ApplicationReferenceDataSource KinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource
kavardsReferenceDataSource = lens _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource (\s a -> s { _kinesisAnalyticsV2ApplicationReferenceDataSourceReferenceDataSource = a })