
# 创建备份策略
#### 功能介绍
创建备份策略对服务器进行周期性备份，还可以为备份策略附加一个复制策略，对该策略产生的备份进行复制。
#### URI
- URI POST https://{endpoint}/v1/{project_id}/policies
  
- 参数说明
  表1参数说明 
  | 参数         | 是否必选 | 参数类型   | 描述                                                                                                                               |
  |:---|:---|:---|:---|
  | project_id | 是    | String | 项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-csbs/zh-cn_topic_0136033750.html)。 |
     
  
 
#### 请求
- 要素说明
  表2要素说明 
  | 参数     | 是否必选 | 参数类型          | 描述                                                                                           |
  |:---|:---|:---|:---|
  | policy | 是    | policy_create | 创建参数。 详情请参见[表3]。 |
     
  
- policy_create 字段数据结构说明
   表3policy_create 字段数据结构说明 
  | 参数                   | 是否必选 | 参数类型                               | 描述                                                                                                    |
  |:---|:---|:---|:---|
  | description          | 否    | String                             | 备份策略描述，长度限制：0- 255，除了"\<"、"\>"不能输入，其它字符均可。                                                            |
  | name                 | 是    | String                             | 备份策略名称，长度限制：1- 255，只能由中文、字母、数字、"_"、"-"组成。                                                             |
  | parameters           | 是    | policy_param                       | 备份参数。 详情请参见[表4]。          |
  | provider_id          | 是    | String                             | 备份提供商ID，当前取值固定值：fc4d5750-22e7-4798-8a46-f48f62c4c1da。用于区分备份对象是服务器或磁盘。                                 |
  | resources            | 是    | List\<resource\>                   | 备份对象列表，列表可以为空。 详情请参见[表5]。 |
  | scheduled_operations | 是    | List\<scheduled_operation_create\> | 调度周期。 详情请参见[表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_create 字段数据结构说明
   表6scheduled_operation_create 字段数据结构说明 
  | 参数                   | 是否必选 | 参数类型                 | 描述                                                                                             |
  |:---|:---|:---|:---|
  | description          | 否    | String               | 调度周期描述，长度限制：0- 255，除了"\<"、"\>"不能输入，其它字符均可。                                                     |
  | enabled              | 是    | Boolean              | 是否启用该调度周期， 启用时策略会自动调度；不启用时策略不会自动调度，可以通过调用执行备份策略接口手动执行策略。                                       |
  | name                 | 否    | String               | 调度周期名称，长度限制：1- 255，只能由中文、字母、数字、"_"、"-"组成。                                                      |
  | operation_type       | 是    | String               | 操作类型，如备份，复制 Enum:\[ backup，replication\]                   |
  | operation_definition | 是    | operation_definition | 调度周期参数。 详情请参见[表7]。 |
  | trigger              | 是    | trigger              | 调度策略                                                                                           |
     
  
- operation_definition 字段数据结构说明
   表7operation_definition 字段数据结构说明 
  | 参数                      | 是否必选 | 参数类型    | 描述                                                                                                                                                          |
  |:---|:---|:---|:---|
  | max_backups             | 否    | Integer | 单个备份对象自动备份的最大备份数。取值为-1或0-99999。-1代表不按备份数清理。                                                                                                                 |
  | retention_duration_days | 否    | Integer | 备份保留时长，单位天。取值为-1或0-99999。-1代表不按时间清理。                                                                                                                        |
  | permanent               | 否    | Boolean | 是否永久保留。"false"：不永久保留，"true"：永久保留                                                                                                                            |
  | plan_id                 | 否    | String  | 备份策略ID。                                                                                                                                                     |
  | provider_id             | 否    | String  | 备份提供商ID，当前取值固定值：fc4d5750-22e7-4798-8a46-f48f62c4c1da。用于区分备份对象是服务器或磁盘。                                                                                       |
  | destination_region      | 否    | String  | 复制的目标区域ID，仅在跨区域复制时才会使用并且必须指定。                                                                                                                               |
  | destination_project_id  | 否    | String  | 复制的目标项目ID，仅在跨区域复制时才会使用并且必须指定。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-csbs/zh-cn_topic_0136033750.html)。 |
  | 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个时间点。 |
     
  
 
- 请求样例
  ```
  POST https://{endpoint}/v1/{project_id}/policies
  {
    "policy" : {
      "name" : "my-plan",
      "description" : "My plan",
      "provider_id" : "fc4d5750-22e7-4798-8a46-f48f62c4c1da",
      "parameters" : {
        "common" : {
            "app_consistency": 1
        }
      },
      "scheduled_operations" : [ {
        "name" : "my-backup-policy",
        "description" : "My backup policy",
        "enabled" : true,
        "operation_definition" : {
          "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"
          }
        },
        "operation_type" : "backup"
      },{
        "name" : "my-replication-policy",
        "description" : "My replication policy",
        "enabled" : true,
        "operation_definition" : {
          "max_backups" : 20,
          "destination_region": "cn-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"
          }
        },
        "operation_type" : "replication"
      }],
      "resources" : [ {
        "id" : "45baf976-c20a-4894-a7c3-c94b7376bf55",
        "type" : "OS::Nova::Server",
        "name" : "resource1",
      }, {
        "id" : "5aa119a8-d25b-45a7-8d1b-88e127885635",
        "type" : "OS::Nova::Server",
        "name" : "resource2"
      } ]
    }
  }
  ```
  
