packages feed

stratosphere-0.50.0: library-gen/Stratosphere/Resources/EC2LocalGatewayRoute.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroute.html

module Stratosphere.Resources.EC2LocalGatewayRoute where

import Stratosphere.ResourceImports


-- | Full data type definition for EC2LocalGatewayRoute. See
-- 'ec2LocalGatewayRoute' for a more convenient constructor.
data EC2LocalGatewayRoute =
  EC2LocalGatewayRoute
  { _eC2LocalGatewayRouteDestinationCidrBlock :: Val Text
  , _eC2LocalGatewayRouteLocalGatewayRouteTableId :: Val Text
  , _eC2LocalGatewayRouteLocalGatewayVirtualInterfaceGroupId :: Val Text
  } deriving (Show, Eq)

instance ToResourceProperties EC2LocalGatewayRoute where
  toResourceProperties EC2LocalGatewayRoute{..} =
    ResourceProperties
    { resourcePropertiesType = "AWS::EC2::LocalGatewayRoute"
    , resourcePropertiesProperties =
        hashMapFromList $ catMaybes
        [ (Just . ("DestinationCidrBlock",) . toJSON) _eC2LocalGatewayRouteDestinationCidrBlock
        , (Just . ("LocalGatewayRouteTableId",) . toJSON) _eC2LocalGatewayRouteLocalGatewayRouteTableId
        , (Just . ("LocalGatewayVirtualInterfaceGroupId",) . toJSON) _eC2LocalGatewayRouteLocalGatewayVirtualInterfaceGroupId
        ]
    }

-- | Constructor for 'EC2LocalGatewayRoute' containing required fields as
-- arguments.
ec2LocalGatewayRoute
  :: Val Text -- ^ 'eclgrDestinationCidrBlock'
  -> Val Text -- ^ 'eclgrLocalGatewayRouteTableId'
  -> Val Text -- ^ 'eclgrLocalGatewayVirtualInterfaceGroupId'
  -> EC2LocalGatewayRoute
ec2LocalGatewayRoute destinationCidrBlockarg localGatewayRouteTableIdarg localGatewayVirtualInterfaceGroupIdarg =
  EC2LocalGatewayRoute
  { _eC2LocalGatewayRouteDestinationCidrBlock = destinationCidrBlockarg
  , _eC2LocalGatewayRouteLocalGatewayRouteTableId = localGatewayRouteTableIdarg
  , _eC2LocalGatewayRouteLocalGatewayVirtualInterfaceGroupId = localGatewayVirtualInterfaceGroupIdarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroute.html#cfn-ec2-localgatewayroute-destinationcidrblock
eclgrDestinationCidrBlock :: Lens' EC2LocalGatewayRoute (Val Text)
eclgrDestinationCidrBlock = lens _eC2LocalGatewayRouteDestinationCidrBlock (\s a -> s { _eC2LocalGatewayRouteDestinationCidrBlock = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroute.html#cfn-ec2-localgatewayroute-localgatewayroutetableid
eclgrLocalGatewayRouteTableId :: Lens' EC2LocalGatewayRoute (Val Text)
eclgrLocalGatewayRouteTableId = lens _eC2LocalGatewayRouteLocalGatewayRouteTableId (\s a -> s { _eC2LocalGatewayRouteLocalGatewayRouteTableId = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroute.html#cfn-ec2-localgatewayroute-localgatewayvirtualinterfacegroupid
eclgrLocalGatewayVirtualInterfaceGroupId :: Lens' EC2LocalGatewayRoute (Val Text)
eclgrLocalGatewayVirtualInterfaceGroupId = lens _eC2LocalGatewayRouteLocalGatewayVirtualInterfaceGroupId (\s a -> s { _eC2LocalGatewayRouteLocalGatewayVirtualInterfaceGroupId = a })