<!DOCTYPE ripe_classes SYSTEM "classes.dtd">

<!-- XXX: will want to add core template in the future, to 
          document which fields are mandatory for core (e.g. nic-hdl) -->

<ripe_classes version="$Revision: 1.6 $" author="$Author: denis $">

  <ripe_class name="domain" main_sql_table="domain" code="dn">
    <description>
      A domain object represents a Top Level Domain (TLD) or
      other domain registrations. It is also used for Reverse 
      Delegations.
    </description>
    <attributes>
      <domain      choice="mandatory" number="single"   />
      <descr       choice="mandatory" number="multiple" />
      <org         choice="optional"  number="multiple" />
      <admin-c     choice="mandatory" number="multiple" />
      <tech-c      choice="mandatory" number="multiple" />
      <zone-c      choice="mandatory" number="multiple" />
      <nserver     choice="optional"  number="multiple" />
      <ds-rdata    choice="optional"  number="multiple" />
      <sub-dom     choice="optional"  number="multiple" />
      <dom-net     choice="optional"  number="multiple" />
      <remarks     choice="optional"  number="multiple" />
      <notify      choice="optional"  number="multiple" />
      <mnt-by      choice="mandatory" number="multiple" />
      <mnt-lower   choice="optional"  number="multiple" />
      <refer       choice="optional"  number="single"   />
      <changed     choice="mandatory" number="multiple" />
      <source      choice="mandatory" number="single"   />
      <delete      choice="optional"  number="single"   pseudo="yes"/>
      <override    choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="3"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
    </rollback-tables>
    <affected-tables>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="zone_c"/>
      <table name="nserver"/>
      <table name="sub_dom"/>
      <table name="notify"/>
      <table name="mnt_by"/>
      <table name="mnt_lower"/>
      <table name="refer"/>
      <table name="inaddr_arpa"/>
      <table name="ip6int"/>
      <table name="org"/>
      <table name="ds_rdata"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="inetnum" main_sql_table="inetnum" code="in">
    <description>
      An inetnum object contains information on allocations and
      assignments of IPv4 address space.
    </description>
    <attributes>
      <inetnum     choice="mandatory" number="single"   />
      <netname     choice="mandatory" number="single"   />
      <descr       choice="mandatory" number="multiple" />
      <country     choice="mandatory" number="multiple" />
      <org         choice="optional"  number="single"   />
      <admin-c     choice="mandatory" number="multiple" />
      <tech-c      choice="mandatory" number="multiple" />
      <status-in   choice="mandatory" number="single"   />
      <remarks     choice="optional"  number="multiple" />
      <notify      choice="optional"  number="multiple" />
      <mnt-by      choice="mandatory" number="multiple" />
      <mnt-lower   choice="optional"  number="multiple" />
      <mnt-domains choice="optional"  number="multiple" />
      <mnt-routes  choice="optional"  number="multiple" />
      <mnt-irt     choice="optional"  number="multiple" />
      <changed     choice="mandatory" number="multiple" />
      <source      choice="mandatory" number="single"   />
      <delete      choice="optional"  number="single"   pseudo="yes"/>
      <override    choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="6"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
      <table name="irt"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="notify"/>
      <table name="mnt_by"/>
      <table name="mnt_lower"/>
      <table name="mnt_domains"/>
      <table name="mnt_routes"/>
      <table name="mnt_irt"/>
      <table name="org"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="key-cert" main_sql_table="key_cert" code="kc">
    <description>
      A key-cert object is a database public key certificate 
      that is stored on the server and may be used with a mntner 
      object for authentication when performing updates. 
      Currently only PGP/GnuPG keys are supported.
    </description>
    <attributes>
      <key-cert choice="mandatory" number="single"   />
      <method   choice="generated" number="single"   />
      <owner    choice="generated" number="multiple" />
      <fingerpr choice="generated" number="single"   />
      <certif   choice="mandatory" number="multiple" />
      <org      choice="optional"  number="multiple" />
      <remarks  choice="optional"  number="multiple" />
      <notify   choice="optional"  number="multiple" />
      <admin-c  choice="optional"  number="multiple" />
      <tech-c   choice="optional"  number="multiple" />
      <mnt-by   choice="mandatory" number="multiple" />
      <changed  choice="mandatory" number="multiple" />
      <source   choice="mandatory" number="single"   />
      <delete   choice="optional"  number="single"   pseudo="yes"/>
      <override choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="7"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="mbrs_by_ref"/>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="notify"/>
      <table name="mnt_by"/>
      <table name="fingerpr"/>
      <table name="org"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="filter-set" main_sql_table="filter_set" code="fs">
    <description>
       A filter-set object defines a set of routes that are matched by
       its filter.  The "filter-set:" attribute defines the name of
       the filter.  It is an RPSL name that starts with "fltr-".  The
       "filter:" attribute defines the set's policy filter.   A policy
       filter is a logical expression which when applied to a set of
       routes returns a subset of these routes.
    </description>
    <attributes>
      <filter-set  choice="mandatory" number="single"   />
      <descr       choice="mandatory" number="multiple" />
      <filter      choice="optional"  number="single"   />
      <mp-filter   choice="optional"  number="single"   />
      <remarks     choice="optional"  number="multiple" />
      <org         choice="optional"  number="multiple" />
      <tech-c      choice="mandatory" number="multiple" />
      <admin-c     choice="mandatory" number="multiple" />
      <notify      choice="optional"  number="multiple" />
      <mnt-by      choice="mandatory" number="multiple" />
      <mnt-lower   choice="optional"  number="multiple" />
      <changed     choice="mandatory" number="multiple" />
      <source      choice="mandatory" number="single"   />
      <delete   choice="optional"  number="single"   pseudo="yes"/>
      <override choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="14"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="notify"/>
      <table name="mnt_by"/>
      <table name="mnt_lower"/>
      <table name="org"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="mntner" main_sql_table="mntner" code="mt">
    <description>
      Objects in the RIPE Database may be protected using mntner
      (pronounced "maintainer") objects.  A mntner object specifies
      authentication information required to authorise creation,
      deletion or modification of the objects protected by the mntner.
      Mntner objects are not created automatically, but are forwarded
      to RIPE Database Administration (ripe-dbm@ripe.net).
    </description>
    <attributes>
      <mntner       choice="mandatory" number="single"   />
      <descr        choice="mandatory" number="multiple" />
      <org          choice="optional"  number="multiple" />
      <admin-c      choice="mandatory" number="multiple" />
      <tech-c       choice="optional"  number="multiple" />
      <upd-to       choice="mandatory" number="multiple" />
      <mnt-nfy      choice="optional"  number="multiple" />
      <auth         choice="mandatory" number="multiple" />
      <remarks      choice="optional"  number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <abuse-mailbox choice="optional" number="multiple" />
      <mnt-by       choice="mandatory" number="multiple" />
      <referral-by  choice="mandatory" number="single"   />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="9"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="upd_to"/>
      <table name="mnt_nfy"/>
      <table name="auth"/>
      <table name="notify"/>
      <table name="abuse_mailbox"/>
      <table name="mnt_by"/>
      <table name="auth_override"/>
      <table name="referral_by"/>
      <table name="org"/>
    </affected-tables>
    <delete-invquery-tables>
      <table name="mnt_by"/>
      <table name="mnt_lower"/>
      <table name="mnt_routes"/>
      <table name="mnt_domains"/>
      <table name="mbrs_by_ref"/>
      <table name="referral_by"/>
      <table name="mnt_ref"/>
    </delete-invquery-tables>
  </ripe_class>

  <ripe_class name="person" main_sql_table="person_role" code="pn">
    <description>
       A person object contains information about technical or
       administrative contact responsible for the object where it is
       referenced.  Once the object is created, the value of the
       "person:" attribute cannot be changed.
    </description>
    <attributes>
      <person       choice="mandatory" number="single"   />
      <address      choice="mandatory" number="multiple" />
      <phone        choice="mandatory" number="multiple" />
      <fax-no       choice="optional"  number="multiple" />
      <e-mail       choice="optional"  number="multiple" />
      <org          choice="optional"  number="multiple" />
      <nic-hdl      choice="mandatory" number="single"   />
      <remarks      choice="optional"  number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <abuse-mailbox choice="optional" number="multiple" />
      <mnt-by       choice="optional"  number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="10"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="names"/>
      <table name="e_mail"/>
      <table name="notify"/>
      <table name="abuse_mailbox"/>
      <table name="mnt_by"/>
      <table name="org"/>
    </affected-tables>
    <delete-invquery-tables>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="zone_c"/>
      <table name="author"/>
    </delete-invquery-tables>
  </ripe_class>

  <ripe_class name="role" main_sql_table="person_role" code="ro">
    <description>
      The role class is similar to the person class.  However, instead
      of describing a human being, it describes a role performed by
      one or more human beings.  Examples include help desks, network
      monitoring centres, system administrators, etc.  A role object
      is particularly useful since often a person performing a role
      may change; however the role itself remains. The "nic-hdl:"
      attributes of the person and role classes share the same name
      space. Once the object is created, the value of the "role:"
      attribute cannot be changed.
    </description>
    <attributes>
      <role         choice="mandatory" number="single"   />
      <address      choice="mandatory" number="multiple" />
      <phone        choice="optional"  number="multiple" />
      <fax-no       choice="optional"  number="multiple" />
      <e-mail       choice="mandatory" number="multiple" />
      <org          choice="optional"  number="multiple" />
      <admin-c      choice="mandatory" number="multiple" />
      <tech-c       choice="mandatory" number="multiple" />
      <nic-hdl      choice="mandatory" number="single"   />
      <remarks      choice="optional"  number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <abuse-mailbox choice="optional" number="multiple" />
      <mnt-by       choice="optional"  number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="11"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="names"/>
      <table name="e_mail"/>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="notify"/>
      <table name="abuse_mailbox"/>
      <table name="mnt_by"/>
      <table name="org"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="organisation" main_sql_table="organisation" code="oa">
    <description>
      The organisation class provides information identifying 
      an organisation such as a company, charity or university,
      that is a holder of a network resource whose data is stored 
      in the whois database.
    </description>
    <attributes>
      <organisation choice="mandatory" number="single"   />
      <org-name     choice="mandatory" number="single"   />
      <org-type     choice="mandatory" number="single"   />
      <descr        choice="optional"  number="multiple" />
      <remarks      choice="optional"  number="multiple" />
      <address      choice="mandatory" number="multiple" />
      <phone        choice="optional"  number="multiple" />
      <fax-no       choice="optional"  number="multiple" />
      <e-mail       choice="mandatory" number="multiple" />
      <org          choice="optional"  number="multiple" />
      <admin-c      choice="optional"  number="multiple" />
      <tech-c       choice="optional"  number="multiple" />
      <ref-nfy      choice="optional"  number="multiple" />
      <mnt-ref      choice="mandatory" number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <abuse-mailbox choice="optional" number="multiple" />
      <mnt-by       choice="mandatory" number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="18"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="org_name"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="org_name"/>
      <table name="mnt_by"/>
      <table name="mnt_ref"/>
      <table name="notify"/>
      <table name="abuse_mailbox"/>
      <table name="org"/>
      <table name="e_mail"/>
      <table name="ref_nfy"/>
    </affected-tables>
    <delete-invquery-tables>
      <table name="org"/>
    </delete-invquery-tables>

  </ripe_class>

  <ripe_class name="route-set" main_sql_table="route_set" code="rs">
    <description>
      A route-set object defines a set of routes that can be
      represented by route objects or by address prefixes. In the
      first case, the set is populated by means of the "mbrs-by-ref:"
      attribute, in the latter, the members of the set are explicitly
      listed in the "members:" attribute. The "members:" attribute is
      a list of address prefixes or other route-set names.  Note that
      the route-set class is a set of route prefixes, not of database
      route objects.
    </description>
    <attributes>
      <route-set    choice="mandatory" number="single"   />
      <descr        choice="mandatory" number="multiple" />
      <members-rs   choice="optional"  number="multiple" />
      <mp-members-rs   choice="optional"  number="multiple" />
      <mbrs-by-ref  choice="optional"  number="multiple" />
      <remarks      choice="optional"  number="multiple" />
      <org          choice="optional"  number="multiple" />
      <tech-c       choice="mandatory" number="multiple" />
      <admin-c      choice="mandatory" number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <mnt-by       choice="mandatory" number="multiple" />
      <mnt-lower    choice="optional"  number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="13"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="mbrs_by_ref"/>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="notify"/>
      <table name="mnt_by"/>
      <table name="mnt_lower"/>
      <table name="org"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="as-set" main_sql_table="as_set" code="as">
    <description>
      An as-set object defines a set of aut-num objects. The
      attributes of the as-set class are shown in Figure 1.2.2.  The
      "as-set:" attribute defines the name of the set. It is an RPSL
      name that starts with "as-". The "members:" attribute lists the
      members of the set.  The "members:" attribute is a list of AS
      numbers, or other as-set names.
    </description>
    <attributes>
      <as-set       choice="mandatory" number="single"   />
      <descr        choice="mandatory" number="multiple" />
      <members-as   choice="optional"  number="multiple" />
      <mbrs-by-ref  choice="optional"  number="multiple" />
      <remarks      choice="optional"  number="multiple" />
      <org          choice="optional"  number="multiple" />
      <tech-c       choice="mandatory" number="multiple" />
      <admin-c      choice="mandatory" number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <mnt-by       choice="mandatory" number="multiple" />
      <mnt-lower    choice="optional"  number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="1"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="mbrs_by_ref"/>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="notify"/>
      <table name="mnt_by"/>
      <table name="mnt_lower"/>
      <table name="org"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="inet6num" main_sql_table="inet6num" code="i6">
    <description>
      An inet6num object contains information on allocations
      and assignments of IPv6 address space.
    </description>
    <attributes>
      <inet6num     choice="mandatory" number="single"   />
      <netname      choice="mandatory" number="single"   />
      <descr        choice="mandatory" number="multiple" />
      <country      choice="mandatory" number="multiple" />
      <org          choice="optional"  number="single"   />
      <admin-c      choice="mandatory" number="multiple" />
      <tech-c       choice="mandatory" number="multiple" />
      <status-i6    choice="mandatory" number="single"   />
      <remarks      choice="optional"  number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <mnt-by       choice="mandatory" number="multiple" />
      <mnt-lower    choice="optional"  number="multiple" />
      <mnt-routes6  choice="optional"  number="multiple" />
      <mnt-domains  choice="optional"  number="multiple" />
      <mnt-irt      choice="optional"  number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="5"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
      <table name="irt"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="rev_srv"/>
      <table name="notify"/>
      <table name="mnt_by"/>
      <table name="mnt_lower"/>
      <table name="mnt_domains"/>
      <table name="mnt_routes"/>
      <table name="mnt_irt"/>
      <table name="org"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="inet-rtr" main_sql_table="inet_rtr" code="ir">
    <description>
      Routers are specified using the inet-rtr class.  The "inet-rtr:"
      attribute is a valid DNS name of the router described. Each
      "alias:" attribute, if present, is a canonical DNS name for the
      router.  The "local-as:" attribute specifies the AS number of
      the AS that owns/operates this router.
    </description>
    <attributes>
      <inet-rtr     choice="mandatory" number="single"   />
      <descr        choice="mandatory" number="multiple" />
      <alias        choice="optional"  number="multiple" />
      <local-as     choice="mandatory" number="single"   />
      <ifaddr       choice="mandatory" number="multiple" />
      <interface    choice="optional"  number="multiple" />
      <peer         choice="optional"  number="multiple" />
      <mp-peer      choice="optional"  number="multiple" />
      <member-of-ir choice="optional"  number="multiple" />
      <remarks      choice="optional"  number="multiple" />
      <org          choice="optional"  number="multiple" />
      <admin-c      choice="mandatory" number="multiple" />
      <tech-c       choice="mandatory" number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <mnt-by       choice="mandatory" number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="4"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="ifaddr"/>
      <table name="interface"/>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="notify"/>
      <table name="mnt_by"/>
      <table name="org"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="as-block" main_sql_table="as_block" code="ak">
    <description>
      An as-block object is needed to delegate a range of AS numbers 
      to a given repository.  This object may be used for authorisation 
      of the creation of aut-num objects within the range specified 
      by the "as-block:" attribute.
    </description>
    <attributes>
      <as-block     choice="mandatory" number="single"   />
      <descr        choice="optional"  number="multiple" />
      <remarks      choice="optional"  number="multiple" />
      <org          choice="optional"  number="multiple" />
      <admin-c      choice="mandatory" number="multiple" />
      <tech-c       choice="mandatory" number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <mnt-by       choice="mandatory" number="multiple" />
      <mnt-lower    choice="optional"  number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="0"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="notify"/>
      <table name="mnt_by"/>
      <table name="mnt_lower"/>
      <table name="org"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="aut-num" main_sql_table="aut_num" code="an">
    <description>
      An object of the aut-num class is a database representation of 
      an Autonomous System (AS), which is a group of IP networks operated 
      by one or more network operators that has a single and clearly 
      defined external routing policy.
    </description>
    <attributes>
      <aut-num      choice="mandatory" number="single"   />
      <as-name      choice="mandatory" number="single"   />
      <descr        choice="mandatory" number="multiple" />
      <member-of-an choice="optional"  number="multiple" />
      <import       choice="optional"  number="multiple" />
      <mp-import    choice="optional"  number="multiple" />
      <export       choice="optional"  number="multiple" />
      <mp-export    choice="optional"  number="multiple" />
      <default      choice="optional"  number="multiple" />
      <mp-default   choice="optional"  number="multiple" />
      <remarks      choice="optional"  number="multiple" />
      <org          choice="optional"  number="single"   />
      <admin-c      choice="mandatory" number="multiple" />
      <tech-c       choice="mandatory" number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <mnt-lower    choice="optional"  number="multiple" />
      <mnt-routes-an choice="optional"  number="multiple" />
      <mnt-by       choice="mandatory" number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="2"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="as_set"/>
      <table name="names"/>
      <table name="mbrs_by_ref"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="member_of"/>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="notify"/>
      <table name="mnt_by"/>
      <table name="mnt_lower"/>
      <table name="mnt_routes"/>
      <table name="org"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="limerick" main_sql_table="limerick" code="li">
    <description>
      The limerick object is obselete. Use the poem object instead.
    </description>
    <attributes>
      <limerick     choice="mandatory" number="single"   />
      <descr        choice="optional"  number="multiple" />
      <text         choice="mandatory" number="multiple" />
      <org          choice="optional"  number="multiple" />
      <admin-c      choice="mandatory" number="multiple" />
      <author       choice="mandatory" number="multiple" />
      <remarks      choice="optional"  number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <mnt-by       choice="mandatory" number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="8"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="admin_c"/>
      <table name="author"/>
      <table name="notify"/>
      <table name="mnt_by"/>
      <table name="org"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="route" main_sql_table="route" code="rt">
    <description>
      Each interAS route (also referred to as an interdomain route) 
      originated by an AS is specified using a route object. The "route:" 
      attribute is the address prefix of the route and the "origin:" 
      attribute is the AS number of the AS that originates the route 
      into the interAS routing system. 
    </description>
    <attributes>
      <route        choice="mandatory" number="single"   />
      <descr        choice="mandatory" number="multiple" />
      <origin       choice="mandatory" number="single"   />
      <holes-rt     choice="optional"  number="multiple" />
      <org          choice="optional"  number="multiple" />
      <member-of-rt choice="optional"  number="multiple" />
      <inject-rt    choice="optional"  number="multiple" />
      <aggr-mtd     choice="optional"  number="single"   />
      <aggr-bndry   choice="optional"  number="single"   />
      <export-comps-rt choice="optional" number="single" />
      <components-rt choice="optional" number="single"   />
      <remarks      choice="optional"  number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <mnt-lower    choice="optional"  number="multiple" />
      <mnt-routes   choice="optional"  number="multiple" />
      <mnt-by       choice="mandatory" number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="12"/>
    <rollback-tables>
      <table name="route_set"/>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="member_of"/>
      <table name="notify"/>
      <table name="mnt_by"/>
      <table name="mnt_lower"/>
      <table name="mnt_routes"/>
      <table name="org"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="route6" main_sql_table="route6" code="r6">
    <description>
      Each interAS route (also referred to as an interdomain route)
      in IPv6 domain originated by an AS is specified using a route6 
      object. The "route6:" attribute is the address prefix of the 
      route and the "origin:" attribute is the AS number of the AS 
      that originates the route into the interAS routing system.
    </description>
    <attributes>
      <route6       choice="mandatory" number="single"   />
      <descr        choice="mandatory" number="multiple" />
      <origin       choice="mandatory" number="single"   />
      <holes-r6     choice="optional"  number="multiple" />
      <org          choice="optional"  number="multiple" />
      <member-of-rt choice="optional"  number="multiple" />
      <inject-r6    choice="optional"  number="multiple" />
      <aggr-mtd     choice="optional"  number="single"   />
      <aggr-bndry   choice="optional"  number="single"   />
      <export-comps-r6 choice="optional" number="single" />
      <components-r6 choice="optional" number="single"   />
      <remarks      choice="optional"  number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <mnt-lower    choice="optional"  number="multiple" />
      <mnt-routes6  choice="optional"  number="multiple" />
      <mnt-by       choice="mandatory" number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="19"/>
    <rollback-tables>
      <table name="route_set"/>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="member_of"/>
      <table name="notify"/>
      <table name="mnt_by"/>
      <table name="mnt_lower"/>
      <table name="mnt_routes6"/>
      <table name="org"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="peering-set" main_sql_table="peering_set" code="ps">
    <description>
      A peering-set object defines a set of peerings that are listed 
      in its "peering:" attributes.  The "peering-set:" attribute 
      defines the name of the set. 
    </description>
    <attributes>
      <peering-set  choice="mandatory" number="single"   />
      <descr        choice="mandatory" number="multiple" />
      <peering      choice="optional"  number="multiple" />
      <mp-peering   choice="optional"  number="multiple" />
      <remarks      choice="optional"  number="multiple" />
      <org          choice="optional"  number="multiple" />
      <tech-c       choice="mandatory" number="multiple" />
      <admin-c      choice="mandatory" number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <mnt-by       choice="mandatory" number="multiple" />
      <mnt-lower    choice="optional"  number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="15"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="notify"/>
      <table name="mnt_by"/>
      <table name="mnt_lower"/>
      <table name="org"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="rtr-set" main_sql_table="rtr_set" code="is">
    <description>
      A rtr-set object defines a set of routers. A set may be described 
      by the "members:" attribute, which is a list of inet-rtr names, 
      IPv4 addresses or other rtr-set names. A set may also be populated 
      by means of the "mbrs-by-ref:" attribute, in which case it is 
      represented by inet-rtr objects.
    </description>
    <attributes>
      <rtr-set      choice="mandatory" number="single"   />
      <descr        choice="mandatory" number="multiple" />
      <members-is   choice="optional"  number="multiple" />
      <mp-members-is choice="optional"  number="multiple" />
      <mbrs-by-ref  choice="optional"  number="multiple" />
      <remarks      choice="optional"  number="multiple" />
      <org          choice="optional"  number="multiple" />
      <tech-c       choice="mandatory" number="multiple" />
      <admin-c      choice="mandatory" number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <mnt-by       choice="mandatory" number="multiple" />
      <mnt-lower    choice="optional"  number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="16"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="mbrs_by_ref"/>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="notify"/>
      <table name="mnt_by"/>
      <table name="mnt_lower"/>
      <table name="org"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="irt" main_sql_table="irt" code="it">
    <description>
       An irt object is used to define a Computer Security Incident
       Response Team (CSIRT).
    </description>
    <attributes>
      <irt          choice="mandatory" number="single"   />
      <address      choice="mandatory" number="multiple" />
      <phone        choice="optional"  number="multiple" />
      <fax-no       choice="optional"  number="multiple" />
      <e-mail       choice="mandatory" number="multiple" />
      <abuse-mailbox choice="optional" number="multiple" />
      <signature    choice="optional"  number="multiple" />
      <encryption   choice="optional"  number="multiple" />
      <org          choice="optional"  number="multiple" />
      <admin-c      choice="mandatory" number="multiple" />
      <tech-c       choice="mandatory" number="multiple" />
      <auth         choice="mandatory" number="multiple" />
      <remarks      choice="optional"  number="multiple" />
      <irt-nfy      choice="optional"  number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <mnt-by       choice="mandatory" number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="17"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
      <table name="organisation"/>
    </rollback-tables>
    <affected-tables>
      <table name="admin_c"/>
      <table name="tech_c"/>
      <table name="notify"/>
      <table name="abuse_mailbox"/>
      <table name="mnt_by"/>
      <table name="auth"/>
      <table name="irt_nfy"/>
      <table name="org"/>
    </affected-tables>
    <delete-invquery-tables>
      <table name="mnt_irt"/>
    </delete-invquery-tables>
  </ripe_class>

  <ripe_class name="poem" main_sql_table="poem" code="po">
    <description>
       A poem object contains poems that are submitted by users.
    </description>
    <attributes>
      <poem         choice="mandatory" number="single"   />
      <descr        choice="optional"  number="multiple" />
      <form         choice="mandatory" number="single"   />
      <text         choice="mandatory" number="multiple" />
      <admin-c      choice="mandatory" number="multiple" />
      <author       choice="mandatory" number="multiple" />
      <remarks      choice="optional"  number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <mnt-by       choice="mandatory" number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="20"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
      <table name="poetic_form"/>
    </rollback-tables>
    <affected-tables>
      <table name="admin_c"/>
      <table name="author"/>
      <table name="notify"/>
      <table name="mnt_by"/>
      <table name="form"/>
    </affected-tables>
  </ripe_class>

  <ripe_class name="poetic-form" main_sql_table="poetic_form" code="pf">
    <description>
       A poetic-form object defines the supported poem types. 
    </description>
    <attributes>
      <poetic-form  choice="mandatory" number="single"   />
      <descr        choice="optional"  number="multiple" />
      <admin-c      choice="mandatory" number="multiple" />
      <remarks      choice="optional"  number="multiple" />
      <notify       choice="optional"  number="multiple" />
      <mnt-by       choice="mandatory" number="multiple" />
      <changed      choice="mandatory" number="multiple" />
      <source       choice="mandatory" number="single"   />
      <delete       choice="optional"  number="single"   pseudo="yes"/>
      <override     choice="optional"  number="single"   pseudo="yes"/>
    </attributes>
    <dbase_code value="21"/>
    <rollback-tables>
      <table name="mntner"/>
      <table name="person_role"/>
      <table name="names"/>
    </rollback-tables>
    <affected-tables>
      <table name="admin_c"/>
      <table name="mnt_by"/>
      <table name="notify"/>
    </affected-tables>
    <delete-invquery-tables>
      <table name="form"/>
    </delete-invquery-tables>
  </ripe_class>

</ripe_classes>
