amazonka-ec2-1.6.0: gen/Network/AWS/EC2/DeleteLaunchTemplateVersions.hs
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.EC2.DeleteLaunchTemplateVersions
-- Copyright : (c) 2013-2018 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Deletes one or more versions of a launch template. You cannot delete the default version of a launch template; you must first assign a different version as the default. If the default version is the only version for the launch template, you must delete the entire launch template using 'DeleteLaunchTemplate' .
--
--
module Network.AWS.EC2.DeleteLaunchTemplateVersions
(
-- * Creating a Request
deleteLaunchTemplateVersions
, DeleteLaunchTemplateVersions
-- * Request Lenses
, dltvLaunchTemplateName
, dltvLaunchTemplateId
, dltvDryRun
, dltvVersions
-- * Destructuring the Response
, deleteLaunchTemplateVersionsResponse
, DeleteLaunchTemplateVersionsResponse
-- * Response Lenses
, dltvsrsSuccessfullyDeletedLaunchTemplateVersions
, dltvsrsUnsuccessfullyDeletedLaunchTemplateVersions
, dltvsrsResponseStatus
) where
import Network.AWS.EC2.Types
import Network.AWS.EC2.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | /See:/ 'deleteLaunchTemplateVersions' smart constructor.
data DeleteLaunchTemplateVersions = DeleteLaunchTemplateVersions'
{ _dltvLaunchTemplateName :: !(Maybe Text)
, _dltvLaunchTemplateId :: !(Maybe Text)
, _dltvDryRun :: !(Maybe Bool)
, _dltvVersions :: ![Text]
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'DeleteLaunchTemplateVersions' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'dltvLaunchTemplateName' - The name of the launch template. You must specify either the launch template ID or launch template name in the request.
--
-- * 'dltvLaunchTemplateId' - The ID of the launch template. You must specify either the launch template ID or launch template name in the request.
--
-- * 'dltvDryRun' - Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is @DryRunOperation@ . Otherwise, it is @UnauthorizedOperation@ .
--
-- * 'dltvVersions' - The version numbers of one or more launch template versions to delete.
deleteLaunchTemplateVersions
:: DeleteLaunchTemplateVersions
deleteLaunchTemplateVersions =
DeleteLaunchTemplateVersions'
{ _dltvLaunchTemplateName = Nothing
, _dltvLaunchTemplateId = Nothing
, _dltvDryRun = Nothing
, _dltvVersions = mempty
}
-- | The name of the launch template. You must specify either the launch template ID or launch template name in the request.
dltvLaunchTemplateName :: Lens' DeleteLaunchTemplateVersions (Maybe Text)
dltvLaunchTemplateName = lens _dltvLaunchTemplateName (\ s a -> s{_dltvLaunchTemplateName = a})
-- | The ID of the launch template. You must specify either the launch template ID or launch template name in the request.
dltvLaunchTemplateId :: Lens' DeleteLaunchTemplateVersions (Maybe Text)
dltvLaunchTemplateId = lens _dltvLaunchTemplateId (\ s a -> s{_dltvLaunchTemplateId = a})
-- | Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is @DryRunOperation@ . Otherwise, it is @UnauthorizedOperation@ .
dltvDryRun :: Lens' DeleteLaunchTemplateVersions (Maybe Bool)
dltvDryRun = lens _dltvDryRun (\ s a -> s{_dltvDryRun = a})
-- | The version numbers of one or more launch template versions to delete.
dltvVersions :: Lens' DeleteLaunchTemplateVersions [Text]
dltvVersions = lens _dltvVersions (\ s a -> s{_dltvVersions = a}) . _Coerce
instance AWSRequest DeleteLaunchTemplateVersions
where
type Rs DeleteLaunchTemplateVersions =
DeleteLaunchTemplateVersionsResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
DeleteLaunchTemplateVersionsResponse' <$>
(x .@? "successfullyDeletedLaunchTemplateVersionSet"
.!@ mempty
>>= may (parseXMLList "item"))
<*>
(x .@?
"unsuccessfullyDeletedLaunchTemplateVersionSet"
.!@ mempty
>>= may (parseXMLList "item"))
<*> (pure (fromEnum s)))
instance Hashable DeleteLaunchTemplateVersions where
instance NFData DeleteLaunchTemplateVersions where
instance ToHeaders DeleteLaunchTemplateVersions where
toHeaders = const mempty
instance ToPath DeleteLaunchTemplateVersions where
toPath = const "/"
instance ToQuery DeleteLaunchTemplateVersions where
toQuery DeleteLaunchTemplateVersions'{..}
= mconcat
["Action" =:
("DeleteLaunchTemplateVersions" :: ByteString),
"Version" =: ("2016-11-15" :: ByteString),
"LaunchTemplateName" =: _dltvLaunchTemplateName,
"LaunchTemplateId" =: _dltvLaunchTemplateId,
"DryRun" =: _dltvDryRun,
toQueryList "LaunchTemplateVersion" _dltvVersions]
-- | /See:/ 'deleteLaunchTemplateVersionsResponse' smart constructor.
data DeleteLaunchTemplateVersionsResponse = DeleteLaunchTemplateVersionsResponse'
{ _dltvsrsSuccessfullyDeletedLaunchTemplateVersions :: !(Maybe [DeleteLaunchTemplateVersionsResponseSuccessItem])
, _dltvsrsUnsuccessfullyDeletedLaunchTemplateVersions :: !(Maybe [DeleteLaunchTemplateVersionsResponseErrorItem])
, _dltvsrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'DeleteLaunchTemplateVersionsResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'dltvsrsSuccessfullyDeletedLaunchTemplateVersions' - Information about the launch template versions that were successfully deleted.
--
-- * 'dltvsrsUnsuccessfullyDeletedLaunchTemplateVersions' - Information about the launch template versions that could not be deleted.
--
-- * 'dltvsrsResponseStatus' - -- | The response status code.
deleteLaunchTemplateVersionsResponse
:: Int -- ^ 'dltvsrsResponseStatus'
-> DeleteLaunchTemplateVersionsResponse
deleteLaunchTemplateVersionsResponse pResponseStatus_ =
DeleteLaunchTemplateVersionsResponse'
{ _dltvsrsSuccessfullyDeletedLaunchTemplateVersions = Nothing
, _dltvsrsUnsuccessfullyDeletedLaunchTemplateVersions = Nothing
, _dltvsrsResponseStatus = pResponseStatus_
}
-- | Information about the launch template versions that were successfully deleted.
dltvsrsSuccessfullyDeletedLaunchTemplateVersions :: Lens' DeleteLaunchTemplateVersionsResponse [DeleteLaunchTemplateVersionsResponseSuccessItem]
dltvsrsSuccessfullyDeletedLaunchTemplateVersions = lens _dltvsrsSuccessfullyDeletedLaunchTemplateVersions (\ s a -> s{_dltvsrsSuccessfullyDeletedLaunchTemplateVersions = a}) . _Default . _Coerce
-- | Information about the launch template versions that could not be deleted.
dltvsrsUnsuccessfullyDeletedLaunchTemplateVersions :: Lens' DeleteLaunchTemplateVersionsResponse [DeleteLaunchTemplateVersionsResponseErrorItem]
dltvsrsUnsuccessfullyDeletedLaunchTemplateVersions = lens _dltvsrsUnsuccessfullyDeletedLaunchTemplateVersions (\ s a -> s{_dltvsrsUnsuccessfullyDeletedLaunchTemplateVersions = a}) . _Default . _Coerce
-- | -- | The response status code.
dltvsrsResponseStatus :: Lens' DeleteLaunchTemplateVersionsResponse Int
dltvsrsResponseStatus = lens _dltvsrsResponseStatus (\ s a -> s{_dltvsrsResponseStatus = a})
instance NFData DeleteLaunchTemplateVersionsResponse
where