{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TupleSections #-} -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html module Stratosphere.Resources.ServiceCatalogPortfolio where import Stratosphere.ResourceImports import Stratosphere.ResourceProperties.Tag -- | Full data type definition for ServiceCatalogPortfolio. See -- 'serviceCatalogPortfolio' for a more convenient constructor. data ServiceCatalogPortfolio = ServiceCatalogPortfolio { _serviceCatalogPortfolioAcceptLanguage :: Maybe (Val Text) , _serviceCatalogPortfolioDescription :: Maybe (Val Text) , _serviceCatalogPortfolioDisplayName :: Val Text , _serviceCatalogPortfolioProviderName :: Val Text , _serviceCatalogPortfolioTags :: Maybe [Tag] } deriving (Show, Eq) instance ToJSON ServiceCatalogPortfolio where toJSON ServiceCatalogPortfolio{..} = object $ catMaybes [ fmap (("AcceptLanguage",) . toJSON) _serviceCatalogPortfolioAcceptLanguage , fmap (("Description",) . toJSON) _serviceCatalogPortfolioDescription , (Just . ("DisplayName",) . toJSON) _serviceCatalogPortfolioDisplayName , (Just . ("ProviderName",) . toJSON) _serviceCatalogPortfolioProviderName , fmap (("Tags",) . toJSON) _serviceCatalogPortfolioTags ] instance FromJSON ServiceCatalogPortfolio where parseJSON (Object obj) = ServiceCatalogPortfolio <$> (obj .:? "AcceptLanguage") <*> (obj .:? "Description") <*> (obj .: "DisplayName") <*> (obj .: "ProviderName") <*> (obj .:? "Tags") parseJSON _ = mempty -- | Constructor for 'ServiceCatalogPortfolio' containing required fields as -- arguments. serviceCatalogPortfolio :: Val Text -- ^ 'scpDisplayName' -> Val Text -- ^ 'scpProviderName' -> ServiceCatalogPortfolio serviceCatalogPortfolio displayNamearg providerNamearg = ServiceCatalogPortfolio { _serviceCatalogPortfolioAcceptLanguage = Nothing , _serviceCatalogPortfolioDescription = Nothing , _serviceCatalogPortfolioDisplayName = displayNamearg , _serviceCatalogPortfolioProviderName = providerNamearg , _serviceCatalogPortfolioTags = Nothing } -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html#cfn-servicecatalog-portfolio-acceptlanguage scpAcceptLanguage :: Lens' ServiceCatalogPortfolio (Maybe (Val Text)) scpAcceptLanguage = lens _serviceCatalogPortfolioAcceptLanguage (\s a -> s { _serviceCatalogPortfolioAcceptLanguage = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html#cfn-servicecatalog-portfolio-description scpDescription :: Lens' ServiceCatalogPortfolio (Maybe (Val Text)) scpDescription = lens _serviceCatalogPortfolioDescription (\s a -> s { _serviceCatalogPortfolioDescription = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html#cfn-servicecatalog-portfolio-displayname scpDisplayName :: Lens' ServiceCatalogPortfolio (Val Text) scpDisplayName = lens _serviceCatalogPortfolioDisplayName (\s a -> s { _serviceCatalogPortfolioDisplayName = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html#cfn-servicecatalog-portfolio-providername scpProviderName :: Lens' ServiceCatalogPortfolio (Val Text) scpProviderName = lens _serviceCatalogPortfolioProviderName (\s a -> s { _serviceCatalogPortfolioProviderName = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html#cfn-servicecatalog-portfolio-tags scpTags :: Lens' ServiceCatalogPortfolio (Maybe [Tag]) scpTags = lens _serviceCatalogPortfolioTags (\s a -> s { _serviceCatalogPortfolioTags = a })