packages feed

stratosphere-0.46.0: library-gen/Stratosphere/Resources/MediaConvertPreset.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html

module Stratosphere.Resources.MediaConvertPreset where

import Stratosphere.ResourceImports


-- | Full data type definition for MediaConvertPreset. See
-- 'mediaConvertPreset' for a more convenient constructor.
data MediaConvertPreset =
  MediaConvertPreset
  { _mediaConvertPresetCategory :: Maybe (Val Text)
  , _mediaConvertPresetDescription :: Maybe (Val Text)
  , _mediaConvertPresetName :: Maybe (Val Text)
  , _mediaConvertPresetSettingsJson :: Object
  , _mediaConvertPresetTags :: Maybe Object
  } deriving (Show, Eq)

instance ToResourceProperties MediaConvertPreset where
  toResourceProperties MediaConvertPreset{..} =
    ResourceProperties
    { resourcePropertiesType = "AWS::MediaConvert::Preset"
    , resourcePropertiesProperties =
        hashMapFromList $ catMaybes
        [ fmap (("Category",) . toJSON) _mediaConvertPresetCategory
        , fmap (("Description",) . toJSON) _mediaConvertPresetDescription
        , fmap (("Name",) . toJSON) _mediaConvertPresetName
        , (Just . ("SettingsJson",) . toJSON) _mediaConvertPresetSettingsJson
        , fmap (("Tags",) . toJSON) _mediaConvertPresetTags
        ]
    }

-- | Constructor for 'MediaConvertPreset' containing required fields as
-- arguments.
mediaConvertPreset
  :: Object -- ^ 'mcpSettingsJson'
  -> MediaConvertPreset
mediaConvertPreset settingsJsonarg =
  MediaConvertPreset
  { _mediaConvertPresetCategory = Nothing
  , _mediaConvertPresetDescription = Nothing
  , _mediaConvertPresetName = Nothing
  , _mediaConvertPresetSettingsJson = settingsJsonarg
  , _mediaConvertPresetTags = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html#cfn-mediaconvert-preset-category
mcpCategory :: Lens' MediaConvertPreset (Maybe (Val Text))
mcpCategory = lens _mediaConvertPresetCategory (\s a -> s { _mediaConvertPresetCategory = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html#cfn-mediaconvert-preset-description
mcpDescription :: Lens' MediaConvertPreset (Maybe (Val Text))
mcpDescription = lens _mediaConvertPresetDescription (\s a -> s { _mediaConvertPresetDescription = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html#cfn-mediaconvert-preset-name
mcpName :: Lens' MediaConvertPreset (Maybe (Val Text))
mcpName = lens _mediaConvertPresetName (\s a -> s { _mediaConvertPresetName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html#cfn-mediaconvert-preset-settingsjson
mcpSettingsJson :: Lens' MediaConvertPreset Object
mcpSettingsJson = lens _mediaConvertPresetSettingsJson (\s a -> s { _mediaConvertPresetSettingsJson = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html#cfn-mediaconvert-preset-tags
mcpTags :: Lens' MediaConvertPreset (Maybe Object)
mcpTags = lens _mediaConvertPresetTags (\s a -> s { _mediaConvertPresetTags = a })