
# 更新终端节点 - UpdateEndpointWhite
#### 功能介绍
更新或删除允许访问终端节点的白名单。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-vpcep/vpcep_03_0000.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-vpcep/vpcep_07_0000.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                    | 访问级别  | 资源类型（\*为必须）  | 条件键                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | vpcep:endpoints:update | Write | endpoints \* | - vpcep:VpceServiceName   - vpcep:VpceServiceOrgPath   - vpcep:VpceServiceOwner   - g:ResourceTag/\<tag-key\>    | -  | -      |
  | vpcep:endpoints:update | Write | routeTable   | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | -  | -      |
  | vpcep:endpoints:update | Write | subnet       | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | -  | -      |
     
  
 
#### URI
PUT /v1/{project_id}/vpc-endpoints/{vpc_endpoint_id}
表1路径参数 
| 参数              | 是否必选 | 参数类型   | 描述                                                                                  |
|:---|:---|:---|:---|
| project_id      | 是    | String | 项目ID，获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-vpcep/vpcep_08_0003.html)。 |
| vpc_endpoint_id | 是    | String | 终端节点的ID。                                                                            |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                        |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。                  |
| Content-Type | 否    | String | 发送的实体的MIME类型。推荐用户默认使用application/json，如果API是对象、镜像上传等接口，媒体类型可按照流类型的不同进行确定。 |
   
表3请求Body参数 
| 参数               | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| whitelist        | 否    | Array of strings | 更新或删除用于控制访问终端节点的白名单。此参数可以添加IPv4或CIDR： - 当取值不为空时，表示将白名单更新为取值所示内容。   - 当取值为空时，表示删除所有白名单。    默认为空列表。                                                                                |
| enable_whitelist | 否    | Boolean          | 是否开启网络ACL隔离。取值范围： - true：开启网络ACL隔离   - false：不开启网络ACL隔离    若未指定，则返回false。 创建连接Interface类型终端节点服务的终端节点时，显示此参数。 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数                    | 参数类型                                                                                                            | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| id                    | String                                                                                                          | 终端节点的ID，唯一标识。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| service_type          | String                                                                                                          | 终端节点连接的终端节点服务类型。 - gateway：由运维人员配置，用户无需创建，可直接使用。   - interface：包括运维人员配置的云服务和用户自己创建的私有服务。    其中，运维人员配置的云服务无需创建，用户可直接使用。 您可以通过查询公共终端节点服务列表，查看由运维人员配置的所有用户可见且可连接的终端节点服务，并通过创建终端节点服务创建Interface类型的终端节点服务。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| status                | String                                                                                                          | 终端节点的连接状态。 - pendingAcceptance：待接受   - creating：创建中   - accepted：已接受   - rejected：已拒绝   - failed：失败   - deleting：删除中    |
| ip                    | String                                                                                                          | 访问所连接的终端节点服务的IP。 仅当同时满足如下条件时，返回该参数： - 当查询连接interface类型终端节点服务的终端节点时。   - 终端节点服务启用"连接审批"功能，且已经"接受"连接审批。    "status"可以是"accepted"或者"rejected（仅支持"接受"连接审批后再"拒绝"的情况）"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| active_status         | Array of strings                                                                                                | 账号状态。 - frozen：冻结   - active：解冻                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| endpoint_service_name | String                                                                                                          | 终端节点服务的名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| marker_id             | Integer                                                                                                         | 终端节点的报文标识。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| endpoint_service_id   | String                                                                                                          | 终端节点服务的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| enable_dns            | Boolean                                                                                                         | 是否创建域名。 - true：创建域名   - false：不创建域名    说明 当创建gateway类型终端节点服务的终端节点时， "enable_dns"设置为true或者false，均不创建域名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| dns_names             | Array of strings                                                                                                | 访问所连接的终端节点服务的域名。 当"enable_dns"为true时，该参数可见。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| subnet_id             | String                                                                                                          | vpc_id对应VPC下已创建的网络（network）的ID，UUID格式。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| vpc_id                | String                                                                                                          | 终端节点所在的VPC的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| created_at            | String                                                                                                          | 终端节点的创建时间。 采用UTC时间格式，格式为：YYYY-MM-DDTHH:MM:SSZ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| updated_at            | String                                                                                                          | 终端节点的更新时间。 采用UTC时间格式，格式为：YYYY-MM-DDTHH:MM:SSZ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| project_id            | String                                                                                                          | 项目ID，获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-vpcep/vpcep_08_0003.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| tags                  | Array of [TagList] objects                 | 标签列表，没有标签默认为空数组。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| whitelist             | Array of strings                                                                                                | 控制访问终端节点的白名单。 若未创建，则返回空列表。 创建连接Interface类型终端节点服务的终端节点时，显示此参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| enable_whitelist      | Boolean                                                                                                         | 是否开启网络ACL隔离。取值范围： - true：开启网络ACL隔离   - false：不开启网络ACL隔离    若未指定，则返回false。 创建连接Interface类型终端节点服务的终端节点时，显示此参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| policy_statement      | Array of [PolicyStatement] objects | Gateway类型终端节点策略信息，仅限OBS、SFS的终端节点服务的enable_policy值为true时支持该参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| policy_document       | Object                                                                                                          | 终端节点策略信息，仅当终端节点服务的enable_policy值为true时支持该参数，默认值为完全访问权限。（OBS、SFS的终端节点服务暂不支持该参数）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
 表5TagList 
