packages feed

stratosphere-0.22.2: library-gen/Stratosphere/Resources/ServiceCatalogCloudFormationProvisionedProduct.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html

module Stratosphere.Resources.ServiceCatalogCloudFormationProvisionedProduct where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.ServiceCatalogCloudFormationProvisionedProductProvisioningParameter
import Stratosphere.ResourceProperties.Tag

-- | Full data type definition for
-- ServiceCatalogCloudFormationProvisionedProduct. See
-- 'serviceCatalogCloudFormationProvisionedProduct' for a more convenient
-- constructor.
data ServiceCatalogCloudFormationProvisionedProduct =
  ServiceCatalogCloudFormationProvisionedProduct
  { _serviceCatalogCloudFormationProvisionedProductAcceptLanguage :: Maybe (Val Text)
  , _serviceCatalogCloudFormationProvisionedProductNotificationArns :: Maybe (ValList Text)
  , _serviceCatalogCloudFormationProvisionedProductPathId :: Maybe (Val Text)
  , _serviceCatalogCloudFormationProvisionedProductProductId :: Maybe (Val Text)
  , _serviceCatalogCloudFormationProvisionedProductProductName :: Maybe (Val Text)
  , _serviceCatalogCloudFormationProvisionedProductProvisionedProductName :: Maybe (Val Text)
  , _serviceCatalogCloudFormationProvisionedProductProvisioningArtifactId :: Maybe (Val Text)
  , _serviceCatalogCloudFormationProvisionedProductProvisioningArtifactName :: Maybe (Val Text)
  , _serviceCatalogCloudFormationProvisionedProductProvisioningParameters :: Maybe [ServiceCatalogCloudFormationProvisionedProductProvisioningParameter]
  , _serviceCatalogCloudFormationProvisionedProductTags :: Maybe [Tag]
  } deriving (Show, Eq)

