packages feed

stratosphere-0.58.0: library-gen/Stratosphere/ResourceProperties/ECSTaskDefinitionEFSVolumeConfiguration.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html

module Stratosphere.ResourceProperties.ECSTaskDefinitionEFSVolumeConfiguration where

import Stratosphere.ResourceImports


-- | Full data type definition for ECSTaskDefinitionEFSVolumeConfiguration.
-- See 'ecsTaskDefinitionEFSVolumeConfiguration' for a more convenient
-- constructor.
data ECSTaskDefinitionEFSVolumeConfiguration =
  ECSTaskDefinitionEFSVolumeConfiguration
  { _eCSTaskDefinitionEFSVolumeConfigurationAuthorizationConfig :: Maybe Object
  , _eCSTaskDefinitionEFSVolumeConfigurationFilesystemId :: Val Text
  , _eCSTaskDefinitionEFSVolumeConfigurationRootDirectory :: Maybe (Val Text)
  , _eCSTaskDefinitionEFSVolumeConfigurationTransitEncryption :: Maybe (Val Text)
  , _eCSTaskDefinitionEFSVolumeConfigurationTransitEncryptionPort :: Maybe (Val Integer)
  } deriving (Show, Eq)

instance ToJSON ECSTaskDefinitionEFSVolumeConfiguration where
  toJSON ECSTaskDefinitionEFSVolumeConfiguration{..} =
    object $
    catMaybes
    [ fmap (("AuthorizationConfig",) . toJSON) _eCSTaskDefinitionEFSVolumeConfigurationAuthorizationConfig
    , (Just . ("FilesystemId",) . toJSON) _eCSTaskDefinitionEFSVolumeConfigurationFilesystemId
    , fmap (("RootDirectory",) . toJSON) _eCSTaskDefinitionEFSVolumeConfigurationRootDirectory
    , fmap (("TransitEncryption",) . toJSON) _eCSTaskDefinitionEFSVolumeConfigurationTransitEncryption
    , fmap (("TransitEncryptionPort",) . toJSON) _eCSTaskDefinitionEFSVolumeConfigurationTransitEncryptionPort
    ]

-- | Constructor for 'ECSTaskDefinitionEFSVolumeConfiguration' containing
-- required fields as arguments.
ecsTaskDefinitionEFSVolumeConfiguration
  :: Val Text -- ^ 'ecstdefsvcFilesystemId'
  -> ECSTaskDefinitionEFSVolumeConfiguration
ecsTaskDefinitionEFSVolumeConfiguration filesystemIdarg =
  ECSTaskDefinitionEFSVolumeConfiguration
  { _eCSTaskDefinitionEFSVolumeConfigurationAuthorizationConfig = Nothing
  , _eCSTaskDefinitionEFSVolumeConfigurationFilesystemId = filesystemIdarg
  , _eCSTaskDefinitionEFSVolumeConfigurationRootDirectory = Nothing
  , _eCSTaskDefinitionEFSVolumeConfigurationTransitEncryption = Nothing
  , _eCSTaskDefinitionEFSVolumeConfigurationTransitEncryptionPort = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html#cfn-ecs-taskdefinition-efsvolumeconfiguration-authorizationconfig
ecstdefsvcAuthorizationConfig :: Lens' ECSTaskDefinitionEFSVolumeConfiguration (Maybe Object)
ecstdefsvcAuthorizationConfig = lens _eCSTaskDefinitionEFSVolumeConfigurationAuthorizationConfig (\s a -> s { _eCSTaskDefinitionEFSVolumeConfigurationAuthorizationConfig = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html#cfn-ecs-taskdefinition-efsvolumeconfiguration-filesystemid
ecstdefsvcFilesystemId :: Lens' ECSTaskDefinitionEFSVolumeConfiguration (Val Text)
ecstdefsvcFilesystemId = lens _eCSTaskDefinitionEFSVolumeConfigurationFilesystemId (\s a -> s { _eCSTaskDefinitionEFSVolumeConfigurationFilesystemId = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html#cfn-ecs-taskdefinition-efsvolumeconfiguration-rootdirectory
ecstdefsvcRootDirectory :: Lens' ECSTaskDefinitionEFSVolumeConfiguration (Maybe (Val Text))
ecstdefsvcRootDirectory = lens _eCSTaskDefinitionEFSVolumeConfigurationRootDirectory (\s a -> s { _eCSTaskDefinitionEFSVolumeConfigurationRootDirectory = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html#cfn-ecs-taskdefinition-efsvolumeconfiguration-transitencryption
ecstdefsvcTransitEncryption :: Lens' ECSTaskDefinitionEFSVolumeConfiguration (Maybe (Val Text))
ecstdefsvcTransitEncryption = lens _eCSTaskDefinitionEFSVolumeConfigurationTransitEncryption (\s a -> s { _eCSTaskDefinitionEFSVolumeConfigurationTransitEncryption = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html#cfn-ecs-taskdefinition-efsvolumeconfiguration-transitencryptionport
ecstdefsvcTransitEncryptionPort :: Lens' ECSTaskDefinitionEFSVolumeConfiguration (Maybe (Val Integer))
ecstdefsvcTransitEncryptionPort = lens _eCSTaskDefinitionEFSVolumeConfigurationTransitEncryptionPort (\s a -> s { _eCSTaskDefinitionEFSVolumeConfigurationTransitEncryptionPort = a })