packages feed

stratosphere-0.54.0: library-gen/Stratosphere/ResourceProperties/KinesisFirehoseDeliveryStreamVpcConfiguration.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html

module Stratosphere.ResourceProperties.KinesisFirehoseDeliveryStreamVpcConfiguration where

import Stratosphere.ResourceImports


-- | Full data type definition for
-- KinesisFirehoseDeliveryStreamVpcConfiguration. See
-- 'kinesisFirehoseDeliveryStreamVpcConfiguration' for a more convenient
-- constructor.
data KinesisFirehoseDeliveryStreamVpcConfiguration =
  KinesisFirehoseDeliveryStreamVpcConfiguration
  { _kinesisFirehoseDeliveryStreamVpcConfigurationRoleARN :: Val Text
  , _kinesisFirehoseDeliveryStreamVpcConfigurationSecurityGroupIds :: ValList Text
  , _kinesisFirehoseDeliveryStreamVpcConfigurationSubnetIds :: ValList Text
  } deriving (Show, Eq)

instance ToJSON KinesisFirehoseDeliveryStreamVpcConfiguration where
  toJSON KinesisFirehoseDeliveryStreamVpcConfiguration{..} =
    object $
    catMaybes
    [ (Just . ("RoleARN",) . toJSON) _kinesisFirehoseDeliveryStreamVpcConfigurationRoleARN
    , (Just . ("SecurityGroupIds",) . toJSON) _kinesisFirehoseDeliveryStreamVpcConfigurationSecurityGroupIds
    , (Just . ("SubnetIds",) . toJSON) _kinesisFirehoseDeliveryStreamVpcConfigurationSubnetIds
    ]

-- | Constructor for 'KinesisFirehoseDeliveryStreamVpcConfiguration'
-- containing required fields as arguments.
kinesisFirehoseDeliveryStreamVpcConfiguration
  :: Val Text -- ^ 'kfdsvcRoleARN'
  -> ValList Text -- ^ 'kfdsvcSecurityGroupIds'
  -> ValList Text -- ^ 'kfdsvcSubnetIds'
  -> KinesisFirehoseDeliveryStreamVpcConfiguration
kinesisFirehoseDeliveryStreamVpcConfiguration roleARNarg securityGroupIdsarg subnetIdsarg =
  KinesisFirehoseDeliveryStreamVpcConfiguration
  { _kinesisFirehoseDeliveryStreamVpcConfigurationRoleARN = roleARNarg
  , _kinesisFirehoseDeliveryStreamVpcConfigurationSecurityGroupIds = securityGroupIdsarg
  , _kinesisFirehoseDeliveryStreamVpcConfigurationSubnetIds = subnetIdsarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html#cfn-kinesisfirehose-deliverystream-vpcconfiguration-rolearn
kfdsvcRoleARN :: Lens' KinesisFirehoseDeliveryStreamVpcConfiguration (Val Text)
kfdsvcRoleARN = lens _kinesisFirehoseDeliveryStreamVpcConfigurationRoleARN (\s a -> s { _kinesisFirehoseDeliveryStreamVpcConfigurationRoleARN = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html#cfn-kinesisfirehose-deliverystream-vpcconfiguration-securitygroupids
kfdsvcSecurityGroupIds :: Lens' KinesisFirehoseDeliveryStreamVpcConfiguration (ValList Text)
kfdsvcSecurityGroupIds = lens _kinesisFirehoseDeliveryStreamVpcConfigurationSecurityGroupIds (\s a -> s { _kinesisFirehoseDeliveryStreamVpcConfigurationSecurityGroupIds = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html#cfn-kinesisfirehose-deliverystream-vpcconfiguration-subnetids
kfdsvcSubnetIds :: Lens' KinesisFirehoseDeliveryStreamVpcConfiguration (ValList Text)
kfdsvcSubnetIds = lens _kinesisFirehoseDeliveryStreamVpcConfigurationSubnetIds (\s a -> s { _kinesisFirehoseDeliveryStreamVpcConfigurationSubnetIds = a })