
# 更新企业路由器 - UpdateEnterpriseRouter
#### 功能介绍
更新企业路由器基本信息。
#### 接口约束
除了name和description，其它信息只有在企业路由器实例状态为available的时候才能更新。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-er/er_02_0008.html)。
#### 授权信息
账号根用户具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备如下身份策略权限，更多的权限说明请参见[权限和授权项](https://support.huaweicloud.com/api-er/er_02_0015.html)。
| 授权项                 | 访问级别  | 资源类型（\*为必须）  | 条件键                                                                                                                                                                                                                                                                                                                                                                                              | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| er:instances:update | Write | instances \* | - g:EnterpriseProjectId   - g:ResourceTag/\<tag-key\>    | -  | -      |
   
#### URI
PUT /v3/{project_id}/enterprise-router/instances/{er_id}
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述        |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID      |
| er_id      | 是    | String | 企业路由器实例ID |
   
#### 请求参数
表2请求Body参数 
| 参数       | 是否必选 | 参数类型                                                                                     | 描述         |
|:---|:---|:---|:---|
| instance | 否    | [UpdateEnterpriseRouter] object | 更新企业路由器请求体 |
   
 表3UpdateEnterpriseRouter 
| 参数                                 | 是否必选 | 参数类型    | 描述                                                                                                                                                              |
|:---|:---|:---|:---|
| name                               | 否    | String  | 企业路由器实例名称，取值范围：1-64个字符，支持数字、字母、中文、_(下划线)、-（中划线）、.（点） 最小长度：**1** 最大长度：**64** |
| description                        | 否    | String  | 企业路由器实例描述信息 最小长度：**0** 最大长度：**255**                                         |
| enable_default_propagation         | 否    | Boolean | 是否开启默认传播                                                                                                                                                        |
| enable_default_association         | 否    | Boolean | 是否开启默认关联                                                                                                                                                        |
| default_propagation_route_table_id | 否    | String  | 默认传播路由表ID                                                                                                                                                       |
| default_association_route_table_id | 否    | String  | 默认关联路由表ID                                                                                                                                                       |
| auto_accept_shared_attachments     | 否    | Boolean | 是否自动接受共享连接创建，默认false不开启                                                                                                                                         |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数         | 参数类型                                                                          | 描述    |
|:---|:---|:---|
| instance   | [EnterpriseRouter] object | 企业路由器 |
| request_id | String                                                                        | 请求ID  |
   
 表5EnterpriseRouter 
| 参数                                 | 参数类型                                                          | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| id                                 | String                                                        | 企业路由器实例的ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| name                               | String                                                        | 企业路由器实例名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| description                        | String                                                        | 企业路由器实例描述信息                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| state                              | String                                                        | - 参数解释：运行状态   - 取值范围： - pending：等待中   - available：可用   - modifying：修改中   - deleting：删除中   - deleted：已删除   - failed：失败      |
| tags                               | Array of [Tag] objects | 标签信息                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| charge_mode                        | String                                                        | 计费模式 按需 缺省值：**postPaid**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| created_at                         | String                                                        | 创建时间,格式:YYYY-MM-DDTHH:mm:ss.sssZ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| updated_at                         | String                                                        | 更新时间,格式:YYYY-MM-DDTHH:mm:ss.sssZ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| enterprise_project_id              | String                                                        | 企业项目ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| project_id                         | String                                                        | 项目ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| asn                                | Long                                                          | 企业路由器实例的BGP AS号                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| enable_default_propagation         | Boolean                                                       | 是否开启默认路由表传播，默认false不开启                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| enable_default_association         | Boolean                                                       | 是否开启默认路由表关联，默认false不开启                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| default_propagation_route_table_id | String                                                        | 默认传播路由表id                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| default_association_route_table_id | String                                                        | 默认关联路由表id                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| availability_zone_ids              | Array of strings                                              | 企业路由器所在可用区信息                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| auto_accept_shared_attachments     | Boolean                                                       | 是否自动接受共享连接创建，默认false不开启                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
 表6Tag 
| 参数    | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| key   | String | 标签键，规则： - 可用 UTF-8 格式表示的字母(包含中文)、数字和空格，以及字符：下划线"_"，点"."，冒号":"，等号"="，加号"+"，中划线"-"，"@"。   - _sys_开头属于系统标签，租户不能输入。   - 标签key不能为空（长度不能为0）。   - 长度在1-128之间。    最小长度：**1** 最大长度：**128** |
| value | String | 标签值，规则： - 可用 UTF-8 格式表示的字母(包含中文)、数字和空格，以及字符：下划线"_"，点"."，冒号":"，等号"="，加号"+"，中划线"-"，"@"。   - 资源标签值可以为空（empty or null）。   - 长度在0-255之间。    最小长度：**0** 最大长度：**255**                                                                                                                                                                    |
   
#### 请求示例
更新企业路由器，开启默认路由表关联和默认路由表传播功能，并指定对应的路由表
```
PUT https://{erouter_endpoint}/v3/08d5a9564a704afda6039ae2babbef3c/enterprise-router/instances/94c2b814-99dc-939a-e811-ae84c61ea3ff
{
  "instance" : {
    "enable_default_association" : true,
    "enable_default_propagation" : true,
    "default_propagation_route_table_id" : "94c2b814-99dc-939a-e811-ae84c61ea3ff",
    "default_association_route_table_id" : "94c2b814-99dc-939a-e811-ae84c61ea3ff"
  }
}
```
#### 响应示例
**状态码：200**
OK
```
{
  "instance" : {
    "id" : "94c2b814-99dc-939a-e811-ae84c61ea3ff",
    "name" : "my_er",
    "description" : "this is my first enterprise router",
    "project_id" : "08d5a9564a704afda6039ae2babbef3c",
    "state" : "pending",
    "asn" : 64512,
    "enable_default_association" : true,
    "enable_default_propagation" : true,
    "default_propagation_route_table_id" : "94c2b814-99dc-939a-e811-ae84c61ea3ff",
    "default_association_route_table_id" : "94c2b814-99dc-939a-e811-ae84c61ea3ff",
    "auto_accept_shared_attachments" : false,
    "availability_zone_ids" : [ "az1" ],
    "created_at" : "2019-09-06T02:11:13.000Z",
    "updated_at" : "2019-09-06T02:11:13.000Z"
  },
  "request_id" : "14c2b814-99dc-939b-e81c-ae84c61ea3f7"
}
```
#### SDK代码示例
SDK代码示例如下。
- [Java]
  更新企业路由器，开启默认路由表关联和默认路由表传播功能，并指定对应的路由表
  ```
  package com.huaweicloud.sdk.test;
  import com.huaweicloud.sdk.core.auth.ICredential;
  import com.huaweicloud.sdk.core.auth.BasicCredentials;
  import com.huaweicloud.sdk.core.exception.ConnectionException;
  import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
  import com.huaweicloud.sdk.core.exception.ServiceResponseException;
  import com.huaweicloud.sdk.er.v3.region.ErRegion;
  import com.huaweicloud.sdk.er.v3.*;
  import com.huaweicloud.sdk.er.v3.model.*;
  public class UpdateEnterpriseRouterSolution {
      public static void main(String[] args) {
          // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
          // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
          String ak = System.getenv("CLOUD_SDK_AK");
          String sk = System.getenv("CLOUD_SDK_SK");
          String projectId = "{project_id}";
          ICredential auth = new BasicCredentials()
                  .withProjectId(projectId)
                  .withAk(ak)
                  .withSk(sk);
          ErClient client = ErClient.newBuilder()
                  .withCredential(auth)
                  .withRegion(ErRegion.valueOf("<YOUR REGION>"))
                  .build();
          UpdateEnterpriseRouterRequest request = new UpdateEnterpriseRouterRequest();
          request.withErId("{er_id}");
          UpdateEnterpriseRouterRequestBody body = new UpdateEnterpriseRouterRequestBody();
          UpdateEnterpriseRouter instancebody = new UpdateEnterpriseRouter();
          instancebody.withEnableDefaultPropagation(true)
              .withEnableDefaultAssociation(true)
              .withDefaultPropagationRouteTableId("94c2b814-99dc-939a-e811-ae84c61ea3ff")
              .withDefaultAssociationRouteTableId("94c2b814-99dc-939a-e811-ae84c61ea3ff");
          body.withInstance(instancebody);
          request.withBody(body);
          try {
              UpdateEnterpriseRouterResponse response = client.updateEnterpriseRouter(request);
              System.out.println(response.toString());
          } catch (ConnectionException e) {
              e.printStackTrace();
          } catch (RequestTimeoutException e) {
              e.printStackTrace();
          } catch (ServiceResponseException e) {
              e.printStackTrace();
              System.out.println(e.getHttpStatusCode());
              System.out.println(e.getRequestId());
              System.out.println(e.getErrorCode());
              System.out.println(e.getErrorMsg());
          }
      }
  }
  ```
- [Python]
  更新企业路由器，开启默认路由表关联和默认路由表传播功能，并指定对应的路由表
  ```
  # coding: utf-8
  import os
  from huaweicloudsdkcore.auth.credentials import BasicCredentials
  from huaweicloudsdker.v3.region.er_region import ErRegion
  from huaweicloudsdkcore.exceptions import exceptions
  from huaweicloudsdker.v3 import *
  if __name__ == "__main__":
      # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
      # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
      ak = os.environ["CLOUD_SDK_AK"]
      sk = os.environ["CLOUD_SDK_SK"]
      projectId = "{project_id}"
      credentials = BasicCredentials(ak, sk, projectId)
      client = ErClient.new_builder() \
          .with_credentials(credentials) \
          .with_region(ErRegion.value_of("<YOUR REGION>")) \
          .build()
      try:
          request = UpdateEnterpriseRouterRequest()
          request.er_id = "{er_id}"
          instancebody = UpdateEnterpriseRouter(
              enable_default_propagation=True,
              enable_default_association=True,
              default_propagation_route_table_id="94c2b814-99dc-939a-e811-ae84c61ea3ff",
              default_association_route_table_id="94c2b814-99dc-939a-e811-ae84c61ea3ff"
          )
          request.body = UpdateEnterpriseRouterRequestBody(
              instance=instancebody
          )
          response = client.update_enterprise_router(request)
          print(response)
      except exceptions.ClientRequestException as e:
          print(e.status_code)
          print(e.request_id)
          print(e.error_code)
          print(e.error_msg)
  ```
- [Go]
  更新企业路由器，开启默认路由表关联和默认路由表传播功能，并指定对应的路由表
  ```
  package main
  import (
  "fmt"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
      er "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/er/v3"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/er/v3/model"
      region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/er/v3/region"
  )
  func main() {
      // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
      // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
      ak := os.Getenv("CLOUD_SDK_AK")
      sk := os.Getenv("CLOUD_SDK_SK")
      projectId := "{project_id}"
      auth, err := basic.NewCredentialsBuilder().
          WithAk(ak).
          WithSk(sk).
          WithProjectId(projectId).
          SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      hcClient, err := er.ErClientBuilder().
           WithRegion(region.ValueOf("<YOUR REGION>")).
           WithCredential(auth).
           SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      client := er.NewErClient(hcClient)
      request := &model.UpdateEnterpriseRouterRequest{}
  request.ErId = "{er_id}"
  enableDefaultPropagationInstance:= true
  enableDefaultAssociationInstance:= true
  defaultPropagationRouteTableIdInstance:= "94c2b814-99dc-939a-e811-ae84c61ea3ff"
  defaultAssociationRouteTableIdInstance:= "94c2b814-99dc-939a-e811-ae84c61ea3ff"
  instancebody := &model.UpdateEnterpriseRouter{
  EnableDefaultPropagation: &enableDefaultPropagationInstance,
  EnableDefaultAssociation: &enableDefaultAssociationInstance,
  DefaultPropagationRouteTableId: &defaultPropagationRouteTableIdInstance,
  DefaultAssociationRouteTableId: &defaultAssociationRouteTableIdInstance,
  }
  request.Body = &model.UpdateEnterpriseRouterRequestBody{
  Instance: instancebody,
  }
  response, err := client.UpdateEnterpriseRouter(request)
  if err == nil {
          fmt.Printf("%+v\n", response)
      } else {
          fmt.Println(err)
      }
  }
  ```
- [更多]
  更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/ER/sdk?api=UpdateEnterpriseRouter)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述 |
|:---|:---|
| 200 | OK |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-er/ErrorCode.html)。
