# 更新容灾配置 - UpdateDisasterInfo
#### 功能介绍
该接口用于更新容灾配置操作。
容灾状态为"未启动"或"已停止"时，可以执行容灾配置修改操作。
新的配置在容灾重新启动后生效。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-dws/dws_02_0062.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-dws/dws_02_0056.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                                      | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 别名                                | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | dws:cluster:updateDisasterRecoveryConfig | Write | cluster \*  | - g:ResourceTag/\<tag-key\>   - g:EnterpriseProjectId    | dws:disasterRecovery:otherOperate | -      |
     
  
 
#### URI
PUT /v2/{project_id}/disaster-recovery/{disaster_recovery_id}
表1路径参数 
| 参数                   | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| project_id           | 是    | String | **参数解释**： 项目ID。获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-dws/dws_02_0011.html)。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。 |
| disaster_recovery_id | 是    | String | **参数解释**： 容灾ID。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                           |
   
#### 请求参数
表2请求Body参数 
| 参数                | 是否必选 | 参数类型                                                                                                                              | 描述                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| disaster_recovery | 否    | [UpdateDisasterRecoveryReq] object | **参数解释**： 容灾配置信息。 **取值范围**： 不涉及。 |
   
 表3UpdateDisasterRecoveryReq 
| 参数              | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| dr_sync_period  | 否    | String  | **参数解释**： 容灾同步周期。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| send_request    | 否    | Integer | **参数解释**： 是否发送请求。 **取值范围**： 0或1。 **默认取值**： 0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| primary_to_role | 否    | String  | **参数解释**： 主集群角色。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| reset_action    | 否    | String  | **参数解释**： 设置容灾动作。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| standby_to_role | 否    | String  | **参数解释**： 备集群角色。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| dr_status       | 否    | String  | **参数解释**： 容灾状态。 **约束限制**： 不涉及。 **取值范围**： - creating：容灾创建中。   - create_failed：容灾创建失败。   - unstart：容灾未启动。   - starting：容灾启动中。   - start_failed：容灾启动失败。   - running：容灾运行中。   - stopping：容灾停止中。   - stop_failed：容灾停止失败。   - switchovering：灾备切换中。   - abnormal：容灾异常。   - deleting：容灾删除中。   - deleted：容灾已删除。    **默认取值**： 不涉及。 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数                | 参数类型                                                                                                                 | 描述                                                                                                                                                                                                                                                                      |
|:---|:---|:---|
| disaster_recovery | [DisasterRecoveryId] object | **参数解释**： 容灾ID对象。 **取值范围**： 不涉及。 |
   
 表5DisasterRecoveryId 
| 参数 | 参数类型   | 描述                                                                                                                                                                                                                                                                    |
|:---|:---|:---|
| id | String | **参数解释**： 容灾ID。 **取值范围**： 不涉及。 |
   
