stratosphere-0.42.0: library-gen/Stratosphere/ResourceProperties/AppMeshRouteHeaderMatchMethod.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-headermatchmethod.html
module Stratosphere.ResourceProperties.AppMeshRouteHeaderMatchMethod where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.AppMeshRouteMatchRange
-- | Full data type definition for AppMeshRouteHeaderMatchMethod. See
-- 'appMeshRouteHeaderMatchMethod' for a more convenient constructor.
data AppMeshRouteHeaderMatchMethod =
AppMeshRouteHeaderMatchMethod
{ _appMeshRouteHeaderMatchMethodExact :: Maybe (Val Text)
, _appMeshRouteHeaderMatchMethodPrefix :: Maybe (Val Text)
, _appMeshRouteHeaderMatchMethodRange :: Maybe AppMeshRouteMatchRange
, _appMeshRouteHeaderMatchMethodRegex :: Maybe (Val Text)
, _appMeshRouteHeaderMatchMethodSuffix :: Maybe (Val Text)
} deriving (Show, Eq)
instance ToJSON AppMeshRouteHeaderMatchMethod where
toJSON AppMeshRouteHeaderMatchMethod{..} =
object $
catMaybes
[ fmap (("Exact",) . toJSON) _appMeshRouteHeaderMatchMethodExact
, fmap (("Prefix",) . toJSON) _appMeshRouteHeaderMatchMethodPrefix
, fmap (("Range",) . toJSON) _appMeshRouteHeaderMatchMethodRange
, fmap (("Regex",) . toJSON) _appMeshRouteHeaderMatchMethodRegex
, fmap (("Suffix",) . toJSON) _appMeshRouteHeaderMatchMethodSuffix
]
-- | Constructor for 'AppMeshRouteHeaderMatchMethod' containing required
-- fields as arguments.
appMeshRouteHeaderMatchMethod
:: AppMeshRouteHeaderMatchMethod
appMeshRouteHeaderMatchMethod =
AppMeshRouteHeaderMatchMethod
{ _appMeshRouteHeaderMatchMethodExact = Nothing
, _appMeshRouteHeaderMatchMethodPrefix = Nothing
, _appMeshRouteHeaderMatchMethodRange = Nothing
, _appMeshRouteHeaderMatchMethodRegex = Nothing
, _appMeshRouteHeaderMatchMethodSuffix = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-headermatchmethod.html#cfn-appmesh-route-headermatchmethod-exact
amrhmmExact :: Lens' AppMeshRouteHeaderMatchMethod (Maybe (Val Text))
amrhmmExact = lens _appMeshRouteHeaderMatchMethodExact (\s a -> s { _appMeshRouteHeaderMatchMethodExact = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-headermatchmethod.html#cfn-appmesh-route-headermatchmethod-prefix
amrhmmPrefix :: Lens' AppMeshRouteHeaderMatchMethod (Maybe (Val Text))
amrhmmPrefix = lens _appMeshRouteHeaderMatchMethodPrefix (\s a -> s { _appMeshRouteHeaderMatchMethodPrefix = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-headermatchmethod.html#cfn-appmesh-route-headermatchmethod-range
amrhmmRange :: Lens' AppMeshRouteHeaderMatchMethod (Maybe AppMeshRouteMatchRange)
amrhmmRange = lens _appMeshRouteHeaderMatchMethodRange (\s a -> s { _appMeshRouteHeaderMatchMethodRange = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-headermatchmethod.html#cfn-appmesh-route-headermatchmethod-regex
amrhmmRegex :: Lens' AppMeshRouteHeaderMatchMethod (Maybe (Val Text))
amrhmmRegex = lens _appMeshRouteHeaderMatchMethodRegex (\s a -> s { _appMeshRouteHeaderMatchMethodRegex = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-headermatchmethod.html#cfn-appmesh-route-headermatchmethod-suffix
amrhmmSuffix :: Lens' AppMeshRouteHeaderMatchMethod (Maybe (Val Text))
amrhmmSuffix = lens _appMeshRouteHeaderMatchMethodSuffix (\s a -> s { _appMeshRouteHeaderMatchMethodSuffix = a })