> For the complete documentation index, see [llms.txt](https://fusionauth.io/docs/llms.txt)

# Update a Lambda

API documentation for the FusionAuth Update a Lambda API.

# Update a Lambda

This API is used to update an existing Lambda.

You must specify all of the properties of the Lambda when calling this API with the `PUT` HTTP method. When used with `PUT`, this API doesn't merge the existing Lambda and your new data. It replaces the existing Lambda with your new data.

Utilize the `PATCH` HTTP method to send specific changes to merge into an existing Lambda.

The lambda type may not be changed.

[!Global API Key Authentication](https://fusionauth.io/docs/apis/authentication.md#global-api-key-authentication)

Update the Lambda with the given Id

PUT/api/lambda/{lambdaId}

OpenAPI Spec

PATCH/api/lambda/{lambdaId}

OpenAPI Spec

note

For backward compatibility, the `PATCH` method accepts the same media type (specified by a `Content-Type` of `application/json`) and body as the `PUT` request. You can also use the following media types for different behavior:

*   [JSON Patch/RFC 6902](https://www.rfc-editor.org/rfc/rfc6902): `application/json-patch+json`
*   [JSON Merge Patch/RFC 7396](https://www.rfc-editor.org/rfc/rfc7396): `merge-patch+json`

For details, see the [PATCH documentation](https://fusionauth.io/docs/apis.md#the-patch-http-method).

Using a media type of `application/json` merges the provided request parameters into the existing object. As a result, all parameters are optional with `PATCH`: only provide the values you want to change. To remove a value, provide a `null` value. Patching an `Array` appends all values in the new list to the old list.

## Request

### Request Parameters

`lambdaId`UUIDrequiredImmutable

The unique Id of the Lambda to update.

### Request Body

`lambda.body`Stringrequired

The lambda function body, a JavaScript function.

`lambda.debug`BooleanoptionalDefaults to false

Whether or not debug event logging is enabled for this Lambda.

`lambda.enabled`BooleanoptionalDefaults to trueDEPRECATED

This value is not used, and may be removed in a future version.

`lambda.engineType`StringrequiredDefaults to GraalJSAvailable since 1.35.0

The JavaScript execution engine for the lambda. The possible values are:

*   `GraalJS`
*   `Nashorn` Deprecated since 1.35.0, Removed in 1.49.0

`lambda.name`Stringrequired

The name of the lambda.

*Example Request JSON*

```json
{
  "lambda": {
    "body": "function reconcile(one, two) { console.log('Hello world'); }",
    "debug": false,
    "engineType": "GraalJS",
    "name": "Name"
  }
}
```

## Response

The response for this API contains the Lambda that was updated.

*Response Codes*

| Code | Description |
| --- | --- |
| 200 | The request was successful. The response will contain a JSON body. |
| 400 | The request was invalid and/or malformed. The response will contain an [Errors](https://fusionauth.io/docs/apis/errors.md) JSON Object with the specific errors. This status will also be returned if a paid FusionAuth license is required and is not present. |
| 401 | You did not supply a valid Authorization header. The header was omitted or your API key was not valid. The response will be empty. See [Authentication](https://fusionauth.io/docs/apis/authentication.md). |
| 404 | The object you are trying to update doesn't exist. The response will be empty. |
| 500 | There was an internal error. A stack trace is provided and logged in the FusionAuth log files. The response will be empty. |

#### Response Body

`lambda.body`String

The lambda function body, a JavaScript function.

`lambda.debug`Boolean

Whether or not debug event logging is enabled for this Lambda.

`lambda.enabled`BooleanDEPRECATED

This value is not used, and may be removed in a future version.

`lambda.engineType`String

The JavaScript execution engine for the lambda. The possible values are:

*   `GraalJS`
*   `Nashorn` Deprecated since 1.35.0, Removed in 1.49.0

`lambda.id`UUID

The Id of the Lambda.

`lambda.insertInstant`Long

The [instant](https://fusionauth.io/docs/reference/data-types.md#instants) that the lambda created.

`lambda.lastUpdateInstant`Long

The [instant](https://fusionauth.io/docs/reference/data-types.md#instants) that the lambda was last updated.

`lambda.name`String

The name of the lambda.

`lambda.type`String

The lambda type. The possible values are:

*   `AppleReconcile`
*   `ClientCredentialsJWTPopulate`
*   `EpicGamesReconcile`
*   `ExternalJWTReconcile`
*   `FacebookReconcile`
*   `GoogleReconcile`
*   `HYPRReconcile`
*   `JWTPopulate`
*   `LDAPConnectorReconcile`
*   `LinkedInReconcile`
*   `LoginValidation`
*   `MFARequirement`
*   `NintendoReconcile`
*   `OpenIDReconcile`
*   `SAMLv2Populate`
*   `SAMLv2Reconcile`
*   `SCIMGroupRequestConverter`
*   `SCIMGroupResponseConverter`
*   `SCIMUserRequestConverter`
*   `SCIMUserResponseConverter`
*   `SelfServiceRegistrationValidation`
*   `SonyPSNReconcile`
*   `SteamReconcile`
*   `TwitchReconcile`
*   `TwitterReconcile`
*   `UserInfoPopulate`
*   `XboxReconcile`

*Example Response JSON*

```json
{
  "lambda": {
    "id": "7e66bac3-fa41-47fb-b8fd-12b35b5e1807",
    "body": "function reconcile(user, registration, samlResponse) { registration.roles = samlResponse.assertion.attributes['roles'] || [];}",
    "name": "Name",
    "debug": false,
    "enabled": true,
    "engineType": "GraalJS",
    "insertInstant": 1572469040579,
    "lastUpdateInstant": 1595361143101,
    "type": "SAMLv2Reconcile"
  }
}
```