# 查询项目空间的IR或者RR字段 - ListProgramFields
#### 功能介绍
查询项目空间的IR或者RR字段。
#### 调用方法
请参见[如何调用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:project:get | Read | -           | - codeartsreq:Model   - codeartsreq:ProjectId    | -  | -      |
   
#### URI
GET /v4/programs/{program_id}/fields
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| program_id | 是    | String | 参数解释： 项目空间id（提出或归属） 约束限制： \[0-9a-z\]{32} 取值范围： 不涉及 默认取值： 不涉及 |
   
表2Query参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| field_type | 是    | String | **参数解释：** 查询类型 **约束限制：** 不涉及 **取值范围：** RR IR **默认取值：** 不涉及 |
   
#### 请求参数
表3请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token。 通过调用IAM服务[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)接口获取（响应消息头中X-Subject-Token的值）。 **约束限制：** 不涉及。 **取值范围：** 长度为10\~32768个字符。 **默认取值：** 不涉及。 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数     | 参数类型                                                                       | 描述                                                          |
|:---|:---|:---|
| fields | Array of [ProgramField] objects | **参数解释：** 项目空间中RR的字段列表 |
   
 表5ProgramField 
| 参数                       | 参数类型                                                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|
| config                   | [ProgramFieldConfig] object           | **参数解释：** 字段配置信息                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| default_value_can_update | Boolean                                                                                | **参数解释：** 字段的默认值是否可以更改 **取值范围：** true（可更改） false（不可更改）                                                                                                                                                                                                                                                                                                              |
| id                       | String                                                                                 | **参数解释：** 字段id **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                             |
| label                    | String                                                                                 | **参数解释：** 字段在页面上显示的含义 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                      |
| name                     | String                                                                                 | **参数解释：** 字段名称 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                             |
| option_source            | String                                                                                 | 参数解释： 字段值的来源范围 取值范围： User（字段值可以是在项目空间中的所有成员） tag（标签） Status（状态） Importance（重要程度） Priority（优先级） Direct（字段值为根据数据类型） type（输入值） Text（字符串） |
| options                  | Array of [ProgramFieldOption] objects | **参数解释：** 该字段可选值 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                           |
| required_can_update      | Boolean                                                                                | **参数解释：** 更新是否必填                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| type                     | String                                                                                 | **参数解释：** 字段的类型                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
 表6ProgramFieldConfig 
| 参数            | 参数类型                                                                         | 描述                                                                                                                                          |
|:---|:---|:---|
| default_value | Array of [default_value] objects | **参数解释：** 默认值                                                                                          |
| field_id      | String                                                                       | **参数解释：** 字段id **取值范围：** 不涉及 |
| required      | Boolean                                                                      | **参数解释：** 是否必填 **取值范围：** 不涉及 |
   
 表7default_value 
| 参数    | 参数类型   | 描述                                                                                                                                               |
|:---|:---|:---|
| id    | String | **参数解释：** 默认值id **取值范围：** 不涉及     |
| label | String | **参数解释：** 字段值页面显示含义 **取值范围：** 不涉及 |
| name  | String | **参数解释：** 字段值名称 **取值范围：** 不涉及     |
   
 表8ProgramFieldOption 
| 参数    | 参数类型   | 描述                                                                                                                                                      |
|:---|:---|:---|
| id    | String | **参数解释：** 该字段可填入的值，创建RR时填入 **取值范围：** 不涉及 |
| label | String | **参数解释：** 该字段值在页面显示的值 **取值范围：** 不涉及      |
| name  | String | **参数解释：** 字段名称 **取值范围：** 不涉及             |
   
**状态码：400**
表9响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                            |
|:---|:---|:---|
| error_code | String | **参数解释**： 错误码。 **取值范围**： 不涉及。  |
| error_msg  | String | **参数解释**： 错误描述。 **取值范围**： 不涉及。 |
   
**状态码：401**
表10响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                            |
|:---|:---|:---|
| error_code | String | **参数解释**： 错误码。 **取值范围**： 不涉及。  |
| error_msg  | String | **参数解释**： 错误描述。 **取值范围**： 不涉及。 |
   
#### 请求示例
```
GET https://{endpoint}/v4/programs/41b5ccfa79904a9b9780005cd5ecc4d4/fields?field_type=RR
```
#### 响应示例
**状态码：200**
```
{
  "fields" : [ {
    "config" : {
      "default_value" : [ {
        "id" : "1",
        "label" : "默认选项1",
        "name" : "default1"
      } ],
      "field_id" : "field1",
      "required" : true
    },
    "default_value_can_update" : true,
    "id" : "field1",
    "label" : "任务名称",
    "name" : "task_name",
    "option_source" : "Text",
    "options" : [ {
      "id" : "option1",
      "label" : "选项1",
      "name" : "option1"
    }, {
      "id" : "option2",
      "label" : "选项2",
      "name" : "option2"
    } ],
    "required_can_update" : false,
    "type" : "Text"
  }, {
    "config" : {
      "default_value" : [ ],
      "field_id" : "field2",
      "required" : false
    },
    "default_value_can_update" : false,
    "id" : "field2",
    "label" : "任务状态",
    "name" : "task_status",
    "option_source" : "Status",
    "options" : [ ],
    "required_can_update" : true,
    "type" : "Select"
  } ]
}
```
#### 状态码
| 状态码 | 描述            |
|:---|:---|
| 200 | 请求成功并返回数据（数组） |
| 400 | Bad Request   |
| 401 | Unauthorized  |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-projectman/ErrorCode.html)。
