model/Flow.js
function Flow(id, version, label, description, format,
    tags, source_id, parents) {
  this.id = this.generateID(id);
  this.version = this.generateVersion(version);
  this.label = this.generateLabel(label);
  /**
   * Detailed description of the Flow.
   * @type {string}
   * @readonly
   */
  this.description = this.generateDescription(description);
  /**
   * [Format]{@link formats} of the data coming from the Flow as a URN.
   * @type {string}
   * @readonly
   */
  this.format = this.generateFormat(format);
  /**
   * Key value set of freeform string tags to aid in filtering Flows. Can be
   * empty.
   * @type {Array.<string, string[]>}
   * @readonly
   */
  this.tags = this.generateTags(tags); // Treating as a required property
  /**
   * Globally unique UUID identifier for the [source]{@link Source} which initially
   * created the Flow.
   * @type {string}
   * @readonly
   */
  this.source_id = this.generateSourceID(source_id);
  /**
   * Array of UUIDs representing the Flow IDs of Grains which came together to
   * generate this Flow. (May change over the lifetime of this Flow.)
   */
  this.parents = this.generateParents(parents);
  return immutable(this, { prototype: Flow.prototype });
}
function Flow(id, version, label, description, format,
    tags, source_id, parents) {
  this.id = this.generateID(id);
  this.version = this.generateVersion(version);
  this.label = this.generateLabel(label);
  /**
   * Detailed description of the Flow.
   * @type {string}
   * @readonly
   */
  this.description = this.generateDescription(description);
  /**
   * [Format]{@link formats} of the data coming from the Flow as a URN.
   * @type {string}
   * @readonly
   */
  this.format = this.generateFormat(format);
  /**
   * Key value set of freeform string tags to aid in filtering Flows. Can be
   * empty.
   * @type {Array.<string, string[]>}
   * @readonly
   */
  this.tags = this.generateTags(tags); // Treating as a required property
  /**
   * Globally unique UUID identifier for the [source]{@link Source} which initially
   * created the Flow.
   * @type {string}
   * @readonly
   */
  this.source_id = this.generateSourceID(source_id);
  /**
   * Array of UUIDs representing the Flow IDs of Grains which came together to
   * generate this Flow. (May change over the lifetime of this Flow.)
   */
  this.parents = this.generateParents(parents);
  return immutable(this, { prototype: Flow.prototype });
}
function Flow ( id , version , label , description , format , tags , source_id , parents ) { this . id = this . generateID ( id ) ; this . version = this . generateVersion ( version ) ; this . label = this . generateLabel ( label ) ; /**
   * Detailed description of the Flow.
   * @type {string}
   * @readonly
   */ this . description = this . generateDescription ( description ) ; /**
   * [Format]{@link formats} of the data coming from the Flow as a URN.
   * @type {string}
   * @readonly
   */ this . format = this . generateFormat ( format ) ; /**
   * Key value set of freeform string tags to aid in filtering Flows. Can be
   * empty.
   * @type {Array.<string, string[]>}
   * @readonly
   */ this . tags = this . generateTags ( tags ) ; // Treating as a required property
 /**
   * Globally unique UUID identifier for the [source]{@link Source} which initially
   * created the Flow.
   * @type {string}
   * @readonly
   */ this . source_id = this . generateSourceID ( source_id ) ; /**
   * Array of UUIDs representing the Flow IDs of Grains which came together to
   * generate this Flow. (May change over the lifetime of this Flow.)
   */ this . parents = this . generateParents ( parents ) ; return immutable ( this , { prototype : Flow . prototype } ) ; }
Describes a Flow 
Describes a Flow. Immutable value.
@constructor
@augments Versionned
@param {string} id          Globally unique UUID identifier for the Flow.
@param {string} version     String formatted PTP timestamp
(&lt;<em>seconds</em>&gt;:&lt;<em>nanoseconds</em>&gt;)
indicating precisely when an attribute of the resource
last changed.
@param {string} label       Freeform string label for the Flow.
@param {string} description Detailed description of the Flow.
@param {string} format      [Format]{@link formats} of the data coming from the
Flow as a URN.
@param {Object.<string, string[]>} tags Key value set of freeform string tags
to aid in filtering Flows. Can be empty.
@param {string} source_id   Globally unique UUID for the [source]{@link Source}
which initially created the Flow.
@param {string[]} parents   Array of UUIDs representing the Flow IDs of Grains
which came together to generate this Flow. (May
change over the lifetime of this Flow).
Describes a Flow Describes a Flow . Immutable value .