ContributionsMost RecentMost LikesSolutionsReusable enums in python codegen Hi, I have the following issue when generating a python code out of swagger. When I declare an enum in place i.e: paths: /items: get: parameters: - in: query name: sort description: Sort order schema: $ref: '#/definitions/RequestBody' definitions: RequestBody: enumField: type: string enum: - ENUM_FIRST - ENUM_SECOND - ENUM_THIRD It generates the following python RequestBody model: class RequestBody(object): """ NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually. """ def __init__(self, enum_field=None): """ RequestBody - a model defined in Swagger :param dict swaggerTypes: The key is attribute name and the value is attribute type. :param dict attributeMap: The key is attribute name and the value is json key in definition. """ self.swagger_types = { 'enum_field': 'str' } self.attribute_map = { 'enum_field': 'enumField' } self._enum_field = enum_field @property def enum_field(self): """ :return: The enum_field of this RequestBody. :rtype: str """ return self.enum_field @enum_field.setter def enum_field(self, enum_field): """ :param enum_field: The enum_field of this RequestBody. :type: str """ allowed_values = ["ENUM_FIRST", "ENUM_SECOND", "ENUM_THIRD"] if enum_field not in allowed_values: raise ValueError( "Invalid value for `enum_field` ({0}), must be one of {1}" .format(enum_field, allowed_values) ) self._enum_field = enum_field This all looks good. But when I try the same thing with reusable enums it generates an empty object with no option to initialise with a valid value i.e.: paths: /items: get: parameters: - in: query name: sort description: Sort order schema: $ref: '#/definitions/RequestBody' definitions: RequestBody: type: object properties: enumField: $ref: '#/definitions/ReusableEnum' ReusableEnum: type: string enum: - ENUM_FIRST - ENUM_SECOND - ENUM_THIRD The above definitions generates these models: class RequestBody(object): """ NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually. """ def __init__(self, enum_field=None): """ RequestBody - a model defined in Swagger :param dict swaggerTypes: The key is attribute name and the value is attribute type. :param dict attributeMap: The key is attribute name and the value is json key in definition. """ self.swagger_types = { 'enum_field': 'ReusableEnum' } self.attribute_map = { 'enum_field': 'ReusableEnum' } self._enum_field = enum_field @property def enum_field(self): """ :return: The enum_field of this RequestBody. :rtype: ReusableEnum """ return self.enum_field @enum_field.setter def enum_field(self, enum_field): """ :param enum_field: The enum_field of this RequestBody. :type: ReusableEnum """ self._enum_field = enum_field And it generates the following model for the ReusableEnum : class ReusableEnum(object): """ NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually. """ def __init__(self): """ ReusableEnum - a model defined in Swagger :param dict swaggerTypes: The key is attribute name and the value is attribute type. :param dict attributeMap: The key is attribute name and the value is json key in definition. """ self.swagger_types = { } self.attribute_map = { } As you can see the generated ReusableEnum does not have any enum fields nor allowed_values things. How would I even initialise such an enum object with no values being passed on a constructor? For now the only workaround is not to use reusable enums and go with the first approach, but sometimes I want to reuse the same enum model, rather than creating different models for same enums. Is this is a bug or do I not understand something? S.O.S.