{-# 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 -- 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