docs/generators/aspnetcore.md
| Property | Value | Notes |
|---|---|---|
| generator name | aspnetcore | pass this to the generate command after -g |
| generator stability | STABLE | |
| generator type | SERVER | |
| generator language | C# | |
| generator default templating engine | mustache | |
| helpTxt | Generates an ASP.NET Core Web API server. |
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to configuration docs for more details.
| Option | Description | Values | Default |
|---|---|---|---|
| aspnetCoreVersion | ASP.NET Core version: 6.0, 5.0, 3.1, 3.0, 2.2, 2.1, 2.0 (deprecated) | <dl><dt>2.0</dt><dd>ASP.NET Core 2.0</dd><dt>2.1</dt><dd>ASP.NET Core 2.1</dd><dt>2.2</dt><dd>ASP.NET Core 2.2</dd><dt>3.0</dt><dd>ASP.NET Core 3.0</dd><dt>3.1</dt><dd>ASP.NET Core 3.1</dd><dt>5.0</dt><dd>ASP.NET Core 5.0</dd><dt>6.0</dt><dd>ASP.NET Core 6.0</dd><dt>7.0</dt><dd>ASP.NET Core 7.0</dd><dt>8.0</dt><dd>ASP.NET Core 8.0</dd></dl> | 8.0 |
| buildTarget | Target to build an application or library | <dl><dt>program</dt><dd>Generate code for a standalone server</dd><dt>library</dt><dd>Generate code for a server abstract class library</dd></dl> | program |
| centralizedPackageVersionManagement | Option to control the usage of centralized package version management. https://devblogs.microsoft.com/nuget/introducing-central-package-management/#disabling-central-package-management | <dl><dt>optout</dt><dd>Opt out of centralized package version management. Set this if you have a Directory.Packages.pros file but want this project to ignore it.</dd><dt>default</dt><dd>Property in project won't be used</dd><dt>enable</dt><dd>Centralized package version management will be used</dd></dl> | null |
| classModifier | Class Modifier for controller classes: Empty string or abstract. | ||
| compatibilityVersion | ASP.Net Core CompatibilityVersion | Version_2_2 | |
| enumNameSuffix | Suffix that will be appended to all enum names. | Enum | |
| enumValueSuffix | Suffix that will be appended to all enum values. | Enum | |
| generateBody | Generates method body. | true | |
| isLibrary | Is the build a library | false | |
| licenseName | The name of the license | NoLicense | |
| licenseUrl | The URL of the license | http://localhost | |
| modelClassModifier | Model Class Modifier can be nothing or partial | partial | |
| newtonsoftVersion | Version for Microsoft.AspNetCore.Mvc.NewtonsoftJson for ASP.NET Core 3.0+ | 3.0.0 | |
| nullableReferenceTypes | Use nullable annotations in the project. Only supported on C# 8 / ASP.NET Core 3.1 or newer. | false | |
| operationIsAsync | Set methods to async or sync (default). | false | |
| operationModifier | Operation Modifier can be virtual or abstract | <dl><dt>virtual</dt><dd>Keep method virtual</dd><dt>abstract</dt><dd>Make method abstract</dd></dl> | virtual |
| operationResultTask | Set methods result to Task<>. | false | |
| packageAuthors | Specifies Authors property in the .NET Core project file. | OpenAPI | |
| packageCopyright | Specifies an AssemblyCopyright for the .NET Framework global assembly attributes stored in the AssemblyInfo file. | No Copyright | |
| packageDescription | Specifies a AssemblyDescription for the .NET Framework global assembly attributes stored in the AssemblyInfo file. | A library generated from a OpenAPI doc | |
| packageGuid | The GUID that will be associated with the C# project | null | |
| packageName | C# package name (convention: Title.Case). | Org.OpenAPITools | |
| packageTitle | Specifies an AssemblyTitle for the .NET Framework global assembly attributes stored in the AssemblyInfo file. | OpenAPI Library | |
| packageVersion | C# package version. | 1.0.0 | |
| pocoModels | Build POCO Models | false | |
| returnICollection | Return ICollection<T> instead of the concrete type. | false | |
| sortParamsByRequiredFlag | Sort method arguments to place required parameters before optional parameters. | true | |
| sourceFolder | source folder for generated code | src | |
| swashbuckleVersion | Swashbuckle version: 3.0.0 (deprecated), 4.0.0 (deprecated), 5.0.0 (deprecated), 6.4.0 | <dl><dt>3.0.0</dt><dd>Swashbuckle 3.0.0</dd><dt>4.0.0</dt><dd>Swashbuckle 4.0.0</dd><dt>5.0.0</dt><dd>Swashbuckle 5.0.0</dd><dt>6.4.0</dt><dd>Swashbuckle 6.4.0</dd></dl> | 6.4.0 |
| useCollection | Deserialize array types to Collection<T> instead of List<T>. | false | |
| useDateTimeForDate | Use DateTime to model date properties even if DateOnly supported. (.net 6.0+ only) | false | |
| useDateTimeOffset | Use DateTimeOffset to model date-time properties | false | |
| useDefaultRouting | Use default routing for the ASP.NET Core version. | true | |
| useFrameworkReference | Use frameworkReference for ASP.NET Core 3.0+ and PackageReference ASP.NET Core 2.2 or earlier. | false | |
| useNewtonsoft | Uses the Newtonsoft JSON library. | true | |
| useSeparateModelProject | Create a separate project for models | false | |
| useSwashbuckle | Uses the Swashbuckle.AspNetCore NuGet package for documentation. | true |
| Extension name | Description | Applicable for | Default value |
|---|---|---|---|
| x-zero-based-enum | When used on an enum, the index will not be generated and the default numbering will be used, zero-based | MODEL | false |
| Type/Alias | Imports |
|---|
| Type/Alias | Instantiated By |
|---|---|
| array | List |
| list | List |
| map | Dictionary |
| Name | Supported | Defined By |
|---|---|---|
| BasePath | ✗ | ToolingExtension |
| Authorizations | ✗ | ToolingExtension |
| UserAgent | ✗ | ToolingExtension |
| MockServer | ✗ | ToolingExtension |
| Name | Supported | Defined By |
|---|---|---|
| Custom | ✗ | OAS2,OAS3 |
| Int32 | ✓ | OAS2,OAS3 |
| Int64 | ✓ | OAS2,OAS3 |
| Float | ✓ | OAS2,OAS3 |
| Double | ✓ | OAS2,OAS3 |
| Decimal | ✓ | ToolingExtension |
| String | ✓ | OAS2,OAS3 |
| Byte | ✓ | OAS2,OAS3 |
| Binary | ✓ | OAS2,OAS3 |
| Boolean | ✓ | OAS2,OAS3 |
| Date | ✓ | OAS2,OAS3 |
| DateTime | ✓ | OAS2,OAS3 |
| Password | ✓ | OAS2,OAS3 |
| File | ✓ | OAS2 |
| Uuid | ✗ | |
| Array | ✓ | OAS2,OAS3 |
| Null | ✗ | OAS3 |
| AnyType | ✗ | OAS2,OAS3 |
| Object | ✓ | OAS2,OAS3 |
| Maps | ✓ | ToolingExtension |
| CollectionFormat | ✓ | OAS2 |
| CollectionFormatMulti | ✓ | OAS2 |
| Enum | ✓ | OAS2,OAS3 |
| ArrayOfEnum | ✓ | ToolingExtension |
| ArrayOfModel | ✓ | ToolingExtension |
| ArrayOfCollectionOfPrimitives | ✓ | ToolingExtension |
| ArrayOfCollectionOfModel | ✓ | ToolingExtension |
| ArrayOfCollectionOfEnum | ✓ | ToolingExtension |
| MapOfEnum | ✓ | ToolingExtension |
| MapOfModel | ✓ | ToolingExtension |
| MapOfCollectionOfPrimitives | ✓ | ToolingExtension |
| MapOfCollectionOfModel | ✓ | ToolingExtension |
| MapOfCollectionOfEnum | ✓ | ToolingExtension |
| Name | Supported | Defined By |
|---|---|---|
| Readme | ✓ | ToolingExtension |
| Model | ✓ | ToolingExtension |
| Api | ✓ | ToolingExtension |
| Name | Supported | Defined By |
|---|---|---|
| Host | ✓ | OAS2,OAS3 |
| BasePath | ✓ | OAS2,OAS3 |
| Info | ✓ | OAS2,OAS3 |
| Schemes | ✗ | OAS2,OAS3 |
| PartialSchemes | ✓ | OAS2,OAS3 |
| Consumes | ✓ | OAS2 |
| Produces | ✓ | OAS2 |
| ExternalDocumentation | ✓ | OAS2,OAS3 |
| Examples | ✓ | OAS2,OAS3 |
| XMLStructureDefinitions | ✗ | OAS2,OAS3 |
| MultiServer | ✗ | OAS3 |
| ParameterizedServer | ✗ | OAS3 |
| ParameterStyling | ✗ | OAS3 |
| Callbacks | ✗ | OAS3 |
| LinkObjects | ✗ | OAS3 |
| Name | Supported | Defined By |
|---|---|---|
| Path | ✓ | OAS2,OAS3 |
| Query | ✓ | OAS2,OAS3 |
| Header | ✓ | OAS2,OAS3 |
| Body | ✓ | OAS2 |
| FormUnencoded | ✓ | OAS2 |
| FormMultipart | ✓ | OAS2 |
| Cookie | ✓ | OAS3 |
| Name | Supported | Defined By |
|---|---|---|
| Simple | ✓ | OAS2,OAS3 |
| Composite | ✓ | OAS2,OAS3 |
| Polymorphism | ✓ | OAS2,OAS3 |
| Union | ✗ | OAS3 |
| allOf | ✗ | OAS2,OAS3 |
| anyOf | ✗ | OAS3 |
| oneOf | ✗ | OAS3 |
| not | ✗ | OAS3 |
| Name | Supported | Defined By |
|---|---|---|
| BasicAuth | ✓ | OAS2,OAS3 |
| ApiKey | ✓ | OAS2,OAS3 |
| OpenIDConnect | ✗ | OAS3 |
| BearerToken | ✓ | OAS3 |
| OAuth2_Implicit | ✗ | OAS2,OAS3 |
| OAuth2_Password | ✗ | OAS2,OAS3 |
| OAuth2_ClientCredentials | ✗ | OAS2,OAS3 |
| OAuth2_AuthorizationCode | ✗ | OAS2,OAS3 |
| SignatureAuth | ✗ | OAS3 |
| AWSV4Signature | ✗ | ToolingExtension |
| Name | Supported | Defined By |
|---|---|---|
| JSON | ✓ | OAS2,OAS3 |
| XML | ✓ | OAS2,OAS3 |
| PROTOBUF | ✗ | ToolingExtension |
| Custom | ✗ | OAS2,OAS3 |