code: function(terria) {
    CatalogGroup.call(this, terria, "esri-mapServer-group");
  
    /**
     * Gets or sets the URL of the Map Server.  This property is observable.
     * @type {String}
     */
    this.url = "";
  
    /**
     * Gets or sets a description of the custodian of the data sources in this group.
     * This property is an HTML string that must be sanitized before display to the user.
     * This property is observable.
     * @type {String}
     */
    this.dataCustodian = undefined;
  
    /**
     * Gets or sets a hash of names of blacklisted data layers.  A layer that appears in this hash
     * will not be shown to the user.  In this hash, the keys should be the Title of the layers to blacklist,
     * and the values should be "true".  This property is observable.
     * @type {Object}
     */
    this.blacklist = undefined;
  
    /**
     * Gets or sets a hash of properties that will be set on each child item.
     * For example, { 'treat404AsError': false }
     */
    this.itemProperties = undefined;
  
    knockout.track(this, ["url", "dataCustodian", "blacklist", "itemProperties"]);
  }
docs: A {@link CatalogGroup} representing a collection of layers from an ArcGIS Map Service.
  Eg. http://www.ga.gov.au/gis/rest/services/earth_observation/Landcover_WM/MapServer
  
  @alias ArcGisMapServerCatalogGroup
  @constructor
  @extends CatalogGroup
  
  @param {Terria} terria The Terria instance.