[VOL-3313] Documentation for un-implemented calls
Change-Id: Ibfaaea10818e8eb19f9ae4c71d68cb7fc616910d
diff --git a/README.md b/README.md
index e2558ec..6093505 100644
--- a/README.md
+++ b/README.md
@@ -7,9 +7,10 @@
The device manager will then translate the commands to the device native interface (e.g. Redfish or NETCONF with
proprietary yang models).
-Related documentations can be found in the [docs/](./docs) directory
+Related documentations can be found in the [docs/](./docs) directory.
-More details are upcoming.
+For anybody looking to implement a Device Manager component we suggest looking at the [RPC guidelines](docs/RpcGuidelines.md).
+Then Each API in the `.proto` files has an explanation in its own `.md` file.
## Meetings
diff --git a/docs/RpcGuidelines.md b/docs/RpcGuidelines.md
new file mode 100644
index 0000000..0c17f6f
--- /dev/null
+++ b/docs/RpcGuidelines.md
@@ -0,0 +1,23 @@
+# RPC Implementation Guidelines
+
+This page specifies the expected behaviour of RPCs for an implementation of the Device Manager.
+
+## Unimplemented features
+
+If a feature present in the Device Management Interface API, as described in .proto files, is not implemented by the
+Device Manager component for a particular device or set of devices, it is required that the component returns a
+gRPC `UNIMPLEMENTED (12)` error code for that API. More details on the gRPC codes can be found in
+the [gRPC specification](https://grpc.github.io/grpc/core/md_doc_statuscodes.html).
+
+The response for a certain API can change depending on the state of underlying device(s). As an example,
+a bare minimum device with no software installed on it that has just BMC might support only image management APIs but
+not events and metrics, returning `UNIMPLEMENTED` for these.
+
+Once a fully fledged software is installed on the device through BMC then the RPC responses for events and metrics will
+contain the elements that the device supports through a more complete protocol and set of calls.
+
+## API Specific details
+
+Each API of the `.protos` contained in the [protos](../protos/) directory has his set of specific elements that
+need to be taken into account, such as how to generate events and handle different states of operations.
+Please refer to each of those files.
\ No newline at end of file