<!--
  ~ Copyright 2016-present 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.net.optical.cli.AddOpticalIntentCommand"/>
            <completers>
                <ref component-id="connectPointCompleter"/>
                <ref component-id="connectPointCompleter"/>
            </completers>
            <optional-completers>
                <entry key="-a" value-ref="allAppNameCompleter"/>
            </optional-completers>
        </command>
        <command>
            <action class="org.onosproject.net.optical.cli.OpticalPortsListCommand"/>
            <completers>
                <ref component-id="deviceIdCompleter"/>
            </completers>
        </command>
    </command-bundle>

    <bean id="connectPointCompleter" class="org.onosproject.cli.net.ConnectPointCompleter"/>
    <bean id="allAppNameCompleter" class="org.onosproject.cli.app.AllApplicationNamesCompleter"/>
    <bean id="deviceIdCompleter" class="org.onosproject.cli.net.DeviceIdCompleter"/>

</blueprint>