[ONOS-3394] Json models for REST api
Change-Id: I69c396ae08d25e83dce31e4d2ec92cd9a28c54f5
Showing
31 changed files
with
1390 additions
and
15 deletions
| ... | @@ -44,6 +44,7 @@ public class ApplicationsWebResource extends AbstractWebResource { | ... | @@ -44,6 +44,7 @@ public class ApplicationsWebResource extends AbstractWebResource { |
| 44 | * Get all installed applications. | 44 | * Get all installed applications. |
| 45 | * Returns array of all installed applications. | 45 | * Returns array of all installed applications. |
| 46 | * | 46 | * |
| 47 | + * @rsModel Applications | ||
| 47 | * @return 200 OK | 48 | * @return 200 OK |
| 48 | */ | 49 | */ |
| 49 | @GET | 50 | @GET |
| ... | @@ -56,7 +57,7 @@ public class ApplicationsWebResource extends AbstractWebResource { | ... | @@ -56,7 +57,7 @@ public class ApplicationsWebResource extends AbstractWebResource { |
| 56 | /** | 57 | /** |
| 57 | * Get application details. | 58 | * Get application details. |
| 58 | * Returns details of the specified application. | 59 | * Returns details of the specified application. |
| 59 | - * | 60 | + * @rsModel Application |
| 60 | * @param name application name | 61 | * @param name application name |
| 61 | * @return 200 OK; 404; 401 | 62 | * @return 200 OK; 404; 401 |
| 62 | */ | 63 | */ | ... | ... |
| ... | @@ -49,6 +49,7 @@ public class ClusterWebResource extends AbstractWebResource { | ... | @@ -49,6 +49,7 @@ public class ClusterWebResource extends AbstractWebResource { |
| 49 | * Returns array of all cluster nodes. | 49 | * Returns array of all cluster nodes. |
| 50 | * | 50 | * |
| 51 | * @return 200 OK | 51 | * @return 200 OK |
| 52 | + * @rsModel Cluster | ||
| 52 | */ | 53 | */ |
| 53 | @GET | 54 | @GET |
| 54 | public Response getClusterNodes() { | 55 | public Response getClusterNodes() { |
| ... | @@ -62,6 +63,7 @@ public class ClusterWebResource extends AbstractWebResource { | ... | @@ -62,6 +63,7 @@ public class ClusterWebResource extends AbstractWebResource { |
| 62 | * | 63 | * |
| 63 | * @param id cluster node identifier | 64 | * @param id cluster node identifier |
| 64 | * @return 200 OK | 65 | * @return 200 OK |
| 66 | + * @rsModel ClusterNode | ||
| 65 | */ | 67 | */ |
| 66 | @GET | 68 | @GET |
| 67 | @Path("{id}") | 69 | @Path("{id}") |
| ... | @@ -78,6 +80,7 @@ public class ClusterWebResource extends AbstractWebResource { | ... | @@ -78,6 +80,7 @@ public class ClusterWebResource extends AbstractWebResource { |
| 78 | * @param config cluster definition | 80 | * @param config cluster definition |
| 79 | * @return 200 OK | 81 | * @return 200 OK |
| 80 | * @throws IOException to signify bad request | 82 | * @throws IOException to signify bad request |
| 83 | + * @rsModel ClusterPost | ||
| 81 | */ | 84 | */ |
| 82 | @POST | 85 | @POST |
| 83 | @Path("configuration") | 86 | @Path("configuration") | ... | ... |
| ... | @@ -58,7 +58,7 @@ public class FlowsWebResource extends AbstractWebResource { | ... | @@ -58,7 +58,7 @@ public class FlowsWebResource extends AbstractWebResource { |
| 58 | 58 | ||
| 59 | /** | 59 | /** |
| 60 | * Get all flow entries. Returns array of all flow rules in the system. | 60 | * Get all flow entries. Returns array of all flow rules in the system. |
| 61 | - * | 61 | + * @rsModel Flows |
| 62 | * @return array of all the intents in the system | 62 | * @return array of all the intents in the system |
| 63 | */ | 63 | */ |
| 64 | @GET | 64 | @GET |
| ... | @@ -80,7 +80,7 @@ public class FlowsWebResource extends AbstractWebResource { | ... | @@ -80,7 +80,7 @@ public class FlowsWebResource extends AbstractWebResource { |
| 80 | /** | 80 | /** |
| 81 | * Get flow entries of a device. Returns array of all flow rules for the | 81 | * Get flow entries of a device. Returns array of all flow rules for the |
| 82 | * specified device. | 82 | * specified device. |
| 83 | - * | 83 | + * @rsModel Flows |
| 84 | * @param deviceId device identifier | 84 | * @param deviceId device identifier |
| 85 | * @return flow data as an array | 85 | * @return flow data as an array |
| 86 | */ | 86 | */ |
| ... | @@ -103,7 +103,7 @@ public class FlowsWebResource extends AbstractWebResource { | ... | @@ -103,7 +103,7 @@ public class FlowsWebResource extends AbstractWebResource { |
| 103 | /** | 103 | /** |
| 104 | * Get flow rule. Returns the flow entry specified by the device id and | 104 | * Get flow rule. Returns the flow entry specified by the device id and |
| 105 | * flow rule id. | 105 | * flow rule id. |
| 106 | - * | 106 | + * @rsModel Flows |
| 107 | * @param deviceId device identifier | 107 | * @param deviceId device identifier |
| 108 | * @param flowId flow rule identifier | 108 | * @param flowId flow rule identifier |
| 109 | * @return flow data as an array | 109 | * @return flow data as an array |
| ... | @@ -130,7 +130,7 @@ public class FlowsWebResource extends AbstractWebResource { | ... | @@ -130,7 +130,7 @@ public class FlowsWebResource extends AbstractWebResource { |
| 130 | /** | 130 | /** |
| 131 | * Create new flow rule. Creates and installs a new flow rule for the | 131 | * Create new flow rule. Creates and installs a new flow rule for the |
| 132 | * specified device. | 132 | * specified device. |
| 133 | - * | 133 | + * @rsModel FlowsPost |
| 134 | * @param deviceId device identifier | 134 | * @param deviceId device identifier |
| 135 | * @param stream flow rule JSON | 135 | * @param stream flow rule JSON |
| 136 | * @return status of the request - CREATED if the JSON is correct, | 136 | * @return status of the request - CREATED if the JSON is correct, | ... | ... |
| ... | @@ -70,6 +70,7 @@ public class HostsWebResource extends AbstractWebResource { | ... | @@ -70,6 +70,7 @@ public class HostsWebResource extends AbstractWebResource { |
| 70 | * Returns array of all known end-station hosts. | 70 | * Returns array of all known end-station hosts. |
| 71 | * | 71 | * |
| 72 | * @return 200 OK | 72 | * @return 200 OK |
| 73 | + * @rsModel Hosts | ||
| 73 | */ | 74 | */ |
| 74 | @GET | 75 | @GET |
| 75 | @Produces(MediaType.APPLICATION_JSON) | 76 | @Produces(MediaType.APPLICATION_JSON) |
| ... | @@ -85,6 +86,7 @@ public class HostsWebResource extends AbstractWebResource { | ... | @@ -85,6 +86,7 @@ public class HostsWebResource extends AbstractWebResource { |
| 85 | * | 86 | * |
| 86 | * @param id host identifier | 87 | * @param id host identifier |
| 87 | * @return 200 OK | 88 | * @return 200 OK |
| 89 | + * @rsModel Host | ||
| 88 | */ | 90 | */ |
| 89 | @GET | 91 | @GET |
| 90 | @Produces(MediaType.APPLICATION_JSON) | 92 | @Produces(MediaType.APPLICATION_JSON) |
| ... | @@ -103,6 +105,7 @@ public class HostsWebResource extends AbstractWebResource { | ... | @@ -103,6 +105,7 @@ public class HostsWebResource extends AbstractWebResource { |
| 103 | * @param mac host MAC address | 105 | * @param mac host MAC address |
| 104 | * @param vlan host VLAN identifier | 106 | * @param vlan host VLAN identifier |
| 105 | * @return 200 OK | 107 | * @return 200 OK |
| 108 | + * @rsModel Host | ||
| 106 | */ | 109 | */ |
| 107 | @GET | 110 | @GET |
| 108 | @Produces(MediaType.APPLICATION_JSON) | 111 | @Produces(MediaType.APPLICATION_JSON) |
| ... | @@ -122,6 +125,7 @@ public class HostsWebResource extends AbstractWebResource { | ... | @@ -122,6 +125,7 @@ public class HostsWebResource extends AbstractWebResource { |
| 122 | * @param stream input JSON | 125 | * @param stream input JSON |
| 123 | * @return status of the request - CREATED if the JSON is correct, | 126 | * @return status of the request - CREATED if the JSON is correct, |
| 124 | * BAD_REQUEST if the JSON is invalid | 127 | * BAD_REQUEST if the JSON is invalid |
| 128 | + * @rsModel HostPut | ||
| 125 | */ | 129 | */ |
| 126 | @POST | 130 | @POST |
| 127 | @Consumes(MediaType.APPLICATION_JSON) | 131 | @Consumes(MediaType.APPLICATION_JSON) |
| ... | @@ -195,6 +199,7 @@ public class HostsWebResource extends AbstractWebResource { | ... | @@ -195,6 +199,7 @@ public class HostsWebResource extends AbstractWebResource { |
| 195 | while (ipStrings.hasNext()) { | 199 | while (ipStrings.hasNext()) { |
| 196 | ips.add(IpAddress.valueOf(ipStrings.next().asText())); | 200 | ips.add(IpAddress.valueOf(ipStrings.next().asText())); |
| 197 | } | 201 | } |
| 202 | + //TODO remove elements from json node after reading them | ||
| 198 | SparseAnnotations annotations = annotations(node); | 203 | SparseAnnotations annotations = annotations(node); |
| 199 | // Update host inventory | 204 | // Update host inventory |
| 200 | 205 | ... | ... |
| ... | @@ -44,7 +44,7 @@ public class LinksWebResource extends AbstractWebResource { | ... | @@ -44,7 +44,7 @@ public class LinksWebResource extends AbstractWebResource { |
| 44 | /** | 44 | /** |
| 45 | * Get infrastructure links. | 45 | * Get infrastructure links. |
| 46 | * Returns array of all links, or links for the specified device or port. | 46 | * Returns array of all links, or links for the specified device or port. |
| 47 | - * | 47 | + * @rsModel LinksGet |
| 48 | * @param deviceId (optional) device identifier | 48 | * @param deviceId (optional) device identifier |
| 49 | * @param port (optional) port number | 49 | * @param port (optional) port number |
| 50 | * @param direction (optional) direction qualifier | 50 | * @param direction (optional) direction qualifier | ... | ... |
| ... | @@ -60,7 +60,7 @@ public class PathsWebResource extends AbstractWebResource { | ... | @@ -60,7 +60,7 @@ public class PathsWebResource extends AbstractWebResource { |
| 60 | /** | 60 | /** |
| 61 | * Get all shortest paths between any two hosts or devices. | 61 | * Get all shortest paths between any two hosts or devices. |
| 62 | * Returns array of all shortest paths between any two elements. | 62 | * Returns array of all shortest paths between any two elements. |
| 63 | - * | 63 | + * @rsModel Paths |
| 64 | * @param src source identifier | 64 | * @param src source identifier |
| 65 | * @param dst destination identifier | 65 | * @param dst destination identifier |
| 66 | * @return path data | 66 | * @return path data |
| ... | @@ -79,7 +79,7 @@ public class PathsWebResource extends AbstractWebResource { | ... | @@ -79,7 +79,7 @@ public class PathsWebResource extends AbstractWebResource { |
| 79 | /** | 79 | /** |
| 80 | * Get all shortest disjoint paths between any two hosts or devices. | 80 | * Get all shortest disjoint paths between any two hosts or devices. |
| 81 | * Returns array of all shortest disjoint paths between any two elements. | 81 | * Returns array of all shortest disjoint paths between any two elements. |
| 82 | - * | 82 | + * @rsModel Paths |
| 83 | * @param src source identifier | 83 | * @param src source identifier |
| 84 | * @param dst destination identifier | 84 | * @param dst destination identifier |
| 85 | * @return path data | 85 | * @return path data | ... | ... |
| ... | @@ -59,7 +59,7 @@ public class StatisticsWebResource extends AbstractWebResource { | ... | @@ -59,7 +59,7 @@ public class StatisticsWebResource extends AbstractWebResource { |
| 59 | 59 | ||
| 60 | /** | 60 | /** |
| 61 | * Get load statistics for all links or for a specific link. | 61 | * Get load statistics for all links or for a specific link. |
| 62 | - * | 62 | + * @rsModel StatisticsFlowsLink |
| 63 | * @param deviceId (optional) device ID for a specific link | 63 | * @param deviceId (optional) device ID for a specific link |
| 64 | * @param port (optional) port number for a specified link | 64 | * @param port (optional) port number for a specified link |
| 65 | * @return JSON encoded array lof Load objects | 65 | * @return JSON encoded array lof Load objects |
| ... | @@ -101,7 +101,7 @@ public class StatisticsWebResource extends AbstractWebResource { | ... | @@ -101,7 +101,7 @@ public class StatisticsWebResource extends AbstractWebResource { |
| 101 | 101 | ||
| 102 | /** | 102 | /** |
| 103 | * Get table statistics for all tables of all devices. | 103 | * Get table statistics for all tables of all devices. |
| 104 | - * | 104 | + * @rsModel StatisticsFlowsTables |
| 105 | * @return JSON encoded array of table statistics | 105 | * @return JSON encoded array of table statistics |
| 106 | */ | 106 | */ |
| 107 | @GET | 107 | @GET |
| ... | @@ -111,11 +111,11 @@ public class StatisticsWebResource extends AbstractWebResource { | ... | @@ -111,11 +111,11 @@ public class StatisticsWebResource extends AbstractWebResource { |
| 111 | final FlowRuleService service = get(FlowRuleService.class); | 111 | final FlowRuleService service = get(FlowRuleService.class); |
| 112 | final Iterable<Device> devices = get(DeviceService.class).getDevices(); | 112 | final Iterable<Device> devices = get(DeviceService.class).getDevices(); |
| 113 | final ObjectNode root = mapper().createObjectNode(); | 113 | final ObjectNode root = mapper().createObjectNode(); |
| 114 | - final ArrayNode rootArrayNode = root.putArray("device-table-statistics"); | 114 | + final ArrayNode rootArrayNode = root.putArray("statistics"); |
| 115 | for (final Device device : devices) { | 115 | for (final Device device : devices) { |
| 116 | final ObjectNode deviceStatsNode = mapper().createObjectNode(); | 116 | final ObjectNode deviceStatsNode = mapper().createObjectNode(); |
| 117 | deviceStatsNode.put("device", device.id().toString()); | 117 | deviceStatsNode.put("device", device.id().toString()); |
| 118 | - final ArrayNode statisticsNode = deviceStatsNode.putArray("table-statistics"); | 118 | + final ArrayNode statisticsNode = deviceStatsNode.putArray("table"); |
| 119 | final Iterable<TableStatisticsEntry> tableStatsEntries = service.getFlowTableStatistics(device.id()); | 119 | final Iterable<TableStatisticsEntry> tableStatsEntries = service.getFlowTableStatistics(device.id()); |
| 120 | if (tableStatsEntries != null) { | 120 | if (tableStatsEntries != null) { |
| 121 | for (final TableStatisticsEntry entry : tableStatsEntries) { | 121 | for (final TableStatisticsEntry entry : tableStatsEntries) { |
| ... | @@ -130,7 +130,7 @@ public class StatisticsWebResource extends AbstractWebResource { | ... | @@ -130,7 +130,7 @@ public class StatisticsWebResource extends AbstractWebResource { |
| 130 | 130 | ||
| 131 | /** | 131 | /** |
| 132 | * Get table statistics for all tables of a specified device. | 132 | * Get table statistics for all tables of a specified device. |
| 133 | - * | 133 | + * @rsModel StatisticsFlowsTables |
| 134 | * @param deviceId device ID | 134 | * @param deviceId device ID |
| 135 | * @return JSON encoded array of table statistics | 135 | * @return JSON encoded array of table statistics |
| 136 | */ | 136 | */ |
| ... | @@ -142,11 +142,11 @@ public class StatisticsWebResource extends AbstractWebResource { | ... | @@ -142,11 +142,11 @@ public class StatisticsWebResource extends AbstractWebResource { |
| 142 | final Iterable<TableStatisticsEntry> tableStatisticsEntries = | 142 | final Iterable<TableStatisticsEntry> tableStatisticsEntries = |
| 143 | service.getFlowTableStatistics(DeviceId.deviceId(deviceId)); | 143 | service.getFlowTableStatistics(DeviceId.deviceId(deviceId)); |
| 144 | final ObjectNode root = mapper().createObjectNode(); | 144 | final ObjectNode root = mapper().createObjectNode(); |
| 145 | - final ArrayNode rootArrayNode = root.putArray("table-statistics"); | 145 | + final ArrayNode rootArrayNode = root.putArray("statistics"); |
| 146 | 146 | ||
| 147 | final ObjectNode deviceStatsNode = mapper().createObjectNode(); | 147 | final ObjectNode deviceStatsNode = mapper().createObjectNode(); |
| 148 | deviceStatsNode.put("device", deviceId); | 148 | deviceStatsNode.put("device", deviceId); |
| 149 | - final ArrayNode statisticsNode = deviceStatsNode.putArray("table-statistics"); | 149 | + final ArrayNode statisticsNode = deviceStatsNode.putArray("table"); |
| 150 | for (final TableStatisticsEntry entry : tableStatisticsEntries) { | 150 | for (final TableStatisticsEntry entry : tableStatisticsEntries) { |
| 151 | statisticsNode.add(codec(TableStatisticsEntry.class).encode(entry, this)); | 151 | statisticsNode.add(codec(TableStatisticsEntry.class).encode(entry, this)); |
| 152 | } | 152 | } | ... | ... |
| ... | @@ -50,6 +50,7 @@ public class TopologyWebResource extends AbstractWebResource { | ... | @@ -50,6 +50,7 @@ public class TopologyWebResource extends AbstractWebResource { |
| 50 | * Get overview of current topology. | 50 | * Get overview of current topology. |
| 51 | * | 51 | * |
| 52 | * @return topology overview | 52 | * @return topology overview |
| 53 | + * @rsModel Topology | ||
| 53 | */ | 54 | */ |
| 54 | @GET | 55 | @GET |
| 55 | @Produces(MediaType.APPLICATION_JSON) | 56 | @Produces(MediaType.APPLICATION_JSON) |
| ... | @@ -63,6 +64,7 @@ public class TopologyWebResource extends AbstractWebResource { | ... | @@ -63,6 +64,7 @@ public class TopologyWebResource extends AbstractWebResource { |
| 63 | * Get overview of topology SCCs. | 64 | * Get overview of topology SCCs. |
| 64 | * | 65 | * |
| 65 | * @return topology clusters overview | 66 | * @return topology clusters overview |
| 67 | + * @rsModel TopologyClusters | ||
| 66 | */ | 68 | */ |
| 67 | @GET | 69 | @GET |
| 68 | @Produces(MediaType.APPLICATION_JSON) | 70 | @Produces(MediaType.APPLICATION_JSON) |
| ... | @@ -80,6 +82,7 @@ public class TopologyWebResource extends AbstractWebResource { | ... | @@ -80,6 +82,7 @@ public class TopologyWebResource extends AbstractWebResource { |
| 80 | * | 82 | * |
| 81 | * @param clusterId id of the cluster to query | 83 | * @param clusterId id of the cluster to query |
| 82 | * @return topology cluster details | 84 | * @return topology cluster details |
| 85 | + * @rsModel TopologyCluster | ||
| 83 | */ | 86 | */ |
| 84 | @GET | 87 | @GET |
| 85 | @Produces(MediaType.APPLICATION_JSON) | 88 | @Produces(MediaType.APPLICATION_JSON) |
| ... | @@ -103,6 +106,7 @@ public class TopologyWebResource extends AbstractWebResource { | ... | @@ -103,6 +106,7 @@ public class TopologyWebResource extends AbstractWebResource { |
| 103 | * | 106 | * |
| 104 | * @param clusterId id of the cluster to query | 107 | * @param clusterId id of the cluster to query |
| 105 | * @return topology cluster devices | 108 | * @return topology cluster devices |
| 109 | + * @rsModel TopologyClustersDevices | ||
| 106 | */ | 110 | */ |
| 107 | @GET | 111 | @GET |
| 108 | @Produces(MediaType.APPLICATION_JSON) | 112 | @Produces(MediaType.APPLICATION_JSON) |
| ... | @@ -126,6 +130,7 @@ public class TopologyWebResource extends AbstractWebResource { | ... | @@ -126,6 +130,7 @@ public class TopologyWebResource extends AbstractWebResource { |
| 126 | * | 130 | * |
| 127 | * @param clusterId id of the cluster to query | 131 | * @param clusterId id of the cluster to query |
| 128 | * @return topology cluster links | 132 | * @return topology cluster links |
| 133 | + * @rsModel LinksGet | ||
| 129 | */ | 134 | */ |
| 130 | @GET | 135 | @GET |
| 131 | @Produces(MediaType.APPLICATION_JSON) | 136 | @Produces(MediaType.APPLICATION_JSON) |
| ... | @@ -175,6 +180,7 @@ public class TopologyWebResource extends AbstractWebResource { | ... | @@ -175,6 +180,7 @@ public class TopologyWebResource extends AbstractWebResource { |
| 175 | * @param connectPointString deviceid:portnumber | 180 | * @param connectPointString deviceid:portnumber |
| 176 | * @return JSON representation of true if the connect point is broadcast, | 181 | * @return JSON representation of true if the connect point is broadcast, |
| 177 | * false otherwise | 182 | * false otherwise |
| 183 | + * @rsModel TopologyBroadcast | ||
| 178 | */ | 184 | */ |
| 179 | @GET | 185 | @GET |
| 180 | @Produces(MediaType.APPLICATION_JSON) | 186 | @Produces(MediaType.APPLICATION_JSON) |
| ... | @@ -199,6 +205,7 @@ public class TopologyWebResource extends AbstractWebResource { | ... | @@ -199,6 +205,7 @@ public class TopologyWebResource extends AbstractWebResource { |
| 199 | * @param connectPointString deviceid:portnumber | 205 | * @param connectPointString deviceid:portnumber |
| 200 | * @return JSON representation of true if the connect point is broadcast, | 206 | * @return JSON representation of true if the connect point is broadcast, |
| 201 | * false otherwise | 207 | * false otherwise |
| 208 | + * @rsModel TopologyInfrastructure | ||
| 202 | */ | 209 | */ |
| 203 | @GET | 210 | @GET |
| 204 | @Produces(MediaType.APPLICATION_JSON) | 211 | @Produces(MediaType.APPLICATION_JSON) | ... | ... |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "application", | ||
| 4 | + "required": [ | ||
| 5 | + "name", | ||
| 6 | + "id", | ||
| 7 | + "version", | ||
| 8 | + "description", | ||
| 9 | + "origin", | ||
| 10 | + "permissions", | ||
| 11 | + "featuresRepo", | ||
| 12 | + "features", | ||
| 13 | + "requiredApps", | ||
| 14 | + "state" | ||
| 15 | + ], | ||
| 16 | + "properties": { | ||
| 17 | + "name": { | ||
| 18 | + "type": "string", | ||
| 19 | + "example": "org.onosproject.distributedprimitives" | ||
| 20 | + }, | ||
| 21 | + "id": { | ||
| 22 | + "type": "integer", | ||
| 23 | + "format": "int64", | ||
| 24 | + "example": 1 | ||
| 25 | + }, | ||
| 26 | + "version": { | ||
| 27 | + "type": "string", | ||
| 28 | + "example": "1.4.0.SNAPSHOT" | ||
| 29 | + }, | ||
| 30 | + "description": { | ||
| 31 | + "type": "string", | ||
| 32 | + "example": "ONOS app to test distributed primitives" | ||
| 33 | + }, | ||
| 34 | + "origin": { | ||
| 35 | + "type": "string", | ||
| 36 | + "example": "ON.Lab" | ||
| 37 | + }, | ||
| 38 | + "permissions": { | ||
| 39 | + "type": "array", | ||
| 40 | + "xml": { | ||
| 41 | + "name": "hosts", | ||
| 42 | + "wrapped": true | ||
| 43 | + }, | ||
| 44 | + "items": { | ||
| 45 | + "type": "string", | ||
| 46 | + "example": "" | ||
| 47 | + } | ||
| 48 | + }, | ||
| 49 | + "featuresRepo": { | ||
| 50 | + "type": "string", | ||
| 51 | + "example": "mvn:org.onosproject/onos-app-cip/1.4.0-SNAPSHOT/xml/features" | ||
| 52 | + }, | ||
| 53 | + "features": { | ||
| 54 | + "type": "array", | ||
| 55 | + "xml": { | ||
| 56 | + "name": "features", | ||
| 57 | + "wrapped": true | ||
| 58 | + }, | ||
| 59 | + "items": { | ||
| 60 | + "type": "string", | ||
| 61 | + "example": "onos-app-distributed-primitives" | ||
| 62 | + } | ||
| 63 | + }, | ||
| 64 | + "requiredApps": { | ||
| 65 | + "type": "array", | ||
| 66 | + "xml": { | ||
| 67 | + "name": "requiredApps", | ||
| 68 | + "wrapped": true | ||
| 69 | + }, | ||
| 70 | + "items": { | ||
| 71 | + "type": "string", | ||
| 72 | + "example": "" | ||
| 73 | + } | ||
| 74 | + }, | ||
| 75 | + "state": { | ||
| 76 | + "type": "string", | ||
| 77 | + "example": "ACTIVE" | ||
| 78 | + } | ||
| 79 | + } | ||
| 80 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "application", | ||
| 4 | + "required": [ | ||
| 5 | + "name", | ||
| 6 | + "id", | ||
| 7 | + "version", | ||
| 8 | + "description", | ||
| 9 | + "origin", | ||
| 10 | + "permissions", | ||
| 11 | + "featuresRepo", | ||
| 12 | + "features", | ||
| 13 | + "requiredApps", | ||
| 14 | + "state" | ||
| 15 | + ], | ||
| 16 | + "properties": { | ||
| 17 | + "name": { | ||
| 18 | + "type": "string", | ||
| 19 | + "example": "org.onosproject.distributedprimitives" | ||
| 20 | + }, | ||
| 21 | + "id": { | ||
| 22 | + "type": "integer", | ||
| 23 | + "format": "int64", | ||
| 24 | + "example": 1 | ||
| 25 | + }, | ||
| 26 | + "version": { | ||
| 27 | + "type": "string", | ||
| 28 | + "example": "1.4.0.SNAPSHOT" | ||
| 29 | + }, | ||
| 30 | + "description": { | ||
| 31 | + "type": "string", | ||
| 32 | + "example": "ONOS app to test distributed primitives" | ||
| 33 | + }, | ||
| 34 | + "origin": { | ||
| 35 | + "type": "string", | ||
| 36 | + "example": "ON.Lab" | ||
| 37 | + }, | ||
| 38 | + "permissions": { | ||
| 39 | + "type": "array", | ||
| 40 | + "xml": { | ||
| 41 | + "name": "hosts", | ||
| 42 | + "wrapped": true | ||
| 43 | + }, | ||
| 44 | + "items": { | ||
| 45 | + "type": "string", | ||
| 46 | + "example": "" | ||
| 47 | + } | ||
| 48 | + }, | ||
| 49 | + "featuresRepo": { | ||
| 50 | + "type": "string", | ||
| 51 | + "example": "mvn:org.onosproject/onos-app-cip/1.4.0-SNAPSHOT/xml/features" | ||
| 52 | + }, | ||
| 53 | + "features": { | ||
| 54 | + "type": "array", | ||
| 55 | + "xml": { | ||
| 56 | + "name": "features", | ||
| 57 | + "wrapped": true | ||
| 58 | + }, | ||
| 59 | + "items": { | ||
| 60 | + "type": "string", | ||
| 61 | + "example": "onos-app-distributed-primitives" | ||
| 62 | + } | ||
| 63 | + }, | ||
| 64 | + "requiredApps": { | ||
| 65 | + "type": "array", | ||
| 66 | + "xml": { | ||
| 67 | + "name": "requiredApps", | ||
| 68 | + "wrapped": true | ||
| 69 | + }, | ||
| 70 | + "items": { | ||
| 71 | + "type": "string", | ||
| 72 | + "example": "" | ||
| 73 | + } | ||
| 74 | + }, | ||
| 75 | + "state": { | ||
| 76 | + "type": "string", | ||
| 77 | + "example": "ACTIVE" | ||
| 78 | + } | ||
| 79 | + } | ||
| 80 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "applications", | ||
| 4 | + "required": [ | ||
| 5 | + "applications" | ||
| 6 | + ], | ||
| 7 | + "properties": { | ||
| 8 | + "applications": { | ||
| 9 | + "type": "array", | ||
| 10 | + "xml": { | ||
| 11 | + "name": "applications", | ||
| 12 | + "wrapped": true | ||
| 13 | + }, | ||
| 14 | + "items": { | ||
| 15 | + "type": "object", | ||
| 16 | + "title": "application", | ||
| 17 | + "required": [ | ||
| 18 | + "name", | ||
| 19 | + "id", | ||
| 20 | + "version", | ||
| 21 | + "description", | ||
| 22 | + "origin", | ||
| 23 | + "permissions", | ||
| 24 | + "featuresRepo", | ||
| 25 | + "features", | ||
| 26 | + "requiredApps", | ||
| 27 | + "state" | ||
| 28 | + ], | ||
| 29 | + "properties": { | ||
| 30 | + "name": { | ||
| 31 | + "type": "string", | ||
| 32 | + "example": "org.onosproject.distributedprimitives" | ||
| 33 | + }, | ||
| 34 | + "id": { | ||
| 35 | + "type": "integer", | ||
| 36 | + "format": "int64", | ||
| 37 | + "example": 1 | ||
| 38 | + }, | ||
| 39 | + "version": { | ||
| 40 | + "type": "string", | ||
| 41 | + "example": "1.4.0.SNAPSHOT" | ||
| 42 | + }, | ||
| 43 | + "description": { | ||
| 44 | + "type": "string", | ||
| 45 | + "example": "ONOS app to test distributed primitives" | ||
| 46 | + }, | ||
| 47 | + "origin": { | ||
| 48 | + "type": "string", | ||
| 49 | + "example": "ON.Lab" | ||
| 50 | + }, | ||
| 51 | + "permissions": { | ||
| 52 | + "type": "array", | ||
| 53 | + "xml": { | ||
| 54 | + "name": "hosts", | ||
| 55 | + "wrapped": true | ||
| 56 | + }, | ||
| 57 | + "items": { | ||
| 58 | + "type": "string", | ||
| 59 | + "example": "" | ||
| 60 | + } | ||
| 61 | + }, | ||
| 62 | + "featuresRepo": { | ||
| 63 | + "type": "string", | ||
| 64 | + "example": "mvn:org.onosproject/onos-app-cip/1.4.0-SNAPSHOT/xml/features" | ||
| 65 | + }, | ||
| 66 | + "features": { | ||
| 67 | + "type": "array", | ||
| 68 | + "xml": { | ||
| 69 | + "name": "features", | ||
| 70 | + "wrapped": true | ||
| 71 | + }, | ||
| 72 | + "items": { | ||
| 73 | + "type": "string", | ||
| 74 | + "example": "onos-app-distributed-primitives" | ||
| 75 | + } | ||
| 76 | + }, | ||
| 77 | + "requiredApps": { | ||
| 78 | + "type": "array", | ||
| 79 | + "xml": { | ||
| 80 | + "name": "requiredApps", | ||
| 81 | + "wrapped": true | ||
| 82 | + }, | ||
| 83 | + "items": { | ||
| 84 | + "type": "string", | ||
| 85 | + "example": "" | ||
| 86 | + } | ||
| 87 | + }, | ||
| 88 | + "state": { | ||
| 89 | + "type": "string", | ||
| 90 | + "example": "ACTIVE" | ||
| 91 | + } | ||
| 92 | + } | ||
| 93 | + } | ||
| 94 | + } | ||
| 95 | + } | ||
| 96 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "cluster", | ||
| 4 | + "required": [ | ||
| 5 | + "nodes" | ||
| 6 | + ], | ||
| 7 | + "properties": { | ||
| 8 | + "nodes": { | ||
| 9 | + "type": "array", | ||
| 10 | + "xml": { | ||
| 11 | + "name": "nodes", | ||
| 12 | + "wrapped": true | ||
| 13 | + }, | ||
| 14 | + "items": { | ||
| 15 | + "type": "object", | ||
| 16 | + "title": "nodes", | ||
| 17 | + "required": [ | ||
| 18 | + "id", | ||
| 19 | + "ip", | ||
| 20 | + "tcpPort", | ||
| 21 | + "status" | ||
| 22 | + ], | ||
| 23 | + "properties": { | ||
| 24 | + "id": { | ||
| 25 | + "type": "string", | ||
| 26 | + "example": "127.0.0.1" | ||
| 27 | + }, | ||
| 28 | + "ip": { | ||
| 29 | + "type": "string", | ||
| 30 | + "example": "127.0.0.1" | ||
| 31 | + }, | ||
| 32 | + "tcpPort": { | ||
| 33 | + "type": "integer", | ||
| 34 | + "format": "int64", | ||
| 35 | + "example": 9876 | ||
| 36 | + }, | ||
| 37 | + "status": { | ||
| 38 | + "type": "string", | ||
| 39 | + "example": "ACTIVE" | ||
| 40 | + } | ||
| 41 | + } | ||
| 42 | + } | ||
| 43 | + } | ||
| 44 | + } | ||
| 45 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "required": [ | ||
| 4 | + "id", | ||
| 5 | + "ip", | ||
| 6 | + "tcpPort", | ||
| 7 | + "status" | ||
| 8 | + ], | ||
| 9 | + "properties": { | ||
| 10 | + "id": { | ||
| 11 | + "type": "string", | ||
| 12 | + "example": "127.0.0.1" | ||
| 13 | + }, | ||
| 14 | + "ip": { | ||
| 15 | + "type": "string", | ||
| 16 | + "example": "127.0.0.1" | ||
| 17 | + }, | ||
| 18 | + "tcpPort": { | ||
| 19 | + "type": "integer", | ||
| 20 | + "format": "int64", | ||
| 21 | + "example": 9876 | ||
| 22 | + }, | ||
| 23 | + "status": { | ||
| 24 | + "type": "string", | ||
| 25 | + "example": "ACTIVE" | ||
| 26 | + } | ||
| 27 | + } | ||
| 28 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "nodes", | ||
| 4 | + "properties": { | ||
| 5 | + "nodes": { | ||
| 6 | + "type": "array", | ||
| 7 | + "xml": { | ||
| 8 | + "name": "nodes", | ||
| 9 | + "wrapped": true | ||
| 10 | + }, | ||
| 11 | + "items": { | ||
| 12 | + "type": "object", | ||
| 13 | + "title": "nodes", | ||
| 14 | + "required": [ | ||
| 15 | + "id", | ||
| 16 | + "ip", | ||
| 17 | + "tcpPort", | ||
| 18 | + "status" | ||
| 19 | + ], | ||
| 20 | + "properties": { | ||
| 21 | + "id": { | ||
| 22 | + "type": "string", | ||
| 23 | + "example": "127.0.0.1" | ||
| 24 | + }, | ||
| 25 | + "ip": { | ||
| 26 | + "type": "string", | ||
| 27 | + "example": "127.0.0.1" | ||
| 28 | + }, | ||
| 29 | + "tcpPort": { | ||
| 30 | + "type": "integer", | ||
| 31 | + "format": "int64", | ||
| 32 | + "example": 9876 | ||
| 33 | + }, | ||
| 34 | + "status": { | ||
| 35 | + "type": "string", | ||
| 36 | + "example": "ACTIVE" | ||
| 37 | + } | ||
| 38 | + } | ||
| 39 | + } | ||
| 40 | + } | ||
| 41 | + } | ||
| 42 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | { | 1 | { |
| 2 | + "type": "object", | ||
| 3 | + "title": "nodes", | ||
| 4 | + "required": [ | ||
| 5 | + "devices" | ||
| 6 | + ], | ||
| 7 | + "properties": { | ||
| 8 | + "devices": { | ||
| 2 | "type": "array", | 9 | "type": "array", |
| 3 | "xml": { | 10 | "xml": { |
| 4 | "name": "device", | 11 | "name": "device", |
| ... | @@ -81,4 +88,6 @@ | ... | @@ -81,4 +88,6 @@ |
| 81 | } | 88 | } |
| 82 | } | 89 | } |
| 83 | } | 90 | } |
| 91 | + } | ||
| 92 | + } | ||
| 84 | } | 93 | } | ... | ... |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "flows", | ||
| 4 | + "required": [ | ||
| 5 | + "flows" | ||
| 6 | + ], | ||
| 7 | + "properties": { | ||
| 8 | + "flows": { | ||
| 9 | + "type": "array", | ||
| 10 | + "xml": { | ||
| 11 | + "name": "hosts", | ||
| 12 | + "wrapped": true | ||
| 13 | + }, | ||
| 14 | + "items": { | ||
| 15 | + "type": "object", | ||
| 16 | + "title": "flow", | ||
| 17 | + "required": [ | ||
| 18 | + "id", | ||
| 19 | + "appId", | ||
| 20 | + "groupId", | ||
| 21 | + "priority", | ||
| 22 | + "timeout", | ||
| 23 | + "isPermanent", | ||
| 24 | + "deviceId", | ||
| 25 | + "state", | ||
| 26 | + "life", | ||
| 27 | + "packets", | ||
| 28 | + "bytes", | ||
| 29 | + "lastSeen" | ||
| 30 | + ], | ||
| 31 | + "properties": { | ||
| 32 | + "id": { | ||
| 33 | + "type": "string", | ||
| 34 | + "example": "12103425214920339" | ||
| 35 | + }, | ||
| 36 | + "appId": { | ||
| 37 | + "type": "string", | ||
| 38 | + "example": "org.onosproject.core" | ||
| 39 | + }, | ||
| 40 | + "groupId": { | ||
| 41 | + "type": "integer", | ||
| 42 | + "format": "int64", | ||
| 43 | + "example": 0 | ||
| 44 | + }, | ||
| 45 | + "priority": { | ||
| 46 | + "type": "integer", | ||
| 47 | + "format": "int64", | ||
| 48 | + "example": 400000 | ||
| 49 | + }, | ||
| 50 | + "timeout": { | ||
| 51 | + "type": "integer", | ||
| 52 | + "format": "int64", | ||
| 53 | + "example": 0 | ||
| 54 | + }, | ||
| 55 | + "isPermanent": { | ||
| 56 | + "type": "boolean", | ||
| 57 | + "example": true | ||
| 58 | + }, | ||
| 59 | + "deviceId": { | ||
| 60 | + "type": "string", | ||
| 61 | + "example": "of:0000000000000003" | ||
| 62 | + }, | ||
| 63 | + "state": { | ||
| 64 | + "type": "string", | ||
| 65 | + "example": "ADDED" | ||
| 66 | + }, | ||
| 67 | + "life": { | ||
| 68 | + "type": "integer", | ||
| 69 | + "format": "int64", | ||
| 70 | + "example": 69889 | ||
| 71 | + }, | ||
| 72 | + "packets": { | ||
| 73 | + "type": "integer", | ||
| 74 | + "format": "int64", | ||
| 75 | + "example": 22546 | ||
| 76 | + }, | ||
| 77 | + "bytes": { | ||
| 78 | + "type": "integer", | ||
| 79 | + "format": "int64", | ||
| 80 | + "example": 1826226 | ||
| 81 | + }, | ||
| 82 | + "lastSeen": { | ||
| 83 | + "type": "integer", | ||
| 84 | + "format": "int64", | ||
| 85 | + "example": 1447892365670 | ||
| 86 | + }, | ||
| 87 | + "treatment": { | ||
| 88 | + "type": "object", | ||
| 89 | + "title": "treatment", | ||
| 90 | + "required": [ | ||
| 91 | + "instructions", | ||
| 92 | + "deferred" | ||
| 93 | + ], | ||
| 94 | + "properties": { | ||
| 95 | + "instructions": { | ||
| 96 | + "type": "array", | ||
| 97 | + "title": "treatment", | ||
| 98 | + "required": [ | ||
| 99 | + "properties", | ||
| 100 | + "port" | ||
| 101 | + ], | ||
| 102 | + "items": { | ||
| 103 | + "type": "object", | ||
| 104 | + "title": "instruction", | ||
| 105 | + "required": [ | ||
| 106 | + "type", | ||
| 107 | + "port" | ||
| 108 | + ], | ||
| 109 | + "properties": { | ||
| 110 | + "type": { | ||
| 111 | + "type": "string", | ||
| 112 | + "example": "OUTPUT" | ||
| 113 | + }, | ||
| 114 | + "port": { | ||
| 115 | + "type": "integer", | ||
| 116 | + "format": "int64", | ||
| 117 | + "example": -3 | ||
| 118 | + } | ||
| 119 | + } | ||
| 120 | + } | ||
| 121 | + }, | ||
| 122 | + "deferred": { | ||
| 123 | + "type": "array", | ||
| 124 | + "xml": { | ||
| 125 | + "name": "deferred", | ||
| 126 | + "wrapped": true | ||
| 127 | + }, | ||
| 128 | + "items": { | ||
| 129 | + "type": "string" | ||
| 130 | + } | ||
| 131 | + } | ||
| 132 | + } | ||
| 133 | + } | ||
| 134 | + } | ||
| 135 | + } | ||
| 136 | + }, | ||
| 137 | + "selector": { | ||
| 138 | + "type": "object", | ||
| 139 | + "title": "selector", | ||
| 140 | + "required": [ | ||
| 141 | + "criteria" | ||
| 142 | + ], | ||
| 143 | + "properties": { | ||
| 144 | + "criteria": { | ||
| 145 | + "type": "array", | ||
| 146 | + "xml": { | ||
| 147 | + "name": "criteria", | ||
| 148 | + "wrapped": true | ||
| 149 | + }, | ||
| 150 | + "items": { | ||
| 151 | + "type": "object", | ||
| 152 | + "title": "criteria", | ||
| 153 | + "required": [ | ||
| 154 | + "type", | ||
| 155 | + "ethType" | ||
| 156 | + ], | ||
| 157 | + "properties": { | ||
| 158 | + "type": { | ||
| 159 | + "type": "string", | ||
| 160 | + "example": "ETH_TYPE" | ||
| 161 | + }, | ||
| 162 | + "ethType": { | ||
| 163 | + "type": "integer", | ||
| 164 | + "format": "int64", | ||
| 165 | + "example": -30516 | ||
| 166 | + } | ||
| 167 | + } | ||
| 168 | + } | ||
| 169 | + } | ||
| 170 | + } | ||
| 171 | + } | ||
| 172 | + } | ||
| 173 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "flow", | ||
| 4 | + "required": [ | ||
| 5 | + "priority", | ||
| 6 | + "timeout", | ||
| 7 | + "isPermanent", | ||
| 8 | + "deviceId" | ||
| 9 | + ], | ||
| 10 | + "properties": { | ||
| 11 | + "priority": { | ||
| 12 | + "type": "integer", | ||
| 13 | + "format": "int64", | ||
| 14 | + "example": 400000 | ||
| 15 | + }, | ||
| 16 | + "timeout": { | ||
| 17 | + "type": "integer", | ||
| 18 | + "format": "int64", | ||
| 19 | + "example": 0 | ||
| 20 | + }, | ||
| 21 | + "isPermanent": { | ||
| 22 | + "type": "boolean", | ||
| 23 | + "example": true | ||
| 24 | + }, | ||
| 25 | + "deviceId": { | ||
| 26 | + "type": "string", | ||
| 27 | + "example": "of:0000000000000003" | ||
| 28 | + }, | ||
| 29 | + "treatment": { | ||
| 30 | + "type": "object", | ||
| 31 | + "title": "treatment", | ||
| 32 | + "required": [ | ||
| 33 | + "instructions", | ||
| 34 | + "deferred" | ||
| 35 | + ], | ||
| 36 | + "properties": { | ||
| 37 | + "instructions": { | ||
| 38 | + "type": "array", | ||
| 39 | + "title": "treatment", | ||
| 40 | + "required": [ | ||
| 41 | + "properties", | ||
| 42 | + "port" | ||
| 43 | + ], | ||
| 44 | + "items": { | ||
| 45 | + "type": "object", | ||
| 46 | + "title": "instructions", | ||
| 47 | + "required": [ | ||
| 48 | + "type", | ||
| 49 | + "port" | ||
| 50 | + ], | ||
| 51 | + "properties": { | ||
| 52 | + "type": { | ||
| 53 | + "type": "string", | ||
| 54 | + "example": "OUTPUT" | ||
| 55 | + }, | ||
| 56 | + "port": { | ||
| 57 | + "type": "integer", | ||
| 58 | + "format": "int64", | ||
| 59 | + "example": -3 | ||
| 60 | + } | ||
| 61 | + } | ||
| 62 | + } | ||
| 63 | + } | ||
| 64 | + } | ||
| 65 | + }, | ||
| 66 | + "selector": { | ||
| 67 | + "type": "object", | ||
| 68 | + "title": "selector", | ||
| 69 | + "required": [ | ||
| 70 | + "criteria" | ||
| 71 | + ], | ||
| 72 | + "properties": { | ||
| 73 | + "criteria": { | ||
| 74 | + "type": "array", | ||
| 75 | + "xml": { | ||
| 76 | + "name": "criteria", | ||
| 77 | + "wrapped": true | ||
| 78 | + }, | ||
| 79 | + "items": { | ||
| 80 | + "type": "object", | ||
| 81 | + "title": "criteria", | ||
| 82 | + "required": [ | ||
| 83 | + "type", | ||
| 84 | + "ethType" | ||
| 85 | + ], | ||
| 86 | + "properties": { | ||
| 87 | + "type": { | ||
| 88 | + "type": "string", | ||
| 89 | + "example": "ETH_TYPE" | ||
| 90 | + }, | ||
| 91 | + "ethType": { | ||
| 92 | + "type": "integer", | ||
| 93 | + "format": "int64", | ||
| 94 | + "example": -30516 | ||
| 95 | + } | ||
| 96 | + } | ||
| 97 | + } | ||
| 98 | + } | ||
| 99 | + } | ||
| 100 | + } | ||
| 101 | + } | ||
| 102 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "host", | ||
| 4 | + "required": [ | ||
| 5 | + "id", | ||
| 6 | + "mac", | ||
| 7 | + "vlan", | ||
| 8 | + "ipAddresses", | ||
| 9 | + "location" | ||
| 10 | + ], | ||
| 11 | + "properties": { | ||
| 12 | + "id": { | ||
| 13 | + "type": "string", | ||
| 14 | + "example": "46:E4:3C:A4:17:C8/-1" | ||
| 15 | + }, | ||
| 16 | + "mac": { | ||
| 17 | + "type": "string", | ||
| 18 | + "example": "46:E4:3C:A4:17:C8" | ||
| 19 | + }, | ||
| 20 | + "vlan": { | ||
| 21 | + "type": "string", | ||
| 22 | + "example": "-1" | ||
| 23 | + }, | ||
| 24 | + "ipAddresses": { | ||
| 25 | + "type": "array", | ||
| 26 | + "xml": { | ||
| 27 | + "name": "hosts", | ||
| 28 | + "wrapped": true | ||
| 29 | + }, | ||
| 30 | + "items": { | ||
| 31 | + "type": "string", | ||
| 32 | + "example": "127.0.0.1" | ||
| 33 | + } | ||
| 34 | + }, | ||
| 35 | + "location": { | ||
| 36 | + "type": "object", | ||
| 37 | + "title": "location", | ||
| 38 | + "required": [ | ||
| 39 | + "elementId", | ||
| 40 | + "port" | ||
| 41 | + ], | ||
| 42 | + "properties": { | ||
| 43 | + "elementId": { | ||
| 44 | + "type": "string", | ||
| 45 | + "example": "of:0000000000000002" | ||
| 46 | + }, | ||
| 47 | + "port": { | ||
| 48 | + "type": "string", | ||
| 49 | + "example": "3" | ||
| 50 | + } | ||
| 51 | + } | ||
| 52 | + } | ||
| 53 | + } | ||
| 54 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "host", | ||
| 4 | + "required": [ | ||
| 5 | + "mac", | ||
| 6 | + "vlan", | ||
| 7 | + "ipAddresses", | ||
| 8 | + "location" | ||
| 9 | + ], | ||
| 10 | + "properties": { | ||
| 11 | + "mac": { | ||
| 12 | + "type": "string", | ||
| 13 | + "example": "46:E4:3C:A4:17:C8" | ||
| 14 | + }, | ||
| 15 | + "vlan": { | ||
| 16 | + "type": "string", | ||
| 17 | + "example": "-1" | ||
| 18 | + }, | ||
| 19 | + "ipAddresses": { | ||
| 20 | + "type": "array", | ||
| 21 | + "xml": { | ||
| 22 | + "name": "hosts", | ||
| 23 | + "wrapped": true | ||
| 24 | + }, | ||
| 25 | + "items": { | ||
| 26 | + "type": "string", | ||
| 27 | + "example": "127.0.0.1" | ||
| 28 | + } | ||
| 29 | + }, | ||
| 30 | + "location": { | ||
| 31 | + "type": "object", | ||
| 32 | + "title": "location", | ||
| 33 | + "required": [ | ||
| 34 | + "elementId", | ||
| 35 | + "port" | ||
| 36 | + ], | ||
| 37 | + "properties": { | ||
| 38 | + "elementId": { | ||
| 39 | + "type": "string", | ||
| 40 | + "example": "of:0000000000000002" | ||
| 41 | + }, | ||
| 42 | + "port": { | ||
| 43 | + "type": "string", | ||
| 44 | + "example": "3" | ||
| 45 | + } | ||
| 46 | + } | ||
| 47 | + } | ||
| 48 | + } | ||
| 49 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "hosts", | ||
| 4 | + "required": [ | ||
| 5 | + "hosts" | ||
| 6 | + ], | ||
| 7 | + "properties": { | ||
| 8 | + "hosts": { | ||
| 9 | + "type": "array", | ||
| 10 | + "xml": { | ||
| 11 | + "name": "hosts", | ||
| 12 | + "wrapped": true | ||
| 13 | + }, | ||
| 14 | + "items": { | ||
| 15 | + "type": "object", | ||
| 16 | + "title": "host", | ||
| 17 | + "required": [ | ||
| 18 | + "id", | ||
| 19 | + "mac", | ||
| 20 | + "vlan", | ||
| 21 | + "ipAddresses", | ||
| 22 | + "location" | ||
| 23 | + ], | ||
| 24 | + "properties": { | ||
| 25 | + "id": { | ||
| 26 | + "type": "string", | ||
| 27 | + "example": "46:E4:3C:A4:17:C8/-1" | ||
| 28 | + }, | ||
| 29 | + "mac": { | ||
| 30 | + "type": "string", | ||
| 31 | + "example": "46:E4:3C:A4:17:C8" | ||
| 32 | + }, | ||
| 33 | + "vlan": { | ||
| 34 | + "type": "string", | ||
| 35 | + "example": "-1" | ||
| 36 | + }, | ||
| 37 | + "ipAddresses": { | ||
| 38 | + "type": "array", | ||
| 39 | + "xml": { | ||
| 40 | + "name": "hosts", | ||
| 41 | + "wrapped": true | ||
| 42 | + }, | ||
| 43 | + "items": { | ||
| 44 | + "type": "string", | ||
| 45 | + "example": "127.0.0.1" | ||
| 46 | + } | ||
| 47 | + }, | ||
| 48 | + "location": { | ||
| 49 | + "type": "object", | ||
| 50 | + "title": "location", | ||
| 51 | + "required": [ | ||
| 52 | + "elementId", | ||
| 53 | + "port" | ||
| 54 | + ], | ||
| 55 | + "properties": { | ||
| 56 | + "elementId": { | ||
| 57 | + "type": "string", | ||
| 58 | + "example": "of:0000000000000002" | ||
| 59 | + }, | ||
| 60 | + "port": { | ||
| 61 | + "type": "string", | ||
| 62 | + "example": "3" | ||
| 63 | + } | ||
| 64 | + } | ||
| 65 | + } | ||
| 66 | + } | ||
| 67 | + } | ||
| 68 | + } | ||
| 69 | + } | ||
| 70 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "links", | ||
| 4 | + "required": [ | ||
| 5 | + "links" | ||
| 6 | + ], | ||
| 7 | + "properties": { | ||
| 8 | + "links": { | ||
| 9 | + "type": "array", | ||
| 10 | + "xml": { | ||
| 11 | + "name": "links", | ||
| 12 | + "wrapped": true | ||
| 13 | + }, | ||
| 14 | + "items": { | ||
| 15 | + "type": "object", | ||
| 16 | + "title": "link", | ||
| 17 | + "required": [ | ||
| 18 | + "src", | ||
| 19 | + "dst", | ||
| 20 | + "type", | ||
| 21 | + "state" | ||
| 22 | + ], | ||
| 23 | + "properties": { | ||
| 24 | + "src": { | ||
| 25 | + "type": "object", | ||
| 26 | + "title": "src", | ||
| 27 | + "required": [ | ||
| 28 | + "port", | ||
| 29 | + "device" | ||
| 30 | + ], | ||
| 31 | + "properties": { | ||
| 32 | + "port": { | ||
| 33 | + "type": "string", | ||
| 34 | + "example": "3" | ||
| 35 | + }, | ||
| 36 | + "device": { | ||
| 37 | + "type": "string", | ||
| 38 | + "example": "of:0000000000000002" | ||
| 39 | + } | ||
| 40 | + } | ||
| 41 | + }, | ||
| 42 | + "dst": { | ||
| 43 | + "type": "object", | ||
| 44 | + "title": "dst", | ||
| 45 | + "required": [ | ||
| 46 | + "port", | ||
| 47 | + "device" | ||
| 48 | + ], | ||
| 49 | + "properties": { | ||
| 50 | + "port": { | ||
| 51 | + "type": "string", | ||
| 52 | + "example": "2" | ||
| 53 | + }, | ||
| 54 | + "device": { | ||
| 55 | + "type": "string", | ||
| 56 | + "example": "of:0000000000000003" | ||
| 57 | + } | ||
| 58 | + } | ||
| 59 | + }, | ||
| 60 | + "type": { | ||
| 61 | + "type": "string", | ||
| 62 | + "example": "DIRECT" | ||
| 63 | + }, | ||
| 64 | + "state": { | ||
| 65 | + "type": "string", | ||
| 66 | + "example": "ACTIVE" | ||
| 67 | + } | ||
| 68 | + } | ||
| 69 | + } | ||
| 70 | + } | ||
| 71 | + } | ||
| 72 | +} |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "paths", | ||
| 4 | + "required": [ | ||
| 5 | + "paths" | ||
| 6 | + ], | ||
| 7 | + "properties": { | ||
| 8 | + "paths": { | ||
| 9 | + "type": "array", | ||
| 10 | + "xml": { | ||
| 11 | + "name": "hosts", | ||
| 12 | + "wrapped": true | ||
| 13 | + }, | ||
| 14 | + "items": { | ||
| 15 | + "type": "object", | ||
| 16 | + "title": "host", | ||
| 17 | + "required": [ | ||
| 18 | + "cost", | ||
| 19 | + "links" | ||
| 20 | + ], | ||
| 21 | + "properties": { | ||
| 22 | + "cost": { | ||
| 23 | + "type": "integer", | ||
| 24 | + "format": "int64", | ||
| 25 | + "example": 2 | ||
| 26 | + }, | ||
| 27 | + "links": { | ||
| 28 | + "type": "array", | ||
| 29 | + "xml": { | ||
| 30 | + "name": "links", | ||
| 31 | + "wrapped": true | ||
| 32 | + }, | ||
| 33 | + "items": { | ||
| 34 | + "type": "object", | ||
| 35 | + "title": "link", | ||
| 36 | + "required": [ | ||
| 37 | + "src", | ||
| 38 | + "dst", | ||
| 39 | + "type", | ||
| 40 | + "state" | ||
| 41 | + ], | ||
| 42 | + "properties": { | ||
| 43 | + "src": { | ||
| 44 | + "type": "object", | ||
| 45 | + "title": "src", | ||
| 46 | + "required": [ | ||
| 47 | + "port", | ||
| 48 | + "device" | ||
| 49 | + ], | ||
| 50 | + "properties": { | ||
| 51 | + "port": { | ||
| 52 | + "type": "string", | ||
| 53 | + "example": "3" | ||
| 54 | + }, | ||
| 55 | + "device": { | ||
| 56 | + "type": "string", | ||
| 57 | + "example": "of:0000000000000002" | ||
| 58 | + } | ||
| 59 | + } | ||
| 60 | + }, | ||
| 61 | + "dst": { | ||
| 62 | + "type": "object", | ||
| 63 | + "title": "dst", | ||
| 64 | + "required": [ | ||
| 65 | + "port", | ||
| 66 | + "device" | ||
| 67 | + ], | ||
| 68 | + "properties": { | ||
| 69 | + "port": { | ||
| 70 | + "type": "string", | ||
| 71 | + "example": "2" | ||
| 72 | + }, | ||
| 73 | + "device": { | ||
| 74 | + "type": "string", | ||
| 75 | + "example": "of:0000000000000003" | ||
| 76 | + } | ||
| 77 | + } | ||
| 78 | + }, | ||
| 79 | + "type": { | ||
| 80 | + "type": "string", | ||
| 81 | + "example": "DIRECT" | ||
| 82 | + }, | ||
| 83 | + "state": { | ||
| 84 | + "type": "string", | ||
| 85 | + "example": "ACTIVE" | ||
| 86 | + } | ||
| 87 | + } | ||
| 88 | + } | ||
| 89 | + } | ||
| 90 | + } | ||
| 91 | + } | ||
| 92 | + } | ||
| 93 | + } | ||
| 94 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "loads", | ||
| 4 | + "required": [ | ||
| 5 | + "loads" | ||
| 6 | + ], | ||
| 7 | + "properties": { | ||
| 8 | + "loads": { | ||
| 9 | + "type": "array", | ||
| 10 | + "required": [ | ||
| 11 | + "loads" | ||
| 12 | + ], | ||
| 13 | + "xml": { | ||
| 14 | + "name": "loads", | ||
| 15 | + "wrapped": true | ||
| 16 | + }, | ||
| 17 | + "items": { | ||
| 18 | + "type": "object", | ||
| 19 | + "title": "loads", | ||
| 20 | + "required": [ | ||
| 21 | + "rate", | ||
| 22 | + "latest", | ||
| 23 | + "valid", | ||
| 24 | + "time", | ||
| 25 | + "link" | ||
| 26 | + ], | ||
| 27 | + "properties": { | ||
| 28 | + "rate": { | ||
| 29 | + "type": "integer", | ||
| 30 | + "format": "int64", | ||
| 31 | + "example": 0 | ||
| 32 | + }, | ||
| 33 | + "latest": { | ||
| 34 | + "type": "string", | ||
| 35 | + "example": "of:0000000000000001" | ||
| 36 | + }, | ||
| 37 | + "valid": { | ||
| 38 | + "type": "boolean", | ||
| 39 | + "example": false | ||
| 40 | + }, | ||
| 41 | + "time": { | ||
| 42 | + "type": "integer", | ||
| 43 | + "format": "int64", | ||
| 44 | + "example": 1447980119542 | ||
| 45 | + }, | ||
| 46 | + "link": { | ||
| 47 | + "type": "string", | ||
| 48 | + "example": "http://10.128.12.1:8181/onos/v1/links?device=of:0000000000000002&port=3" | ||
| 49 | + } | ||
| 50 | + } | ||
| 51 | + } | ||
| 52 | + } | ||
| 53 | + } | ||
| 54 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "statistics", | ||
| 4 | + "required": [ | ||
| 5 | + "statistics" | ||
| 6 | + ], | ||
| 7 | + "properties": { | ||
| 8 | + "statistics": { | ||
| 9 | + "type": "array", | ||
| 10 | + "required": [ | ||
| 11 | + "statistics" | ||
| 12 | + ], | ||
| 13 | + "xml": { | ||
| 14 | + "name": "statistics", | ||
| 15 | + "wrapped": true | ||
| 16 | + }, | ||
| 17 | + "items": { | ||
| 18 | + "type": "object", | ||
| 19 | + "title": "statistics", | ||
| 20 | + "required": [ | ||
| 21 | + "table" | ||
| 22 | + ], | ||
| 23 | + "properties": { | ||
| 24 | + "deviceId": { | ||
| 25 | + "type": "string", | ||
| 26 | + "example": "of:0000000000000001" | ||
| 27 | + }, | ||
| 28 | + "table": { | ||
| 29 | + "type": "array", | ||
| 30 | + "xml": { | ||
| 31 | + "name": "table", | ||
| 32 | + "wrapped": true | ||
| 33 | + }, | ||
| 34 | + "items": { | ||
| 35 | + "type": "object", | ||
| 36 | + "title": "tables", | ||
| 37 | + "required": [ | ||
| 38 | + "tableId", | ||
| 39 | + "deviceId", | ||
| 40 | + "activeEntries", | ||
| 41 | + "packetsLookedUp", | ||
| 42 | + "packetsMathced" | ||
| 43 | + ], | ||
| 44 | + "properties": { | ||
| 45 | + "tableId": { | ||
| 46 | + "type": "integer", | ||
| 47 | + "format": "int64", | ||
| 48 | + "example": 0 | ||
| 49 | + }, | ||
| 50 | + "deviceId": { | ||
| 51 | + "type": "string", | ||
| 52 | + "example": "of:0000000000000001" | ||
| 53 | + }, | ||
| 54 | + "activeEntries": { | ||
| 55 | + "type": "integer", | ||
| 56 | + "format": "int64", | ||
| 57 | + "example": 3 | ||
| 58 | + }, | ||
| 59 | + "packetsLookedUp": { | ||
| 60 | + "type": "integer", | ||
| 61 | + "format": "int64", | ||
| 62 | + "example": 458530 | ||
| 63 | + }, | ||
| 64 | + "packetsMathced": { | ||
| 65 | + "type": "integer", | ||
| 66 | + "format": "int64", | ||
| 67 | + "example": 458501 | ||
| 68 | + } | ||
| 69 | + } | ||
| 70 | + } | ||
| 71 | + } | ||
| 72 | + } | ||
| 73 | + } | ||
| 74 | + } | ||
| 75 | + } | ||
| 76 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "device-table-statistics", | ||
| 4 | + "required": [ | ||
| 5 | + "table-statistics" | ||
| 6 | + ], | ||
| 7 | + "properties": { | ||
| 8 | + "device-table-statistics": { | ||
| 9 | + "type": "array", | ||
| 10 | + "required": [ | ||
| 11 | + "device-table-statistics" | ||
| 12 | + ], | ||
| 13 | + "xml": { | ||
| 14 | + "name": "table-statistics", | ||
| 15 | + "wrapped": true | ||
| 16 | + }, | ||
| 17 | + "items": { | ||
| 18 | + "type": "object", | ||
| 19 | + "title": "table-statistics", | ||
| 20 | + "required": [ | ||
| 21 | + "device-table-statistics" | ||
| 22 | + ], | ||
| 23 | + "properties": { | ||
| 24 | + "deviceId": { | ||
| 25 | + "type": "string", | ||
| 26 | + "example": "of:0000000000000001" | ||
| 27 | + }, | ||
| 28 | + "table-statistics": { | ||
| 29 | + "type": "array", | ||
| 30 | + "xml": { | ||
| 31 | + "name": "table", | ||
| 32 | + "wrapped": true | ||
| 33 | + }, | ||
| 34 | + "items": { | ||
| 35 | + "type": "object", | ||
| 36 | + "title": "table-statistics", | ||
| 37 | + "required": [ | ||
| 38 | + "tableId", | ||
| 39 | + "deviceId", | ||
| 40 | + "activeEntries", | ||
| 41 | + "packetsLookedUp", | ||
| 42 | + "packetsMathced" | ||
| 43 | + ], | ||
| 44 | + "properties": { | ||
| 45 | + "tableId": { | ||
| 46 | + "type": "integer", | ||
| 47 | + "format": "int64", | ||
| 48 | + "example": 0 | ||
| 49 | + }, | ||
| 50 | + "deviceId": { | ||
| 51 | + "type": "string", | ||
| 52 | + "example": "of:0000000000000001" | ||
| 53 | + }, | ||
| 54 | + "activeEntries": { | ||
| 55 | + "type": "integer", | ||
| 56 | + "format": "int64", | ||
| 57 | + "example": 3 | ||
| 58 | + }, | ||
| 59 | + "packetsLookedUp": { | ||
| 60 | + "type": "integer", | ||
| 61 | + "format": "int64", | ||
| 62 | + "example": 458530 | ||
| 63 | + }, | ||
| 64 | + "packetsMathced": { | ||
| 65 | + "type": "integer", | ||
| 66 | + "format": "int64", | ||
| 67 | + "example": 458501 | ||
| 68 | + } | ||
| 69 | + } | ||
| 70 | + } | ||
| 71 | + } | ||
| 72 | + } | ||
| 73 | + } | ||
| 74 | + } | ||
| 75 | + } | ||
| 76 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "topology", | ||
| 4 | + "required": [ | ||
| 5 | + "time", | ||
| 6 | + "devices", | ||
| 7 | + "links", | ||
| 8 | + "clusters" | ||
| 9 | + ], | ||
| 10 | + "properties": { | ||
| 11 | + "time": { | ||
| 12 | + "type": "integer", | ||
| 13 | + "format": "int64", | ||
| 14 | + "example": 183004405835967 | ||
| 15 | + }, | ||
| 16 | + "devices": { | ||
| 17 | + "type": "integer", | ||
| 18 | + "format": "int64", | ||
| 19 | + "example": 3 | ||
| 20 | + }, | ||
| 21 | + "links": { | ||
| 22 | + "type": "integer", | ||
| 23 | + "format": "int64", | ||
| 24 | + "example": 4 | ||
| 25 | + }, | ||
| 26 | + "clusters": { | ||
| 27 | + "type": "integer", | ||
| 28 | + "format": "int64", | ||
| 29 | + "example": 1 | ||
| 30 | + } | ||
| 31 | + } | ||
| 32 | +} |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "device", | ||
| 4 | + "required": [ | ||
| 5 | + "id", | ||
| 6 | + "deviceCount", | ||
| 7 | + "linkCount", | ||
| 8 | + "root" | ||
| 9 | + ], | ||
| 10 | + "properties": { | ||
| 11 | + "id": { | ||
| 12 | + "type": "integer", | ||
| 13 | + "format": "int64", | ||
| 14 | + "example": 1 | ||
| 15 | + }, | ||
| 16 | + "deviceCount": { | ||
| 17 | + "type": "integer", | ||
| 18 | + "format": "int64", | ||
| 19 | + "example": 3 | ||
| 20 | + }, | ||
| 21 | + "linkCount": { | ||
| 22 | + "type": "integer", | ||
| 23 | + "format": "int64", | ||
| 24 | + "example": 4 | ||
| 25 | + }, | ||
| 26 | + "root": { | ||
| 27 | + "type": "string", | ||
| 28 | + "example": "of:0000000000000001" | ||
| 29 | + } | ||
| 30 | + } | ||
| 31 | +} |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "clusters", | ||
| 4 | + "required": [ | ||
| 5 | + "clusters" | ||
| 6 | + ], | ||
| 7 | + "properties": { | ||
| 8 | + "clusters": { | ||
| 9 | + "type": "array", | ||
| 10 | + "xml": { | ||
| 11 | + "name": "cluster", | ||
| 12 | + "wrapped": true | ||
| 13 | + }, | ||
| 14 | + "items": { | ||
| 15 | + "type": "object", | ||
| 16 | + "title": "cluster", | ||
| 17 | + "required": [ | ||
| 18 | + "id", | ||
| 19 | + "deviceCount", | ||
| 20 | + "linkCount", | ||
| 21 | + "root" | ||
| 22 | + ], | ||
| 23 | + "properties": { | ||
| 24 | + "id": { | ||
| 25 | + "type": "integer", | ||
| 26 | + "format": "int64", | ||
| 27 | + "example": 1 | ||
| 28 | + }, | ||
| 29 | + "deviceCount": { | ||
| 30 | + "type": "integer", | ||
| 31 | + "format": "int64", | ||
| 32 | + "example": 3 | ||
| 33 | + }, | ||
| 34 | + "linkCount": { | ||
| 35 | + "type": "integer", | ||
| 36 | + "format": "int64", | ||
| 37 | + "example": 4 | ||
| 38 | + }, | ||
| 39 | + "root": { | ||
| 40 | + "type": "string", | ||
| 41 | + "example": "of:0000000000000001" | ||
| 42 | + } | ||
| 43 | + } | ||
| 44 | + } | ||
| 45 | + } | ||
| 46 | + } | ||
| 47 | +} | ||
| 48 | + |
| 1 | +{ | ||
| 2 | + "type": "object", | ||
| 3 | + "title": "devices", | ||
| 4 | + "required": [ | ||
| 5 | + "devices" | ||
| 6 | + ], | ||
| 7 | + "properties": { | ||
| 8 | + "devices": { | ||
| 9 | + "type": "array", | ||
| 10 | + "xml": { | ||
| 11 | + "name": "cluster", | ||
| 12 | + "wrapped": true | ||
| 13 | + }, | ||
| 14 | + "items": { | ||
| 15 | + "type": "string", | ||
| 16 | + "title": "device", | ||
| 17 | + "example": "of:0000000000000001" | ||
| 18 | + } | ||
| 19 | + } | ||
| 20 | + } | ||
| 21 | +} | ||
| 22 | + |
-
Please register or login to post a comment