
# 列举函数 - ListFunctions
#### 功能介绍
列举函数。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/LakeFormation/doc?api=ListFunctions)中调试该接口，支持自动认证鉴权。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
表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个字符 **默认取值:** 不涉及                                                                      |
   
表2Query参数 
| 参数                    | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| function_name_pattern | 否    | String  | **参数解释:** 函数名称通配符。 **约束限制:** 只能包含字母、数字和_\|\*.特殊字符，且最大长度为256个字符。 **取值范围:** 最大长度为256 **默认取值:** 不涉及 |
| limit                 | 否    | Integer | **参数解释:** 查询返回条数。 **约束限制:** 取值为1\~2000 **取值范围:** 取值为1\~2000 **默认取值:** 1000                       |
| marker                | 否    | String  | **参数解释:** 查询的起始记录ID。 **约束限制:** 最小长度为0，最大长度为256。 **取值范围:** 长度为0\~256个字符 **默认取值:** 不涉及             |
| reverse_page          | 否    | Boolean | **参数解释:** 是否倒序查询。 **约束限制:** 不涉及 **取值范围:** 不涉及 **默认取值:** false                                    |
| deleted               | 否    | Boolean | **参数解释:** 是否查询被删除元数据。 **约束限制:** 不涉及 **取值范围:** 不涉及 **默认取值:** false                                |
   
#### 请求参数
表3请求Header参数 
| 参数           | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | Array of strings | **参数解释:** 租户token。 **约束限制:** 数组元素个数为1\~100 **取值范围:** 数组元素个数为1\~100 **默认取值:** 不涉及 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数        | 参数类型                                                           | 描述                                              |
|:---|:---|:---|
| page_info | [PagedInfo] object         | **参数解释:** 分页信息 |
| functions | Array of [Function] objects | **参数解释:** 函数   |
   
 表5PagedInfo 
| 参数              | 参数类型    | 描述                                                                                     |
|:---|:---|:---|
| current_count   | Integer | **参数解释:** 本次返回的对象个数。最小值为0，最大值为2000                    |
| next_marker     | String  | **参数解释:** 下一页查询地址。当不存在下一页，则值为null，当值为null时，响应Body无该参数 |
| previous_marker | String  | **参数解释:** 上一页查询地址。当不存在上一页，则值为null，当值为null时，响应Body无该参数 |
   
 表6Function 
| 参数                     | 参数类型                                                                                 | 描述                                                                                                                                                      |
|:---|:---|:---|
| catalog_name           | String                                                                               | **参数解释:** catalog名称                                                                                                    |
| catalog_id             | String                                                                               | **参数解释:** catalogID                                                                                                    |
| database_name          | String                                                                               | **参数解释:** 数据库名称                                                                                                        |
| database_id            | String                                                                               | **参数解释:** 数据库ID                                                                                                        |
| function_name          | String                                                                               | **参数解释:** 函数名称。只能包含字母、数字和下划线，且长度为1\~256个字符                                                                             |
| function_type          | String                                                                               | **参数解释:** 函数类型,JAVA,remoteUDF,PYTHON,LAKE                                                                              |
| function_id            | String                                                                               | **参数解释:** 函数ID                                                                                                         |
| owner                  | String                                                                               | **参数解释:** 函数所有者。只能包含字母、数字和下划线，且长度为1\~256个字符                                                                            |
| owner_type             | String                                                                               | **参数解释:** 所有者类型：USER-用户、GROUP-组、ROLE-角色                                                                                |
| owner_auth_source_type | String                                                                               | **参数解释:** 所有者授权来源类型：IAM-云用户、SAML-联邦、LDAP-LDAP用户、LOCAL-本地用户、AGENTTENANT-委托、OTHER-其它。LakeFormation服务分为一期和二期，一期响应Body无该参数 |
| class_name             | String                                                                               | **参数解释:** 函数类名                                                                                                         |
| create_time            | String                                                                               | **参数解释:** 函数创建时间                                                                                                       |
| update_time            | String                                                                               | **参数解释:** 函数元数据最后一次修改时间                                                                                                |
| resource_uris          | Array of [FunctionResourceUri] objects | **参数解释:** 函数地址信息                                                                                                       |
| version_id             | String                                                                               | **参数解释:** 版本ID                                                                                                         |
| parameters             | Map\<String,String\>                                                                 | **参数解释:** 参数                                                                                                           |
   
 表7FunctionResourceUri 
| 参数   | 参数类型   | 描述                                                                                                                                                    |
|:---|:---|:---|
| type | String | **参数解释:** 函数包类型：JAR，FILE，ARCHIVE，URI **取值范围:** 不涉及 |
| uri  | String | **参数解释:** 函数包地址信息 **取值范围:** 长度为1\~4096个字符          |
   
**状态码：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
```
#### 响应示例
**状态码：200**
OK
```
{
  "page_info" : {
    "current_count" : 2,
    "next_marker" : null,
    "previous_marker" : null
  },
  "functions" : [ {
    "catalog_name" : "catalog_1",
    "database_name" : "database",
    "function_name" : "123kk",
    "function_type" : "JAVA",
    "owner" : "owner_1",
    "owner_type" : "USER",
    "owner_auth_source_type" : "IAM",
    "class_name" : "lxy",
    "create_time" : "2022-12-08T08:18:54.000+00:00",
    "resource_uris" : [ {
      "type" : "FILE",
      "uri" : "obs://lakeformation-test/test2/6/"
    } ]
  }, {
    "catalog_name" : "catalog_2",
    "database_name" : "database",
    "function_name" : "1456",
    "function_type" : "JAVA",
    "owner" : "owner_2",
    "owner_type" : "USER",
    "owner_auth_source_type" : "IAM",
    "class_name" : "34",
    "create_time" : "2022-12-09T01:50:56.000+00:00",
    "resource_uris" : [ {
      "type" : "JAR",
      "uri" : "obs://lakeformation-test/"
    }, {
      "type" : "FILE",
      "uri" : "obs://lakeformation-test/test3/"
    } ]
  } ]
}
```
**状态码：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)。
