<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC5228 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5228.xml">
<!ENTITY RFC5804 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5804.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="no"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-bosch-managesieve-quota-maxstorage-00" ipr="trust200902" updates="5804">
  <!-- ***** FRONT MATTER ***** -->

  <front>
    <title abbrev="ManageSieve QUOTA/MAXSTORAGE Response">
        ManageSieve Protocol: QUOTA/MAXSTORAGE Response Code
    </title>

    <author fullname="Stephan Bosch" initials="S." surname="Bosch">
      <!-- <organization>Unaffiliated</organization> -->

      <address>
        <postal>
          <street></street>

          <city>Enschede</city>

          <region></region>

          <code></code>

          <country>NL</country>
        </postal>

        <email>stephan@rename-it.nl</email>
      </address>
    </author>

    <date year="2011" />

    <!-- Meta-data Declarations -->

    <area>General</area>

    <!-- <workgroup>Sieve Working Group</workgroup> -->

    <keyword>ManageSieve</keyword>
    <keyword>Response Code</keyword>
    <keyword>QUOTA</keyword>
    <keyword>QUOTA/MAXSTORAGE</keyword>

    <abstract>
      <t>This document defines the new QUOTA/MAXSTORAGE response code for the
      MangeSieve protocol. It indicates that the total amount of storage occupied by
      the user's private Sieve scripts exceeds the site-defined quota constraint.
      </t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>Sieve <xref target="RFC5228"/> scripts allow users to filter incoming email.
      Using the ManageSieve protocol <xref target="RFC5804"/>, users can securely
      manage their Sieve scripts on a remote server. This protocol allows a user to
      have multiple scripts on the server. To limit the resources required for script
      storage and execution, the server may refuse to accept a newly uploaded script
      based on site-defined quota constraints.</t>
      <t>All queries from a ManageSieve client are replied to with either an OK, NO,
      or BYE response. Each response may be followed by a response code to describe the
      event in a more detailed machine-parsable fashion (see <xref target="RFC5804"/>,
      Section 1.3). The ManageSieve protocol defines specific response codes to notify
      the client about exceeded quota. The following quota response codes are currently
      defined:
      <list style="hanging" hangIndent="20">
        <t hangText="QUOTA">
          This generic response code is returned to indicate that some unspecified quota
          is exceeded. This is used when no more detailed response code is applicable.
        </t>
        <t hangText="QUOTA/MAXSIZE">
          This response code is returned when the size of the currently uploaded script
          exceeds the limit.
        </t>
        <t hangText="QUOTA/MAXSCRIPTS">
          This response code is returned when the number of private scripts of this user
          exceeds the limit.
        </t>
      </list></t>
      <t>This document defines a new quota response code that indicates that the total
      amount of storage occupied by the user's private Sieve scripts exceeds the
      site-defined quota constraint.</t>
    </section>

    <section anchor="response_code" title="The QUOTA/MAXSTORAGE Response Code">
    <t>This document defines the following new response code for ManageSieve
    (<xref target="RFC5804"/>, Section 1.3):</t>

    <t>QUOTA/MAXSTORAGE</t>
    <t>If this response code is returned in the NO/BYE response, it means that the
    command would have placed the user above the site-defined limit on the total amount
    of storage occupied by the user's private Sieve scripts. If this response code is
    returned in the OK response, it can mean that the user is near its quota or that the
    user exceeded its quota, but the server supports soft quotas. This response
    code is a more specific version of the QUOTA response code defined in
    <xref target="RFC5804"/>.
    </t>

    <t>This extends the ManageSieve ABNF (<xref target="RFC5804"/>, Section 4) as follows:
    </t>
<figure><artwork type="abnf"><![CDATA[
resp-code          =/ "QUOTA/MAXSTORAGE"
             ; resp-code is defined in [RFC5804]
]]></artwork></figure>

    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>Thanks to Alexey Melnikov for comments and suggestions.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
    <t>The following requests IANA to register a new ManageSieve response code
    according to the IANA registration template specified in <xref target="RFC5804"/>:</t>
    <?rfc subcompact="yes" ?>
    <figure><artwork><![CDATA[
To: iana@iana.org
Subject: ManageSieve Response Code Registration
]]></artwork></figure>
    <t>Please register the following ManageSieve response code:</t>
    <?rfc needLines="16" ?>
    <t><list hangIndent="15" style="hanging">
      <t hangText="Response Code:">QUOTA/MAXSTORAGE</t>
      <t hangText="Arguments (use ABNF to specify syntax, or the word NONE if none can be specified):">
        NONE
      </t>
      <t hangText="Purpose:">
        If this response code is returned in the NO/BYE response, it means that the 
        command would have placed the user above the site-defined limit on the total amount
        of storage occupied by the user's private Sieve scripts. If this response code is
        returned in the OK response, it can mean that the user is near its quota or that the
        user exceeded its quota, but the server supports soft quotas. This response
        code is a more specific version of the QUOTA response code.
      </t>
      <t hangText="Published Specification(s):">[RFCXXXX]</t>
      <t hangText="Person &amp; email address to contact for further information:">
        <vspace blankLines="0"/>
        <![CDATA[Stephan Bosch <stephan@rename-it.nl>]]>
      </t>
      <t hangText="Author/Change controller:">IESG.</t>
    </list></t>
    <?rfc subcompact="no" ?>

    </section>

    <section anchor="Security" title="Security Considerations">
      <t>Security considerations are discussed in <xref target="RFC5804"/>. This document
      only registers a new response code for the ManageSieve protocol and as such it 
      does not introduce any additional security concerns.</t>
    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <references title="Normative References">
      &RFC5804;
    </references>

    <references title="Informative References">
      &RFC5228;
    </references>

    <!-- Change Log
v00	2011-07-04	SB	Initial version
    -->
  </back>
</rfc>
