<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0" load="strict">
  <classes>
    <class id="IPApplication" _delta="define">
      <parent>FunctionalCI</parent>
      <php_parent>
        <name>TeemIp\TeemIp\Extension\Framework\Model\_IPApplication</name>
        <file>src/Model/_IPApplication.php</file>
      </php_parent>
      <properties>
        <category>bizmodel,searchable</category>
        <abstract>true</abstract>
        <db_table>ipapplication</db_table>
        <naming>
          <attributes>
            <attribute id="name"/>
          </attributes>
        </naming>
        <reconciliation>
          <attributes>
            <attribute id="name"/>
            <attribute id="org_id"/>
          </attributes>
        </reconciliation>
      </properties>
      <fields>
        <field id="uuid" xsi:type="AttributeString">
          <sql>uuid</sql>
          <default_value/>
          <is_null_allowed>true</is_null_allowed>
          <validation_pattern/>
        </field>
        <field id="status" xsi:type="AttributeEnum">
          <sql>status</sql>
          <values>
            <value id="production">
              <code>production</code>
              <style>
                <main_color>hsla(92, 47.9%, 42.2%, 1)</main_color>
                <complementary_color>hsla(0, 0%, 100%, 1)</complementary_color>
                <decoration_classes/>
              </style>
            </value>
            <value id="implementation">
              <code>implementation</code>
              <style>
                <main_color>hsla(33, 89.9%, 64.9%, 1)</main_color>
                <complementary_color>hsla(0, 0%, 100%, 1)</complementary_color>
                <decoration_classes/>
              </style>
            </value>
            <value id="obsolete">
              <code>obsolete</code>
              <style>
                <main_color>hsla(0, 60.8%, 48%, 1)</main_color>
                <complementary_color>hsla(0, 0%, 100%, 1)</complementary_color>
                <decoration_classes/>
              </style>
            </value>
          </values>
          <default_value/>
          <is_null_allowed>true</is_null_allowed>
          <display_style>list</display_style>
          <dependencies/>
        </field>
        <field id="location_id" xsi:type="AttributeExternalKey">
          <sql>location_id</sql>
          <filter/>
          <dependencies/>
          <is_null_allowed>true</is_null_allowed>
          <target_class>Location</target_class>
          <on_target_delete>DEL_AUTO</on_target_delete>
        </field>
        <field id="location_name" xsi:type="AttributeExternalField">
          <extkey_attcode>location_id</extkey_attcode>
          <target_attcode>name</target_attcode>
        </field>
      </fields>
      <methods/>
      <presentation>
        <details>
          <items>
            <item id="uuid">
              <rank>10</rank>
            </item>
            <item id="status">
              <rank>20</rank>
            </item>
            <item id="location_id">
              <rank>30</rank>
            </item>
          </items>
        </details>
        <search>
          <items>
            <item id="name">
              <rank>10</rank>
            </item>
            <item id="org_id">
              <rank>20</rank>
            </item>
            <item id="status">
              <rank>30</rank>
            </item>
            <item id="business_criticity">
              <rank>40</rank>
            </item>
            <item id="location_id">
              <rank>50</rank>
            </item>
            <item id="move2production">
              <rank>60</rank>
            </item>
            <item id="uuid">
              <rank>70</rank>
            </item>
          </items>
        </search>
        <list>
          <items>
            <item id="org_id">
              <rank>10</rank>
            </item>
            <item id="status">
              <rank>20</rank>
            </item>
            <item id="location_id">
              <rank>30</rank>
            </item>
          </items>
        </list>
      </presentation>
    </class>
    <class id="IPConfig" _delta="define">
      <parent>cmdbAbstractObject</parent>
      <php_parent>
        <name>TeemIp\TeemIp\Extension\Framework\Model\_IPConfig</name>
        <file>src/Model/_IPConfig.php</file>
      </php_parent>
      <properties>
        <category>bizmodel,searchable,ipmgmt</category>
        <abstract>false</abstract>
        <key_type>autoincrement</key_type>
        <db_table>ipconfig</db_table>
        <db_key_field>id</db_key_field>
        <db_final_class_field/>
        <naming>
          <attributes>
            <attribute id="name"/>
            <attribute id="org_name"/>
          </attributes>
        </naming>
        <style>
          <icon>asset/img/icons8-maintenance-48.png</icon>
        </style>
        <reconciliation>
          <attributes>
            <attribute id="name"/>
            <attribute id="org_id"/>
            <attribute id="org_name"/>
          </attributes>
        </reconciliation>
      </properties>
      <fields>
        <!--  General information -->
        <field id="org_id" xsi:type="AttributeExternalKey">
          <sql>org_id</sql>
          <target_class>Organization</target_class>
          <is_null_allowed>false</is_null_allowed>
          <on_target_delete>DEL_MANUAL</on_target_delete>
          <jointype/>
        </field>
        <field id="org_name" xsi:type="AttributeExternalField">
          <extkey_attcode>org_id</extkey_attcode>
          <target_attcode>name</target_attcode>
        </field>
        <field id="name" xsi:type="AttributeString">
          <sql>name</sql>
          <default_value>IP Settings</default_value>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <field id="requestor_id" xsi:type="AttributeExternalKey">
          <filter><![CDATA[SELECT Person AS p WHERE p.org_id = :this->org_id]]></filter>
          <dependencies>
            <attribute id="org_id"/>
          </dependencies>
          <sql>requestor_id</sql>
          <target_class>Person</target_class>
          <is_null_allowed>true</is_null_allowed>
          <on_target_delete>DEL_MANUAL</on_target_delete>
          <jointype/>
        </field>
        <field id="requestor_name" xsi:type="AttributeExternalField">
          <extkey_attcode>requestor_id</extkey_attcode>
          <target_attcode>name</target_attcode>
        </field>
        <!-- Settings for subnet blocks -->
	    <field id="ipv4_block_min_size" xsi:type="AttributeInteger">
          <sql>ipv4_block_min_size</sql>
          <default_value>256</default_value>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <field id="ipv6_block_min_prefix" xsi:type="AttributeEnum" _delta="define">
          <values>
            <value id="48">
              <code>48</code>
            </value>
            <value id="49">
              <code>49</code>
            </value>
            <value id="50">
              <code>50</code>
            </value>
            <value id="51">
              <code>51</code>
            </value>
            <value id="52">
              <code>52</code>
            </value>
            <value id="53">
              <code>53</code>
            </value>
            <value id="54">
              <code>54</code>
            </value>
            <value id="55">
              <code>55</code>
            </value>
            <value id="56">
              <code>56</code>
            </value>
            <value id="57">
              <code>57</code>
            </value>
            <value id="58">
              <code>58</code>
            </value>
            <value id="59">
              <code>59</code>
            </value>
            <value id="60">
              <code>60</code>
            </value>
            <value id="61">
              <code>61</code>
            </value>
            <value id="62">
              <code>62</code>
            </value>
            <value id="63">
              <code>63</code>
            </value>
            <value id="64">
              <code>64</code>
            </value>
          </values>
          <sql>ipv6_block_min_prefix</sql>
          <default_value>64</default_value>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <field id="ipv4_block_cidr_aligned" xsi:type="AttributeEnum">
          <values>
            <value id="bca_yes">
              <code>bca_yes</code>
            </value>
            <value id="bca_no">
              <code>bca_no</code>
            </value>
          </values>
          <sql>ipv4_block_cidr_aligned</sql>
          <default_value>bca_yes</default_value>
          <is_null_allowed>false</is_null_allowed>
          <display_style>radio_horizontal</display_style>
        </field>
        <field id="ipv6_block_cidr_aligned" xsi:type="AttributeEnum" _delta="define">
          <values>
            <value id="bca_yes">
              <code>bca_yes</code>
            </value>
            <value id="bca_no">
              <code>bca_no</code>
            </value>
          </values>
          <sql>ipv6_block_cidr_aligned</sql>
          <default_value>bca_yes</default_value>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <field id="delegate_to_children_only" xsi:type="AttributeEnum">
          <values>
            <value id="dtc_yes">
              <code>dtc_yes</code>
            </value>
            <value id="dtc_no">
              <code>dtc_no</code>
            </value>
          </values>
          <sql>delegate_to_children_only</sql>
          <default_value>dtc_yes</default_value>
          <is_null_allowed>false</is_null_allowed>
          <display_style>radio_horizontal</display_style>
        </field>
        <!-- Settings for subnets -->
        <field id="reserve_subnet_IPs" xsi:type="AttributeEnum">
          <values>
            <value id="reserve_no">
              <code>reserve_no</code>
            </value>
            <value id="reserve_yes">
              <code>reserve_yes</code>
            </value>
          </values>
          <sql>reserve_subnet_IPs</sql>
          <default_value>reserve_no</default_value>
          <is_null_allowed>false</is_null_allowed>
          <display_style>radio_horizontal</display_style>
        </field>
        <field id="ipv4_gateway_ip_format" xsi:type="AttributeEnum">
          <values>
            <value id="subnetip_plus_1">
              <code>subnetip_plus_1</code>
            </value>
            <value id="broadcastip_minus_1">
              <code>broadcastip_minus_1</code>
            </value>
            <value id="free_setup">
              <code>free_setup</code>
            </value>
          </values>
          <sql>ipv4_gateway_ip_format</sql>
          <default_value>subnetip_plus_1</default_value>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <field id="ipv6_gateway_ip_format" xsi:type="AttributeEnum" _delta="define">
          <values>
            <value id="subnetip_plus_1">
              <code>subnetip_plus_1</code>
            </value>
            <value id="lastip">
              <code>lastip</code>
            </value>
            <value id="free_setup">
              <code>free_setup</code>
            </value>
          </values>
          <sql>ipv6_gateway_ip_format</sql>
          <default_value>subnetip_plus_1</default_value>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <field id="subnet_symetrical_nat" xsi:type="AttributeEnum">
          <values>
            <value id="no">
              <code>no</code>
            </value>
            <value id="yes">
              <code>yes</code>
            </value>
          </values>
          <sql>subnet_symetrical_nat</sql>
          <default_value>no</default_value>
          <is_null_allowed>false</is_null_allowed>
          <display_style>radio_horizontal</display_style>
        </field>
        <field id="subnet_low_watermark" xsi:type="AttributeInteger">
          <sql>subnet_low_watermark</sql>
          <default_value>60</default_value>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <field id="subnet_high_watermark" xsi:type="AttributeInteger">
          <sql>subnet_high_watermark</sql>
          <default_value>80</default_value>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <!-- Settings for IP ranges -->
        <field id="iprange_low_watermark" xsi:type="AttributeInteger">
          <sql>iprange_low_watermark</sql>
          <default_value>60</default_value>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <field id="iprange_high_watermark" xsi:type="AttributeInteger">
          <sql>iprange_high_watermark</sql>
          <default_value>80</default_value>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <!-- Settings for IP addresses -->
        <field id="ip_allow_duplicate_name" xsi:type="AttributeEnum">
          <values>
            <value id="ipdup_no">
              <code>ipdup_no</code>
            </value>
            <value id="ipdup_yes">
              <code>ipdup_yes</code>
            </value>
            <value id="ipdup_dualstack">
              <code>ipdup_dualstack</code>
            </value>
          </values>
          <sql>ip_allow_duplicate_name</sql>
          <default_value>ipdup_no</default_value>
          <is_null_allowed>false</is_null_allowed>
          <display_style>radio_horizontal</display_style>
        </field>
        <field id="ping_before_assign" xsi:type="AttributeEnum">
          <values>
            <value id="ping_no">
              <code>ping_no</code>
            </value>
            <value id="ping_yes">
              <code>ping_yes</code>
            </value>
          </values>
          <sql>ping_before_assign</sql>
          <default_value>ping_no</default_value>
          <is_null_allowed>false</is_null_allowed>
          <display_style>radio_horizontal</display_style>
        </field>
        <field id="ip_copy_ci_name_to_shortname" xsi:type="AttributeEnum">
          <values>
            <value id="no">
              <code>no</code>
            </value>
            <value id="yes">
              <code>yes</code>
            </value>
          </values>
          <sql>ip_copy_ci_name_to_shortname</sql>
          <default_value>no</default_value>
          <is_null_allowed>false</is_null_allowed>
          <display_style>radio_horizontal</display_style>
        </field>
        <field id="compute_fqdn_with_empty_shortname" xsi:type="AttributeEnum">
          <values>
            <value id="no">
              <code>no</code>
            </value>
            <value id="yes">
              <code>yes</code>
            </value>
          </values>
          <sql>allow_fqdn_with_empty_shortname</sql>
          <default_value>no</default_value>
          <is_null_allowed>false</is_null_allowed>
          <display_style>radio_horizontal</display_style>
        </field>
        <field id="ip_symetrical_nat" xsi:type="AttributeEnum">
          <values>
            <value id="no">
              <code>no</code>
            </value>
            <value id="yes">
              <code>yes</code>
            </value>
          </values>
          <sql>ip_symetrical_nat</sql>
          <default_value>no</default_value>
          <is_null_allowed>false</is_null_allowed>
          <display_style>radio_horizontal</display_style>
        </field>
        <field id="ip_allocate_on_ci_production" xsi:type="AttributeEnum">
          <values>
            <value id="no">
              <code>no</code>
            </value>
            <value id="yes">
              <code>yes</code>
            </value>
          </values>
          <sql>ip_allocate_on_ci_production</sql>
          <default_value>yes</default_value>
          <is_null_allowed>false</is_null_allowed>
          <display_style>radio_horizontal</display_style>
        </field>
        <field id="ip_release_on_ci_obsolete" xsi:type="AttributeEnum">
          <values>
            <value id="no">
              <code>no</code>
            </value>
            <value id="yes">
              <code>yes</code>
            </value>
          </values>
          <sql>ip_release_on_ci_obsolete</sql>
          <default_value>no</default_value>
          <is_null_allowed>false</is_null_allowed>
          <display_style>radio_horizontal</display_style>
        </field>
        <field id="ip_unassign_on_no_ci" xsi:type="AttributeEnum">
          <values>
            <value id="no">
              <code>no</code>
            </value>
            <value id="yes">
              <code>yes</code>
            </value>
          </values>
          <sql>ip_unassign_on_no_ci</sql>
          <default_value>no</default_value>
          <is_null_allowed>false</is_null_allowed>
          <display_style>radio_horizontal</display_style>
        </field>
        <field id="ip_release_on_subnet_release" xsi:type="AttributeEnum">
          <values>
            <value id="no">
              <code>no</code>
            </value>
            <value id="yes">
              <code>yes</code>
            </value>
          </values>
          <sql>ip_release_on_subnet_release</sql>
          <default_value>yes</default_value>
          <is_null_allowed>false</is_null_allowed>
          <display_style>radio_horizontal</display_style>
        </field>
        <!-- Settings for Domains -->
        <field id="delegate_domain_to_children_only" xsi:type="AttributeEnum">
          <values>
            <value id="dtc_yes">
              <code>dtc_yes</code>
            </value>
            <value id="dtc_no">
              <code>dtc_no</code>
            </value>
          </values>
          <sql>delegate_domain_to_children_only</sql>
          <default_value>dtc_yes</default_value>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <!-- Other settings -->
        <field id="attach_already_allocated_ips" xsi:type="AttributeEnum">
          <values>
            <value id="yes">
              <code>yes</code>
            </value>
            <value id="no">
              <code>no</code>
            </value>
          </values>
          <sql>attach_already_allocated_ips</sql>
          <default_value>no</default_value>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <field id="detach_released_ip_from_cis" xsi:type="AttributeEnum">
          <values>
            <value id="yes">
              <code>yes</code>
            </value>
            <value id="no">
              <code>no</code>
            </value>
          </values>
          <sql>detach_released_ip_from_cis</sql>
          <default_value>yes</default_value>
          <is_null_allowed>false</is_null_allowed>
        </field>
        <field id="mac_address_format" xsi:type="AttributeEnum">
          <values>
            <value id="colons">
              <code>colons</code>
            </value>
            <value id="hyphens">
              <code>hyphens</code>
            </value>
            <value id="dots">
              <code>dots</code>
            </value>
          </values>
          <sql>mac_address_format</sql>
          <default_value>colons</default_value>
          <is_null_allowed>false</is_null_allowed>
        </field>
      </fields>
      <methods/>
      <presentation>
        <details>
          <items>
            <item id="col:col1">
              <rank>10</rank>
              <items>
                <item id="fieldset:Class:IPConfig:baseinfo">
                  <rank>10</rank>
                  <items>
                    <item id="org_id">
                      <rank>10</rank>
                    </item>
                    <item id="name">
                      <rank>20</rank>
                    </item>
                    <item id="requestor_id">
                      <rank>30</rank>
                    </item>
                  </items>
                </item>
                <item id="fieldset:Class:IPConfig:blockinfo">
                  <rank>20</rank>
                  <items>
                    <item id="ipv4_block_min_size">
                      <rank>10</rank>
                    </item>
                    <item id="ipv6_block_min_prefix" _delta="define">
                      <rank>20</rank>
                    </item>
                    <item id="ipv4_block_cidr_aligned">
                      <rank>30</rank>
                    </item>
                    <item id="ipv6_block_cidr_aligned" _delta="define">
                      <rank>40</rank>
                    </item>
                    <item id="delegate_to_children_only">
                      <rank>50</rank>
                    </item>
                  </items>
                </item>
              </items>
            </item>
            <item id="col:col2">
              <rank>20</rank>
              <items>
                <item id="fieldset:Class:IPConfig:subnetinfo">
                  <rank>10</rank>
                  <items>
                    <item id="reserve_subnet_IPs">
                      <rank>10</rank>
                    </item>
                    <item id="ipv4_gateway_ip_format">
                      <rank>20</rank>
                    </item>
                    <item id="ipv6_gateway_ip_format" _delta="define">
                      <rank>30</rank>
                    </item>
                    <item id="subnet_symetrical_nat">
                      <rank>40</rank>
                    </item>
                    <item id="subnet_low_watermark">
                      <rank>50</rank>
                    </item>
                    <item id="subnet_high_watermark">
                      <rank>60</rank>
                    </item>
                  </items>
                </item>
                <item id="fieldset:Class:IPConfig:iprangeinfo">
                  <rank>20</rank>
                  <items>
                    <item id="iprange_low_watermark">
                      <rank>10</rank>
                    </item>
                    <item id="iprange_high_watermark">
                      <rank>20</rank>
                    </item>
                  </items>
                </item>
                <item id="fieldset:Class:IPConfig:ipinfo">
                  <rank>30</rank>
                  <items>
                    <item id="ip_allow_duplicate_name">
                      <rank>10</rank>
                    </item>
                    <item id="ping_before_assign">
                      <rank>20</rank>
                    </item>
                    <item id="ip_symetrical_nat">
                      <rank>30</rank>
                    </item>
                    <item id="ip_copy_ci_name_to_shortname">
                      <rank>40</rank>
                    </item>
                    <item id="compute_fqdn_with_empty_shortname">
                      <rank>50</rank>
                    </item>
                    <item id="ip_allocate_on_ci_production">
                      <rank>60</rank>
                    </item>
                    <item id="ip_release_on_ci_obsolete">
                      <rank>70</rank>
                    </item>
                    <item id="ip_unassign_on_no_ci">
                      <rank>80</rank>
                    </item>
                    <item id="ip_release_on_subnet_release">
                      <rank>90</rank>
                    </item>
                  </items>
                </item>
              </items>
            </item>
            <item id="col:col3">
              <rank>30</rank>
              <items>
                <item id="fieldset:Class:IPConfig:domaininfo">
                  <rank>10</rank>
                  <items>
                    <item id="delegate_domain_to_children_only">
                      <rank>10</rank>
                    </item>
                  </items>
                </item>
                <item id="fieldset:Class:IPConfig:otherinfo">
                  <rank>50</rank>
                  <items>
                    <item id="attach_already_allocated_ips">
                      <rank>10</rank>
                    </item>
                    <item id="detach_released_ip_from_cis">
                      <rank>20</rank>
                    </item>
                    <item id="mac_address_format">
                      <rank>30</rank>
                    </item>
                  </items>
                </item>
              </items>
            </item>
          </items>
        </details>
        <default_search>
          <items>
            <item id="name">
              <rank>10</rank>
            </item>
            <item id="org_id">
              <rank>20</rank>
            </item>
          </items>
        </default_search>
        <search>
          <items>
            <item id="ipv4_block_min_size">
              <rank>10</rank>
            </item>
            <item id="ipv6_block_min_prefix" _delta="define">
              <rank>20</rank>
            </item>
            <item id="ipv4_block_cidr_aligned">
              <rank>30</rank>
            </item>
            <item id="ipv6_block_cidr_aligned" _delta="define">
              <rank>40</rank>
            </item>
            <item id="delegate_to_children_only">
              <rank>50</rank>
            </item>
            <item id="reserve_subnet_IPs">
              <rank>60</rank>
            </item>
            <item id="ipv4_gateway_ip_format">
              <rank>70</rank>
            </item>
            <item id="ipv6_gateway_ip_format" _delta="define">
              <rank>80</rank>
            </item>
            <item id="subnet_low_watermark">
              <rank>90</rank>
            </item>
            <item id="subnet_high_watermark">
              <rank>100</rank>
            </item>
            <item id="iprange_low_watermark">
              <rank>110</rank>
            </item>
            <item id="iprange_high_watermark">
              <rank>120</rank>
            </item>
            <item id="ip_allow_duplicate_name">
              <rank>130</rank>
            </item>
            <item id="mac_address_format">
              <rank>140</rank>
            </item>
            <item id="ping_before_assign">
              <rank>150</rank>
            </item>
            <item id="org_id">
              <rank>160</rank>
            </item>
            <item id="requestor_id">
              <rank>170</rank>
            </item>
          </items>
        </search>
        <list>
          <items>
            <item id="org_id">
              <rank>150</rank>
            </item>
          </items>
        </list>
      </presentation>
    </class>
    <class id="IPUsage" _delta="define">
      <parent>Typology</parent>
      <php_parent>
        <name>TeemIp\TeemIp\Extension\Framework\Model\_IPUsage</name>
        <file>src/Model/_IPUsage.php</file>
      </php_parent>
      <properties>
        <category>bizmodel,searchable,ipmgmt</category>
        <abstract>false</abstract>
        <key_type>autoincrement</key_type>
        <db_table>ipusage</db_table>
        <db_key_field>id</db_key_field>
        <db_final_class_field/>
        <naming>
          <attributes>
            <attribute id="name"/>
          </attributes>
        </naming>
        <icon/>
        <reconciliation>
          <attributes>
            <attribute id="name"/>
            <attribute id="org_id"/>
            <attribute id="org_name"/>
          </attributes>
        </reconciliation>
      </properties>
      <fields>
        <field id="org_id" xsi:type="AttributeExternalKey">
          <sql>org_id</sql>
          <target_class>Organization</target_class>
          <is_null_allowed>false</is_null_allowed>
          <on_target_delete>DEL_MANUAL</on_target_delete>
          <jointype/>
        </field>
        <field id="org_name" xsi:type="AttributeExternalField">
          <extkey_attcode>org_id</extkey_attcode>
          <target_attcode>name</target_attcode>
        </field>
        <field id="description" xsi:type="AttributeString">
          <sql>description</sql>
          <default_value/>
          <is_null_allowed>true</is_null_allowed>
        </field>
      </fields>
      <methods>
        <method id="CreateBasicIpUsages">
          <comment/>
          <static>true</static>
          <access>public</access>
          <type>custom</type>
          <code><![CDATA[ public static function CreateBasicIpUsages($iOrgId)
	{
		IPUsage::GetIpUsageId($iOrgId, NETWORK_IP_CODE);
		IPUsage::GetIpUsageId($iOrgId, GATEWAY_IP_CODE);
		IPUsage::GetIpUsageId($iOrgId, BROADCAST_IP_CODE);
	}]]></code>
        </method>
        <method id="GetIpUsageId">
          <comment/>
          <static>true</static>
          <access>public</access>
          <type>custom</type>
          <code><![CDATA[ public static function GetIpUsageId($iOrgId, $sCode)
	{
		$oIpUsage = MetaModel::GetObjectFromOQL("SELECT IPUsage AS i WHERE i.name = :code AND i.org_id = :org_id", array('code' => $sCode, 'org_id' => $iOrgId), false);
		if ($oIpUsage == null)
		{
			$oIpUsage = MetaModel::NewObject('IPUsage');
			$oIpUsage->Set('org_id', $iOrgId);
			$oIpUsage->Set('name', $sCode);
			switch ($sCode)
			{
				case NETWORK_IP_CODE:
					$sDesc = NETWORK_IP_DESC;
					break;

				case GATEWAY_IP_CODE:
					$sDesc = GATEWAY_IP_DESC;
					break;

				case BROADCAST_IP_CODE:
					$sDesc = BROADCAST_IP_DESC;

				default:
					$sDesc = "";
					break;
			}
			$oIpUsage->Set('description', $sDesc);
			$oIpUsage->DBInsert();
		}
		return ($oIpUsage->GetKey());
	}]]></code>
        </method>
      </methods>
      <presentation>
        <details>
          <items>
            <item id="org_id">
              <rank>20</rank>
            </item>
            <item id="name">
              <rank>30</rank>
            </item>
            <item id="description">
              <rank>40</rank>
            </item>
          </items>
        </details>
        <default_search>
          <items>
            <item id="name">
              <rank>10</rank>
            </item>
            <item id="org_id">
              <rank>20</rank>
            </item>
          </items>
        </default_search>
        <search>
          <items>
            <item id="org_id">
              <rank>10</rank>
            </item>
            <item id="name">
              <rank>20</rank>
            </item>
            <item id="description">
              <rank>30</rank>
            </item>
          </items>
        </search>
        <list>
          <items>
           <item id="description">
              <rank>10</rank>
            </item>
            <item id="org_id">
              <rank>20</rank>
            </item>
          </items>
        </list>
      </presentation>
    </class>
  </classes>
  <menus>
    <menu id="IPConfig" xsi:type="OQLMenuNode" _delta="define">
      <rank>15</rank>
      <parent>ConfigurationTools</parent>
      <oql>SELECT IPConfig</oql>
      <do_search>1</do_search>
      <auto_reload>fast</auto_reload>
    </menu>
  </menus>
  <constants>
    <constant id="GLOBAL_CONFIG_DEFAULT_NAME" xsi:type="string" _delta="define">IP Settings</constant>
    <constant id="NETWORK_IP_CODE" xsi:type="string" _delta="define">Network IP</constant>
    <constant id="NETWORK_IP_DESC" xsi:type="string" _delta="define">Subnet IP</constant>
    <constant id="GATEWAY_IP_CODE" xsi:type="string" _delta="define">Gateway</constant>
    <constant id="GATEWAY_IP_DESC" xsi:type="string" _delta="define">Gateway IP</constant>
    <constant id="BROADCAST_IP_CODE" xsi:type="string" _delta="define">Broadcast</constant>
    <constant id="BROADCAST_IP_DESC" xsi:type="string" _delta="define">Broadcast IP</constant>
    <constant id="RED" xsi:type="string" _delta="define">#cc3300</constant>
    <constant id="YELLOW" xsi:type="string" _delta="define">#ffff00</constant>
    <constant id="GREEN" xsi:type="string" _delta="define">#33ff00</constant>
  </constants>
  <user_rights>
    <groups>
      <group id="IPApplication" _delta="define">
        <classes>
          <class id="IPApplication"/>
          <class id="lnkContactToFunctionalCI"/>
          <class id="lnkDocumentToFunctionalCI"/>
        </classes>
      </group>
    </groups>
  </user_rights>
</itop_design>
