amazonka-ec2-1.4.0: src/Network/AWS/EC2/Internal.hs
{-# 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 <brendan.g.hay@gmail.com>
-- 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
]