packages feed

stratosphere-0.32.0: library-gen/Stratosphere/Resources/ServiceCatalogPortfolioProductAssociation.hs

{-# 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
    ]

-- | 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 })