packages feed

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

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

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

module Stratosphere.ResourceProperties.AppMeshVirtualServiceVirtualServiceSpec where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.AppMeshVirtualServiceVirtualServiceProvider

-- | Full data type definition for AppMeshVirtualServiceVirtualServiceSpec.
-- See 'appMeshVirtualServiceVirtualServiceSpec' for a more convenient
-- constructor.
data AppMeshVirtualServiceVirtualServiceSpec =
  AppMeshVirtualServiceVirtualServiceSpec
  { _appMeshVirtualServiceVirtualServiceSpecProvider :: Maybe AppMeshVirtualServiceVirtualServiceProvider
  } deriving (Show, Eq)

instance ToJSON AppMeshVirtualServiceVirtualServiceSpec where
  toJSON AppMeshVirtualServiceVirtualServiceSpec{..} =
    object $
    catMaybes
    [ fmap (("Provider",) . toJSON) _appMeshVirtualServiceVirtualServiceSpecProvider
    ]

-- | Constructor for 'AppMeshVirtualServiceVirtualServiceSpec' containing
-- required fields as arguments.
appMeshVirtualServiceVirtualServiceSpec
  :: AppMeshVirtualServiceVirtualServiceSpec
appMeshVirtualServiceVirtualServiceSpec  =
  AppMeshVirtualServiceVirtualServiceSpec
  { _appMeshVirtualServiceVirtualServiceSpecProvider = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualservicespec.html#cfn-appmesh-virtualservice-virtualservicespec-provider
amvsvssProvider :: Lens' AppMeshVirtualServiceVirtualServiceSpec (Maybe AppMeshVirtualServiceVirtualServiceProvider)
amvsvssProvider = lens _appMeshVirtualServiceVirtualServiceSpecProvider (\s a -> s { _appMeshVirtualServiceVirtualServiceSpecProvider = a })