This section details the available configuration options for the C# SDK. All configuration is managed in the gen.yaml file under the csharp section.
csharp: version: 1.2.3 author: "Author Name" packageName: "custom-sdk" dotnetVersion: "net8.0"
| Name | Required | Default Value | Description |
| version | true | 0.0.1 | The current version of the SDK. |
| packageName | true | openapi | The NuGet package ID, also used as the root namespace |
| author | true | Speakeasy | The name of the author of the published package. |
| dotnetVersion | false | dotnetVersion | The version of .NET to target. net8.0 (default), net6.0 and net5.0 supported. |
csharp: packageTags: "openapi sdk rest" includeDebugSymbols: true enableSourceLink: true
| Name | Required | Default Value | Description |
| packageTags | false | "" | Space-delimited list of tags and keywords used when searching for packages on NuGet. |
| includeDebugSymbols | false | false | Whether to generate .pdb files and publish a .snupkg symbol package to NuGet. |
| enableSourceLink | false | false | Whether to produce and publish the package with Source Link. See Source Link. |
csharp: additionalDependencies: - package: Newtonsoft.Json version: 13.0.3
| Name | Required | Default Value | Description |
| additionalDependencies | false | [] | Add additional dependencies to include in the generated .csproj file. Dependencies must be specified as objects with package and version properties. |
csharp: maxMethodParams: 4
| Name | Required | Default Value | Description |
| maxMethodParams | false | 4 | Maximum number of parameters before an input object is created. 0 means input objects are always used. |
csharp: flattenGlobalSecurity: true
| Property | Description | Type | Default |
| flattenGlobalSecurity | Enables inline security credentials during SDK instantiation. Recommended: true | boolean | true |
csharp: sourceDirectory: "src" disableNamespacePascalCasingApr2024: false
| Name | Required | Default Value | Description |
| sourceDirectory | false | src | The name of the source directory. |
| disableNamespacePascalCasingApr2024 | false | false | Whether to disable Pascal Casing sanitization on the packageName when setting the root namespace and NuGet package ID. |
csharp: imports: option: "openapi" paths: callbacks: models/callbacks errors: models/errors operations: models/operations shared: models/components webhooks: models/webhooks
| Field | Required | Default Value | Description |
| option | false | "openapi" | Defines the type of import strategy. Typically set to "openapi", indicating that the structure is based on the OpenAPI document. |
| paths | false | {} | Customizes where different parts of the SDK (e.g., callbacks, errors, and operations) will be imported from. |
| Component | Default Value | Description |
| callbacks | models/callbacks | The directory where callback models will be imported from. |
| errors | models/errors | The directory where error models will be imported from. |
| operations | models/operations | The directory where operation models (i.e., API endpoints) will be imported from. |
| shared | models/components | The directory for shared components, such as reusable schemas, and data models, imported from the OpenAPI spec. |
| webhooks | models/webhooks | The directory for webhook models, if the SDK includes support for webhooks. |
csharp: clientServerStatusCodesAsErrors: true responseFormat: "envelope-http"
| Name | Required | Default Value | Description |
| responseFormat | false | envelope-http | Defines how responses are structured. Options: envelope, envelope-http, or flat. |
| clientServerStatusCodesAsErrors | false | true | Treats 4XX and 5XX status codes as errors. Set to false to treat them as normal responses. |