packages feed

stratosphere-0.36.0: library-gen/Stratosphere/ResourceProperties/AppMeshVirtualRouterVirtualRouterSpec.hs

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

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

module Stratosphere.ResourceProperties.AppMeshVirtualRouterVirtualRouterSpec where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.AppMeshVirtualRouterVirtualRouterListener

-- | Full data type definition for AppMeshVirtualRouterVirtualRouterSpec. See
-- 'appMeshVirtualRouterVirtualRouterSpec' for a more convenient
-- constructor.
data AppMeshVirtualRouterVirtualRouterSpec =
  AppMeshVirtualRouterVirtualRouterSpec
  { _appMeshVirtualRouterVirtualRouterSpecListeners :: [AppMeshVirtualRouterVirtualRouterListener]
  } deriving (Show, Eq)

instance ToJSON AppMeshVirtualRouterVirtualRouterSpec where
  toJSON AppMeshVirtualRouterVirtualRouterSpec{..} =
    object $
    catMaybes
    [ (Just . ("Listeners",) . toJSON) _appMeshVirtualRouterVirtualRouterSpecListeners
    ]

-- | Constructor for 'AppMeshVirtualRouterVirtualRouterSpec' containing
-- required fields as arguments.
appMeshVirtualRouterVirtualRouterSpec
  :: [AppMeshVirtualRouterVirtualRouterListener] -- ^ 'amvrvrsListeners'
  -> AppMeshVirtualRouterVirtualRouterSpec
appMeshVirtualRouterVirtualRouterSpec listenersarg =
  AppMeshVirtualRouterVirtualRouterSpec
  { _appMeshVirtualRouterVirtualRouterSpecListeners = listenersarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-virtualrouterspec.html#cfn-appmesh-virtualrouter-virtualrouterspec-listeners
amvrvrsListeners :: Lens' AppMeshVirtualRouterVirtualRouterSpec [AppMeshVirtualRouterVirtualRouterListener]
amvrvrsListeners = lens _appMeshVirtualRouterVirtualRouterSpecListeners (\s a -> s { _appMeshVirtualRouterVirtualRouterSpecListeners = a })