<!--
  ~ Copyright 2015 Open Networking Laboratory
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">

  <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
    <command>
      <action class="org.onosproject.vtnrsc.cli.network.TenantNetworkCreateCommand"/>
    </command>
     <command>
      <action class="org.onosproject.vtnrsc.cli.network.TenantNetworkQueryCommand"/>
    </command>
     <command>
      <action class="org.onosproject.vtnrsc.cli.network.TenantNetworkRemoveCommand"/>
    </command>
     <command>
      <action class="org.onosproject.vtnrsc.cli.network.TenantNetworkUpdateCommand"/>
    </command>
     <command>
      <action class="org.onosproject.vtnrsc.cli.subnet.SubnetCreateCommand"/>
    </command>
     <command>
      <action class="org.onosproject.vtnrsc.cli.subnet.SubnetQueryCommand"/>
    </command>
     <command>
      <action class="org.onosproject.vtnrsc.cli.subnet.SubnetRemoveCommand"/>
    </command>
     <command>
      <action class="org.onosproject.vtnrsc.cli.subnet.SubnetUpdateCommand"/>
    </command>
      <command>
      <action class="org.onosproject.vtnrsc.cli.virtualport.VirtualPortCreateCommand"/>
    </command>
     <command>
      <action class="org.onosproject.vtnrsc.cli.virtualport.VirtualPortQueryCommand"/>
    </command>
     <command>
      <action class="org.onosproject.vtnrsc.cli.virtualport.VirtualPortRemoveCommand"/>
    </command>
     <command>
      <action class="org.onosproject.vtnrsc.cli.virtualport.VirtualPortUpdateCommand"/>
    </command>
  </command-bundle>
</blueprint>
