blob: 782742e6e1f6571cb87b94fbf5b1eb39c4b3d969 [file] [log] [blame]
Thomas Vachuskab6451472015-03-31 16:03:56 -07001/*
Brian O'Connora09fe5b2017-08-03 21:12:30 -07002 * Copyright 2015-present Open Networking Foundation
Thomas Vachuskab6451472015-03-31 16:03:56 -07003 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.demo;
17
18import com.fasterxml.jackson.databind.JsonNode;
19
20import java.util.Optional;
21
22/**
23 * Simple demo api interface.
24 */
Jonathan Hartd9df7bd2015-11-10 17:10:25 -080025public interface DemoApi {
Thomas Vachuskab6451472015-03-31 16:03:56 -070026
Sho SHIMIZU9f614a42015-09-11 15:32:46 -070027 enum InstallType { MESH, RANDOM }
Thomas Vachuskab6451472015-03-31 16:03:56 -070028
29 /**
30 * Tests flow subsystem based on the parameters supplied.
31 *
32 * @param params the test parameters
33 * @return JSON representation
34 */
35 JsonNode flowTest(Optional<JsonNode> params);
36
37 /**
sivachidambaram subramanianf773b652017-05-09 14:40:04 +053038 * Tests flow Objective subsystem based on the parameters supplied.
39 *
40 * @param params the test parameters
41 * @return JSON representation
42 */
43 JsonNode flowObjTest(Optional<JsonNode> params);
44
45 /**
Thomas Vachuskab6451472015-03-31 16:03:56 -070046 * Installs intents based on the installation type.
47 * @param type the installation type.
48 * @param runParams run params
49 */
50 void setup(InstallType type, Optional<JsonNode> runParams);
51
52 /**
53 * Uninstalls all existing intents.
54 */
55 void tearDown();
56
57}