kiota
kiota copied to clipboard
Generation of number based enum property not supported
Generation of enum property not working. Instead of an enum type the generated property type is a number/integer instead.
Is this not supported or is there someting wrong in my JSON file?
Repro:
{
"openapi": "3.0.1",
"info": {
"title": "My API",
"version": "v1"
},
"paths": {
"/Api/MyDto": {
"get": {
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MyDto"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"MyDto": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"myEnumId": {
"$ref": "#/components/schemas/MyEnum"
}
},
"additionalProperties": false
},
"MyEnum": {
"enum": [
0,
1,
2,
3
],
"type": "integer",
"format": "int32",
"x-enum-varnames": [
{
"name": "ItemNone",
"value": 0
},
{
"name": "ItemA",
"value": 1
},
{
"name": "ItemB",
"value": 2
},
{
"name": "ItemC",
"value": 3
}
],
"x-ms-enum": {
"name": "MyEnum",
"modelAsString": false,
"values": [
{
"name": "ItemNone",
"value": 0
},
{
"name": "ItemA",
"value": 1
},
{
"name": "ItemB",
"value": 2
},
{
"name": "ItemC",
"value": 3
}
]
},
"x-enumNames": [
"ItemNone",
"ItemA",
"ItemB",
"ItemC"
]
}
}
}
}
kiota generate --openapi swagger.json --clear-cache --clean-output --output out_typescript --language typescript
kiota generate --openapi swagger.json --clear-cache --clean-output --output out_csharp --language csharp
kiota generate --openapi swagger.json --clear-cache --clean-output --output out_java --language java
Version: 1.5.1+fa29e2d2bffade1fa69c06bf42719bb7c48910b5
Actual:
import type {Parsable} from '@microsoft/kiota-abstractions';
export interface MyDto extends Parsable {
/**
* The id property
*/
id?: number | undefined;
/**
* The myEnumId property
*/
myEnumId?: number | undefined;
}
Expected:
import type {Parsable} from '@microsoft/kiota-abstractions';
export interface MyDto extends Parsable {
/**
* The id property
*/
id?: number | undefined;
/**
* The myEnumId property
*/
myEnumId?: MyEnum | undefined;
}