[Yandex Cloud documentation](../../index.md) > [Yandex Virtual Private Cloud](../index.md) > [Step-by-step guides](index.md) > IP address > Configuring deletion protection

# Configuring deletion protection

To prevent accidental deletion of a static public IP address, [enable deletion protection for it](#enable-deletion-protection).

You can [disable](#disable) this option when you no longer need it.

## Enabling deletion protection {#enable-deletion-protection}

{% list tabs %}

- Management console {#console}

   1. In the [management console](https://console.yandex.cloud), navigate to the folder where you reserved the IP address.
   1. In the list of services, select **Virtual Private Cloud**.
   1. In the left-hand panel, select ![image](../../_assets/console-icons/map-pin.svg) **Public IP addresses**.
   1. In the row with the IP address, click ![image](../../_assets/console-icons/ellipsis.svg) and select **Enable deletion protection**.
   1. In the window that opens, click **Enable**.

- CLI {#cli}

    If you do not have the Yandex Cloud CLI yet, [install and initialize it](../../cli/quickstart.md#install).

    The folder used by default is the one specified when [creating](../../cli/operations/profile/profile-create.md) the CLI profile. To change the default folder, use the `yc config set folder-id <folder_ID>` command. You can also specify a different folder for any command using `--folder-name` or `--folder-id`. If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.

    1. See the description of the CLI command for updating address attributes:

        ```bash
        yc vpc address update --help
        ```

    1. Get the list of addresses in the folder:

        ```bash
        yc vpc address list
        ```

        Result:

        ```text
        +----------------------+------+---------------+----------+------+
        |          ID          | NAME |    ADDRESS    | RESERVED | USED |
        +----------------------+------+---------------+----------+------+
        | e2l46k8conff******** |      | 84.201.177.41 | false    | true |
        +----------------------+------+---------------+----------+------+
        ```

    1. Enable deletion protection:

        ```bash
        yc vpc address update --deletion-protection <address_name_or_ID>
        ```

- Terraform {#tf}

    With [Terraform](https://www.terraform.io/), you can quickly create a cloud infrastructure in Yandex Cloud and manage it using configuration files. These files store the infrastructure description written in HashiCorp Configuration Language (HCL). If you change the configuration files, Terraform automatically detects which part of your configuration is already deployed, and what should be added or removed.
    
    Terraform is distributed under the [Business Source License](https://github.com/hashicorp/terraform/blob/main/LICENSE). The [Yandex Cloud provider for Terraform](https://github.com/yandex-cloud/terraform-provider-yandex) is distributed under the [MPL-2.0](https://www.mozilla.org/en-US/MPL/2.0/) license.
    
    For more information about the provider resources, see the guides on the [Terraform](https://www.terraform.io/docs/providers/yandex/index.html) website or [its mirror](../../terraform/index.md).

    If you do not have Terraform yet, [install it and configure the Yandex Cloud provider](../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
    
    
    To manage infrastructure using Terraform under a service account or user accounts (a Yandex account, a federated account, or a local user), [authenticate](../../terraform/authentication.md) using the appropriate method.

    1. Open the current configuration file describing the infrastructure.

    1. Add the `deletion_protection` parameter to the IP address description:


       ```hcl
       resource "yandex_vpc_address" "addr" {
         ...
         deletion_protection = true
         ...
       }
       ```

    1. Make sure the settings are correct.

       1. In the command line, navigate to the directory that contains the current Terraform configuration files defining the infrastructure.
       1. Run this command:
       
          ```bash
          terraform validate
          ```
       
          Terraform will show any errors found in your configuration files.

    1. Apply the changes.

       1. Run this command to view the planned changes:
       
          ```bash
          terraform plan
          ```
       
          If you described the configuration correctly, the terminal will display a list of the resources to update and their parameters. This is a verification step that does not apply changes to your resources.
       
       1. If everything looks correct, apply the changes:
          1. Run this command:
       
             ```bash
             terraform apply
             ```
       
          1. Confirm updating the resources.
          1. Wait for the operation to complete.

- API {#api}

  To enable IP address deletion protection, use the [update](../api-ref/Address/update.md) REST API method for the [Address](../api-ref/Address/index.md) resource or the [AddressService/Update](../api-ref/grpc/Address/update.md) gRPC API call and provide the following in the request:

  * ID of the address you want to disable protection for in the `addressId` parameter.

    To get the address ID, use the [list](../api-ref/Address/list.md) REST API method for the [Address](../api-ref/Address/index.md) resource or the [AddressService/List](../api-ref/grpc/Address/list.md) gRPC API call and provide the folder ID in the `folderId` request parameter.

    To learn how to find out the folder ID, see [Getting the folder ID](../../resource-manager/operations/folder/get-id.md).

  * Name of the `deletionProtection` parameter in the `updateMask` parameter.
  * `true` in the `deletionProtection` parameter.

  {% note warning %}
  
  The API method will assign default values to all the parameters of the object you are modifying unless you explicitly provide them in your request. To avoid this, list the settings you want to change in the `updateMask` parameter as a single comma-separated string.
  
  {% endnote %}

{% endlist %}

## Disable deletion protection {#disable}

{% list tabs %}

- Management console {#console}

   1. In the [management console](https://console.yandex.cloud), navigate to the folder where you reserved the IP address.
   1. In the list of services, select **Virtual Private Cloud**.
   1. In the left-hand panel, select ![image](../../_assets/console-icons/map-pin.svg) **Public IP addresses**.
   1. In the row with the IP address, click ![image](../../_assets/console-icons/ellipsis.svg) and select **Disable deletion protection**.
   1. In the window that opens, click **Disable**.

- CLI {#cli}

  If you do not have the Yandex Cloud CLI yet, [install and initialize it](../../cli/quickstart.md#install).

  The folder used by default is the one specified when [creating](../../cli/operations/profile/profile-create.md) the CLI profile. To change the default folder, use the `yc config set folder-id <folder_ID>` command. You can also specify a different folder for any command using `--folder-name` or `--folder-id`. If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.

  1. See the description of the CLI command for updating address attributes:

      ```bash
      yc vpc address update --help
      ```

  1. Get the list of addresses in the folder:

      ```bash
      yc vpc address list
      ```

      Result:

      ```text
      +----------------------+------+---------------+----------+------+
      |          ID          | NAME |    ADDRESS    | RESERVED | USED |
      +----------------------+------+---------------+----------+------+
      | e2l46k8conff******** |      | 84.201.177.41 | false    | true |
      +----------------------+------+---------------+----------+------+
      ```

  1. Disable deletion protection:

      ```bash
      yc vpc address update --deletion-protection=false <address_name_or_ID>
      ```

- Terraform {#tf}

    With [Terraform](https://www.terraform.io/), you can quickly create a cloud infrastructure in Yandex Cloud and manage it using configuration files. These files store the infrastructure description written in HashiCorp Configuration Language (HCL). If you change the configuration files, Terraform automatically detects which part of your configuration is already deployed, and what should be added or removed.
    
    Terraform is distributed under the [Business Source License](https://github.com/hashicorp/terraform/blob/main/LICENSE). The [Yandex Cloud provider for Terraform](https://github.com/yandex-cloud/terraform-provider-yandex) is distributed under the [MPL-2.0](https://www.mozilla.org/en-US/MPL/2.0/) license.
    
    For more information about the provider resources, see the guides on the [Terraform](https://www.terraform.io/docs/providers/yandex/index.html) website or [its mirror](../../terraform/index.md).

    If you do not have Terraform yet, [install it and configure the Yandex Cloud provider](../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
    
    
    To manage infrastructure using Terraform under a service account or user accounts (a Yandex account, a federated account, or a local user), [authenticate](../../terraform/authentication.md) using the appropriate method.

    1. Open the current configuration file describing the infrastructure.

    1. In the IP address description, set `deletion_protection` to `false`.


       ```hcl
       resource "yandex_vpc_address" "addr" {
         ...
         deletion_protection = false
         ...
       }
       ```

    1. Make sure the settings are correct.

       1. In the command line, navigate to the directory that contains the current Terraform configuration files defining the infrastructure.
       1. Run this command:
       
          ```bash
          terraform validate
          ```
       
          Terraform will show any errors found in your configuration files.

    1. Apply the changes.

       1. Run this command to view the planned changes:
       
          ```bash
          terraform plan
          ```
       
          If you described the configuration correctly, the terminal will display a list of the resources to update and their parameters. This is a verification step that does not apply changes to your resources.
       
       1. If everything looks correct, apply the changes:
          1. Run this command:
       
             ```bash
             terraform apply
             ```
       
          1. Confirm updating the resources.
          1. Wait for the operation to complete.

- API {#api}

  To disable deletion protection for the IP address, use the [update](../api-ref/Address/update.md) REST API method for the [Address](../api-ref/Address/index.md) resource or the [AddressService/Update](../api-ref/grpc/Address/update.md) gRPC API call and provide the following in the request:

  * ID of the address you want to disable protection for in the `addressId` parameter.

    To get the address ID, use the [list](../api-ref/Address/list.md) REST API method for the [Address](../api-ref/Address/index.md) resource or the [AddressService/List](../api-ref/grpc/Address/list.md) gRPC API call and provide the folder ID in the `folderId` request parameter.

    To learn how to find out the folder ID, see [Getting the folder ID](../../resource-manager/operations/folder/get-id.md).

  * Name of the `deletionProtection` parameter in the `updateMask` parameter.
  * `false` in the `deletionProtection` parameter.

  {% note warning %}
  
  The API method will assign default values to all the parameters of the object you are modifying unless you explicitly provide them in your request. To avoid this, list the settings you want to change in the `updateMask` parameter as a single comma-separated string.
  
  {% endnote %}

{% endlist %}