[Yandex Cloud documentation](../../index.md) > [Yandex Virtual Private Cloud](../index.md) > [Step-by-step guides](index.md) > Cloud network > Updating a cloud network

# Updating a cloud network

After creating a cloud network, you can change its name, description, and labels.

{% list tabs group=instructions %}

- Management console {#console}

  1. In the [management console](https://console.yandex.cloud), select the folder containing the [cloud network](../concepts/network.md) you want to update.
  1. Navigate to **Virtual Private Cloud**.
  1. Click ![image](../../_assets/console-icons/ellipsis.svg) in the row of the subnet you need and select **Edit**.
  1. Edit as appropriate.
  1. Click **Save changes**.

- 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 [cloud network](../concepts/network.md) parameters:

      ```bash
      yc vpc network update --help
      ```

  1. Get a list of all networks in the default folder:

      ```bash
      yc vpc network list
      ```

      Result:
      ```text
      +----------------------+----------------+
      |          ID          |      NAME      |
      +----------------------+----------------+
      | enpavfmgapum******** | test-network-1 |
      | enplom7a98s1******** | default        |
      +----------------------+----------------+
      ```

  1. Select the `ID` or `NAME` of the network you need.
  1. Change the parameters of the cloud network by specifying its name:

      ```bash
      yc vpc network update enpavfmgapum******** --new-name test-network-renamed
      ```

      Result:
      ```text
      id: enpavfmgapum********
      folder_id: b1g6ci08ma55********
      created_at: "2018-10-23T14:05:32Z"
      name: test-network-renamed
      description: My first network
      labels:
        new_label: test_label
      ```
     
      You can provide the ID and name not only as positional arguments, but also using the `--id` and `--name` parameters:

      ```bash
      yc vpc network update \
        --id enpavfmgapum******** \
        --new-name test-network-renamed \
        --labels new_label=test_label
      ```

      ```bash
      yc vpc network update \
        --name test-network-1 \
        --new-name test-network-renamed \
        --labels new_label=test_label
      ```

- Terraform {#tf}

  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.

  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).

  1. Open the Terraform configuration file and edit the fragment with the [cloud network](../concepts/network.md) description:

     ```hcl
     # Example of a cloud network description
     resource "yandex_vpc_network" "default" {
       name        = "network-1"
       description = "My first network"
       labels = {
         tf-label    = "tf-label-value"
         empty-label = ""
       }
     }
     ```

     For more information about the `yandex_vpc_network` properties in Terraform, see [this provider guide](../../terraform/resources/vpc_network.md).

  1. Apply the changes:

     1. In the terminal, navigate to the configuration file directory.
     1. Make sure the configuration is correct using this command:
     
        ```bash
        terraform validate
        ```
     
        If the configuration is valid, you will get this message:
     
        ```bash
        Success! The configuration is valid.
        ```
     
     1. Run this command:
     
        ```bash
        terraform plan
        ```
     
        You will see a list of resources and their properties. No changes will be made at this step. Terraform will show any errors in the configuration.
     1. Apply the configuration changes:
     
        ```bash
        terraform apply
        ```
     
     1. Type `yes` and press **Enter** to confirm the changes.

     You can check the cloud network update using the [management console](https://console.yandex.cloud) or the following [CLI](../../cli/quickstart.md) command:

     ```bash
     yc vpc network get <network_name>
     ```

- API {#api}

  To update a [cloud network](../concepts/network.md), use the [update](../api-ref/Network/update.md) REST API method for the [Network](../api-ref/Network/index.md) resource or the [NetworkService/Update](../api-ref/grpc/Network/update.md) gRPC API call, and provide the following in the request:

  * ID of the cloud network you want to update, in the `networkId` parameter.

    To get the cloud network ID, use the [list](../api-ref/Network/list.md) REST API method for the [Network](../api-ref/Network/index.md) resource or the [NetworkService/List](../api-ref/grpc/Network/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).

  * New network settings, if required:

    * Name in the `name` parameter.
    * Description in the `description` parameter.
    * Network labels in the `labels` parameter.

  * List of settings to update in the `updateMask` 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 %}

## Examples {#examples}

### Updating a cloud network using its name {#using-name}

You can update a cloud network using its name instead of its ID:

{% list tabs group=instructions %}

- CLI {#cli}

  ```bash
  yc vpc network update test-network-1 \
    --new-name test-network-renamed \
    --labels new_label=test_label
  ```

  Result:
  ```text
  id: enpavfmgapum********
  folder_id: b1g6ci08ma55********
  created_at: "2018-10-23T14:05:32Z"
  name: test-network-renamed
  description: My first network
  labels:
    new_label: test_label
  ```

{% endlist %}