
# 更新子网 - UpdateSubnet
#### 功能介绍
更新子网。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=VPC&version=v2&api=UpdateSubnet)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-vpc/vpc_permission_0000.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | vpc:subnets:update | Write | subnet \*   | - [g:ResourceTag/\<tag-key\>](https://support.huaweicloud.com/usermanual-iam5/iam_01_1287.html)  - vpc:SubnetId  - vpc:VpcId  - vpc:AvailabilityZone  - [g:EnterpriseProjectId](https://support.huaweicloud.com/usermanual-iam5/iam_01_1287.html)   | -  | -      |
  | vpc:subnets:update | Write | -           | vpc:SubnetIpv6Enable                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | -  | -      |
     
  
 
#### URI
PUT /v1/{project_id}/vpcs/{vpc_id}/subnets/{subnet_id}
参数说明请参见[表1]。
 表1参数说明 
| 名称         | 是否必选 | 说明                                                                                 |
|:---|:---|:---|
| project_id | 是    | 项目ID，获取项目ID请参见[获取项目ID](https://support.huaweicloud.com/api-vpc/vpc_api_0011.html)。 |
| vpc_id     | 是    | 子网对应的vpc_id。                                                                       |
| subnet_id  | 是    | 子网唯一标识。 如果您使用管理控制台，此值即为子网详情中的"网络ID"参数值。             |
   
#### 请求参数
表2请求参数 
| 名称     | 是否必选 | 参数类型                                               | 说明                                             |
|:---|:---|:---|:---|
| subnet | 是    | [subnet] object | [subnet对象]。 |
   
 表3subnet对象 
| 名称                                   | 是否必选 | 参数类型                                                                     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| name                                 | 是    | String                                                                   | - 功能说明：子网名称。  - 取值范围：1-64个字符，支持数字、字母、中文字符、_(下划线)、-（中划线）、.（点）。                                                                                                                                                                                                                                                                                                                                                            |
| description                          | 否    | String                                                                   | - 功能说明：子网描述。  - 取值范围：0-255个字符，不能包含"\<"和"\>"。                                                                                                                                                                                                                                                                                                                                                                                |
| ipv6_enable                          | 否    | Boolean                                                                  | - 功能说明：是否开启IPv6功能。  - 取值范围：true（开启），false（关闭）。                                                                                                                                                                                                                                                                                                                                                                              |
| dhcp_enable                          | 否    | Boolean                                                                  | - 功能说明：子网是否开启dhcp功能。  - 取值范围：true（开启），false（关闭）。  - 约束：不填时默认为true。当设置为false时，会导致新创建的ECS无法获取IP地址，Cloud-init无法注入账号密码，请谨慎操作。                                                                                                                                                                                                                       |
| enable_network_address_usage_metrics | 否    | Boolean                                                                  | - 功能说明：是否开启当前子网的IPv4地址使用量指标监控。  - 取值范围： - true：开启  - false：不开启                                                                                                                                                                      |
| primary_dns                          | 否    | String                                                                   | - 功能说明：子网dns服务器地址1。  - 约束：ip格式   内网DNS地址请参见[华为云提供的内网DNS地址是多少？](https://support.huaweicloud.com/dns_faq/dns_faq_002.html) 可以通过[查询名称服务器列表](https://support.huaweicloud.com/api-dns/dns_api_69001.html)查看DNS服务器的地址。                                                                                                                                                                      |
| secondary_dns                        | 否    | String                                                                   | - 功能说明：子网dns服务器地址2。  - 约束：ip格式 secondary_dns的值不能与primary_dns值相同。 只有一个dns服务器地址时，只显示primary_dns，不显示secondary_dns。    内网DNS地址请参见[华为云提供的内网DNS地址是多少？](https://support.huaweicloud.com/dns_faq/dns_faq_002.html) 可以通过[查询名称服务器列表](https://support.huaweicloud.com/api-dns/dns_api_69001.html)查看DNS服务器的地址。 |
| dnsList                              | 否    | Array of strings                                                         | - 功能说明：子网dns服务器地址的集合；如果想使用两个以上dns服务器，请使用该字段。  - 约束：是子网dns服务器地址1跟子网dns服务器地址2的合集的父集   内网DNS地址请参见[华为云提供的内网DNS地址是多少？](https://support.huaweicloud.com/dns_faq/dns_faq_002.html) 可以通过[查询名称服务器列表](https://support.huaweicloud.com/api-dns/dns_api_69001.html)查看DNS服务器的地址。                                                                                                                             |
| extra_dhcp_opts                      | 否    | Array of [extra_dhcp_opt] objects | 子网配置的NTP地址或租约时间，详情请参见[extra_dhcp_opt对象]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
 表4extra_dhcp_opt对象 
| 名称        | 是否必选 | 参数类型   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| opt_value | 否    | String | - 功能说明：子网配置的NTP地址、DNS域名或租约到期时间。  - 约束： opt_name配置为"ntp"，则表示是子网ntp地址，目前只支持IPv4地址，每个IP地址以逗号隔开，IP地址个数不能超过4个，不能存在相同地址。 opt_name配置为"domainname"，则该值表示是DNS配置的域名，用于向DNS服务器获取IP地址。域名只能由字母，数字，中划线组成，中划线不能在开头或末尾。域名至少包含两个字符串，单个字符串不超过63个字符，字符串间以点分隔。域名长度不超过254个字符。 opt_name配置为"addresstime"，则该值表示是IPv4子网租约到期时间，取值格式有两种，取-1，表示无限租约；数字+h，数字范围是1\~175200，比如5h，默认值为87600h。 opt_name配置为"ipv6_addresstime"，则该值表示是IPv6子网租约到期时间，取值格式有两种，取-1，表示无限租约；数字+h，数字范围是1\~175200，比如5h，默认值为2h。 该字段为null表示删除该子网的NTP地址、DNS域名或租约到期时间的配置，不能为" "(空字符串)。    |
| opt_name  | 是    | String | - 功能说明：子网配置的NTP地址、DNS域名或租约到期时间的名称。  - 约束：目前只支持填写字符串"ntp"、"domainname"、"addresstime"或"ipv6_addresstime"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
#### 请求示例
- 更新id为4779ab1c-7c1a-44b1-a02e-93dfc361b32d的子网，名称更新为subnet02，更新dns和dhcp。
  ```
  PUT https://{Endpoint}/v1/{project_id}/vpcs/{vpc_id}/subnets/4779ab1c-7c1a-44b1-a02e-93dfc361b32d
  {
      "subnet": {
          "name": "subnet02",
          "ipv6_enable": true,
          "dhcp_enable": false,
          "primary_dns": "114.111.111.115",
          "secondary_dns": "114.111.111.116",
          "extra_dhcp_opts": [
              {
                  "opt_value": "10.100.0.33,10.100.0.34",
                  "opt_name": "ntp"
              },
              {
                  "opt_value": "24h",
                  "opt_name": "addresstime"
              },
              {
                  "opt_value": "2h",
                  "opt_name": "ipv6_addresstime"
              }
          ],
          "enable_network_address_usage_metrics": false
      }
  }
  ```
  
 
#### 响应参数
表5响应参数 
| 名称     | 参数类型                                              | 说明       |
|:---|:---|:---|
| subnet | [subnet] object | subnet对象 |
   
 表6subnet对象 
| 名称     | 参数类型   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| id     | String | uuid形式的一个资源标识。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| status | String | - 功能说明：子网的状态。  - 取值范围：ACTIVE,UNKNOWN,ERROR - ACTIVE表示子网已挂载到VPC上  - UNKNOWN表示子网还未挂载到VPC上  - ERROR表示子网状态故障     |
   
#### 响应示例
```
{
    "subnet": {
        "id": "4779ab1c-7c1a-44b1-a02e-93dfc361b32d",
        "status": "ACTIVE"
    }
}
```
#### 状态码
请参见[状态码](https://support.huaweicloud.com/api-vpc/vpc_api_0002.html)。
#### 错误码
请参考[错误码](https://support.huaweicloud.com/api-vpc/vpc_api_0003.html)。
