stratosphere-0.36.0: library-gen/Stratosphere/Resources/AppMeshMesh.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-mesh.html
module Stratosphere.Resources.AppMeshMesh where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.AppMeshMeshMeshSpec
import Stratosphere.ResourceProperties.AppMeshMeshTagRef
-- | Full data type definition for AppMeshMesh. See 'appMeshMesh' for a more
-- convenient constructor.
data AppMeshMesh =
AppMeshMesh
{ _appMeshMeshMeshName :: Val Text
, _appMeshMeshSpec :: Maybe AppMeshMeshMeshSpec
, _appMeshMeshTags :: Maybe [AppMeshMeshTagRef]
} deriving (Show, Eq)
instance ToResourceProperties AppMeshMesh where
toResourceProperties AppMeshMesh{..} =
ResourceProperties
{ resourcePropertiesType = "AWS::AppMesh::Mesh"
, resourcePropertiesProperties =
hashMapFromList $ catMaybes
[ (Just . ("MeshName",) . toJSON) _appMeshMeshMeshName
, fmap (("Spec",) . toJSON) _appMeshMeshSpec
, fmap (("Tags",) . toJSON) _appMeshMeshTags
]
}
-- | Constructor for 'AppMeshMesh' containing required fields as arguments.
appMeshMesh
:: Val Text -- ^ 'ammMeshName'
-> AppMeshMesh
appMeshMesh meshNamearg =
AppMeshMesh
{ _appMeshMeshMeshName = meshNamearg
, _appMeshMeshSpec = Nothing
, _appMeshMeshTags = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-mesh.html#cfn-appmesh-mesh-meshname
ammMeshName :: Lens' AppMeshMesh (Val Text)
ammMeshName = lens _appMeshMeshMeshName (\s a -> s { _appMeshMeshMeshName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-mesh.html#cfn-appmesh-mesh-spec
ammSpec :: Lens' AppMeshMesh (Maybe AppMeshMeshMeshSpec)
ammSpec = lens _appMeshMeshSpec (\s a -> s { _appMeshMeshSpec = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-mesh.html#cfn-appmesh-mesh-tags
ammTags :: Lens' AppMeshMesh (Maybe [AppMeshMeshTagRef])
ammTags = lens _appMeshMeshTags (\s a -> s { _appMeshMeshTags = a })