{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} -- | -- Module : Network.AWS.EC2.Internal -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : experimental -- Portability : non-portable (GHC extensions) -- module Network.AWS.EC2.Internal where import Network.AWS.Lens import Network.AWS.Prelude -- | Custom 'Tag' type which has an optional value component. -- -- /See:/ 'tag' smart constructor. data DeleteTag = DeleteTag { _deleteTagKey :: !Text , _deleteTagValue :: !(Maybe Text) } deriving (Eq, Read, Show, Data, Typeable, Generic) deleteTag :: Text -- ^ 'deleteTagKey' -> DeleteTag deleteTag k = DeleteTag k Nothing -- | The key of the tag to delete. -- -- Constraints: Tag keys are case-sensitive and accept a maximum of 127 -- Unicode characters. May not begin with 'aws:' deleteTagKey :: Lens' DeleteTag Text deleteTagKey = lens _deleteTagKey (\s a -> s { _deleteTagKey = a }) -- | The optional value of the tag to delete. -- -- Constraints: Tag values are case-sensitive and accept a maximum of 255 -- Unicode characters. deleteTagValue :: Lens' DeleteTag (Maybe Text) deleteTagValue = lens _deleteTagValue (\ s a -> s{_deleteTagValue = a}); instance FromXML DeleteTag where parseXML x = DeleteTag <$> (x .@ "key") <*> (x .@? "value") instance ToQuery DeleteTag where toQuery DeleteTag {..} = mconcat [ "Key" =: _deleteTagKey , "Value" =: _deleteTagValue ]