{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TupleSections #-} -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackfleetassociation.html module Stratosphere.Resources.AppStreamStackFleetAssociation where import Stratosphere.ResourceImports -- | Full data type definition for AppStreamStackFleetAssociation. See -- 'appStreamStackFleetAssociation' for a more convenient constructor. data AppStreamStackFleetAssociation = AppStreamStackFleetAssociation { _appStreamStackFleetAssociationFleetName :: Val Text , _appStreamStackFleetAssociationStackName :: Val Text } deriving (Show, Eq) instance ToJSON AppStreamStackFleetAssociation where toJSON AppStreamStackFleetAssociation{..} = object $ catMaybes [ (Just . ("FleetName",) . toJSON) _appStreamStackFleetAssociationFleetName , (Just . ("StackName",) . toJSON) _appStreamStackFleetAssociationStackName ] instance FromJSON AppStreamStackFleetAssociation where parseJSON (Object obj) = AppStreamStackFleetAssociation <$> (obj .: "FleetName") <*> (obj .: "StackName") parseJSON _ = mempty -- | Constructor for 'AppStreamStackFleetAssociation' containing required -- fields as arguments. appStreamStackFleetAssociation :: Val Text -- ^ 'assfaFleetName' -> Val Text -- ^ 'assfaStackName' -> AppStreamStackFleetAssociation appStreamStackFleetAssociation fleetNamearg stackNamearg = AppStreamStackFleetAssociation { _appStreamStackFleetAssociationFleetName = fleetNamearg , _appStreamStackFleetAssociationStackName = stackNamearg } -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackfleetassociation.html#cfn-appstream-stackfleetassociation-fleetname assfaFleetName :: Lens' AppStreamStackFleetAssociation (Val Text) assfaFleetName = lens _appStreamStackFleetAssociationFleetName (\s a -> s { _appStreamStackFleetAssociationFleetName = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackfleetassociation.html#cfn-appstream-stackfleetassociation-stackname assfaStackName :: Lens' AppStreamStackFleetAssociation (Val Text) assfaStackName = lens _appStreamStackFleetAssociationStackName (\s a -> s { _appStreamStackFleetAssociationStackName = a })