{{#emitJSDoc}}
  /**
   * Enum class {{classname}}.
   * @enum {{=<% %>=}}{<%dataType%>}<%={{ }}=%>
   * @readonly
   */
{{/emitJSDoc}}
  var exports = {
{{#allowableValues}}
  {{#enumVars}}
    {{#emitJSDoc}}
    /**
     * value: {{{value}}}
     * @const
     */
    {{/emitJSDoc}}
    {{name}}: {{{value}}}{{^-last}},

{{/-last}}
  {{/enumVars}}
{{/allowableValues}}

  };

{{#emitJSDoc}}
  /**
   * Returns a <code>{{classname}}</code> enum value from a JavaScript object name.
   * @param {Object} data The plain JavaScript object containing the name of the enum value.
   * @return {{=< >=}}{module:<#invokerPackage><invokerPackage>/</invokerPackage><#modelPackage><modelPackage>/</modelPackage><classname>}<={{ }}=> The enum <code>{{classname}}</code> value.
   */
{{/emitJSDoc}}
  exports.constructFromObject = function(object) {
    return object;
  }

  return exports;