code: function(terria) {
    ImageryLayerCatalogItem.call(this, terria);
  
    /**
     * Gets or sets the minimum tile level to retrieve from the map data
     * This property is observable.
     * @type {String}
     */
    this.minimumLevel = 0;
  
    /**
     * Gets or sets the maximum tile level to retrieve from the map data
     * This property is observable.
     * @type {String}
     */
    this.maximumLevel = 25;
  
    /**
     * Gets or sets the attribution to display with the data
     * This property is observable.
     * @type {String}
     */
    this.attribution = undefined;
  
    /**
     * Gets or sets the array of subdomains, one of which will be prepended to each tile URL.
     * This property is observable.
     * @type {Array}
     */
    this.subdomains = undefined;
  
    /**
     * Gets or sets the tile discard policy.
     * @type {TileDiscardPolicy}
     */
    this.tileDiscardPolicy = undefined;
  
    knockout.track(this, [
      "minimumLevel",
      "maximumLevel",
      "attribution",
      "subdomains",
      "tileDiscardPolicy"
    ]);
  }
docs: A {@link ImageryLayerCatalogItem} representing a layer from a mapping server that can be reached
  via a URL template.
  
  @alias UrlTemplateCatalogItem
  @constructor
  @extends ImageryLayerCatalogItem
  
  @param {Terria} terria The Terria instance.