
# 列举函数版本 - ListFunctionVersions
#### 功能介绍
根据函数名称列举函数版本信息。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/LakeFormation/doc?api=ListFunctionVersions)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-lakeformation/abcd.html)。
#### URI
GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/functions/{function_name}/versions
表1路径参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| project_id    | 是    | String | **参数解释:** 项目编号。获取方法，请参见[获取项目ID](https://support.huaweicloud.com/api-lakeformation/lakeformation_04_0026.html)。 **约束限制:** 长度为1\~64个字符 **取值范围:** 长度为1\~64个字符 **默认取值:** 不涉及 |
| instance_id   | 是    | String | **参数解释:** LakeFormation实例ID。创建实例时自动生成。例如：2180518f-42b8-4947-b20b-adfc53981a25。 **约束限制:** 不涉及 **取值范围:** 不涉及 **默认取值:** 不涉及                                                 |
| catalog_name  | 是    | String | **参数解释:** catalog名称。 **约束限制:** 只能包含字母、数字和下划线，且长度为1\~256个字符。 **取值范围:** 长度为1\~256个字符 **默认取值:** 不涉及                                                                         |
| database_name | 是    | String | **参数解释:** 数据库名称。 **约束限制:** 只能包含中文、字母、数字、下划线、中划线，且长度为1\~128个字符。 **取值范围:** 长度为1\~128个字符 **默认取值:** 不涉及                                                                      |
| function_name | 是    | String | **参数解释:** 函数名称。 **约束限制:** 只能包含字母、数字和下划线，且长度为1\~256个字符。 **取值范围:** 长度为1\~256个字符 **默认取值:** 不涉及                                                                              |
   
表2Query参数 
| 参数           | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| begin_time   | 否    | String  | **参数解释:** 开始时间对应的UTC时间，返回该时间之后的元数据版本。 **约束限制:** 不涉及 **取值范围:** 不涉及 **默认取值:** 不涉及      |
| end_time     | 否    | String  | **参数解释:** 结束时间对应的UTC时间，返回该时间之前的元数据版本。 **约束限制:** 不涉及 **取值范围:** 不涉及 **默认取值:** 不涉及      |
| limit        | 否    | Integer | **参数解释:** 查询返回条数。 **约束限制:** 取值为1\~1000 **取值范围:** 取值为1\~1000 **默认取值:** 100            |
| marker       | 否    | String  | **参数解释:** 查询的起始记录ID。 **约束限制:** 最小长度为0，最大长度为256。 **取值范围:** 长度为0\~256个字符 **默认取值:** 不涉及 |
| reverse_page | 否    | Boolean | **参数解释:** 是否倒序查询。 **约束限制:** 不涉及 **取值范围:** 不涉及 **默认取值:** true                         |
   
#### 请求参数
表3请求Header参数 
| 参数           | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | Array of strings | **参数解释:** 租户token。 **约束限制:** 数组元素个数为1\~100 **取值范围:** 数组元素个数为1\~100 **默认取值:** 不涉及 |
   
#### 响应参数
**状态码：200**
表4响应Header参数 
| 参数           | 参数类型   | 描述           |
|:---|:---|:---|
| X-request-id | String | 请求ID，定位辅助信息。 |
   
表5响应Body参数 
| 参数                | 参数类型                                                                                | 描述                                                        |
|:---|:---|:---|
| metadata_versions | Array of [MetadataVersion] objects | **参数解释:** 元数据版本列表 |
| page_info         | [PagedInfo] object                       | **参数解释:** 分页信息    |
   
 表6MetadataVersion 
| 参数            | 参数类型   | 描述                                                                                                                         |
|:---|:---|:---|
| version_id    | String | **参数解释:** 版本ID                                                                     |
| operator      | String | **参数解释:** 操作人                                                                      |
| operate_time  | String | **参数解释:** 操作时间                                                                     |
| operate_type  | String | **参数解释:** 元数据操作类型：CREATE-创建，MODIFY-修改，DELETE-删除，UNDO-恢复，TRUNCATE-删除数据，RESTORE-恢复数据 |
| metadata_type | String | **参数解释:** 元数据类型：CATALOG-catalog，DATABASE-数据库，TABLE-表，FUNCTION-函数，PARTITION-分区      |
| metadata_name | String | **参数解释:** 元数据名称                                                                    |
| metadata_id   | String | **参数解释:** 元数据ID                                                                    |
| data_version  | String | **参数解释:** 数据版本                                                                     |
   
 表7PagedInfo 
| 参数              | 参数类型    | 描述                                                                                            |
|:---|:---|:---|
| current_count   | Integer | **参数解释:** 本次返回的对象个数。最小值为0，最大值为2000                    |
| next_marker     | String  | **参数解释:** 下一页查询地址。当不存在下一页，则值为null，当值为null时，响应Body无该参数 |
| previous_marker | String  | **参数解释:** 上一页查询地址。当不存在上一页，则值为null，当值为null时，响应Body无该参数 |
   
**状态码：400**
表8响应Body参数 
| 参数           | 参数类型   | 描述                                                       |
|:---|:---|:---|
| error_code   | String | **参数解释:** 错误码    |
| error_msg    | String | **参数解释:** 错误描述   |
| solution_msg | String | **参数解释:** 解决方案描述 |
   
**状态码：401**
表9响应Body参数 
| 参数           | 参数类型   | 描述                                                       |
|:---|:---|:---|
| error_code   | String | **参数解释:** 错误码    |
| error_msg    | String | **参数解释:** 错误描述   |
| solution_msg | String | **参数解释:** 解决方案描述 |
   
**状态码：403**
表10响应Body参数 
| 参数         | 参数类型                                                  | 描述                                                     |
|:---|:---|:---|
| error      | [Error] object | **参数解释:** 错误信息 |
| error_code | String                                                | **参数解释:** 错误码  |
| error_msg  | String                                                | **参数解释:** 错误描述 |
| title      | String                                                | **参数解释:** 标题   |
   
 表11Error 
| 参数         | 参数类型   | 描述                                                     |
|:---|:---|:---|
| error_code | String | **参数解释:** 错误码  |
| error_msg  | String | **参数解释:** 错误描述 |
| title      | String | **参数解释:** 标题   |
| message    | String | **参数解释:** 错误信息 |
| code       | String | **参数解释:** 状态码  |
   
**状态码：404**
表12响应Body参数 
| 参数           | 参数类型   | 描述                                                       |
|:---|:---|:---|
| error_code   | String | **参数解释:** 错误码    |
| error_msg    | String | **参数解释:** 错误描述   |
| solution_msg | String | **参数解释:** 解决方案描述 |
   
**状态码：408**
表13响应Body参数 
| 参数           | 参数类型   | 描述                                                       |
|:---|:---|:---|
| error_code   | String | **参数解释:** 错误码    |
| error_msg    | String | **参数解释:** 错误描述   |
| solution_msg | String | **参数解释:** 解决方案描述 |
   
**状态码：500**
表14响应Body参数 
| 参数           | 参数类型   | 描述                                                       |
|:---|:---|:---|
| error_code   | String | **参数解释:** 错误码    |
| error_msg    | String | **参数解释:** 错误描述   |
| solution_msg | String | **参数解释:** 解决方案描述 |
   
#### 请求示例
```
GET https://{endpoint} /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/functions/{function_name}/versions
```
#### 响应示例
**状态码：200**
OK
```
{
  "page_info" : {
    "current_count" : 1,
    "next_marker" : null,
    "previous_marker" : null
  },
  "metadata_versions" : [ {
    "version_id" : "6628b08a9f1c8f29a9fcc7b4",
    "operator" : "test",
    "operate_time" : "2022-12-09T01:50:56.000+00:00",
    "operate_type" : "CREATE",
    "metadata_type" : "FUNCTION",
    "metadata_name" : "function"
  } ]
}
```
**状态码：400**
Bad Request
```
{
  "error_code" : "common.01000001",
  "error_msg" : "failed to read http request, please check your input, code: 400, reason: Type mismatch., cause: TypeMismatchException"
}
```
**状态码：401**
Unauthorized
```
{
  "error_code" : "APIG.1002",
  "error_msg" : "Incorrect token or token resolution failed"
}
```
**状态码：403**
Forbidden
```
{
  "error" : {
    "code" : "403",
    "message" : "X-Auth-Token is invalid in the request",
    "error_code" : null,
    "error_msg" : null,
    "title" : "Forbidden"
  },
  "error_code" : "403",
  "error_msg" : "X-Auth-Token is invalid in the request",
  "title" : "Forbidden"
}
```
**状态码：404**
Not Found
```
{
  "error_code" : "common.01000001",
  "error_msg" : "response status exception, code: 404"
}
```
**状态码：408**
Request Timeout
```
{
  "error_code" : "common.00000408",
  "error_msg" : "timeout exception occurred"
}
```
**状态码：500**
Internal Server Error
```
{
  "error_code" : "common.00000500",
  "error_msg" : "internal error"
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | OK                    |
| 400 | Bad Request           |
| 401 | Unauthorized          |
| 403 | Forbidden             |
| 404 | Not Found             |
| 408 | Request Timeout       |
| 500 | Internal Server Error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-lakeformation/ErrorCode.html)。
