private Type createReturnTypeForUnion(final GeneratedTOBuilder genTOBuilder, final UnionTypeDefinition typeDef,
final GeneratedTypeBuilder typeBuilder, final Module parentModule) {
final GeneratedTOBuilder returnTypeBuilder = typeProvider.newGeneratedTOBuilder(genTOBuilder.getIdentifier());
returnTypeBuilder.setIsUnion(true);
addCodegenInformation(returnTypeBuilder, parentModule, typeDef);
returnTypeBuilder.setSchemaPath(typeDef.getPath());
returnTypeBuilder.setModuleName(parentModule.getName());
final GeneratedTransferObject returnType = returnTypeBuilder.build();
genTOBuilder.setTypedef(true);
genTOBuilder.setIsUnion(true);
AbstractTypeProvider.addUnitsToGenTO(genTOBuilder, typeDef.getUnits().orElse(null));
createUnionBuilder(genTOBuilder, typeBuilder, returnType, parentModule);
return returnType;
}