<!--
  ~ Copyright 2014 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.cli.SummaryCommand"/>
        </command>

        <command>
            <action class="org.onosproject.cli.app.ApplicationsListCommand"/>
        </command>

        <command>
            <action class="org.onosproject.cli.app.ApplicationCommand"/>
            <completers>
                <ref component-id="appCommandCompleter"/>
                <ref component-id="appNameCompleter"/>
            </completers>
        </command>

        <command>
            <action class="org.onosproject.cli.cfg.ComponentConfigCommand"/>
            <completers>
                <ref component-id="cfgCommandCompleter"/>
                <ref component-id="componentNameCompleter"/>
                <ref component-id="componentPropertyNameCompleter"/>
                <null/>
            </completers>
        </command>

        <command>
            <action class="org.onosproject.cli.MetricsListCommand"/>
        </command>

        <command>
            <action class="org.onosproject.cli.NodesListCommand"/>
        </command>
        <!--
        <command>
            <action class="org.onosproject.cli.NodeAddCommand"/>
        </command>
        <command>
            <action class="org.onosproject.cli.NodeRemoveCommand"/>
        </command>
        -->

        <command>
            <action class="org.onosproject.cli.RolesCommand"/>
        </command>
        <command>
            <action class="org.onosproject.cli.MastersListCommand"/>
        </command>
        <command>
            <action class="org.onosproject.cli.BalanceMastersCommand"/>
        </command>
        <command>
            <action class="org.onosproject.cli.app.ApplicationIdListCommand"/>
        </command>

        <command>
            <action class="org.onosproject.cli.net.DriversListCommand"/>
            <completers>
                <ref component-id="driverNameCompleter"/>
                <null/>
            </completers>
        </command>

        <command>
            <action class="org.onosproject.cli.net.DevicesListCommand"/>
        </command>
        <command>
            <action class="org.onosproject.cli.net.DevicePortsListCommand"/>
            <completers>
                <ref component-id="deviceIdCompleter"/>
                <null/>
            </completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.DeviceRemoveCommand"/>
            <completers>
                <ref component-id="deviceIdCompleter"/>
                <null/>
            </completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.DeviceRoleCommand"/>
            <completers>
                <ref component-id="deviceIdCompleter"/>
                <ref component-id="nodeIdCompleter"/>
                <ref component-id="roleCompleter"/>
                <null/>
            </completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.AnnotateDeviceCommand"/>
            <completers>
                <ref component-id="deviceIdCompleter"/>
                <null/>
            </completers>
        </command>

        <command>
            <action class="org.onosproject.cli.net.LinksListCommand"/>
            <completers>
                <ref component-id="deviceIdCompleter"/>
                <null/>
            </completers>
        </command>

        <command>
            <action class="org.onosproject.cli.net.TopologyCommand"/>
        </command>
        <command>
            <action class="org.onosproject.cli.net.PathListCommand"/>
            <completers>
                <ref component-id="deviceIdCompleter"/>
                <ref component-id="deviceIdCompleter"/>
                <null/>
            </completers>
        </command>

        <command>
            <action class="org.onosproject.cli.net.IntentsListCommand"/>
        </command>
        <command>
            <action class="org.onosproject.cli.net.IntentRemoveCommand"/>
            <completers>
                <ref component-id="appIdWithIntentNameCompleter"/>
                <ref component-id="intentIdCompleter"/>
                <null/>
            </completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.AddHostToHostIntentCommand"/>
            <completers>
                <ref component-id="hostIdCompleter"/>
                <ref component-id="hostIdCompleter"/>
                <null/>
            </completers>
            <optional-completers>
                <entry key="-a" value-ref="allAppNameCompleter"/>
            </optional-completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.AddPointToPointIntentCommand"/>
            <completers>
                <ref component-id="connectPointCompleter"/>
                <ref component-id="connectPointCompleter"/>
                <null/>
            </completers>
            <optional-completers>
                <entry key="-t" value-ref="ethTypeCompleter"/>
                <entry key="--ipProto" value-ref="ipProtocolCompleter"/>
                <entry key="-a" value-ref="allAppNameCompleter"/>
            </optional-completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.AddOpticalIntentCommand"/>
            <completers>
                <ref component-id="connectPointCompleter"/>
                <ref component-id="connectPointCompleter"/>
                <null/>
            </completers>
            <optional-completers>
                <entry key="-a" value-ref="allAppNameCompleter"/>
            </optional-completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.GetStatistics"/>
            <completers>
                <ref component-id="connectPointCompleter"/>
            </completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.AddMultiPointToSinglePointIntentCommand"/>
            <completers>
                <ref component-id="connectPointCompleter"/>
            </completers>
            <optional-completers>
                <entry key="-t" value-ref="ethTypeCompleter"/>
                <entry key="--ipProto" value-ref="ipProtocolCompleter"/>
                <entry key="-a" value-ref="allAppNameCompleter"/>
            </optional-completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.AddSinglePointToMultiPointIntentCommand"/>
            <completers>
                <ref component-id="connectPointCompleter"/>
            </completers>
            <optional-completers>
                <entry key="-t" value-ref="ethTypeCompleter"/>
                <entry key="--ipProto" value-ref="ipProtocolCompleter"/>
                <entry key="-a" value-ref="allAppNameCompleter"/>
            </optional-completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.IntentPushTestCommand"/>
            <completers>
                <ref component-id="connectPointCompleter"/>
                <ref component-id="connectPointCompleter"/>
                <ref component-id="nullCompleter"/>
                <null/>
            </completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.IntentCycleCommand"/>
            <completers>
                <ref component-id="connectPointCompleter"/>
                <ref component-id="connectPointCompleter"/>
                <ref component-id="nullCompleter"/>
                <null/>
            </completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.RandomIntentCommand"/>
            <completers>
                <ref component-id="nullCompleter"/>
                <null/>
            </completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.ResourceAllocationsCommand"/>
            <completers>
                <ref component-id="connectPointCompleter"/>
                <ref component-id="connectPointCompleter"/>
                <null/>
            </completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.ResourceAvailableCommand"/>
            <completers>
                <ref component-id="connectPointCompleter"/>
                <ref component-id="connectPointCompleter"/>
                <null/>
            </completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.ClustersListCommand"/>
        </command>
        <command>
            <action class="org.onosproject.cli.net.PartitionsListCommand"/>
        </command>
        <command>
            <action class="org.onosproject.cli.net.MapsListCommand"/>
        </command>
        <command>
            <action class="org.onosproject.cli.net.CountersListCommand"/>
        </command>
        <command>
            <action class="org.onosproject.cli.net.TransactionsCommand"/>
        </command>
        <command>
            <action class="org.onosproject.cli.net.ClusterDevicesCommand"/>
            <completers>
                <ref component-id="clusterIdCompleter"/>
                <null/>
            </completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.ClusterLinksCommand"/>
            <completers>
                <ref component-id="clusterIdCompleter"/>
                <null/>
            </completers>
        </command>

        <command>
            <action class="org.onosproject.cli.net.HostsListCommand"/>
        </command>
        <command>
            <action class="org.onosproject.cli.net.HostRemoveCommand"/>
            <completers>
                <ref component-id="hostIdCompleter"/>
                <null/>
            </completers>
        </command>
        <command>
            <action class="org.onosproject.cli.net.AddressBindingsListCommand"/>
        </command>

        <command>
            <action class="org.onosproject.cli.net.GroupsListCommand"/>
        </command>

        <command>
            <action class="org.onosproject.cli.net.DevicePortStatsCommand"/>
        </command>

        <command>
            <action class="org.onosproject.cli.net.FlowsListCommand"/>
            <completers>
                <ref component-id="flowRuleStatusCompleter"/>
                <ref component-id="deviceIdCompleter"/>
                <null/>
            </completers>
        </command>

        <command>
            <action class="org.onosproject.cli.net.AddFlowsCommand"/>
        </command>
        <command>
            <action class="org.onosproject.cli.net.LeaderCommand"/>
        </command>

        <command>
            <action class="org.onosproject.cli.net.WipeOutCommand"/>
        </command>
        <command>
            <action class="org.onosproject.cli.net.AddMplsIntent"/>
            <completers>
                <ref component-id="connectPointCompleter"/>
                <ref component-id="connectPointCompleter"/>
                <null/>
            </completers>
            <optional-completers>
                <entry key="-a" value-ref="allAppNameCompleter"/>
            </optional-completers>
        </command>
    </command-bundle>

    <bean id="appCommandCompleter" class="org.onosproject.cli.app.ApplicationCommandCompleter"/>
    <bean id="appNameCompleter" class="org.onosproject.cli.app.ApplicationNameCompleter"/>
    <bean id="allAppNameCompleter" class="org.onosproject.cli.app.AllApplicationNamesCompleter"/>
    <bean id="appIdWithIntentNameCompleter" class="org.onosproject.cli.app.ApplicationIdWithIntentNameCompleter"/>
    <bean id="cfgCommandCompleter" class="org.onosproject.cli.cfg.ComponentConfigCommandCompleter"/>
    <bean id="componentNameCompleter" class="org.onosproject.cli.cfg.ComponentNameCompleter"/>
    <bean id="componentPropertyNameCompleter" class="org.onosproject.cli.cfg.ComponentPropertyNameCompleter"/>
    <bean id="nodeIdCompleter" class="org.onosproject.cli.NodeIdCompleter"/>
    <bean id="deviceIdCompleter" class="org.onosproject.cli.net.DeviceIdCompleter"/>
    <bean id="clusterIdCompleter" class="org.onosproject.cli.net.ClusterIdCompleter"/>
    <bean id="roleCompleter" class="org.onosproject.cli.net.RoleCompleter"/>
    <bean id="hostIdCompleter" class="org.onosproject.cli.net.HostIdCompleter"/>
    <bean id="intentIdCompleter" class="org.onosproject.cli.net.IntentIdCompleter"/>
    <bean id="flowRuleStatusCompleter" class="org.onosproject.cli.net.FlowRuleStatusCompleter"/>
    <bean id="connectPointCompleter" class="org.onosproject.cli.net.ConnectPointCompleter"/>
    <bean id="nullCompleter" class="org.apache.karaf.shell.console.completer.NullCompleter"/>
    <bean id="ethTypeCompleter" class="org.onosproject.cli.net.EthTypeCompleter"/>
    <bean id="ipProtocolCompleter" class="org.onosproject.cli.net.IpProtocolCompleter"/>
    <bean id="driverNameCompleter" class="org.onosproject.cli.net.DriverNameCompleter"/>

    <bean id="startStopCompleter" class="org.onosproject.cli.StartStopCompleter"/>
    <bean id="upDownCompleter" class="org.onosproject.cli.UpDownCompleter"/>

</blueprint>
