:doc:`WAFV2 <../../wafv2>` / Client / delete_web_acl

**************
delete_web_acl
**************



.. py:method:: WAFV2.Client.delete_web_acl(**kwargs)

  

  Deletes the specified  WebACL.

   

  You can only use this if ``ManagedByFirewallManager`` is false in the web ACL.

   

  .. note::

    

    Before deleting any web ACL, first disassociate it from all resources.

     

    
    * To retrieve a list of the resources that are associated with a web ACL, use the following calls: 

      
      * For Amazon CloudFront distributions, use the CloudFront call ``ListDistributionsByWebACLId``. For information, see `ListDistributionsByWebACLId <https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListDistributionsByWebACLId.html>`__ in the *Amazon CloudFront API Reference*.
       
      * For all other resources, call  ListResourcesForWebACL.
      

    
     
    * To disassociate a resource from a web ACL, use the following calls: 

      
      * For Amazon CloudFront distributions, provide an empty web ACL ID in the CloudFront call ``UpdateDistribution``. For information, see `UpdateDistribution <https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html>`__ in the *Amazon CloudFront API Reference*.
       
      * For all other resources, call  DisassociateWebACL.
      

    
    

    

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteWebACL>`_  


  **Request Syntax**
  ::

    response = client.delete_web_acl(
        Name='string',
        Scope='CLOUDFRONT'|'REGIONAL',
        Id='string',
        LockToken='string'
    )
    
  :type Name: string
  :param Name: **[REQUIRED]** 

    The name of the web ACL. You cannot change the name of a web ACL after you create it.

    

  
  :type Scope: string
  :param Scope: **[REQUIRED]** 

    Specifies whether this is for a global resource type, such as a Amazon CloudFront distribution. For an Amplify application, use ``CLOUDFRONT``.

     

    To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

     

    
    * CLI - Specify the Region when you use the CloudFront scope: ``--scope=CLOUDFRONT --region=us-east-1``.
     
    * API and SDKs - For all calls, use the Region endpoint us-east-1.
    

    

  
  :type Id: string
  :param Id: **[REQUIRED]** 

    The unique identifier for the web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

    

  
  :type LockToken: string
  :param LockToken: **[REQUIRED]** 

    A token used for optimistic locking. WAF returns a token to your ``get`` and ``list`` requests, to mark the state of the entity at the time of the request. To make changes to the entity associated with the token, you provide the token to operations like ``update`` and ``delete``. WAF uses the token to ensure that no changes have been made to the entity since you last retrieved it. If a change has been made, the update fails with a ``WAFOptimisticLockException``. If this happens, perform another ``get``, and use the new token returned by that operation.

    

  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {}
      
    **Response Structure**

    

    - *(dict) --* 
  
  **Exceptions**
  
  *   :py:class:`WAFV2.Client.exceptions.WAFInternalErrorException`

  
  *   :py:class:`WAFV2.Client.exceptions.WAFInvalidParameterException`

  
  *   :py:class:`WAFV2.Client.exceptions.WAFNonexistentItemException`

  
  *   :py:class:`WAFV2.Client.exceptions.WAFOptimisticLockException`

  
  *   :py:class:`WAFV2.Client.exceptions.WAFAssociatedItemException`

  
  *   :py:class:`WAFV2.Client.exceptions.WAFTagOperationException`

  
  *   :py:class:`WAFV2.Client.exceptions.WAFTagOperationInternalErrorException`

  
  *   :py:class:`WAFV2.Client.exceptions.WAFInvalidOperationException`

  