update_engine: Use DBus protobuf capabilities in dlcservice API methods

DBus have the capability to pass protobuf message directly in the method
without the need for serializing it manually. This CL uses those types
of arguments which is almost used everywhere in the platform2 code base.

BUG=chromium:978672
TEST=precq

Cq-Depend: chromium:1672684
Change-Id: I6e34ee76ede0c7b0b8cd1bba603a5836743d67fc
Reviewed-on: https://chromium-review.googlesource.com/1672021
Tested-by: Amin Hassani <ahassani@chromium.org>
Commit-Ready: Amin Hassani <ahassani@chromium.org>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Amin Hassani <ahassani@chromium.org>
diff --git a/dbus_bindings/org.chromium.UpdateEngineInterface.dbus-xml b/dbus_bindings/org.chromium.UpdateEngineInterface.dbus-xml
index ef7bea7..a183147 100644
--- a/dbus_bindings/org.chromium.UpdateEngineInterface.dbus-xml
+++ b/dbus_bindings/org.chromium.UpdateEngineInterface.dbus-xml
@@ -35,7 +35,13 @@
       <arg type="i" name="flags" direction="in" />
     </method>
     <method name="AttemptInstall">
-      <arg type="s" name="dlc_request" direction="in" />
+      <arg type="ay" name="request" direction="in">
+        <tp:docstring>
+          The information about DLC modules that needs to be installed.
+        </tp:docstring>
+        <annotation name="org.chromium.DBus.Argument.ProtobufClass"
+                    value="dlcservice::DlcModuleList"/>
+      </arg>
     </method>
     <method name="AttemptRollback">
       <arg type="b" name="powerwash" direction="in" />