<!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" />
      <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="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="notify"/>
      <table name="mnt_by"/>
      <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" />
      <geoloc      choice="optional"  number="single"   />
      <language    choice="optional"  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.
    </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>
    <dummify>
        <filter/>
    </dummify>
  </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="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="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>
    <dummify>
        <placeholder>DUMY-RIPE</placeholder>
    </dummify>
  </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="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="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>
    <dummify>
        <placeholder>DUMY-RIPE</placeholder>
    </dummify>
  </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" />
      <geoloc       choice="optional"  number="single"   />
      <language     choice="optional"  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>
    <dummify>
        <filter/>
    </dummify>
  </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" />
      <geoloc           choice="optional"  number="single"   />
      <language         choice="optional"  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"   />
      <assignment-size  choice="optional"  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"   />
      <pingable     choice="optional"  number="multiple" />
      <ping-hdl     choice="optional"  number="multiple" />
      <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="ping_hdl"/>
      <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"   />
      <pingable     choice="optional"  number="multiple" />
      <ping-hdl     choice="optional"  number="multiple" />
      <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="ping_hdl"/>
      <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>