#### 响应
- 要素说明
  表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 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-csbs/zh-cn_topic_0136033750.html) |
  | 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                                                                       |
  | 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         | 调度策略                                                                                            |
  | id                   | String               | 调度周期ID                                                                                          |
  | trigger_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 | 跨区域复制时，是否启用加速从而缩减复制的时间，如果不指定，默认不启用加速。                                 |
     
  ![](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_resp 字段数据结构说明
  表16trigger_resp 字段数据结构说明 
  | 参数         | 参数类型                    | 描述                                                                                                                          |
  |:---|:---|:---|
  | properties | trigger_properties_resp | 调度器属性。 详情请参见[trigger_properties_resp 字段数据结构说明]。 |
  | id         | String                  | 调度器ID。                                                                                                                      |
  | name       | String                  | 调度器名称。                                                                                                                      |
  | type       | String                  | 调度类型，"time":时间类型                                                                                                            |
     
  
- 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 | 调度器开始时间,如:"2017-04-18T01:21:52"                                                                                                                                                                                             |
  | format     | String | 调度器类型                                                                                                                                                                                                                       |
     
  
- 响应样例
  ```
  {
    "policy" : {
      "created_at" : "2017-03-07T09:27:40.928000",
      "description" : "My plan",
      "id" : "f766c171-9336-479a-8b30-b83cabf6381e",
      "name" : "my-plan",
      "parameters" : {
        "common" : {
            "app_consistency": 1
        }
      },
      "project_id" : "tenant",
      "provider_id" : "c714180d-ea34-4b13-9a5e-577c7c416eec",
      "resources" : [ {
        "id" : "45baf976-c20a-4894-a7c3-c94b7376bf55",
        "name" : "resource1",
        "type" : "OS::Nova::Server",
        "extra_info" : {
          "exclude_volumes": ["8a8ccde2-0b9a-4450-a5f3-150816635f46"]
      }
      }, {
        "id" : "5aa119a8-d25b-45a7-8d1b-88e127885635",
        "name" : "resource2",
        "type" : "OS::Nova::Server"
      } ],
      "scheduled_operations" : [ {
        "description" : "My backup policy",
        "enabled" : true,
        "id" : "9303a23d-e433-48e7-b88a-5ee6442e434e",
        "name" : "my-backup-policy",
        "operation_definition" : {
          "max_backups" : "20",
          "plan_id" : "f766c171-9336-479a-8b30-b83cabf6381e",
          "provider_id" : "c714180d-ea34-4b13-9a5e-577c7c416eec"
        },
        "operation_type" : "backup",
        "trigger" : {
          "id" : "8178846b-766d-4fe6-941f-b38c76b6f3b9",
          "name" : "default",
          "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-03-07 09:27:41",
            "format" : "ical"
          },
          "type" : "time"
        },
        "trigger_id" : "8178846b-766d-4fe6-941f-b38c76b6f3b9"
      },{
        "description" : "My replication policy",
        "enabled" : true,
        "id" : "9303a23d-e433-48e7-b88a-5ee6442e434f",
        "name" : "my-replication-policy",
        "operation_definition" : {
          "max_backups" : "20",
          "plan_id" : "f766c171-9336-479a-8b30-b83cabf6381e",
          "provider_id" : "c714180d-ea34-4b13-9a5e-577c7c416eec",
          "destination_region": "cn-south-1",
          "destination_project_id": "827099a5c63945d3b5a473ce9a1eaf88"
        },
        "operation_type" : "replication",
        "trigger" : {
          "id" : "8178846b-766d-4fe6-941f-b38c76b6f3b8",
          "name" : "default",
          "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-03-07 09:27:41"
          },
          "type" : "time"
        },
        "trigger_id" : "8178846b-766d-4fe6-941f-b38c76b6f3b8"
      } ],
      "status" : "suspended"
    }
  }
  ```
  
 
#### 状态码
- 正常
  
  | 状态码 | 说明 |
  |:---|:---|
  | 200 | OK |
     
  
- 异常
  
  | 状态码 | 说明      |
  |:---|:---|
  | 400 | 请求参数不合法 |
  | 401 | 鉴权失败    |
  | 403 | 没有操作权限  |
  | 404 | 请求对象不存在 |
  | 500 | 服务内部错误  |
  | 503 | 服务不可用   |
     
  
 
#### 错误码
请参考[错误码](https://support.huaweicloud.com/api-csbs/zh-cn_topic_0071888297.html)。