instance ToJSON ServiceCatalogCloudFormationProvisionedProduct where
  toJSON ServiceCatalogCloudFormationProvisionedProduct{..} =
    object $
    catMaybes
    [ fmap (("AcceptLanguage",) . toJSON) _serviceCatalogCloudFormationProvisionedProductAcceptLanguage
    , fmap (("NotificationArns",) . toJSON) _serviceCatalogCloudFormationProvisionedProductNotificationArns
    , fmap (("PathId",) . toJSON) _serviceCatalogCloudFormationProvisionedProductPathId
    , fmap (("ProductId",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProductId
    , fmap (("ProductName",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProductName
    , fmap (("ProvisionedProductName",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProvisionedProductName
    , fmap (("ProvisioningArtifactId",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProvisioningArtifactId
    , fmap (("ProvisioningArtifactName",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProvisioningArtifactName
    , fmap (("ProvisioningParameters",) . toJSON) _serviceCatalogCloudFormationProvisionedProductProvisioningParameters
    , fmap (("Tags",) . toJSON) _serviceCatalogCloudFormationProvisionedProductTags
    ]

instance FromJSON ServiceCatalogCloudFormationProvisionedProduct where
  parseJSON (Object obj) =
    ServiceCatalogCloudFormationProvisionedProduct <$>
      (obj .:? "AcceptLanguage") <*>
      (obj .:? "NotificationArns") <*>
      (obj .:? "PathId") <*>
      (obj .:? "ProductId") <*>
      (obj .:? "ProductName") <*>
      (obj .:? "ProvisionedProductName") <*>
      (obj .:? "ProvisioningArtifactId") <*>
      (obj .:? "ProvisioningArtifactName") <*>
      (obj .:? "ProvisioningParameters") <*>
      (obj .:? "Tags")
  parseJSON _ = mempty

-- | Constructor for 'ServiceCatalogCloudFormationProvisionedProduct'
-- containing required fields as arguments.
serviceCatalogCloudFormationProvisionedProduct
  :: ServiceCatalogCloudFormationProvisionedProduct
serviceCatalogCloudFormationProvisionedProduct  =
  ServiceCatalogCloudFormationProvisionedProduct
  { _serviceCatalogCloudFormationProvisionedProductAcceptLanguage = Nothing
  , _serviceCatalogCloudFormationProvisionedProductNotificationArns = Nothing
  , _serviceCatalogCloudFormationProvisionedProductPathId = Nothing
  , _serviceCatalogCloudFormationProvisionedProductProductId = Nothing
  , _serviceCatalogCloudFormationProvisionedProductProductName = Nothing
  , _serviceCatalogCloudFormationProvisionedProductProvisionedProductName = Nothing
  , _serviceCatalogCloudFormationProvisionedProductProvisioningArtifactId = Nothing
  , _serviceCatalogCloudFormationProvisionedProductProvisioningArtifactName = Nothing
  , _serviceCatalogCloudFormationProvisionedProductProvisioningParameters = Nothing
  , _serviceCatalogCloudFormationProvisionedProductTags = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-acceptlanguage
sccfppAcceptLanguage :: Lens' ServiceCatalogCloudFormationProvisionedProduct (Maybe (Val Text))
sccfppAcceptLanguage = lens _serviceCatalogCloudFormationProvisionedProductAcceptLanguage (\s a -> s { _serviceCatalogCloudFormationProvisionedProductAcceptLanguage = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-notificationarns
sccfppNotificationArns :: Lens' ServiceCatalogCloudFormationProvisionedProduct (Maybe (ValList Text))
sccfppNotificationArns = lens _serviceCatalogCloudFormationProvisionedProductNotificationArns (\s a -> s { _serviceCatalogCloudFormationProvisionedProductNotificationArns = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-pathid
sccfppPathId :: Lens' ServiceCatalogCloudFormationProvisionedProduct (Maybe (Val Text))
sccfppPathId = lens _serviceCatalogCloudFormationProvisionedProductPathId (\s a -> s { _serviceCatalogCloudFormationProvisionedProductPathId = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-productid
sccfppProductId :: Lens' ServiceCatalogCloudFormationProvisionedProduct (Maybe (Val Text))
sccfppProductId = lens _serviceCatalogCloudFormationProvisionedProductProductId (\s a -> s { _serviceCatalogCloudFormationProvisionedProductProductId = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-productname
sccfppProductName :: Lens' ServiceCatalogCloudFormationProvisionedProduct (Maybe (Val Text))
sccfppProductName = lens _serviceCatalogCloudFormationProvisionedProductProductName (\s a -> s { _serviceCatalogCloudFormationProvisionedProductProductName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisionedproductname
sccfppProvisionedProductName :: Lens' ServiceCatalogCloudFormationProvisionedProduct (Maybe (Val Text))
sccfppProvisionedProductName = lens _serviceCatalogCloudFormationProvisionedProductProvisionedProductName (\s a -> s { _serviceCatalogCloudFormationProvisionedProductProvisionedProductName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningartifactid
sccfppProvisioningArtifactId :: Lens' ServiceCatalogCloudFormationProvisionedProduct (Maybe (Val Text))
sccfppProvisioningArtifactId = lens _serviceCatalogCloudFormationProvisionedProductProvisioningArtifactId (\s a -> s { _serviceCatalogCloudFormationProvisionedProductProvisioningArtifactId = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningartifactname
sccfppProvisioningArtifactName :: Lens' ServiceCatalogCloudFormationProvisionedProduct (Maybe (Val Text))
sccfppProvisioningArtifactName = lens _serviceCatalogCloudFormationProvisionedProductProvisioningArtifactName (\s a -> s { _serviceCatalogCloudFormationProvisionedProductProvisioningArtifactName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-provisioningparameters
sccfppProvisioningParameters :: Lens' ServiceCatalogCloudFormationProvisionedProduct (Maybe [ServiceCatalogCloudFormationProvisionedProductProvisioningParameter])
sccfppProvisioningParameters = lens _serviceCatalogCloudFormationProvisionedProductProvisioningParameters (\s a -> s { _serviceCatalogCloudFormationProvisionedProductProvisioningParameters = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html#cfn-servicecatalog-cloudformationprovisionedproduct-tags
sccfppTags :: Lens' ServiceCatalogCloudFormationProvisionedProduct (Maybe [Tag])
sccfppTags = lens _serviceCatalogCloudFormationProvisionedProductTags (\s a -> s { _serviceCatalogCloudFormationProvisionedProductTags = a })