stratosphere-0.36.0: library-gen/Stratosphere/ResourceProperties/AppMeshRouteWeightedTarget.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html
module Stratosphere.ResourceProperties.AppMeshRouteWeightedTarget where
import Stratosphere.ResourceImports
-- | Full data type definition for AppMeshRouteWeightedTarget. See
-- 'appMeshRouteWeightedTarget' for a more convenient constructor.
data AppMeshRouteWeightedTarget =
AppMeshRouteWeightedTarget
{ _appMeshRouteWeightedTargetVirtualNode :: Val Text
, _appMeshRouteWeightedTargetWeight :: Val Integer
} deriving (Show, Eq)
instance ToJSON AppMeshRouteWeightedTarget where
toJSON AppMeshRouteWeightedTarget{..} =
object $
catMaybes
[ (Just . ("VirtualNode",) . toJSON) _appMeshRouteWeightedTargetVirtualNode
, (Just . ("Weight",) . toJSON) _appMeshRouteWeightedTargetWeight
]
-- | Constructor for 'AppMeshRouteWeightedTarget' containing required fields
-- as arguments.
appMeshRouteWeightedTarget
:: Val Text -- ^ 'amrwtVirtualNode'
-> Val Integer -- ^ 'amrwtWeight'
-> AppMeshRouteWeightedTarget
appMeshRouteWeightedTarget virtualNodearg weightarg =
AppMeshRouteWeightedTarget
{ _appMeshRouteWeightedTargetVirtualNode = virtualNodearg
, _appMeshRouteWeightedTargetWeight = weightarg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html#cfn-appmesh-route-weightedtarget-virtualnode
amrwtVirtualNode :: Lens' AppMeshRouteWeightedTarget (Val Text)
amrwtVirtualNode = lens _appMeshRouteWeightedTargetVirtualNode (\s a -> s { _appMeshRouteWeightedTargetVirtualNode = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html#cfn-appmesh-route-weightedtarget-weight
amrwtWeight :: Lens' AppMeshRouteWeightedTarget (Val Integer)
amrwtWeight = lens _appMeshRouteWeightedTargetWeight (\s a -> s { _appMeshRouteWeightedTargetWeight = a })