# March 13, 2025

## 1.14.2

**`(fix):`** Fix issue a NullReferenceException for generated root clients with typed headers in client options.

## 1.14.1

**`(fix):`** Fix issue where a type is written but conflicts with the namespace it is written in.

## 1.14.0

**`(feat):`** The SDK now supports the `AdditionalBodyProperties` and `AdditionalQueryParameters` request options, which
can be used to add arbitrary properties to the request. This is useful for interacting
with alpha or undocumented functionality.

```csharp
var response = await client.Users.Create(
  ...,
  new RequestOptions {
    AdditionalBodyProperties = new Dictionary<string, object> {
      { "key", "value" }
    },
  }
);
```

## 1.13.2

**`(fix):`** Fix issue where MultipartFormTests wouldn't pass because the timezone on the local machine is different than the timezone on the CI machine.

## 1.13.1

**`(fix):`** Forward compatible enums has a static method `Custom(string value)` that allows you to create a new instance of the enum with a custom value.
"Custom" is a commonly used enum value, and we want to avoid conflicts with the static method, so we're renaming the static method to `FromCustom(string value)`.
This feature is gated behind the `experimental-enable-forward-compatible-enums` configuration option, so we're accepting this as a breaking change without a major version bump.

**`(feat):`** Forward compatible enums can be explicitly casted from and to strings.

```csharp
string myEnumAsString = (string)MyEnum.Enum1;
MyEnum myEnum = (MyEnum)"custom-value";
```

Note: We're not supporting implicit casts here because it could lead to behavior the user doesn't expect.

## 1.13.0

**`(feat):`** Add support for multipartform requests with file and non-file parameters.
This is useful when you want to send a file along with other form data in a single request.

For example, you can use the following code to upload a file with a description and some metadata:

```csharp
await client.UploadAsync(
    new UploadRequest
    {
        File = new FileParameter { Stream = fileStream, FileName = "file.txt" },
        Description = "This is a test file",
        Meta = new Meta {
            Key1 = "value1",
            Key2 = "value2"
        }
    }
);
```