Deletes the specified Firewall and its FirewallStatus. This operation requires the firewall's DeleteProtection flag to be FALSE. You can't revert this operation.
You can check whether a firewall is in use by reviewing the route tables for the Availability Zones where you have firewall subnet mappings. Retrieve the subnet mappings by calling DescribeFirewall. You define and update the route tables through Amazon VPC. As needed, update the route tables for the zones to remove the firewall endpoints. When the route tables no longer use the firewall endpoints, you can remove the firewall safely.
To delete a firewall, remove the delete protection if you need to using UpdateFirewallDeleteProtection, then delete the firewall by calling DeleteFirewall.
Parameters:
-
firewall_name
(Optional[ResourceName], default:
None
)
–
The descriptive name of the firewall. You can't change the name of a firewall after you create it.
You must specify the ARN or the name, and you can specify both.
-
firewall_arn
(Optional[ResourceArn], default:
None
)
–
The Amazon Resource Name (ARN) of the firewall.
You must specify the ARN or the name, and you can specify both.
Raises:
-
InternalServerError
–
Your request is valid, but Network Firewall couldn't perform the operation because of a system problem. Retry your request.
-
InvalidOperationException
–
The operation failed because it's not valid. For example, you might have tried to delete a rule group or firewall policy that's in use.
-
InvalidRequestException
–
The operation failed because of a problem with your request. Examples include:
-
You specified an unsupported parameter name or value.
-
You tried to update a property with a value that isn't among the available types.
-
Your request references an ARN that is malformed, or corresponds to a resource that isn't valid in the context of the request.
-
ResourceNotFoundException
–
Unable to locate a resource using the parameters that you provided.
-
ThrottlingException
–
Unable to process the request due to throttling limitations.
-
UnsupportedOperationException
–
The operation you requested isn't supported by Network Firewall.
-
UnknownServiceError
–
The service returned an error code this client does not model.
Source code in docs_src/capo_network_firewall/_services/async_network_firewall.py
| async def delete_firewall(
self,
*,
config_overrides: Optional[AsyncNetworkFirewallClientConfig] = None,
firewall_name: Optional[
"capo_network_firewall.types.resource_name.ResourceName"
] = None,
firewall_arn: Optional[
"capo_network_firewall.types.resource_arn.ResourceArn"
] = None,
) -> "capo_network_firewall.types.delete_firewall_response.DeleteFirewallResponse":
"""<p>Deletes the specified <a>Firewall</a> and its <a>FirewallStatus</a>. This operation requires the firewall's <code>DeleteProtection</code> flag to be <code>FALSE</code>. You can't revert this operation. </p> <p>You can check whether a firewall is in use by reviewing the route tables for the Availability Zones where you have firewall subnet mappings. Retrieve the subnet mappings by calling <a>DescribeFirewall</a>. You define and update the route tables through Amazon VPC. As needed, update the route tables for the zones to remove the firewall endpoints. When the route tables no longer use the firewall endpoints, you can remove the firewall safely.</p> <p>To delete a firewall, remove the delete protection if you need to using <a>UpdateFirewallDeleteProtection</a>, then delete the firewall by calling <a>DeleteFirewall</a>. </p>
Args:
firewall_name: <p>The descriptive name of the firewall. You can't change the name of a firewall after you create it.</p> <p>You must specify the ARN or the name, and you can specify both. </p>
firewall_arn: <p>The Amazon Resource Name (ARN) of the firewall.</p> <p>You must specify the ARN or the name, and you can specify both. </p>
Raises:
capo_network_firewall.errors.internal_server_error.InternalServerError: <p>Your request is valid, but Network Firewall couldn't perform the operation because of a system problem. Retry your request. </p>
capo_network_firewall.errors.invalid_operation_exception.InvalidOperationException: <p>The operation failed because it's not valid. For example, you might have tried to delete a rule group or firewall policy that's in use.</p>
capo_network_firewall.errors.invalid_request_exception.InvalidRequestException: <p>The operation failed because of a problem with your request. Examples include: </p> <ul> <li> <p>You specified an unsupported parameter name or value.</p> </li> <li> <p>You tried to update a property with a value that isn't among the available types.</p> </li> <li> <p>Your request references an ARN that is malformed, or corresponds to a resource that isn't valid in the context of the request.</p> </li> </ul>
capo_network_firewall.errors.resource_not_found_exception.ResourceNotFoundException: <p>Unable to locate a resource using the parameters that you provided.</p>
capo_network_firewall.errors.throttling_exception.ThrottlingException: <p>Unable to process the request due to throttling limitations.</p>
capo_network_firewall.errors.unsupported_operation_exception.UnsupportedOperationException: <p>The operation you requested isn't supported by Network Firewall. </p>
capo_network_firewall.errors.UnknownServiceError: The service returned an error code this client does not model.
"""
async def _handler(
req: "AsyncOperationRequest[capo_network_firewall.types.delete_firewall_request.DeleteFirewallRequest]",
) -> AsyncOperationResponse[
"capo_network_firewall.types.delete_firewall_response.DeleteFirewallResponse"
]:
import capo_network_firewall._operations.network_firewall_20201112.delete_firewall
(
output,
http_response,
) = await capo_network_firewall._operations.network_firewall_20201112.delete_firewall.async_delete_firewall(
req.options, req.input
)
return AsyncOperationResponse(output=output, response=http_response)
interceptors_, options_ = self.operation_options(
config_overrides, OperationLogging("DeleteFirewall")
)
input_: capo_network_firewall.types.delete_firewall_request.DeleteFirewallRequest = {}
if firewall_name is not None:
input_["firewall_name"] = firewall_name
if firewall_arn is not None:
input_["firewall_arn"] = firewall_arn
response = await aexecute_pipeline(
AsyncOperationRequest(input=input_, options=options_),
handler=_handler,
interceptors=list(interceptors_),
)
await response.response.aclose()
return response.output
|