Add intersphinx link for UniMgr and remove docs
[docs.git] / docs / developer-guide / nemo-developer-guide.rst
1 .. _nemo-dev-guide:
2
3 NEtwork MOdeling (NEMO)
4 =======================
5
6 Overview
7 --------
8
9 The NEMO engine provides REST APIs to express intent, and manage it. With this
10 northbound API, user could query what intents have been handled successfully, and
11 what types have been predefined.
12
13 NEMO Architecture
14 -----------------
15
16 In NEMO project, it provides three features facing developer.
17
18 * ``odl-nemo-engine``: it is a whole model to handle intent.
19
20 * ``odl-nemo-openflow-renderer``: it is a southbound render to translate intent to flow
21   table in devices supporting for OpenFlow protocol.
22
23 * ``odl-nemo-cli-render``: it is also a southbound render to translate intent into forwarding
24   table in devices supporting for traditional protocol.
25
26 Key APIs and Interfaces
27 -----------------------
28
29 NEMO projects provide four basic REST methods for user to use.
30
31 * PUT: store the information expressed in NEMO model directly without handled by NEMO engine.
32
33 * POST: the information expressed in NEMO model will be handled by NEMO engine, and will
34   be translated into southbound configuration.
35
36 * GET: obtain the data stored in data store.
37
38 * DELETE: delete the data in data store.
39
40 NEMO Intent API
41 ~~~~~~~~~~~~~~~
42
43 NEMO provides several RPCs to handle user's intent. All RPCs use POST method.
44
45 -  ``http://{controller-ip}:8181/restconf/operations/nemo-intent:register-user``: a REST API
46    to register a new user. It is the first and necessary step to express intent.
47
48 -  ``http://{controller-ip}:8181/restconf/operations/nemo-intent:transaction-begin``: a REST
49    type to start a transaction. The intent exist in the transaction will be handled together.
50
51 -  ``http://{controller-ip}:8181/restconf/operations/nemo-intent:transaction-end``: a REST API
52    to end a transaction. The intent exist in the transaction will be handled together.
53
54 -  ``http://{controller-ip}:8181/restconf/operations/nemo-intent:structure-style-nemo-update``: a
55    REST API to create, import or update intent in a structure style, that is, user could express the
56    structure of intent in json body.
57
58 -  ``http://{controller-ip}:8181/restconf/operations/nemo-intent:structure-style-nemo-delete``: a
59    REST API to delete intent in a structure style.
60
61 -  ``http://{controller-ip}:8181/restconf/operations/nemo-intent:language-style-nemo-request``: a REST
62    API to create, import, update and delete intent in a language style, that is, user could express
63    intent with NEMO script. On the other hand, with this interface, user could query which intent have
64    been handled successfully.
65
66 API Reference Documentation
67 ---------------------------
68
69 Go to ``http://${IPADDRESS}:8181/apidoc/explorer/index.html``. User could see many useful APIs to
70 deploy or query intent.
71