<?xml version="1.0" encoding="UTF-8" ?>
    <prefix>
      <prefix>mailarchive</prefix>
      <describeURL>/direct/mailarchive/describe</describeURL>
      <summary>Represents mailarchive messages for a given site</summary>
      <customActions>
        <customAction>
          <action>siteMessages</action>
          <url>/direct/mailarchive/siteMessages</url>
          <method>GET</method>
          <viewKey>list</viewKey>
          <description>Retrieve Email Archive messages for a site. /siteMessages/{siteId}</description>
        </customAction>
      </customActions>
      <customActions>
        <customAction>
          <action>channelMessages</action>
          <url>/direct/mailarchive/channelMessages</url>
          <method>GET</method>
          <viewKey>list</viewKey>
          <description>Retrieve messages in a MailArchiveChannel. /channelMessages/{siteId}/{channelId}</description>
        </customAction>
      </customActions>
      <customActions>
        <customAction>
          <action>siteChannels</action>
          <url>/direct/mailarchive/siteChannels</url>
          <method>GET</method>
          <viewKey>list</viewKey>
          <description>Retrieve MailArchiveChannel entities within giving site. /siteChannels/{siteId}</description>
        </customAction>
      </customActions>
      <customActions>
        <customAction>
          <action>message</action>
          <url>/direct/mailarchive/message</url>
          <method>GET</method>
          <viewKey>list</viewKey>
          <description>Retrieve an Email Archive message based on the path used by the EmailArchive service internally. /message/{siteId}/{emailArchiveChannelId}/{emailArchiveMessageId}</description>
        </customAction>
      </customActions>
      <outputFormats>
        <format>xml</format>
        <format>json</format>
       </outputFormats>
      <inputFormats>
        <format>xml</format>
        <format>json</format>
       </inputFormats>
      <entityClass>
        <class>org.sakaiproject.mailarchive.entityprovider.MailArchiveEntityProvider$DecoratedMailArchiveMessage</class>
        <type>bean</type>
        <fields>
          <field>
            <name>attachments</name>
            <type>java.util.List</type>
            <readable>true</readable>
            <writeable>true</writeable>
          </field>
          <field>
            <name>body</name>
            <type>java.lang.String</type>
            <readable>true</readable>
            <writeable>true</writeable>
          </field>
          <field>
            <name>channel</name>
            <type>java.lang.String</type>
            <readable>true</readable>
            <writeable>true</writeable>
          </field>
          <field>
            <name>createdByDisplayName</name>
            <type>java.lang.String</type>
            <readable>true</readable>
            <writeable>true</writeable>
          </field>
          <field>
            <name>createdOn</name>
            <type>java.util.Date</type>
            <readable>true</readable>
            <writeable>true</writeable>
          </field>
          <field>
            <name>headers</name>
            <type>java.util.List</type>
            <readable>true</readable>
            <writeable>true</writeable>
          </field>
          <field>
            <name>id</name>
            <type>java.lang.String</type>
            <readable>true</readable>
            <writeable>false</writeable>
          </field>
          <field>
            <name>mailArchiveMessageId</name>
            <type>java.lang.String</type>
            <readable>true</readable>
            <writeable>true</writeable>
          </field>
          <field>
            <name>siteId</name>
            <type>java.lang.String</type>
            <readable>true</readable>
            <writeable>true</writeable>
          </field>
          <field>
            <name>siteTitle</name>
            <type>java.lang.String</type>
            <readable>true</readable>
            <writeable>true</writeable>
          </field>
          <field>
            <name>subject</name>
            <type>java.lang.String</type>
            <readable>true</readable>
            <writeable>true</writeable>
          </field>
        </fields>
      </entityClass>
      <capabilities>
        <capability>
          <name>EntityProvider</name>
          <type>org.sakaiproject.entitybroker.entityprovider.EntityProvider</type>
        </capability>
        <capability>
          <name>ActionsExecutable</name>
          <type>org.sakaiproject.entitybroker.entityprovider.capabilities.ActionsExecutable</type>
        </capability>
        <capability>
          <name>Describeable</name>
          <type>org.sakaiproject.entitybroker.entityprovider.capabilities.Describeable</type>
        </capability>
        <capability>
          <name>Inputable</name>
          <type>org.sakaiproject.entitybroker.entityprovider.capabilities.Inputable</type>
        </capability>
        <capability>
          <name>Outputable</name>
          <type>org.sakaiproject.entitybroker.entityprovider.capabilities.Outputable</type>
        </capability>
        <capability>
          <name>Sampleable</name>
          <type>org.sakaiproject.entitybroker.entityprovider.capabilities.Sampleable</type>
        </capability>
      </capabilities>
    </prefix>
