
# 更新备份策略
#### 功能介绍
根据指定ID更新备份策略
#### URI
- URI PUT https://{endpoint}/v1/{project_id}/policies/{policy_id}
  
- 参数说明
  表1参数说明 
  | 参数         | 是否必选 | 参数类型   | 描述                                                                                                                               |
  |:---|:---|:---|:---|
  | project_id | 是    | String | 项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-csbs/zh-cn_topic_0136033750.html)。 |
  | policy_id  | 是    | String | 备份策略ID                                                                                                                           |
     
  
 
#### 请求
- 要素说明
  表2要素说明 
  | 参数     | 是否必选 | 参数类型          | 描述                                                 |
  |:---|:---|:---|:---|
  | policy | 是    | policy_update | 详情请参见[表3]。 |
     
  
- policy_update 字段数据结构说明
   表3policy_update 字段数据结构说明 
  | 参数                   | 是否必选 | 参数类型                               | 描述                                                                                                            |
  |:---|:---|:---|:---|
  | description          | 否    | String                             | 备份策略描述，长度限制：0- 255，除了"\<"、"\>"不能输入，其它字符均可。                                                                    |
  | name                 | 否    | String                             | 备份策略名称，长度限制：1- 255，只能由中文、字母、数字、"_"、"-"组成。                                                                     |
  | parameters           | 否    | policy_param                       | 备份参数。 详情请参见[表4]。                  |
  | resources            | 否    | List\<resource\>                   | 备份对象。 详情请参见[表5]。                  |
  | scheduled_operations | 否    | List\<scheduled_operation_update\> | 调度周期，一个备份策略有且只有一个备份周期。 详情请参见[表6]。 |
     
  
- policy_param 字段数据结构说明
   表4policy_param 字段数据结构说明 
  | 参数     | 是否必选 | 参数类型         | 描述                                                                                                                              |
  |:---|:---|:---|:---|
  | common | 否    | common_param | 备份策略通用参数，此处默认为空。 详情请参见[common_param 字段数据结构说明]。 |
     
  
- common_param 字段数据结构说明
   
  | 参数              | 是否必选 | 参数类型    | 描述                                                                                                                                                             |
  |:---|:---|:---|:---|
  | app_consistency | 否    | Integer | 是否对备份策略中的备份对象做应用一致性备份；0代表不做应用一致性备份；1代表做应用一致性备份且应用一致性备份失败后，不继续做崩溃一致性备份；2代表做应用一致性备份且应用一致性备份失败后，继续做崩溃一致性备份。未输入app_consistency参数时，不做应用一致性备份。应用一致性备份特性参照创建资源备份接口描述。 |
     
  
- resource 字段数据结构说明
   表5resource 字段数据结构说明 
  | 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                              |
  |:---|:---|:---|:---|
  | id         | 是    | String | 待备份对象ID                                                                                                                                         |
  | type       | 是    | String | 备份对象的实体对象类型。 当前支持的取值包含两个：OS::Nova::Server，该值代表备份的对象为云服务器，OS::Ironic::BareMetalServer，该值代表备份的对象为裸金属服务器。 |
  | name       | 是    | String | 备份对象名称                                                                                                                                          |
  | extra_info | 否    | Dict   | 备份对象的附加信息                                                                                                                                       |
     
  
- extra_info参数说明
  
  | 参数              | 是否必选 | 参数类型              | 描述                                                 |
  |:---|:---|:---|:---|
  | exclude_volumes | 否    | List\<volume_id\> | 磁盘的ID列表，如果备份对象为云服务器或者裸金属服务器，代表备份时不对该服务器下指定的磁盘进行备份。 |
     
  
