

# API de funciones definidas por el usuario
<a name="aws-glue-api-catalog-functions"></a>

La API de funciones definidas por el usuario describe los tipos de datos y las operaciones de AWS Glue que se utilizan para trabajar con funciones.

## Tipos de datos
<a name="aws-glue-api-catalog-functions-objects"></a>
+ [Estructura UserDefinedFunction](#aws-glue-api-catalog-functions-UserDefinedFunction)
+ [Estructura UserDefinedFunctionInput](#aws-glue-api-catalog-functions-UserDefinedFunctionInput)

## Estructura UserDefinedFunction
<a name="aws-glue-api-catalog-functions-UserDefinedFunction"></a>

Representa el equivalente a una definición de función Hive definida por el usuario (`UDF`).

**Campos**
+ `FunctionName`: cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El nombre de la función.
+ `DatabaseName`: cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Nombre de la base de datos del catálogo que contiene la función.
+ `ClassName`: cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  La clase de Java que contiene el código de la función.
+ `OwnerName`: cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El propietario de la función.
+ `OwnerType`: cadena UTF-8 (valores válidos: `USER` \$1 `ROLE` \$1 `GROUP`).

  El tipo de propietario.
+ `CreateTime`: marca temporal.

  La hora a la que se creó la función.
+ `ResourceUris`: matriz de objetos [ResourceUri](aws-glue-api-common.md#aws-glue-api-common-ResourceUri), con 1000 estructuras como máximo.

  Los URI del recurso para la función.
+ `CatalogId`: cadena de ID de catálogo, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El ID del Catálogo de datos donde reside la función.

## Estructura UserDefinedFunctionInput
<a name="aws-glue-api-catalog-functions-UserDefinedFunctionInput"></a>

Un estructura que se utiliza para crear o actualizar funciones definidas por el usuario.

**Campos**
+ `FunctionName`: cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El nombre de la función.
+ `ClassName`: cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  La clase de Java que contiene el código de la función.
+ `OwnerName`: cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El propietario de la función.
+ `OwnerType`: cadena UTF-8 (valores válidos: `USER` \$1 `ROLE` \$1 `GROUP`).

  El tipo de propietario.
+ `ResourceUris`: matriz de objetos [ResourceUri](aws-glue-api-common.md#aws-glue-api-common-ResourceUri), con 1000 estructuras como máximo.

  Los URI del recurso para la función.

## Operaciones
<a name="aws-glue-api-catalog-functions-actions"></a>
+ [Acción CreateUserDefinedFunction (Python: create\$1user\$1defined\$1function)](#aws-glue-api-catalog-functions-CreateUserDefinedFunction)
+ [Acción UpdateUserDefinedFunction (Python: update\$1user\$1defined\$1function)](#aws-glue-api-catalog-functions-UpdateUserDefinedFunction)
+ [Acción DeleteUserDefinedFunction (Python: delete\$1user\$1defined\$1function)](#aws-glue-api-catalog-functions-DeleteUserDefinedFunction)
+ [Acción GetUserDefinedFunction (Python: get\$1user\$1defined\$1function)](#aws-glue-api-catalog-functions-GetUserDefinedFunction)
+ [Acción GetUserDefinedFunctions (Python: get\$1user\$1defined\$1functions)](#aws-glue-api-catalog-functions-GetUserDefinedFunctions)

## Acción CreateUserDefinedFunction (Python: create\$1user\$1defined\$1function)
<a name="aws-glue-api-catalog-functions-CreateUserDefinedFunction"></a>

Crea una nueva definición de función en el Catálogo de datos.

**Solicitud**
+ `CatalogId`: cadena de ID de catálogo, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El ID del Catálogo de datos donde se crea la función. Si no se proporciona ninguno, se usará de forma predeterminada el ID de cuenta de AWS.
+ `DatabaseName`: *obligatorio:* cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El nombre de la base de datos de catálogos donde se crea la función.
+ `FunctionInput` – *Obligatorio:* objeto [UserDefinedFunctionInput](#aws-glue-api-catalog-functions-UserDefinedFunctionInput).

  Objeto `FunctionInput` que define la función que se va a crear en el Catálogo de datos.

**Respuesta**
+ *Sin parámetros de respuesta.*

**Errores**
+ `AlreadyExistsException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `GlueEncryptionException`

## Acción UpdateUserDefinedFunction (Python: update\$1user\$1defined\$1function)
<a name="aws-glue-api-catalog-functions-UpdateUserDefinedFunction"></a>

Actualiza una definición de función existente en el Catálogo de datos.

**Solicitud**
+ `CatalogId`: cadena de ID de catálogo, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El ID del Catálogo de datos donde se encuentra la función que se va a actualizar. Si no se proporciona ninguno, se usará de forma predeterminada el ID de cuenta de AWS.
+ `DatabaseName`: *obligatorio:* cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El nombre de la base de datos de catálogos donde se encuentra la función que se va a actualizar.
+ `FunctionName`: *obligatorio:* cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El nombre de la función.
+ `FunctionInput` – *Obligatorio:* objeto [UserDefinedFunctionInput](#aws-glue-api-catalog-functions-UserDefinedFunctionInput).

  Un objeto `FunctionInput` que redefine la función que en el Catálogo de datos.

**Respuesta**
+ *Sin parámetros de respuesta.*

**Errores**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

## Acción DeleteUserDefinedFunction (Python: delete\$1user\$1defined\$1function)
<a name="aws-glue-api-catalog-functions-DeleteUserDefinedFunction"></a>

Elimina una definición de función existente del Catálogo de datos.

**Solicitud**
+ `CatalogId`: cadena de ID de catálogo, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El ID del Catálogo de datos donde se encuentra la función que se va a eliminar. Si no se proporciona ninguno, el ID de cuenta de AWS se usará de forma predeterminada.
+ `DatabaseName`: *obligatorio:* cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El nombre de la base de datos de catálogos donde se encuentra la función.
+ `FunctionName`: *obligatorio:* cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El nombre de la definición de la función que se va a eliminar.

**Respuesta**
+ *Sin parámetros de respuesta.*

**Errores**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## Acción GetUserDefinedFunction (Python: get\$1user\$1defined\$1function)
<a name="aws-glue-api-catalog-functions-GetUserDefinedFunction"></a>

Recupera una definición de función especificada del Catálogo de datos.

**Solicitud**
+ `CatalogId`: cadena de ID de catálogo, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El ID del Catálogo de datos donde se encuentra la función que se va a recuperar. Si no se proporciona ninguno, se usará de forma predeterminada el ID de cuenta de AWS.
+ `DatabaseName`: *obligatorio:* cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El nombre de la base de datos de catálogos donde se encuentra la función.
+ `FunctionName`: *obligatorio:* cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El nombre de la función.

**Respuesta**
+ `UserDefinedFunction`: un objeto [UserDefinedFunction](#aws-glue-api-catalog-functions-UserDefinedFunction).

  La definición de la función solicitada.

**Errores**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

## Acción GetUserDefinedFunctions (Python: get\$1user\$1defined\$1functions)
<a name="aws-glue-api-catalog-functions-GetUserDefinedFunctions"></a>

Recupera varias definiciones de función del Catálogo de datos.

**Solicitud**
+ `CatalogId`: cadena de ID de catálogo, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El ID del Catálogo de datos donde se encuentran las funciones que se van a recuperar. Si no se proporciona ninguno, se usará de forma predeterminada el ID de cuenta de AWS.
+ `DatabaseName`: cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  El nombre de la base de datos de catálogos donde se encuentra las funciones. Si no se proporciona ninguno, se devolverán las funciones de todas las bases de datos del catálogo.
+ `Pattern`: *obligatorio:* cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Cadena con patrón nombre-de-función opcional que filtra las definiciones de función que se devuelven.
+ `NextToken`: cadena UTF-8.

  Token de continuación si se trata de una llamada de continuidad.
+ `MaxResults`: número (entero) que no es inferior a 1 ni es superior a 100.

  El número máximo de funciones que se devuelven en una respuesta.

**Respuesta**
+ `UserDefinedFunctions`: matriz de objetos [UserDefinedFunction](#aws-glue-api-catalog-functions-UserDefinedFunction).

  Lista de las definiciones de función solicitadas.
+ `NextToken`: cadena UTF-8.

  Token de continuación, si la lista de funciones que se devuelve no incluye la última función solicitada.

**Errores**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `GlueEncryptionException`