Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
b754fec
chore(internal): use better namespace aliases
stainless-app[bot] Jan 13, 2026
fda9700
perf(client): add json deserialization caching
stainless-app[bot] Jan 13, 2026
588abd9
refactor(client): add `JsonDictionary` identity methods
stainless-app[bot] Jan 13, 2026
a2a5845
fix(client): bad deserialize call for void method
stainless-app[bot] Jan 13, 2026
9170476
fix(client): bad reference
stainless-app[bot] Jan 13, 2026
196bf8e
fix(client): freeze models on property access
stainless-app[bot] Jan 13, 2026
d9577f1
refactor(internal): `JsonElement` constant construction
stainless-app[bot] Jan 13, 2026
ad0d8ff
fix(client): dictionary type
stainless-app[bot] Jan 13, 2026
ebb48fc
chore(client): refactor union instantiation
stainless-app[bot] Jan 13, 2026
2afcb10
fix(client): missing immutable -> readonly conversion
stainless-app[bot] Jan 13, 2026
d7df223
chore(internal): regenerate SDK with no functional changes
stainless-app[bot] Jan 13, 2026
bc7871a
chore(client): consistently use serializer options
stainless-app[bot] Jan 14, 2026
2d1ab11
chore(client): use mutable collections for union deserialization
stainless-app[bot] Jan 14, 2026
9bf8de8
fix(client): throw api enum errors as invalid data exception
stainless-app[bot] Jan 14, 2026
73bd7dd
fix(client): add missing serializer options
stainless-app[bot] Jan 14, 2026
1781a38
feat(client): add helper functions for raw messages
stainless-app[bot] Jan 14, 2026
5b2c657
fix(client): use readonly type for param
stainless-app[bot] Jan 14, 2026
1974856
chore(readme): remove beta warning now that we're in ga
stainless-app[bot] Jan 14, 2026
0324583
chore: remove custom code
stainless-app[bot] Jan 14, 2026
0aed83e
chore(internal): regenerate SDK with no functional changes
stainless-app[bot] Jan 14, 2026
9388eb8
release: 5.2.0
stainless-app[bot] Jan 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "5.1.0"
".": "5.2.0"
}
6 changes: 3 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 78
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/courier%2Fcourier-b79e0eb1ab06f4076c48fa519e2b2ad792a0c483a5d017e43c938ca4c4be6988.yml
openapi_spec_hash: cb3cc2c1145503e5737a880326857aa4
config_hash: ff903e824043dc81aca51a0ce21896d6
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/courier%2Fcourier-e3e54d99e2a73fd87519270f2685131050d342e86a4e96130247b854deae5c20.yml
openapi_spec_hash: 897a3fbee24f24d021d6af0df480220c
config_hash: 66a5c28bb74d78454456d9ce7d1c0a0c
44 changes: 44 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,49 @@
# Changelog

## 5.2.0 (2026-01-14)

