packages feed

stratosphere-0.56.0: library-gen/Stratosphere/ResourceProperties/FMSPolicyIEMap.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-iemap.html

module Stratosphere.ResourceProperties.FMSPolicyIEMap where

import Stratosphere.ResourceImports


-- | Full data type definition for FMSPolicyIEMap. See 'fmsPolicyIEMap' for a
-- more convenient constructor.
data FMSPolicyIEMap =
  FMSPolicyIEMap
  { _fMSPolicyIEMapACCOUNT :: Maybe (ValList Text)
  , _fMSPolicyIEMapORGUNIT :: Maybe (ValList Text)
  } deriving (Show, Eq)

instance ToJSON FMSPolicyIEMap where
  toJSON FMSPolicyIEMap{..} =
    object $
    catMaybes
    [ fmap (("ACCOUNT",) . toJSON) _fMSPolicyIEMapACCOUNT
    , fmap (("ORGUNIT",) . toJSON) _fMSPolicyIEMapORGUNIT
    ]

-- | Constructor for 'FMSPolicyIEMap' containing required fields as arguments.
fmsPolicyIEMap
  :: FMSPolicyIEMap
fmsPolicyIEMap  =
  FMSPolicyIEMap
  { _fMSPolicyIEMapACCOUNT = Nothing
  , _fMSPolicyIEMapORGUNIT = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-iemap.html#cfn-fms-policy-iemap-account
fmspiemACCOUNT :: Lens' FMSPolicyIEMap (Maybe (ValList Text))
fmspiemACCOUNT = lens _fMSPolicyIEMapACCOUNT (\s a -> s { _fMSPolicyIEMapACCOUNT = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-iemap.html#cfn-fms-policy-iemap-orgunit
fmspiemORGUNIT :: Lens' FMSPolicyIEMap (Maybe (ValList Text))
fmspiemORGUNIT = lens _fMSPolicyIEMapORGUNIT (\s a -> s { _fMSPolicyIEMapORGUNIT = a })