- scheduled_operation_update 字段数据结构说明
   表6scheduled_operation_update 字段数据结构说明 
  | 参数                   | 是否必选 | 参数类型                 | 描述                                                                                                      |
  |:---|:---|:---|:---|
  | description          | 否    | String               | 调度周期描述，长度限制：0- 255，除了"\<"、"\>"不能输入，其它字符均可。                                                              |
  | enabled              | 否    | Boolean              | 是否启用该策略，默认为true， 不启用时策略不会自动调度，可以手工调度                                                                    |
  | name                 | 否    | String               | 调度周期名称，长度限制：1- 255，只能由中文、字母、数字、"_"、"-"组成。                                                               |
  | operation_definition | 否    | operation_definition | 调度周期参数，新增复制策略时必传。 详情请参见[表7]。 |
  | trigger              | 否    | trigger              | 调度策略，新增复制策略时必传                                                                                          |
  | operation_type       | 否    | String               | 操作类型，跨区域复制，仅当是为已有备份策略增加复制策略时有效。 复制：replication                      |
  | id                   | 否    | String               | 调度周期ID，如果不传ID，则会新创建一个策略                                                                                 |
     
  
- operation_definition 字段数据结构说明
   表7operation_definition 字段数据结构说明 
  | 参数                      | 是否必选 | 参数类型    | 描述                                                                    |
  |:---|:---|:---|:---|
  | max_backups             | 否    | Integer | 单个备份对象自动备份的最大备份数。取值为-1或0-99999。-1代表不按备份数清理。                           |
  | retention_duration_days | 否    | Integer | 备份保留时长，单位天。取值为-1或0-99999。-1代表不按时间清理。                                  |
  | permanent               | 否    | Boolean | 是否永久保留。                                                               |
  | plan_id                 | 否    | String  | 备份策略ID。                                                               |
  | provider_id             | 否    | String  | 备份提供商ID，当前取值固定值：fc4d5750-22e7-4798-8a46-f48f62c4c1da。用于区分备份对象是服务器或磁盘。 |
  | destination_region      | 否    | String  | 复制的目标区域，仅在跨区域复制时才会使用。                                                 |
  | destination_project_id  | 否    | String  | 复制的目标项目ID，仅在跨区域复制时才会使用。                                               |
  | enable_acceleration     | 否    | Boolean | 跨区域复制时，是否启用加速从而缩减复制的时间，如果不指定，默认不启用加速。                                 |
  | day_backups             | 否    | Integer | 保留日备个数，该备份不受保留最大备份数限制。若选择该参数，则timezone 也必选。                           |
  | week_backups            | 否    | Integer | 保留周备个数，该备份不受保留最大备份数限制。若选择该参数，则timezone 也必选。                           |
  | month_backups           | 否    | Integer | 保留月备个数，该备份不受保留最大备份数限制。若选择该参数，则timezone 也必选。                           |
  | year_backups            | 否    | Integer | 保留年备个数，该备份不受保留最大备份数限制。若选择该参数，则timezone 也必选。                           |
  | timezone                | 否    | String  | 用户所在时区，格式形如UTC+08:00，若没有选择年备，月备，周备，日备中任一参数，则不能选择该参数。                  |
     
  ![](https://support.huaweicloud.com/api-csbs/public_sys-resources/note_3.0-zh-cn.png)
  - permanent配置为true，无论max_backups和retention_duration_days配置为何值，都是表示永久保留。
  
  - permanent配置为false或者不配置，以max_backups和retention_duration_days配置为准。
  
  - permanent，max_backups和retention_duration_days都不配置，则表示永久保留。
    
- trigger 字段数据结构说明
  表8trigger 字段数据结构说明 
  | 参数         | 是否必选 | 参数类型               | 描述                                                                                           |
  |:---|:---|:---|:---|
  | properties | 是    | trigger_properties | 调度器属性。 详情请参见[表9]。 |
     
  
- trigger_properties 字段数据结构说明
   表9trigger_properties 字段数据结构说明 
  | 参数      | 是否必选 | 参数类型   | 描述                                                                                                                                                                                               |
  |:---|:---|:---|:---|
  | pattern | 是    | String | 调度器的调度策略，长度限制为10240个字符，参照iCalendar RFC 2445规范，但仅支持FREQ、BYDAY、BYHOUR、BYMINUTE四个参数，其中FREQ仅支持WEEKLY和DAILY，BYDAY支持一周七天（MO、TU、WE、TH、FR、SA、SU），BYHOUR支持0-23小时，BYMINUTE支持0-59分钟，并且间隔不能小于一小时，一天最大24个时间点。 |
     
  
- 请求样例
  ```
  PUT https://{endpoint}/v1/{project_id}/policies/{policy_id}
  {
    "policy" : {
      "name" : "my-plan",
      "parameters" : {
        "common" : {
            "app_consistency": 2
        }
      },
      "scheduled_operations" : [ {
        "id" : "fed3c8f1-7b6e-4e24-b1ad-473838bad569",
        "name" : "my-backup-policy",
        "description" : "My backup policy ",
        "enabled" : true,
        "operation_definition" : {
          "retention_duration_days" : -1,
          "max_backups" : 20
        },
        "trigger" : {
          "properties" : {
            "pattern" : "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n"
          }
       }
   },{
        "id" : "fed3c8f1-7b6e-4e24-b1ad-473838bad569",
        "name" : "my-replication-policy",
        "description" : "My replicationpolicy ",
        "enabled" : true,
        "operation_definition" : {
          "retention_duration_days" : -1,
          "max_backups" : 20,
          "destination_region": "south-1",
          "destination_project_id": "827099a5c63945d3b5a473ce9a1eaf88"
        },
        "trigger" : {
          "properties" : {
            "pattern" : "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n"
          }
        }
      } ]
    }
  }
  ```
  
 
#### 响应
- 要素说明
  表10要素说明 
  | 参数     | 参数类型        | 描述                                                  |
  |:---|:---|:---|
  | policy | policy_resp | 详情请参见[表11]。 |
     
  
- policy_resp 字段数据结构说明
   表11policy_resp 字段数据结构说明 
  | 参数                   | 参数类型                             | 描述                                                                                                                                                                                                                                                                                       |
  |:---|:---|:---|
  | created_at           | String                           | 创建时间,如:"2017-04-18T01:21:52.701973"                                                                                                                                                                                                                                                      |
  | description          | String                           | 备份策略描述，长度限制：0- 255，除了"\<"、"\>"不能输入，其它字符均可。                                                                                                                                                                                                                                               |
  | id                   | String                           | 备份策略ID                                                                                                                                                                                                                                                                                   |
  | name                 | String                           | 备份策略名称，长度限制：1- 255，只能由中文、字母、数字、"_"、"-"组成。                                                                                                                                                                                                                                                |
  | parameters           | policy_param                     | 备份策略参数。 详情请参见[表12]。                                                                                                                                                                                          |
  | project_id           | String                           | 项目ID                                                                                                                                                                                                                                                                                     |
  | provider_id          | String                           | 备份提供商ID，当前取值固定值：fc4d5750-22e7-4798-8a46-f48f62c4c1da。用于区分备份对象是服务器或磁盘。                                                                                                                                                                                                                    |
  | resources            | List\<resource\>                 | 备份对象列表 详情请参见[表13]。                                                                                                                                                                                            |
  | scheduled_operations | List\<scheduled_operation_resp\> | 调度周期列表。 详情请参见[表14]。                                                                                                                                                                                          |
  | status               | String                           | 备份策略状态。 - disabled：不可用  - enabled：可用   |
     
  
- policy_param 字段数据结构说明
   表12policy_param 字段数据结构说明 
  | 参数     | 参数类型         | 描述                                                                                                                           |
  |:---|:---|:---|
  | common | common_param | 备份策略通用参数，此处默认为空。 详情请参见[common_param 字段数据结构说明]。 |
     
  
- common_param 字段数据结构说明
   
  | 参数              | 参数类型    | 描述                                                                                                                                                             |
  |:---|:---|:---|
  | app_consistency | Integer | 是否对备份策略中的备份对象做应用一致性备份；0代表不做应用一致性备份；1代表做应用一致性备份且应用一致性备份失败后，不继续做崩溃一致性备份；2代表做应用一致性备份且应用一致性备份失败后，继续做崩溃一致性备份。未输入app_consistency参数时，不做应用一致性备份。应用一致性备份特性参照创建资源备份接口描述。 |
     
  
- resource 字段数据结构说明
   表13resource 字段数据结构说明 
  | 参数         | 参数类型   | 描述                                                                                                                                              |
  |:---|:---|:---|
  | id         | String | 待备份对象ID                                                                                                                                         |
  | type       | String | 备份对象的实体对象类型。 当前支持的取值包含两个：OS::Nova::Server，该值代表备份的对象为云服务器，OS::Ironic::BareMetalServer，该值代表备份的对象为裸金属服务器。 |
  | name       | String | 备份对象名称                                                                                                                                          |
  | extra_info | Dict   | 备份对象的附加信息                                                                                                                                       |
     
  
- extra_info参数说明
  
  | 参数              | 参数类型              | 描述                                                 |
  |:---|:---|:---|
  | exclude_volumes | List\<volume_id\> | 磁盘的ID列表，如果备份对象为云服务器或者裸金属服务器，代表备份时不对该服务器下指定的磁盘进行备份。 |
     
  
- scheduled_operation_resp 字段数据结构说明
   表14scheduled_operation_resp 字段数据结构说明 
  | 参数                   | 参数类型                 | 描述                                                                                              |
  |:---|:---|:---|
  | description          | String               | 调度周期描述，长度限制：0- 255，除了"\<"、"\>"不能输入，其它字符均可。                                                      |
  | enabled              | Boolean              | 是否启用该调度周期，默认为true， 不启用时策略不会自动调度，可以手工调度                                                          |
  | name                 | String               | 调度周期名称，长度限制：1- 255，只能由中文、字母、数字、"_"、"-"组成。                                                       |
  | operation_type       | String               | 操作类型，备份，复制 Enum:\[ backup, replication\]                     |
  | operation_definition | operation_definition | 调度周期参数。 详情请参见[表15]。 |
  | trigger              | trigger_resp         | 调度策略。 详情请参见[表16]。   |
  | id                   | String               | 调度周期ID                                                                                          |
     
  
- operation_definition 字段数据结构说明
   表15operation_definition 字段数据结构说明 
  | 参数                      | 参数类型   | 描述                                                                    |
  |:---|:---|:---|
  | max_backups             | String | 单个备份对象自动备份的最大备份数。取值为-1或0-99999。-1代表不按备份数清理。                           |
  | retention_duration_days | String | 备份保留时长，单位天。取值为-1或0-99999。-1代表不按时间清理。                                  |
  | permanent               | String | 是否永久保留。                                                               |
  | plan_id                 | String | 备份策略ID。                                                               |
  | provider_id             | String | 备份提供商ID，当前取值固定值：fc4d5750-22e7-4798-8a46-f48f62c4c1da。用于区分备份对象是服务器或磁盘。 |
  | destination_region      | String | 复制的目标区域，仅在跨区域复制时才会使用。                                                 |
  | destination_project_id  | String | 复制的目标项目ID，仅在跨区域复制时才会使用。                                               |
  | enable_acceleration     | String | 跨区域复制时，是否启用加速从而缩减复制的时间，如果不指定，默认不启用加速                                  |
     
  
- trigger_resp 字段数据结构说明
   表16trigger_resp 字段数据结构说明 
  | 参数         | 参数类型                    | 描述                                                                                             |
  |:---|:---|:---|
  | properties | trigger_properties_resp | 调度器属性。 详情请参见[表17]。 |
     
  
- trigger_properties_resp 字段数据结构说明
   表17trigger_properties_resp 字段数据结构说明 
  | 参数         | 参数类型   | 描述                                                                                                                                                                                               |
  |:---|:---|:---|
  | pattern    | String | 调度器的调度策略，长度限制为10240个字符，参照iCalendar RFC 2445规范，但仅支持FREQ、BYDAY、BYHOUR、BYMINUTE四个参数，其中FREQ仅支持WEEKLY和DAILY，BYDAY支持一周七天（MO、TU、WE、TH、FR、SA、SU），BYHOUR支持0-23小时，BYMINUTE支持0-59分钟，并且间隔不能小于一小时，一天最大24个时间点。 |
  | start_time | String | 调度器开始时间                                                                                                                                                                                          |
  | format     | String | 调度器类型 ical：互联网日历类型                                                                                                                                      |
     
  
- 响应样例
  ```
  {
    "policy" : {
      "status" : "disabled",
      "provider_id" : "fc4d5750-22e7-4798-8a46-f48f62c4c1da",
      "description" : "",
      "parameters" : {
        "common" : {
            "app_consistency": 2
        }
      },
      "scheduled_operations" : [ {
        "description" : "My backup policy ",
        "enabled" : true,
        "trigger" : {
          "properties" : {
            "pattern" : "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n",
            "start_time" : "2017-04-09 14:31:25",
            "format" : "ical"
          }
        },
        "operation_definition" : {
          "provider_id" : "fc4d5750-22e7-4798-8a46-f48f62c4c1da",
          "plan_id" : "17e2b861-3a35-434d-afbb-073d5cd5af08",
          "max_backups" : "20",
          "retention_duration_days" : "-1",
          "permanent" : "False",
          "consistency" : "True"
        },
        "operation_type" : "backup",
        "id" : "fed3c8f1-7b6e-4e24-b1ad-473838bad569",
        "name" : "my-backup-policy"
      },{
        "description" : "My replication policy ",
        "enabled" : true,
        "trigger" : {
          "properties" : {
            "pattern" : "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n",
            "start_time" : "2017-04-09 14:31:25",
            "format" : "ical"
          }
        },
        "operation_definition" : {
          "provider_id" : "fc4d5750-22e7-4798-8a46-f48f62c4c1da",
          "plan_id" : "17e2b861-3a35-434d-afbb-073d5cd5af08",
          "max_backups" : "20",
          "retention_duration_days" : "-1",
          "permanent" : "False",
          "destination_region": "south-1",
          "destination_project_id": "827099a5c63945d3b5a473ce9a1eaf88"
        },
        "operation_type" : "replication",
        "id" : "fed3c8f1-7b6e-4e24-b1ad-473838bad569",
        "name" : "my-replication-policy"
      }],
      "id" : "17e2b861-3a35-434d-afbb-073d5cd5af08",
      "name" : "my-plan",
      "parameters" : {
        "common" : {
        }
      },
      "created_at" : "2017-04-09T14:31:25.504569",
      "project_id" : "0c89d4e457c3401a89c65420fd45f3a2",
      "resources" : [ {
        "type" : "OS::Nova::Server",
        "id" : "8421f405-1334-4206-b71c-b3f64d39abc4",
        "name" : "wqeq3",
        "extra_info" : {
      }
      } ]
    }
  }
  ```
  
 
#### 状态码
- 正常
  
  | 状态码 | 说明 |
  |:---|:---|
  | 200 | OK |
     
  
- 异常
  
  | 状态码 | 说明      |
  |:---|:---|
  | 400 | 请求参数不合法 |
  | 401 | 鉴权失败    |
  | 403 | 没有操作权限  |
  | 404 | 请求对象不存在 |
  | 500 | 服务内部错误  |
  | 503 | 服务不可用   |
     
  
 
#### 错误码
请参考[错误码](https://support.huaweicloud.com/api-csbs/zh-cn_topic_0071888297.html)。
