packages feed

stratosphere-0.57.0: library-gen/Stratosphere/ResourceProperties/AppMeshGatewayRouteHttpGatewayRoute.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroute.html

module Stratosphere.ResourceProperties.AppMeshGatewayRouteHttpGatewayRoute where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.AppMeshGatewayRouteHttpGatewayRouteAction
import Stratosphere.ResourceProperties.AppMeshGatewayRouteHttpGatewayRouteMatch

-- | Full data type definition for AppMeshGatewayRouteHttpGatewayRoute. See
-- 'appMeshGatewayRouteHttpGatewayRoute' for a more convenient constructor.
data AppMeshGatewayRouteHttpGatewayRoute =
  AppMeshGatewayRouteHttpGatewayRoute
  { _appMeshGatewayRouteHttpGatewayRouteAction :: AppMeshGatewayRouteHttpGatewayRouteAction
  , _appMeshGatewayRouteHttpGatewayRouteMatch :: AppMeshGatewayRouteHttpGatewayRouteMatch
  } deriving (Show, Eq)

instance ToJSON AppMeshGatewayRouteHttpGatewayRoute where
  toJSON AppMeshGatewayRouteHttpGatewayRoute{..} =
    object $
    catMaybes
    [ (Just . ("Action",) . toJSON) _appMeshGatewayRouteHttpGatewayRouteAction
    , (Just . ("Match",) . toJSON) _appMeshGatewayRouteHttpGatewayRouteMatch
    ]

-- | Constructor for 'AppMeshGatewayRouteHttpGatewayRoute' containing required
-- fields as arguments.
appMeshGatewayRouteHttpGatewayRoute
  :: AppMeshGatewayRouteHttpGatewayRouteAction -- ^ 'amgrhgrAction'
  -> AppMeshGatewayRouteHttpGatewayRouteMatch -- ^ 'amgrhgrMatch'
  -> AppMeshGatewayRouteHttpGatewayRoute
appMeshGatewayRouteHttpGatewayRoute actionarg matcharg =
  AppMeshGatewayRouteHttpGatewayRoute
  { _appMeshGatewayRouteHttpGatewayRouteAction = actionarg
  , _appMeshGatewayRouteHttpGatewayRouteMatch = matcharg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroute.html#cfn-appmesh-gatewayroute-httpgatewayroute-action
amgrhgrAction :: Lens' AppMeshGatewayRouteHttpGatewayRoute AppMeshGatewayRouteHttpGatewayRouteAction
amgrhgrAction = lens _appMeshGatewayRouteHttpGatewayRouteAction (\s a -> s { _appMeshGatewayRouteHttpGatewayRouteAction = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroute.html#cfn-appmesh-gatewayroute-httpgatewayroute-match
amgrhgrMatch :: Lens' AppMeshGatewayRouteHttpGatewayRoute AppMeshGatewayRouteHttpGatewayRouteMatch
amgrhgrMatch = lens _appMeshGatewayRouteHttpGatewayRouteMatch (\s a -> s { _appMeshGatewayRouteHttpGatewayRouteMatch = a })