@@ -0,0 +1,1629 @@
+/*%0A * Copyright 2018-present Open Networking Foundation%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0A%0Apackage org.onosproject.net.behaviour;%0A%0Aimport com.google.common.annotations.Beta;%0A%0Aimport org.onosproject.net.driver.HandlerBehaviour;%0A%0Aimport java.net.URI;%0Aimport java.util.concurrent.CompletableFuture;%0A%0A/**%0A * Behaviour that upgrades the software on a device.%0A *%0A */%0A@Beta%0Apublic interface SoftwareUpgrade extends HandlerBehaviour %7B%0A%0A    /**%0A     * Completion status of upgrade.%0A     */%0A    public enum Status %7B%0A        /**%0A         * Indicates a successfully completed upgrade.%0A         */%0A        SUCCESS,%0A%0A        /**%0A         * Indicates an aborted upgrade.%0A         */%0A        FAILURE%0A    %7D%0A%0A    /**%0A     * Configures the uri from where the upgrade will be pulled.%0A     *%0A     * @param uri uri of the software upgrade location%0A     * @return boolean true if the uri was properly configured%0A     */%0A    boolean configureUri(URI uri);%0A%0A    /**%0A     * Performs an upgrade.%0A     *%0A     * @return A future that will be completed when the upgrade completes%0A     */%0A    CompletableFuture%3CStatus%3E upgrade();%0A%7D%0A

Add a device upgrade behaviour interface