stratosphere-0.56.0: library-gen/Stratosphere/ResourceProperties/AppMeshRouteGrpcRoute.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroute.html
module Stratosphere.ResourceProperties.AppMeshRouteGrpcRoute where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.AppMeshRouteGrpcRouteAction
import Stratosphere.ResourceProperties.AppMeshRouteGrpcRouteMatch
import Stratosphere.ResourceProperties.AppMeshRouteGrpcRetryPolicy
import Stratosphere.ResourceProperties.AppMeshRouteGrpcTimeout
-- | Full data type definition for AppMeshRouteGrpcRoute. See
-- 'appMeshRouteGrpcRoute' for a more convenient constructor.
data AppMeshRouteGrpcRoute =
AppMeshRouteGrpcRoute
{ _appMeshRouteGrpcRouteAction :: AppMeshRouteGrpcRouteAction
, _appMeshRouteGrpcRouteMatch :: AppMeshRouteGrpcRouteMatch
, _appMeshRouteGrpcRouteRetryPolicy :: Maybe AppMeshRouteGrpcRetryPolicy
, _appMeshRouteGrpcRouteTimeout :: Maybe AppMeshRouteGrpcTimeout
} deriving (Show, Eq)
instance ToJSON AppMeshRouteGrpcRoute where
toJSON AppMeshRouteGrpcRoute{..} =
object $
catMaybes
[ (Just . ("Action",) . toJSON) _appMeshRouteGrpcRouteAction
, (Just . ("Match",) . toJSON) _appMeshRouteGrpcRouteMatch
, fmap (("RetryPolicy",) . toJSON) _appMeshRouteGrpcRouteRetryPolicy
, fmap (("Timeout",) . toJSON) _appMeshRouteGrpcRouteTimeout
]
-- | Constructor for 'AppMeshRouteGrpcRoute' containing required fields as
-- arguments.
appMeshRouteGrpcRoute
:: AppMeshRouteGrpcRouteAction -- ^ 'amrgrAction'
-> AppMeshRouteGrpcRouteMatch -- ^ 'amrgrMatch'
-> AppMeshRouteGrpcRoute
appMeshRouteGrpcRoute actionarg matcharg =
AppMeshRouteGrpcRoute
{ _appMeshRouteGrpcRouteAction = actionarg
, _appMeshRouteGrpcRouteMatch = matcharg
, _appMeshRouteGrpcRouteRetryPolicy = Nothing
, _appMeshRouteGrpcRouteTimeout = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroute.html#cfn-appmesh-route-grpcroute-action
amrgrAction :: Lens' AppMeshRouteGrpcRoute AppMeshRouteGrpcRouteAction
amrgrAction = lens _appMeshRouteGrpcRouteAction (\s a -> s { _appMeshRouteGrpcRouteAction = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroute.html#cfn-appmesh-route-grpcroute-match
amrgrMatch :: Lens' AppMeshRouteGrpcRoute AppMeshRouteGrpcRouteMatch
amrgrMatch = lens _appMeshRouteGrpcRouteMatch (\s a -> s { _appMeshRouteGrpcRouteMatch = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroute.html#cfn-appmesh-route-grpcroute-retrypolicy
amrgrRetryPolicy :: Lens' AppMeshRouteGrpcRoute (Maybe AppMeshRouteGrpcRetryPolicy)
amrgrRetryPolicy = lens _appMeshRouteGrpcRouteRetryPolicy (\s a -> s { _appMeshRouteGrpcRouteRetryPolicy = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroute.html#cfn-appmesh-route-grpcroute-timeout
amrgrTimeout :: Lens' AppMeshRouteGrpcRoute (Maybe AppMeshRouteGrpcTimeout)
amrgrTimeout = lens _appMeshRouteGrpcRouteTimeout (\s a -> s { _appMeshRouteGrpcRouteTimeout = a })