
# 更新发布/迭代状态 - ChangePlanStatus
#### 功能介绍
更新发布/迭代状态
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-projectman/projectman_api_1002.html)。
#### 授权信息
账号根用户具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备如下身份策略权限，更多的权限说明请参见[权限和授权项](https://support.huaweicloud.com/api-projectman/projectman_03_Permission.html)。
| 授权项                     | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                            | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| codeartsreq:plan:update | Write | -           | - codeartsreq:Model   - codeartsreq:ProjectId    | -  | -      |
   
#### URI
PUT /v1/planservice/projects/{project_id}/plans/{plan_id}/status
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释**： 项目的32位uuid，项目唯一标识，通过[查询项目列表](https://support.huaweicloud.com/api-projectman/ListProjectsV4.html)接口获取，响应消息体中的**project_id**字段的值就是项目ID。 **约束限制**： 32个字符，由英文字母和数字组成。 **取值范围**： 不涉及。 **默认取值**： 不涉及。 |
| plan_id    | 是    | String | **参数解释**： 发布/迭代唯一ID。可以通过[发布/迭代计划列表查询](https://support.huaweicloud.com/api-projectman/ListPlan.html)接口获取，响应消息体中的**id**字段的值就是发布/迭代ID。 **约束限制**： 长度为18-19位的数字字符串。 **取值范围**： 不涉及。 **默认取值**： 不涉及。              |
   
#### 请求参数
表2请求Body参数 
| 参数                | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| operate           | 是    | String | **参数解释**： 操作类型。 **约束限制**： 不涉及。 **取值范围**： - start：开始发布/迭代计划   - complete：完成发布/迭代计划   - reset：将计划状态设置为"未开始"   - restart：重新开始发布/迭代计划   - move：将工作项移动到其他迭代    **默认取值**： 不涉及。 |
| move_to_sprint_id | 否    | String | **参数解释**： 将工作项移动到指定迭代ID。operate参数值为complete时，需要将未完成的工作项移动到其他迭代。 **约束限制**： operate参数值为complete时需填写。空字符串表示将工作项移动到"待规划"。 **取值范围**： 长度为18\~19个字符的数字字符串。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
#### 响应参数
**状态码：200**
表3响应Body参数 
| 参数      | 参数类型                                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|
| status  | String                                                                      | **参数解释**： 返回状态。 **取值范围**： - success：操作成功   - error：操作失败    |
| message | String                                                                      | **参数解释**： 提示信息。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                             |
| result  | [StatusChangeResult] object | **参数解释**： 状态变更结果数据，包含不可完成的工作项信息。                                                                                                                                                                                                                                                                                                                                                                                                   |
   
 表4StatusChangeResult 
| 参数               | 参数类型                                                                  | 描述                                                                                   |
|:---|:---|:---|
| cannot_finish_ar | Array of [WorkItemVO] objects | **参数解释**： 不可完成的AR工作项列表，当完成发布/迭代时，未完成的AR工作项会列出在此。 |
   
 表5WorkItemVO 
| 参数            | 参数类型                                                    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|
| id            | String                                                  | **参数解释**： 工作项唯一ID。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| title         | String                                                  | **参数解释**： 工作项标题。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| number        | String                                                  | **参数解释**： 工作项编号。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| category      | String                                                  | **参数解释**： 工作项分类。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| status        | [StatusVO] object | **参数解释**： 工作项状态信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| assignee      | [UserVO] object     | **参数解释**： 工作项责任人信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| baseline      | String                                                  | **参数解释**： 工作项基线状态。 **取值范围**： - baselined：已基线   - unbaseline：未基线   - ""：未基线    |
| change_status | String                                                  | **参数解释**： 工作项变更状态。 **取值范围**： - cannot_finish：不可完成                                                                                                                                                                                                                                                                                         |
   
 表6StatusVO 
| 参数   | 参数类型   | 描述                                                                                                                                         |
|:---|:---|:---|
| id   | String | **参数解释**： 状态ID。 **取值范围**： 不涉及。 |
| name | String | **参数解释**： 状态名称。 **取值范围**： 不涉及。 |
   
 表7UserVO 
| 参数   | 参数类型   | 描述                                                                                                                                                 |
|:---|:---|:---|
| id   | String | **参数解释**： 用户ID，32位uuid。 **取值范围**： 不涉及。 |
| name | String | **参数解释**： 用户名称。 **取值范围**： 不涉及。         |
   
**状态码：400**
表8响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                           |
|:---|:---|:---|
| error_msg  | String | **参数解释**： 错误描述信息。 **取值范围**： 不涉及。 |
| error_code | String | **参数解释**： 错误码。 **取值范围**： 不涉及。    |
   
#### 请求示例
```
PUT https://{endpoint}/v1/planservice/projects/526cefde62004de2b62b5e8dd2c2b3af/plans/123456789012345678/status
{
  "operate" : "move",
  "move_to_sprint_id" : "12345678901234567890123456789012"
}
```
#### 响应示例
**状态码：200**
更新发布/迭代状态成功
```
{
  "status" : "success",
  "message" : null,
  "result" : {
    "cannot_finish_ar" : [ {
      "id" : "956239067176935424",
      "title" : "AR工作项1",
      "number" : "AR1234567890",
      "category" : "AR",
      "status" : {
        "id" : "1",
        "name" : "进行中"
      },
      "assignee" : {
        "id" : "a360371833bf4c558f796fd707b44daf",
        "name" : "用户A"
      },
      "baseline" : "unbaseline",
      "change_status" : "cannot_finish"
    } ]
  }
}
```
**状态码：400**
Bad Request
```
{
  "error_msg" : "参数错误，例如operate参数不在合法范围内",
  "error_code" : "PM.02175011"
}
```
#### 状态码
| 状态码 | 描述          |
|:---|:---|
| 200 | 更新发布/迭代状态成功 |
| 400 | Bad Request |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-projectman/ErrorCode.html)。
