{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TupleSections #-} -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioproductassociation.html module Stratosphere.Resources.ServiceCatalogPortfolioProductAssociation where import Stratosphere.ResourceImports -- | Full data type definition for ServiceCatalogPortfolioProductAssociation. -- See 'serviceCatalogPortfolioProductAssociation' for a more convenient -- constructor. data ServiceCatalogPortfolioProductAssociation = ServiceCatalogPortfolioProductAssociation { _serviceCatalogPortfolioProductAssociationAcceptLanguage :: Maybe (Val Text) , _serviceCatalogPortfolioProductAssociationPortfolioId :: Val Text , _serviceCatalogPortfolioProductAssociationProductId :: Val Text , _serviceCatalogPortfolioProductAssociationSourcePortfolioId :: Maybe (Val Text) } deriving (Show, Eq) instance ToJSON ServiceCatalogPortfolioProductAssociation where toJSON ServiceCatalogPortfolioProductAssociation{..} = object $ catMaybes [ fmap (("AcceptLanguage",) . toJSON) _serviceCatalogPortfolioProductAssociationAcceptLanguage , (Just . ("PortfolioId",) . toJSON) _serviceCatalogPortfolioProductAssociationPortfolioId , (Just . ("ProductId",) . toJSON) _serviceCatalogPortfolioProductAssociationProductId , fmap (("SourcePortfolioId",) . toJSON) _serviceCatalogPortfolioProductAssociationSourcePortfolioId ] instance FromJSON ServiceCatalogPortfolioProductAssociation where parseJSON (Object obj) = ServiceCatalogPortfolioProductAssociation <$> (obj .:? "AcceptLanguage") <*> (obj .: "PortfolioId") <*> (obj .: "ProductId") <*> (obj .:? "SourcePortfolioId") parseJSON _ = mempty -- | Constructor for 'ServiceCatalogPortfolioProductAssociation' containing -- required fields as arguments. serviceCatalogPortfolioProductAssociation :: Val Text -- ^ 'scpproaPortfolioId' -> Val Text -- ^ 'scpproaProductId' -> ServiceCatalogPortfolioProductAssociation serviceCatalogPortfolioProductAssociation portfolioIdarg productIdarg = ServiceCatalogPortfolioProductAssociation { _serviceCatalogPortfolioProductAssociationAcceptLanguage = Nothing , _serviceCatalogPortfolioProductAssociationPortfolioId = portfolioIdarg , _serviceCatalogPortfolioProductAssociationProductId = productIdarg , _serviceCatalogPortfolioProductAssociationSourcePortfolioId = Nothing } -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioproductassociation.html#cfn-servicecatalog-portfolioproductassociation-acceptlanguage scpproaAcceptLanguage :: Lens' ServiceCatalogPortfolioProductAssociation (Maybe (Val Text)) scpproaAcceptLanguage = lens _serviceCatalogPortfolioProductAssociationAcceptLanguage (\s a -> s { _serviceCatalogPortfolioProductAssociationAcceptLanguage = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioproductassociation.html#cfn-servicecatalog-portfolioproductassociation-portfolioid scpproaPortfolioId :: Lens' ServiceCatalogPortfolioProductAssociation (Val Text) scpproaPortfolioId = lens _serviceCatalogPortfolioProductAssociationPortfolioId (\s a -> s { _serviceCatalogPortfolioProductAssociationPortfolioId = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioproductassociation.html#cfn-servicecatalog-portfolioproductassociation-productid scpproaProductId :: Lens' ServiceCatalogPortfolioProductAssociation (Val Text) scpproaProductId = lens _serviceCatalogPortfolioProductAssociationProductId (\s a -> s { _serviceCatalogPortfolioProductAssociationProductId = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioproductassociation.html#cfn-servicecatalog-portfolioproductassociation-sourceportfolioid scpproaSourcePortfolioId :: Lens' ServiceCatalogPortfolioProductAssociation (Maybe (Val Text)) scpproaSourcePortfolioId = lens _serviceCatalogPortfolioProductAssociationSourcePortfolioId (\s a -> s { _serviceCatalogPortfolioProductAssociationSourcePortfolioId = a })