| 参数    | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|
| key   | String | 键。 key不能为空，长度1\~128个字符（中文也可以输入128个字符）。 可用 UTF-8 格式表示的字母(包含中文、西班牙语、葡语等)、数字和空格，以及以下字符： _ . : = + - @。 _sys_开头属于系统标签，租户不能输入。 key两头不能有空格字符。 |
| value | String | 值。 长度0\~255个字符（中文也可以输入255个字符）。 可用 UTF-8 格式表示的字母(包含中文、西班牙语、葡语等)、数字和空格，以及以下字符： _ . : / = + - @。 资源标签值可以为空字符串。                                                                                                 |
   
 表6PolicyStatement 
| 参数        | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| Effect    | String           | - Allow，允许控制访问权限   - Deny，拒绝控制访问权限    |
| Action    | Array of strings | obs访问权限                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Resource  | Array of strings | obs对象                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| Condition | Object           | statement生效的条件                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
#### 请求示例
更新终端节点，设置白名单信息为192.168.1.1、192.168.1.2，开启网络ACL隔离。
```
PUT https://{endpoint}/v1/{project_id}/vpc-endpoints/4189d3c2-8882-4871-a3c2-d380272eed83
{
  "whitelist" : [ "192.168.1.1", "192.168.1.2" ],
  "enable_whitelist" : true
}
```
#### 响应示例
**状态码：200**
服务器已成功处理了请求
```
{
  "id" : "4189d3c2-8882-4871-a3c2-d380272eed83",
  "service_type" : "interface",
  "status" : "accepted",
  "ip" : "10.32.xx.xx",
  "marker_id" : 322312312312,
  "vpc_id" : "4189d3c2-8882-4871-a3c2-d380272eed83",
  "enable_dns" : true,
  "endpoint_service_name" : "test123",
  "endpoint_service_id" : "test123",
  "project_id" : "6e9dfd51d1124e8d8498dce894923a0d",
  "whitelist" : [ "192.168.1.1", "192.168.1.2" ],
  "enable_whitelist" : true,
  "created_at" : "2022-04-14T09:35:47Z",
  "updated_at" : "2022-04-14T09:36:47Z",
  "tags" : [ {
    "key" : "test1",
    "value" : "test1"
  } ]
}
```
#### SDK代码示例
SDK代码示例如下。
- [Java]
  更新终端节点，设置白名单信息为192.168.1.1、192.168.1.2，开启网络ACL隔离。
  ```
  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.vpcep.v1.region.VpcepRegion;
  import com.huaweicloud.sdk.vpcep.v1.*;
  import com.huaweicloud.sdk.vpcep.v1.model.*;
  import java.util.List;
  import java.util.ArrayList;
  public class UpdateEndpointWhiteSolution {
      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);
          VpcepClient client = VpcepClient.newBuilder()
                  .withCredential(auth)
                  .withRegion(VpcepRegion.valueOf("<YOUR REGION>"))
                  .build();
          UpdateEndpointWhiteRequest request = new UpdateEndpointWhiteRequest();
          request.withVpcEndpointId("{vpc_endpoint_id}");
          UpdateEndpointWhiteRequestBody body = new UpdateEndpointWhiteRequestBody();
          List<String> listbodyWhitelist = new ArrayList<>();
          listbodyWhitelist.add("192.168.1.1");
          listbodyWhitelist.add("192.168.1.2");
          body.withEnableWhitelist(true);
          body.withWhitelist(listbodyWhitelist);
          request.withBody(body);
          try {
              UpdateEndpointWhiteResponse response = client.updateEndpointWhite(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]
  更新终端节点，设置白名单信息为192.168.1.1、192.168.1.2，开启网络ACL隔离。
  ```
  # coding: utf-8
  import os
  from huaweicloudsdkcore.auth.credentials import BasicCredentials
  from huaweicloudsdkvpcep.v1.region.vpcep_region import VpcepRegion
  from huaweicloudsdkcore.exceptions import exceptions
  from huaweicloudsdkvpcep.v1 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 = VpcepClient.new_builder() \
          .with_credentials(credentials) \
          .with_region(VpcepRegion.value_of("<YOUR REGION>")) \
          .build()
      try:
          request = UpdateEndpointWhiteRequest()
          request.vpc_endpoint_id = "{vpc_endpoint_id}"
          listWhitelistbody = [
              "192.168.1.1",
              "192.168.1.2"
          ]
          request.body = UpdateEndpointWhiteRequestBody(
              enable_whitelist=True,
              whitelist=listWhitelistbody
          )
          response = client.update_endpoint_white(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]
  更新终端节点，设置白名单信息为192.168.1.1、192.168.1.2，开启网络ACL隔离。
  ```
  package main
  import (
  "fmt"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
      vpcep "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1/model"
      region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpcep/v1/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 := vpcep.VpcepClientBuilder().
           WithRegion(region.ValueOf("<YOUR REGION>")).
           WithCredential(auth).
           SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      client := vpcep.NewVpcepClient(hcClient)
      request := &model.UpdateEndpointWhiteRequest{}
  request.VpcEndpointId = "{vpc_endpoint_id}"
  var listWhitelistbody = []string{
          "192.168.1.1",
      "192.168.1.2",
      }
  enableWhitelistUpdateEndpointWhiteRequestBody:= true
  request.Body = &model.UpdateEndpointWhiteRequestBody{
  EnableWhitelist: &enableWhitelistUpdateEndpointWhiteRequestBody,
  Whitelist: &listWhitelistbody,
  }
  response, err := client.UpdateEndpointWhite(request)
  if err == nil {
          fmt.Printf("%+v\n", response)
      } else {
          fmt.Println(err)
      }
  }
  ```
- [更多]
  更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/VPCEP/sdk?api=UpdateEndpointWhite)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述          |
|:---|:---|
| 200 | 服务器已成功处理了请求 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-vpcep/ErrorCode.html)。
