> This page is for SDKs, version Legacy.
> For other versions, use one of these documentation indexes:
> - Current (default): https://buildwithfern.com/learn/sdks/current/llms.txt
> - Legacy: https://buildwithfern.com/learn/sdks/legacy/llms.txt

> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt.

## 3.32.0

**`(feat):`** Add endpoint-level security support with routing auth providers. APIs can now define different
authentication requirements per endpoint using the ENDPOINT_SECURITY auth mode. The SDK generates
individual auth providers (Bearer, Basic, ApiKey, OAuth, InferredAuth) and a RoutingAuthProvider
that routes requests to the appropriate provider based on each endpoint's security requirements.
Supports OR (any of) and AND (all of) auth requirement combinations.

To enable, add `auth: endpoint-security: {}` to your api.yml and define per-endpoint auth in your
service definitions using the `auth` field on each endpoint.

## 3.31.0

**`(feat):`** Add `additionalQueryParameters` support to `RequestOptions`, allowing users to add query parameters
to API requests at runtime. Query parameters added via RequestOptions override any request-defined
parameters with the same key. This mirrors the existing `addHeader` pattern.

Usage example:

```java
client.endpoint(
    Request.builder().build(),
    RequestOptions.builder()
        .addQueryParameter("key", "value")
        .build()
);
```

## 3.30.0

**`(feat):`** Add `enable-gradle-profiling` configuration option for profiling Gradle commands during generation.

## 3.29.2

**`(fix):`** Add `notify`, `notifyAll`, and `wait` to reserved method names to prevent generated SDK
methods from conflicting with final methods in Java's Object class. This fixes compilation
errors when an API has a subpackage named "notify" (e.g., Twilio's Notify API).

## 3.29.1

**`(fix):`** Fix `_Builder` class to support all builder methods (url, timeout, environment, maxRetries,
httpClient, addHeader) so method chaining works in any order. This allows customers upgrading
from 3.18.x who wrote `builder().url().token()` to continue working without compile errors.
Configuration values set on `_Builder` are now properly passed through to `_TokenAuth` and
`_CredentialsAuth` when `token()` or `credentials()` is called.