stratosphere-0.50.0: library-gen/Stratosphere/ResourceProperties/AppMeshVirtualNodeVirtualServiceBackend.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualservicebackend.html
module Stratosphere.ResourceProperties.AppMeshVirtualNodeVirtualServiceBackend where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.AppMeshVirtualNodeClientPolicy
-- | Full data type definition for AppMeshVirtualNodeVirtualServiceBackend.
-- See 'appMeshVirtualNodeVirtualServiceBackend' for a more convenient
-- constructor.
data AppMeshVirtualNodeVirtualServiceBackend =
AppMeshVirtualNodeVirtualServiceBackend
{ _appMeshVirtualNodeVirtualServiceBackendClientPolicy :: Maybe AppMeshVirtualNodeClientPolicy
, _appMeshVirtualNodeVirtualServiceBackendVirtualServiceName :: Val Text
} deriving (Show, Eq)
instance ToJSON AppMeshVirtualNodeVirtualServiceBackend where
toJSON AppMeshVirtualNodeVirtualServiceBackend{..} =
object $
catMaybes
[ fmap (("ClientPolicy",) . toJSON) _appMeshVirtualNodeVirtualServiceBackendClientPolicy
, (Just . ("VirtualServiceName",) . toJSON) _appMeshVirtualNodeVirtualServiceBackendVirtualServiceName
]
-- | Constructor for 'AppMeshVirtualNodeVirtualServiceBackend' containing
-- required fields as arguments.
appMeshVirtualNodeVirtualServiceBackend
:: Val Text -- ^ 'amvnvsbVirtualServiceName'
-> AppMeshVirtualNodeVirtualServiceBackend
appMeshVirtualNodeVirtualServiceBackend virtualServiceNamearg =
AppMeshVirtualNodeVirtualServiceBackend
{ _appMeshVirtualNodeVirtualServiceBackendClientPolicy = Nothing
, _appMeshVirtualNodeVirtualServiceBackendVirtualServiceName = virtualServiceNamearg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualservicebackend.html#cfn-appmesh-virtualnode-virtualservicebackend-clientpolicy
amvnvsbClientPolicy :: Lens' AppMeshVirtualNodeVirtualServiceBackend (Maybe AppMeshVirtualNodeClientPolicy)
amvnvsbClientPolicy = lens _appMeshVirtualNodeVirtualServiceBackendClientPolicy (\s a -> s { _appMeshVirtualNodeVirtualServiceBackendClientPolicy = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualservicebackend.html#cfn-appmesh-virtualnode-virtualservicebackend-virtualservicename
amvnvsbVirtualServiceName :: Lens' AppMeshVirtualNodeVirtualServiceBackend (Val Text)
amvnvsbVirtualServiceName = lens _appMeshVirtualNodeVirtualServiceBackendVirtualServiceName (\s a -> s { _appMeshVirtualNodeVirtualServiceBackendVirtualServiceName = a })