
# 新建计划 - CreatePlans
#### 功能介绍
在项目下新建计划（里程碑、发布、迭代），支持创建子迭代。
#### 调用方法
请参见[如何调用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:create | Write | -           | - codeartsreq:Model   - codeartsreq:ProjectId    | -  | -      |
   
#### URI
POST /v1/planservice/projects/{project_id}/plans
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释**： 项目的32位uuid，项目唯一标识，通过[查询项目列表](https://support.huaweicloud.com/api-projectman/ListProjectsV4.html)接口获取，响应消息体中的**project_id**字段的值就是项目ID。 **约束限制**： 32个字符，由英文字母和数字组成。 **取值范围**： 不涉及。 **默认取值**： 不涉及。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| x-auth-token | 是    | String | **参数解释**： 用户Token。通过调用IAM服务[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)接口获取（响应消息头中X-Subject-Token的值）。 **约束限制**： 不涉及。 **取值范围**： 长度为10-32768的字符串。 **默认取值**： 不涉及。 |
   
表3请求Body参数 
| 参数              | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| title           | 是    | String | **参数解释**： 计划标题。 **约束限制**： 不涉及。 **取值范围**： 1\~256个字符。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                          |
| category        | 是    | String | **参数解释**： 计划分类，枚举类型。 **约束限制**： 不涉及。 **取值范围**： - PI：发布   - Iteration：迭代   - PlanMilestone：里程碑    **默认取值**： 不涉及。 |
| description     | 否    | String | **参数解释**： 计划描述信息。 **约束限制**： 不涉及。 **取值范围**： 0\~1000个字符。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                       |
| plan_start_date | 是    | String | **参数解释**： 计划开始时间，格式为yyyy-MM-dd，如2024-01-01。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                    |
| plan_end_date   | 是    | String | **参数解释**： 计划完成时间，格式为yyyy-MM-dd，如2024-01-01。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                    |
| parent_id       | 否    | String | **参数解释**： 父计划ID，当category为Iteration时必填，用于指定所属的发布计划。 **约束限制**： category为Iteration时必填。 **取值范围**： 长度为18\~19个字符的数字字符串。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                           |
| workload        | 否    | String | **参数解释**： 预估工作量，用于标识计划所需的人力投入，单位人/天。 **约束限制**： 不涉及。 **取值范围**： 0\~11个字符。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                      |
| owner           | 否    | String | **参数解释**： 责任人ID，标识计划的负责人。 **约束限制**： 不涉及。 **取值范围**： 长度为32个字符。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数      | 参数类型                                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| status  | String                                                                 | **参数解释**： 返回状态。 **取值范围**： - success：操作成功   - error：操作失败    |
| message | String                                                                 | **参数解释**： 提示信息。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                          |
| result  | [PlanResponseResult] object | **参数解释**： 计划详情数据，包含发布/迭代的完整信息。                                                                                                                                                                                                                                                                                                                                                        |
   
 表5PlanResponseResult 
| 参数              | 参数类型                                                                             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|
| id              | String                                                                           | **参数解释：** 发布、迭代、里程碑的ID **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| title           | String                                                                           | **参数解释：** 标题 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| category        | String                                                                           | **参数解释：** 分类，枚举类型 **取值范围：** - PI：发布   - Iteration：迭代   - PlanMilestone：里程碑                     |
| description     | String                                                                           | **参数解释：** 描述 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| state           | String                                                                           | **参数解释：** 作废标识，枚举类型。 **取值范围：** - 正在工作：可正常操作的发布。   - 作废：软删除后的发布。   - 删除：彻底删除后的发布。               |
| status          | String                                                                           | **参数解释：** 发布/迭代的状态，枚举类型。 **取值范围：** - planned：发布/计划未开始   - going：发布/计划进行中   - ended：发布/计划已结束    |
| children        | Array of [PlanResponseResult] objects | **参数解释：** 子项目迭代信息                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| created_by      | String                                                                           | **参数解释：** 创建人ID **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| modified_by     | String                                                                           | **参数解释：** 最近更新人ID。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| plan_start_date | Long                                                                             | **参数解释：** 计划开始时间，unix时间戳，单位：毫秒。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                              |
| plan_end_date   | Long                                                                             | **参数解释：** 计划完成时间，unix时间戳，单位：毫秒。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                              |
| created_date    | Long                                                                             | **参数解释：** 创建时间，unix时间戳，单位：毫秒 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| parent_id       | String                                                                           | **参数解释：** 父计划ID，当计划类型为迭代(Iteration)时，用于指定所属的发布计划。 **取值范围：** 长度为18\~19个字符的数字字符串。                                                                                                                                                                                                                                                                                                                                                                                            |
| baseline        | String                                                                           | **参数解释：** 基线状态，枚举类型，标识计划是否已纳入基线管理。 **取值范围：** - baselined：已基线   - unbaseline：未基线   - ""：未基线     |
| workload        | String                                                                           | **参数解释：** 预估工作量，用于标识计划所需的人力或时间投入，单位人/天。 **取值范围：** 最大长度11个字符。                                                                                                                                                                                                                                                                                                                                                                                                               |
| owner           | String                                                                           | **参数解释：** 责任人ID，标识计划的负责人。 **取值范围：** 长度为32位的字符串。                                                                                                                                                                                                                                                                                                                                                                                                                            |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                            |
|:---|:---|:---|
| error_code | String | **参数解释**： 错误码。 **取值范围**： 不涉及。    |
| error_msg  | String | **参数解释**： 错误描述信息。 **取值范围**： 不涉及。 |
   
#### 请求示例
- 新建发布
  ```
  POST https://{endpoint}/v1/planservice/projects/2a0d6799fe0d48b29ab8710be556d461/plans
  {
    "title" : "plan_0731_1",
    "category" : "PI",
    "plan_end_date" : "2025-01-20",
    "plan_start_date" : "2025-02-01"
  }
  ```
  
- 新建迭代
  ```
  POST https://{endpoint}/v1/planservice/projects/2a0d6799fe0d48b29ab8710be556d461/plans
  {
    "title" : "iteration_0731_1",
    "category" : "Iteration",
    "plan_end_date" : "2025-01-20",
    "plan_start_date" : "2025-02-01",
    "parent_id" : "1088833093706829825"
  }
  ```
  
 
#### 响应示例
**状态码：200**
新建计划成功
```
{
  "status" : "success",
  "message" : null,
  "result" : {
    "id" : "123e4567e89b12d3a456426614174000",
    "title" : "项目里程碑1",
    "category" : "PlanMilestone",
    "description" : "这是项目的一个重要里程碑",
    "state" : "正在工作",
    "status" : "planned",
    "children" : [ {
      "id" : "123e4567e89b12d3a456426614174000",
      "title" : "迭代1",
      "category" : "Iteration",
      "description" : "迭代1的描述",
      "state" : "正在工作",
      "status" : "planned",
      "children" : [ ],
      "created_by" : "user1",
      "modified_by" : "user1",
      "plan_start_date" : 1633072800000,
      "plan_end_date" : 1635751200000,
      "created_date" : 1633072800000,
      "parent_id" : "123e4567e89b12d3a456426614174000",
      "baseline" : "unbaseline",
      "workload" : "10人天",
      "owner" : "user2"
    } ],
    "created_by" : "admin",
    "modified_by" : "admin",
    "plan_start_date" : 1630466400000,
    "plan_end_date" : 1633072800000,
    "created_date" : 1630466400000,
    "parent_id" : null,
    "baseline" : "unbaseline",
    "workload" : "20人天",
    "owner" : "user1"
  }
}
```
**状态码：400**
错误信息
```
{
  "error_msg" : "Invalid project_id or other parameters",
  "error_code" : "AS.0001"
}
```
#### 状态码
| 状态码 | 描述     |
|:---|:---|
| 200 | 新建计划成功 |
| 400 | 错误信息   |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-projectman/ErrorCode.html)。
