{-# 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.DeleteSecurityGroup -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Deletes a security group. -- -- If you attempt to delete a security group that is associated with an instance, or is referenced by another security group, the operation fails with 'InvalidGroup.InUse' in EC2-Classic or 'DependencyViolation' in EC2-VPC. module Network.AWS.EC2.DeleteSecurityGroup ( -- * Creating a Request deleteSecurityGroup , DeleteSecurityGroup -- * Request Lenses , dsgGroupId , dsgGroupName , dsgDryRun -- * Destructuring the Response , deleteSecurityGroupResponse , DeleteSecurityGroupResponse ) 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 -- | Contains the parameters for DeleteSecurityGroup. -- -- /See:/ 'deleteSecurityGroup' smart constructor. data DeleteSecurityGroup = DeleteSecurityGroup' { _dsgGroupId :: !(Maybe Text) , _dsgGroupName :: !(Maybe Text) , _dsgDryRun :: !(Maybe Bool) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DeleteSecurityGroup' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dsgGroupId' -- -- * 'dsgGroupName' -- -- * 'dsgDryRun' deleteSecurityGroup :: DeleteSecurityGroup deleteSecurityGroup = DeleteSecurityGroup' { _dsgGroupId = Nothing , _dsgGroupName = Nothing , _dsgDryRun = Nothing } -- | The ID of the security group. Required for a nondefault VPC. dsgGroupId :: Lens' DeleteSecurityGroup (Maybe Text) dsgGroupId = lens _dsgGroupId (\ s a -> s{_dsgGroupId = a}); -- | [EC2-Classic, default VPC] The name of the security group. You can specify either the security group name or the security group ID. dsgGroupName :: Lens' DeleteSecurityGroup (Maybe Text) dsgGroupName = lens _dsgGroupName (\ s a -> s{_dsgGroupName = 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'. dsgDryRun :: Lens' DeleteSecurityGroup (Maybe Bool) dsgDryRun = lens _dsgDryRun (\ s a -> s{_dsgDryRun = a}); instance AWSRequest DeleteSecurityGroup where type Rs DeleteSecurityGroup = DeleteSecurityGroupResponse request = postQuery ec2 response = receiveNull DeleteSecurityGroupResponse' instance Hashable DeleteSecurityGroup instance NFData DeleteSecurityGroup instance ToHeaders DeleteSecurityGroup where toHeaders = const mempty instance ToPath DeleteSecurityGroup where toPath = const "/" instance ToQuery DeleteSecurityGroup where toQuery DeleteSecurityGroup'{..} = mconcat ["Action" =: ("DeleteSecurityGroup" :: ByteString), "Version" =: ("2016-04-01" :: ByteString), "GroupId" =: _dsgGroupId, "GroupName" =: _dsgGroupName, "DryRun" =: _dsgDryRun] -- | /See:/ 'deleteSecurityGroupResponse' smart constructor. data DeleteSecurityGroupResponse = DeleteSecurityGroupResponse' deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DeleteSecurityGroupResponse' with the minimum fields required to make a request. -- deleteSecurityGroupResponse :: DeleteSecurityGroupResponse deleteSecurityGroupResponse = DeleteSecurityGroupResponse' instance NFData DeleteSecurityGroupResponse