#### 请求示例
集群容灾同步周期修改为3H，主集群为primary，备集群为standby，容灾动作设为DR_RUNNING。
```
put https://{Endpoint}/v2/0536cdee2200d5912f7cc00b877980f1/disaster-recovery/b303b78d-438c-41dd-aaf6-c98eea1fc2a6
{
  "disaster_recovery" : {
    "dr_sync_period" : "3H",
    "send_request" : 0,
    "primary_to_role" : "primary",
    "standby_to_role" : "standby",
    "reset_action" : "DR_RUNNING",
    "dr_status" : "running"
  }
}
```
#### 响应示例
**状态码：200**
```
{
  "disaster_recovery" : {
    "id" : "xxxx"
  }
}
```
#### SDK代码示例
SDK代码示例如下。
- [Java]
  集群容灾同步周期修改为3H，主集群为primary，备集群为standby，容灾动作设为DR_RUNNING。
  ```
  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.dws.v2.region.DwsRegion;
  import com.huaweicloud.sdk.dws.v2.*;
  import com.huaweicloud.sdk.dws.v2.model.*;
  public class UpdateDisasterInfoSolution {
      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);
          DwsClient client = DwsClient.newBuilder()
                  .withCredential(auth)
                  .withRegion(DwsRegion.valueOf("<YOUR REGION>"))
                  .build();
          UpdateDisasterInfoRequest request = new UpdateDisasterInfoRequest();
          request.withDisasterRecoveryId("{disaster_recovery_id}");
          UpdateDisasterRecoveryRequest body = new UpdateDisasterRecoveryRequest();
          UpdateDisasterRecoveryReq disasterRecoverybody = new UpdateDisasterRecoveryReq();
          disasterRecoverybody.withDrSyncPeriod("3H")
              .withSendRequest(0)
              .withPrimaryToRole("primary")
              .withResetAction("DR_RUNNING")
              .withStandbyToRole("standby")
              .withDrStatus("running");
          body.withDisasterRecovery(disasterRecoverybody);
          request.withBody(body);
          try {
              UpdateDisasterInfoResponse response = client.updateDisasterInfo(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]
  集群容灾同步周期修改为3H，主集群为primary，备集群为standby，容灾动作设为DR_RUNNING。
  ```
  # coding: utf-8
  import os
  from huaweicloudsdkcore.auth.credentials import BasicCredentials
  from huaweicloudsdkdws.v2.region.dws_region import DwsRegion
  from huaweicloudsdkcore.exceptions import exceptions
  from huaweicloudsdkdws.v2 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 = DwsClient.new_builder() \
          .with_credentials(credentials) \
          .with_region(DwsRegion.value_of("<YOUR REGION>")) \
          .build()
      try:
          request = UpdateDisasterInfoRequest()
          request.disaster_recovery_id = "{disaster_recovery_id}"
          disasterRecoverybody = UpdateDisasterRecoveryReq(
              dr_sync_period="3H",
              send_request=0,
              primary_to_role="primary",
              reset_action="DR_RUNNING",
              standby_to_role="standby",
              dr_status="running"
          )
          request.body = UpdateDisasterRecoveryRequest(
              disaster_recovery=disasterRecoverybody
          )
          response = client.update_disaster_info(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]
  集群容灾同步周期修改为3H，主集群为primary，备集群为standby，容灾动作设为DR_RUNNING。
  ```
  package main
  import (
  "fmt"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
      dws "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dws/v2"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dws/v2/model"
      region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dws/v2/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 := dws.DwsClientBuilder().
           WithRegion(region.ValueOf("<YOUR REGION>")).
           WithCredential(auth).
           SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      client := dws.NewDwsClient(hcClient)
      request := &model.UpdateDisasterInfoRequest{}
  request.DisasterRecoveryId = "{disaster_recovery_id}"
  drSyncPeriodDisasterRecovery:= "3H"
  sendRequestDisasterRecovery:= int32(0)
  primaryToRoleDisasterRecovery:= "primary"
  resetActionDisasterRecovery:= "DR_RUNNING"
  standbyToRoleDisasterRecovery:= "standby"
  drStatusDisasterRecovery:= "running"
  disasterRecoverybody := &model.UpdateDisasterRecoveryReq{
  DrSyncPeriod: &drSyncPeriodDisasterRecovery,
  SendRequest: &sendRequestDisasterRecovery,
  PrimaryToRole: &primaryToRoleDisasterRecovery,
  ResetAction: &resetActionDisasterRecovery,
  StandbyToRole: &standbyToRoleDisasterRecovery,
  DrStatus: &drStatusDisasterRecovery,
  }
  request.Body = &model.UpdateDisasterRecoveryRequest{
  DisasterRecovery: disasterRecoverybody,
  }
  response, err := client.UpdateDisasterInfo(request)
  if err == nil {
          fmt.Printf("%+v\n", response)
      } else {
          fmt.Println(err)
      }
  }
  ```
- [更多]
  更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/DWS/sdk?api=UpdateDisasterInfo)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述        |
|:---|:---|
| 200 | 更新容灾配置成功。 |
| 400 | 请求错误。     |
| 401 | 鉴权失败。     |
| 403 | 没有操作权限。   |
| 404 | 找不到资源。    |
| 500 | 服务内部错误。   |
| 503 | 服务不可用。    |
   
