{
  "type": "object",
  "defaultProperties": [
    "name",
    "type",
    "url"
  ],
  "properties": {
    "name": {
      "type": "string",
      "title": "#Name",
      "description": "The name of the item."
    },
    "description": {
      "type": "string",
      "title": "#Description",
      "description": "The description of the item."
    },
    "info": {
      "type": "array",
      "title": "#Info",
      "description": "The array of section titles and contents for display in the layer info panel.\nIn future this may replace 'description' above - this list should not contain\nsections named 'description' or 'Description' if the 'description' property\nis also set as both will be displayed.\nThe object is of the form {name:string, content:string}.\nContent will be rendered as Markdown with HTML.",
      "format": "tabs",
      "items": {
        "type": "string"
      }
    },
    "infoSectionOrder": {
      "type": "array",
      "title": "#Info section order",
      "description": "The array of section titles definining the display order of info sections.  If this property\nis not defined, {@link CatalogItemInfoViewModel.infoSectionOrder} is used.",
      "format": "tabs",
      "items": {
        "type": "string"
      }
    },
    "isUserSupplied": {
      "type": "boolean",
      "title": "#Is user supplied",
      "description": "A value indicating whether this member was supplied by the user rather than loaded from one of the\n{@link Terria#initSources}.  User-supplied members must be serialized completely when, for example,\nserializing enabled members for sharing.",
      "format": "checkbox"
    },
    "isPromoted": {
      "type": "boolean",
      "title": "#Is promoted",
      "description": "A value indicating whether this item is kept above other non-promoted items.",
      "format": "checkbox"
    },
    "isHidden": {
      "type": "boolean",
      "title": "#Is hidden",
      "description": "A value indicating whether this item is hidden from the catalog.  This\nproperty is observable.",
      "format": "checkbox"
    },
    "initialMessage": {
      "type": "object",
      "title": "#Initial message",
      "description": "A message object that is presented to the user when an item or group is initially clicked\nThe object is of the form {title:string, content:string, key: string}."
    },
    "cacheDuration": {
      "type": "string",
      "title": "#Cache duration",
      "description": "The cache duration to use for proxied URLs for this catalog member.  If undefined, proxied URLs are effectively cachable\nforever.  The duration is expressed as a Varnish-like duration string, such as '1d' (one day) or '10000s' (ten thousand seconds)."
    },
    "forceProxy": {
      "type": "boolean",
      "title": "#Force proxy",
      "description": "Gets or sets whether or not this member should be forced to use a proxy.\nThis property is not observable.",
      "format": "checkbox"
    },
    "customProperties": {
      "type": "object",
      "title": "#Custom properties",
      "description": "The dictionary of custom item properties."
    }
  },
  "description": "A member of a {@link CatalogGroup}.  A member may be a {@link CatalogItem} or a\n{@link CatalogGroup}.",
  "title": "CatalogMember"
}