Full Changelog: [v5.1.0...v5.2.0](https://github.com/trycourier/courier-csharp/compare/v5.1.0...v5.2.0)

### Features

* **client:** add helper functions for raw messages ([1781a38](https://github.com/trycourier/courier-csharp/commit/1781a383b5b5bcce7e006a7977330c60e0378792))


### Bug Fixes

* **client:** add missing serializer options ([73bd7dd](https://github.com/trycourier/courier-csharp/commit/73bd7dd5e3c5894b25f897bb017093d378425892))
* **client:** bad deserialize call for void method ([a2a5845](https://github.com/trycourier/courier-csharp/commit/a2a584544f27a936f8fc5013aa62b49ca5cc183b))
* **client:** bad reference ([9170476](https://github.com/trycourier/courier-csharp/commit/917047605d71bccfa9bf59761d2d25929dab6c3c))
* **client:** dictionary type ([ad0d8ff](https://github.com/trycourier/courier-csharp/commit/ad0d8ff101b399e4641ed08152123a6a64817699))
* **client:** ensure deep immutability for deep array/dict structures ([fda9700](https://github.com/trycourier/courier-csharp/commit/fda9700d880e6d5c2a599cc857eb5084cd6d878a))
* **client:** freeze models on property access ([196bf8e](https://github.com/trycourier/courier-csharp/commit/196bf8ece6a08921215aa1bf4d3629c630a577f6))
* **client:** missing immutable -> readonly conversion ([2afcb10](https://github.com/trycourier/courier-csharp/commit/2afcb10726e2439230fd872b7034619f155f97f6))
* **client:** throw api enum errors as invalid data exception ([9bf8de8](https://github.com/trycourier/courier-csharp/commit/9bf8de8236efef6e948df983098b1fc5a82a4a23))
* **client:** use readonly type for param ([5b2c657](https://github.com/trycourier/courier-csharp/commit/5b2c6573f744cdf6456381871d0d2653aedeb796))


### Performance Improvements

* **client:** add json deserialization caching ([fda9700](https://github.com/trycourier/courier-csharp/commit/fda9700d880e6d5c2a599cc857eb5084cd6d878a))


### Chores

* **client:** consistently use serializer options ([bc7871a](https://github.com/trycourier/courier-csharp/commit/bc7871afce7fc9f938996de63e88cf72a19f5152))
* **client:** refactor union instantiation ([ebb48fc](https://github.com/trycourier/courier-csharp/commit/ebb48fc9ce86e1dbb34b0dcb08e897dc29708c04))
* **client:** use mutable collections for union deserialization ([2d1ab11](https://github.com/trycourier/courier-csharp/commit/2d1ab11aa146ff88da5b65e256c5f590ac8bd713))
* **internal:** regenerate SDK with no functional changes ([0aed83e](https://github.com/trycourier/courier-csharp/commit/0aed83e54c9b607c1eb5d9bfb1d93842f12ec66b))
* **internal:** regenerate SDK with no functional changes ([d7df223](https://github.com/trycourier/courier-csharp/commit/d7df223f4f4aa1c432793713da5d925d8ffbdbaf))
* **internal:** use better namespace aliases ([b754fec](https://github.com/trycourier/courier-csharp/commit/b754fec848c4f2a633817e99521350471ce4500a))
* **readme:** remove beta warning now that we're in ga ([1974856](https://github.com/trycourier/courier-csharp/commit/19748567c2051affb0156e4651f686cbddecf352))
* remove custom code ([0324583](https://github.com/trycourier/courier-csharp/commit/0324583376b98670d8affb868689b3e16da9d366))


### Refactors

* **client:** add `JsonDictionary` identity methods ([588abd9](https://github.com/trycourier/courier-csharp/commit/588abd9557c5cc0a82b257ed9ac2cd17780ac060))
* **internal:** `JsonElement` constant construction ([d9577f1](https://github.com/trycourier/courier-csharp/commit/d9577f117079196532685b723308272e2b53c1ff))

## 5.1.0 (2026-01-12)

Full Changelog: [v5.0.0...v5.1.0](https://github.com/trycourier/courier-csharp/compare/v5.0.0...v5.1.0)
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2025 Courier
Copyright 2026 Courier

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
13 changes: 4 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
# Courier C# API Library

> [!NOTE]
> The Courier C# API Library is currently in **beta** and we're excited for you to experiment with it!
>
> This library has not yet been exhaustively tested in production environments and may be missing some features you'd expect in a stable release. As we continue development, there may be breaking changes that require updates to your code.
>
> **We'd love your feedback!** Please share any suggestions, bug reports, feature requests, or general thoughts by [filing an issue](https://www.github.com/trycourier/courier-csharp/issues/new).

The Courier C# SDK provides convenient access to the [Courier REST API](https://www.courier.com/docs) from applications written in C#.

It is generated with [Stainless](https://www.stainless.com/).
Expand Down Expand Up @@ -122,10 +115,12 @@ To access this data, prefix any HTTP method call on a client or service with `Wi

```csharp
var response = await client.WithRawResponse.Send.Message(parameters);
var statusCode = response.Message.StatusCode;
var headers = response.Message.Headers;
var statusCode = response.StatusCode;
var headers = response.Headers;
```

The raw `HttpResponseMessage` can also be accessed through the `RawMessage` property.

For non-streaming responses, you can deserialize the response into an instance of a C# class if needed:

```csharp
Expand Down
43 changes: 0 additions & 43 deletions src/Courier.Tests/Core/FreezableDictionaryTest.cs

This file was deleted.

Loading