packages feed

stratosphere-0.55.0: library-gen/Stratosphere/Resources/AppConfigHostedConfigurationVersion.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html

module Stratosphere.Resources.AppConfigHostedConfigurationVersion where

import Stratosphere.ResourceImports


-- | Full data type definition for AppConfigHostedConfigurationVersion. See
-- 'appConfigHostedConfigurationVersion' for a more convenient constructor.
data AppConfigHostedConfigurationVersion =
  AppConfigHostedConfigurationVersion
  { _appConfigHostedConfigurationVersionApplicationId :: Val Text
  , _appConfigHostedConfigurationVersionConfigurationProfileId :: Val Text
  , _appConfigHostedConfigurationVersionContent :: Val Text
  , _appConfigHostedConfigurationVersionContentType :: Val Text
  , _appConfigHostedConfigurationVersionDescription :: Maybe (Val Text)
  , _appConfigHostedConfigurationVersionLatestVersionNumber :: Maybe (Val Double)
  } deriving (Show, Eq)

instance ToResourceProperties AppConfigHostedConfigurationVersion where
  toResourceProperties AppConfigHostedConfigurationVersion{..} =
    ResourceProperties
    { resourcePropertiesType = "AWS::AppConfig::HostedConfigurationVersion"
    , resourcePropertiesProperties =
        hashMapFromList $ catMaybes
        [ (Just . ("ApplicationId",) . toJSON) _appConfigHostedConfigurationVersionApplicationId
        , (Just . ("ConfigurationProfileId",) . toJSON) _appConfigHostedConfigurationVersionConfigurationProfileId
        , (Just . ("Content",) . toJSON) _appConfigHostedConfigurationVersionContent
        , (Just . ("ContentType",) . toJSON) _appConfigHostedConfigurationVersionContentType
        , fmap (("Description",) . toJSON) _appConfigHostedConfigurationVersionDescription
        , fmap (("LatestVersionNumber",) . toJSON) _appConfigHostedConfigurationVersionLatestVersionNumber
        ]
    }

-- | Constructor for 'AppConfigHostedConfigurationVersion' containing required
-- fields as arguments.
appConfigHostedConfigurationVersion
  :: Val Text -- ^ 'achcvApplicationId'
  -> Val Text -- ^ 'achcvConfigurationProfileId'
  -> Val Text -- ^ 'achcvContent'
  -> Val Text -- ^ 'achcvContentType'
  -> AppConfigHostedConfigurationVersion
appConfigHostedConfigurationVersion applicationIdarg configurationProfileIdarg contentarg contentTypearg =
  AppConfigHostedConfigurationVersion
  { _appConfigHostedConfigurationVersionApplicationId = applicationIdarg
  , _appConfigHostedConfigurationVersionConfigurationProfileId = configurationProfileIdarg
  , _appConfigHostedConfigurationVersionContent = contentarg
  , _appConfigHostedConfigurationVersionContentType = contentTypearg
  , _appConfigHostedConfigurationVersionDescription = Nothing
  , _appConfigHostedConfigurationVersionLatestVersionNumber = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-applicationid
achcvApplicationId :: Lens' AppConfigHostedConfigurationVersion (Val Text)
achcvApplicationId = lens _appConfigHostedConfigurationVersionApplicationId (\s a -> s { _appConfigHostedConfigurationVersionApplicationId = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-configurationprofileid
achcvConfigurationProfileId :: Lens' AppConfigHostedConfigurationVersion (Val Text)
achcvConfigurationProfileId = lens _appConfigHostedConfigurationVersionConfigurationProfileId (\s a -> s { _appConfigHostedConfigurationVersionConfigurationProfileId = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-content
achcvContent :: Lens' AppConfigHostedConfigurationVersion (Val Text)
achcvContent = lens _appConfigHostedConfigurationVersionContent (\s a -> s { _appConfigHostedConfigurationVersionContent = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-contenttype
achcvContentType :: Lens' AppConfigHostedConfigurationVersion (Val Text)
achcvContentType = lens _appConfigHostedConfigurationVersionContentType (\s a -> s { _appConfigHostedConfigurationVersionContentType = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-description
achcvDescription :: Lens' AppConfigHostedConfigurationVersion (Maybe (Val Text))
achcvDescription = lens _appConfigHostedConfigurationVersionDescription (\s a -> s { _appConfigHostedConfigurationVersionDescription = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-latestversionnumber
achcvLatestVersionNumber :: Lens' AppConfigHostedConfigurationVersion (Maybe (Val Double))
achcvLatestVersionNumber = lens _appConfigHostedConfigurationVersionLatestVersionNumber (\s a -> s { _appConfigHostedConfigurationVersionLatestVersionNumber = a })