:doc:`KMS <../../kms>` / Client / cancel_key_deletion

*******************
cancel_key_deletion
*******************



.. py:method:: KMS.Client.cancel_key_deletion(**kwargs)

  

  Cancels the deletion of a KMS key. When this operation succeeds, the key state of the KMS key is ``Disabled``. To enable the KMS key, use  EnableKey.

   

  For more information about scheduling and canceling deletion of a KMS key, see `Deleting KMS keys <https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html>`__ in the *Key Management Service Developer Guide*.

   

  The KMS key that you use for this operation must be in a compatible key state. For details, see `Key states of KMS keys <https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html>`__ in the *Key Management Service Developer Guide*.

   

  **Cross-account use**: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

   

  **Required permissions**: `kms\:CancelKeyDeletion <https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html>`__ (key policy)

   

  **Related operations**:  ScheduleKeyDeletion

   

  **Eventual consistency**: The KMS API follows an eventual consistency model. For more information, see `KMS eventual consistency <https://docs.aws.amazon.com/kms/latest/developerguide/accessing-kms.html#programming-eventual-consistency>`__.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CancelKeyDeletion>`_  


  **Request Syntax**
  ::

    response = client.cancel_key_deletion(
        KeyId='string'
    )
    
  :type KeyId: string
  :param KeyId: **[REQUIRED]** 

    Identifies the KMS key whose deletion is being canceled.

     

    Specify the key ID or key ARN of the KMS key.

     

    For example:

     

    
    * Key ID: ``1234abcd-12ab-34cd-56ef-1234567890ab``
     
    * Key ARN: ``arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab``
    

     

    To get the key ID and key ARN for a KMS key, use  ListKeys or  DescribeKey.

    

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

    
    ::

      {
          'KeyId': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **KeyId** *(string) --* 

        The Amazon Resource Name ( `key ARN <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN>`__) of the KMS key whose deletion is canceled.

        
  
  **Exceptions**
  
  *   :py:class:`KMS.Client.exceptions.NotFoundException`

  
  *   :py:class:`KMS.Client.exceptions.InvalidArnException`

  
  *   :py:class:`KMS.Client.exceptions.DependencyTimeoutException`

  
  *   :py:class:`KMS.Client.exceptions.KMSInternalException`

  
  *   :py:class:`KMS.Client.exceptions.KMSInvalidStateException`

  

  **Examples**

  The following example cancels deletion of the specified KMS key.
  ::

    response = client.cancel_key_deletion(
        # The identifier of the KMS key whose deletion you are canceling. You can use the key ID or the Amazon Resource Name (ARN) of the KMS key.
        KeyId='1234abcd-12ab-34cd-56ef-1234567890ab',
    )
    
    print(response)

  
  Expected Output:
  ::

    {
        # The ARN of the KMS key whose deletion you canceled.
        'KeyId': 'arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab',
        'ResponseMetadata': {
            '...': '...',
        },
    }

  