From 194f1b9242814d93ed668930fad71bdc232e5420 Mon Sep 17 00:00:00 2001
From: David Jablonski <dayjaby@gmail.com>
Date: Wed, 14 Jun 2023 09:11:49 +0200
Subject: [PATCH] param_server: implemented change_param_? functions

---
 .../autopilot_server/autopilot_server.cpp     |    4 +-
 proto                                         |    2 +-
 src/mavsdk/core/mavlink_parameter_server.cpp  |   65 +
 src/mavsdk/core/mavlink_parameter_server.h    |    5 +
 .../plugins/param_server/param_server.h       |   33 +
 .../plugins/param_server/param_server.cpp     |   15 +
 .../param_server/param_server_impl.cpp        |   48 +
 .../plugins/param_server/param_server_impl.h  |    6 +
 .../param_server/param_server.grpc.pb.cc      |  144 +-
 .../param_server/param_server.grpc.pb.h       |  605 ++-
 .../generated/param_server/param_server.pb.cc | 2572 ++++++++++---
 .../generated/param_server/param_server.pb.h  | 3250 ++++++++++++-----
 .../param_server/param_server_service_impl.h  |   93 +
 13 files changed, 5429 insertions(+), 1413 deletions(-)

diff --git a/examples/autopilot_server/autopilot_server.cpp b/examples/autopilot_server/autopilot_server.cpp
index 77b31bfab6..0e69d5be8e 100644
--- a/examples/autopilot_server/autopilot_server.cpp
+++ b/examples/autopilot_server/autopilot_server.cpp
@@ -3,7 +3,6 @@
 #include <thread>
 
 #include <mavsdk/mavsdk.h>
-#include <mavsdk/plugins/mavlink_passthrough/mavlink_passthrough.h>
 #include <mavsdk/plugins/telemetry/telemetry.h>
 #include <mavsdk/plugins/action/action.h>
 #include <mavsdk/plugins/param_server/param_server.h>
@@ -83,7 +82,8 @@ int main(int argc, char** argv)
         paramServer.provide_param_int("SYS_HITL", 0);
         paramServer.provide_param_int("MIS_TAKEOFF_ALT", 0);
         // Add a custom param
-        paramServer.provide_param_int("my_param", 1);
+        paramServer.provide_param_int("MY_PARAM", 1);
+        paramServer.change_param_int("MY_PARAM", 2);
 
         // Allow the vehicle to change modes, takeoff and arm
         actionServer.set_allowable_flight_modes({true, true, true});
diff --git a/proto b/proto
index 6b0cc8f1fa..8a62fffc89 160000
--- a/proto
+++ b/proto
@@ -1 +1 @@
-Subproject commit 6b0cc8f1fa27d74fbd183e66aa754e22eb0ef008
+Subproject commit 8a62fffc8970d3e277127b276d12cfc83bc02d59
diff --git a/src/mavsdk/core/mavlink_parameter_server.cpp b/src/mavsdk/core/mavlink_parameter_server.cpp
index 550e8ea3f3..8f3835bd40 100644
--- a/src/mavsdk/core/mavlink_parameter_server.cpp
+++ b/src/mavsdk/core/mavlink_parameter_server.cpp
@@ -179,6 +179,71 @@ MavlinkParameterServer::retrieve_server_param_int(const std::string& name)
     return retrieve_server_param<int32_t>(name);
 }
 
+MavlinkParameterServer::Result
+MavlinkParameterServer::change_server_param(const std::string& name, const ParamValue& param_value)
+{
+    if (name.size() > PARAM_ID_LEN) {
+        LogErr() << "Error: param name too long";
+        return Result::ParamNameTooLong;
+    }
+    const auto param_opt = _param_cache.param_by_id(name, true);
+    if (!param_opt.has_value()) {
+        return Result::NotFound;
+    }
+    // This parameter exists, check its type
+    const auto& param = param_opt.value();
+    if (!param.value.is_same_type(param_value)) {
+        return Result::WrongType;
+    }
+
+    if (param_value.is<std::string>()) {
+        const auto s = param_value.get<std::string>();
+        if (s.size() > sizeof(mavlink_param_ext_set_t::param_value)) {
+            LogErr() << "Error: param value too long";
+            return Result::ParamValueTooLong;
+        }
+    }
+    std::lock_guard<std::mutex> lock(_all_params_mutex);
+    // then, to not change the public api behaviour, try updating its value.
+    switch (_param_cache.update_existing_param(name, param_value)) {
+        case MavlinkParameterCache::UpdateExistingParamResult::Ok:
+            return Result::Success;
+        case MavlinkParameterCache::UpdateExistingParamResult::MissingParam:
+            return Result::ParamNotFound;
+        case MavlinkParameterCache::UpdateExistingParamResult::WrongType:
+            return Result::WrongType;
+        default:
+            LogErr() << "Unknown update_existing_param result";
+            assert(false);
+    }
+
+    return Result::Unknown;
+}
+
+MavlinkParameterServer::Result
+MavlinkParameterServer::change_server_param_float(const std::string& name, float value)
+{
+    ParamValue param_value;
+    param_value.set(value);
+    return change_server_param(name, param_value);
+}
+
+MavlinkParameterServer::Result
+MavlinkParameterServer::change_server_param_int(const std::string& name, int32_t value)
+{
+    ParamValue param_value;
+    param_value.set(value);
+    return change_server_param(name, param_value);
+}
+
+MavlinkParameterServer::Result MavlinkParameterServer::change_server_param_custom(
+    const std::string& name, const std::string& value)
+{
+    ParamValue param_value;
+    param_value.set(value);
+    return change_server_param(name, param_value);
+}
+
 void MavlinkParameterServer::process_param_set_internally(
     const std::string& param_id, const ParamValue& value_to_set, bool extended)
 {
diff --git a/src/mavsdk/core/mavlink_parameter_server.h b/src/mavsdk/core/mavlink_parameter_server.h
index d2a8ca0111..72eb746200 100644
--- a/src/mavsdk/core/mavlink_parameter_server.h
+++ b/src/mavsdk/core/mavlink_parameter_server.h
@@ -55,6 +55,11 @@ class MavlinkParameterServer : public MavlinkParameterSubscription {
     std::pair<Result, int32_t> retrieve_server_param_int(const std::string& name);
     std::pair<Result, std::string> retrieve_server_param_custom(const std::string& name);
 
+    Result change_server_param(const std::string& name, const ParamValue& param_value);
+    Result change_server_param_float(const std::string& name, float value);
+    Result change_server_param_int(const std::string& name, int32_t value);
+    Result change_server_param_custom(const std::string& name, const std::string& value);
+
     void do_work();
 
     friend std::ostream& operator<<(std::ostream&, const Result&);
diff --git a/src/mavsdk/plugins/param_server/include/plugins/param_server/param_server.h b/src/mavsdk/plugins/param_server/include/plugins/param_server/param_server.h
index 7fe235cb03..c5ca554251 100644
--- a/src/mavsdk/plugins/param_server/include/plugins/param_server/param_server.h
+++ b/src/mavsdk/plugins/param_server/include/plugins/param_server/param_server.h
@@ -186,6 +186,17 @@ class ParamServer : public ServerPluginBase {
      */
     Result provide_param_int(std::string name, int32_t value) const;
 
+    /**
+     * @brief Change an int parameter internally.
+     *
+     * If the type is wrong, the result will be `WRONG_TYPE`.
+     *
+     * This function is blocking.
+     *
+     * @return Result of request.
+     */
+    Result change_param_int(std::string name, int32_t value) const;
+
     /**
      * @brief Retrieve a float parameter.
      *
@@ -208,6 +219,17 @@ class ParamServer : public ServerPluginBase {
      */
     Result provide_param_float(std::string name, float value) const;
 
+    /**
+     * @brief Change a float parameter internally.
+     *
+     * If the type is wrong, the result will be `WRONG_TYPE`.
+     *
+     * This function is blocking.
+     *
+     * @return Result of request.
+     */
+    Result change_param_float(std::string name, float value) const;
+
     /**
      * @brief Retrieve a custom parameter.
      *
@@ -230,6 +252,17 @@ class ParamServer : public ServerPluginBase {
      */
     Result provide_param_custom(std::string name, std::string value) const;
 
+    /**
+     * @brief Change a custom parameter internally.
+     *
+     * If the type is wrong, the result will be `WRONG_TYPE`.
+     *
+     * This function is blocking.
+     *
+     * @return Result of request.
+     */
+    Result change_param_custom(std::string name, std::string value) const;
+
     /**
      * @brief Retrieve all parameters.
      *
diff --git a/src/mavsdk/plugins/param_server/param_server.cpp b/src/mavsdk/plugins/param_server/param_server.cpp
index 7f51c2f3c8..a2ae16612d 100644
--- a/src/mavsdk/plugins/param_server/param_server.cpp
+++ b/src/mavsdk/plugins/param_server/param_server.cpp
@@ -31,6 +31,11 @@ ParamServer::Result ParamServer::provide_param_int(std::string name, int32_t val
     return _impl->provide_param_int(name, value);
 }
 
+ParamServer::Result ParamServer::change_param_int(std::string name, int32_t value) const
+{
+    return _impl->change_param_int(name, value);
+}
+
 std::pair<ParamServer::Result, float> ParamServer::retrieve_param_float(std::string name) const
 {
     return _impl->retrieve_param_float(name);
@@ -41,6 +46,11 @@ ParamServer::Result ParamServer::provide_param_float(std::string name, float val
     return _impl->provide_param_float(name, value);
 }
 
+ParamServer::Result ParamServer::change_param_float(std::string name, float value) const
+{
+    return _impl->change_param_float(name, value);
+}
+
 std::pair<ParamServer::Result, std::string>
 ParamServer::retrieve_param_custom(std::string name) const
 {
@@ -52,6 +62,11 @@ ParamServer::Result ParamServer::provide_param_custom(std::string name, std::str
     return _impl->provide_param_custom(name, value);
 }
 
+ParamServer::Result ParamServer::change_param_custom(std::string name, std::string value) const
+{
+    return _impl->change_param_custom(name, value);
+}
+
 ParamServer::AllParams ParamServer::retrieve_all_params() const
 {
     return _impl->retrieve_all_params();
diff --git a/src/mavsdk/plugins/param_server/param_server_impl.cpp b/src/mavsdk/plugins/param_server/param_server_impl.cpp
index efad251b0d..5aca558193 100644
--- a/src/mavsdk/plugins/param_server/param_server_impl.cpp
+++ b/src/mavsdk/plugins/param_server/param_server_impl.cpp
@@ -39,6 +39,22 @@ ParamServer::Result ParamServerImpl::provide_param_int(std::string name, int32_t
     return ParamServer::Result::Success;
 }
 
+ParamServer::Result ParamServerImpl::change_param_int(std::string name, int32_t value)
+{
+    if (name.size() > 16) {
+        return ParamServer::Result::ParamNameTooLong;
+    }
+
+    const auto result =
+        _server_component_impl->mavlink_parameter_server().change_server_param_int(name, value);
+
+    if (result == MavlinkParameterServer::Result::Success) {
+        return ParamServer::Result::Success;
+    } else {
+        return ParamServer::Result::NotFound;
+    }
+}
+
 std::pair<ParamServer::Result, float> ParamServerImpl::retrieve_param_float(std::string name) const
 {
     const auto result =
@@ -60,6 +76,22 @@ ParamServer::Result ParamServerImpl::provide_param_float(std::string name, float
     return ParamServer::Result::Success;
 }
 
+ParamServer::Result ParamServerImpl::change_param_float(std::string name, float value)
+{
+    if (name.size() > 16) {
+        return ParamServer::Result::ParamNameTooLong;
+    }
+
+    const auto result =
+        _server_component_impl->mavlink_parameter_server().change_server_param_float(name, value);
+
+    if (result == MavlinkParameterServer::Result::Success) {
+        return ParamServer::Result::Success;
+    } else {
+        return ParamServer::Result::NotFound;
+    }
+}
+
 std::pair<ParamServer::Result, std::string>
 ParamServerImpl::retrieve_param_custom(std::string name) const
 {
@@ -83,6 +115,22 @@ ParamServerImpl::provide_param_custom(std::string name, const std::string& value
     return ParamServer::Result::Success;
 }
 
+ParamServer::Result ParamServerImpl::change_param_custom(std::string name, const std::string& value)
+{
+    if (name.size() > 16) {
+        return ParamServer::Result::ParamNameTooLong;
+    }
+
+    const auto result =
+        _server_component_impl->mavlink_parameter_server().change_server_param_custom(name, value);
+
+    if (result == MavlinkParameterServer::Result::Success) {
+        return ParamServer::Result::Success;
+    } else {
+        return ParamServer::Result::NotFound;
+    }
+}
+
 ParamServer::AllParams ParamServerImpl::retrieve_all_params() const
 {
     auto tmp = _server_component_impl->mavlink_parameter_server().retrieve_all_server_params();
diff --git a/src/mavsdk/plugins/param_server/param_server_impl.h b/src/mavsdk/plugins/param_server/param_server_impl.h
index c5a7e491bb..c90d2a051d 100644
--- a/src/mavsdk/plugins/param_server/param_server_impl.h
+++ b/src/mavsdk/plugins/param_server/param_server_impl.h
@@ -18,14 +18,20 @@ class ParamServerImpl : public ServerPluginImplBase {
 
     ParamServer::Result provide_param_int(std::string name, int32_t value);
 
+    ParamServer::Result change_param_int(std::string name, int32_t value);
+
     std::pair<ParamServer::Result, float> retrieve_param_float(std::string name) const;
 
     ParamServer::Result provide_param_float(std::string name, float value);
 
+    ParamServer::Result change_param_float(std::string name, float value);
+
     std::pair<ParamServer::Result, std::string> retrieve_param_custom(std::string name) const;
 
     ParamServer::Result provide_param_custom(std::string name, const std::string& value);
 
+    ParamServer::Result change_param_custom(std::string name, const std::string& value);
+
     ParamServer::AllParams retrieve_all_params() const;
 
     static ParamServer::Result
diff --git a/src/mavsdk_server/src/generated/param_server/param_server.grpc.pb.cc b/src/mavsdk_server/src/generated/param_server/param_server.grpc.pb.cc
index bf3efe5a00..595463d1c0 100644
--- a/src/mavsdk_server/src/generated/param_server/param_server.grpc.pb.cc
+++ b/src/mavsdk_server/src/generated/param_server/param_server.grpc.pb.cc
@@ -26,10 +26,13 @@ namespace param_server {
 static const char* ParamServerService_method_names[] = {
   "/mavsdk.rpc.param_server.ParamServerService/RetrieveParamInt",
   "/mavsdk.rpc.param_server.ParamServerService/ProvideParamInt",
+  "/mavsdk.rpc.param_server.ParamServerService/ChangeParamInt",
   "/mavsdk.rpc.param_server.ParamServerService/RetrieveParamFloat",
   "/mavsdk.rpc.param_server.ParamServerService/ProvideParamFloat",
+  "/mavsdk.rpc.param_server.ParamServerService/ChangeParamFloat",
   "/mavsdk.rpc.param_server.ParamServerService/RetrieveParamCustom",
   "/mavsdk.rpc.param_server.ParamServerService/ProvideParamCustom",
+  "/mavsdk.rpc.param_server.ParamServerService/ChangeParamCustom",
   "/mavsdk.rpc.param_server.ParamServerService/RetrieveAllParams",
 };
 
@@ -42,11 +45,14 @@ std::unique_ptr< ParamServerService::Stub> ParamServerService::NewStub(const std
 ParamServerService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options)
   : channel_(channel), rpcmethod_RetrieveParamInt_(ParamServerService_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
   , rpcmethod_ProvideParamInt_(ParamServerService_method_names[1], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
-  , rpcmethod_RetrieveParamFloat_(ParamServerService_method_names[2], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
-  , rpcmethod_ProvideParamFloat_(ParamServerService_method_names[3], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
-  , rpcmethod_RetrieveParamCustom_(ParamServerService_method_names[4], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
-  , rpcmethod_ProvideParamCustom_(ParamServerService_method_names[5], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
-  , rpcmethod_RetrieveAllParams_(ParamServerService_method_names[6], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_ChangeParamInt_(ParamServerService_method_names[2], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_RetrieveParamFloat_(ParamServerService_method_names[3], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_ProvideParamFloat_(ParamServerService_method_names[4], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_ChangeParamFloat_(ParamServerService_method_names[5], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_RetrieveParamCustom_(ParamServerService_method_names[6], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_ProvideParamCustom_(ParamServerService_method_names[7], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_ChangeParamCustom_(ParamServerService_method_names[8], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_RetrieveAllParams_(ParamServerService_method_names[9], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
   {}
 
 ::grpc::Status ParamServerService::Stub::RetrieveParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamIntRequest& request, ::mavsdk::rpc::param_server::RetrieveParamIntResponse* response) {
@@ -95,6 +101,29 @@ ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ProvideParamIntR
   return result;
 }
 
+::grpc::Status ParamServerService::Stub::ChangeParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest& request, ::mavsdk::rpc::param_server::ChangeParamIntResponse* response) {
+  return ::grpc::internal::BlockingUnaryCall< ::mavsdk::rpc::param_server::ChangeParamIntRequest, ::mavsdk::rpc::param_server::ChangeParamIntResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ChangeParamInt_, context, request, response);
+}
+
+void ParamServerService::Stub::async::ChangeParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest* request, ::mavsdk::rpc::param_server::ChangeParamIntResponse* response, std::function<void(::grpc::Status)> f) {
+  ::grpc::internal::CallbackUnaryCall< ::mavsdk::rpc::param_server::ChangeParamIntRequest, ::mavsdk::rpc::param_server::ChangeParamIntResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ChangeParamInt_, context, request, response, std::move(f));
+}
+
+void ParamServerService::Stub::async::ChangeParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest* request, ::mavsdk::rpc::param_server::ChangeParamIntResponse* response, ::grpc::ClientUnaryReactor* reactor) {
+  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ChangeParamInt_, context, request, response, reactor);
+}
+
+::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamIntResponse>* ParamServerService::Stub::PrepareAsyncChangeParamIntRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::mavsdk::rpc::param_server::ChangeParamIntResponse, ::mavsdk::rpc::param_server::ChangeParamIntRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ChangeParamInt_, context, request);
+}
+
+::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamIntResponse>* ParamServerService::Stub::AsyncChangeParamIntRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest& request, ::grpc::CompletionQueue* cq) {
+  auto* result =
+    this->PrepareAsyncChangeParamIntRaw(context, request, cq);
+  result->StartCall();
+  return result;
+}
+
 ::grpc::Status ParamServerService::Stub::RetrieveParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamFloatRequest& request, ::mavsdk::rpc::param_server::RetrieveParamFloatResponse* response) {
   return ::grpc::internal::BlockingUnaryCall< ::mavsdk::rpc::param_server::RetrieveParamFloatRequest, ::mavsdk::rpc::param_server::RetrieveParamFloatResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_RetrieveParamFloat_, context, request, response);
 }
@@ -141,6 +170,29 @@ ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ProvideParamFloa
   return result;
 }
 
+::grpc::Status ParamServerService::Stub::ChangeParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest& request, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* response) {
+  return ::grpc::internal::BlockingUnaryCall< ::mavsdk::rpc::param_server::ChangeParamFloatRequest, ::mavsdk::rpc::param_server::ChangeParamFloatResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ChangeParamFloat_, context, request, response);
+}
+
+void ParamServerService::Stub::async::ChangeParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* request, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* response, std::function<void(::grpc::Status)> f) {
+  ::grpc::internal::CallbackUnaryCall< ::mavsdk::rpc::param_server::ChangeParamFloatRequest, ::mavsdk::rpc::param_server::ChangeParamFloatResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ChangeParamFloat_, context, request, response, std::move(f));
+}
+
+void ParamServerService::Stub::async::ChangeParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* request, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* response, ::grpc::ClientUnaryReactor* reactor) {
+  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ChangeParamFloat_, context, request, response, reactor);
+}
+
+::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamFloatResponse>* ParamServerService::Stub::PrepareAsyncChangeParamFloatRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::mavsdk::rpc::param_server::ChangeParamFloatResponse, ::mavsdk::rpc::param_server::ChangeParamFloatRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ChangeParamFloat_, context, request);
+}
+
+::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamFloatResponse>* ParamServerService::Stub::AsyncChangeParamFloatRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest& request, ::grpc::CompletionQueue* cq) {
+  auto* result =
+    this->PrepareAsyncChangeParamFloatRaw(context, request, cq);
+  result->StartCall();
+  return result;
+}
+
 ::grpc::Status ParamServerService::Stub::RetrieveParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamCustomRequest& request, ::mavsdk::rpc::param_server::RetrieveParamCustomResponse* response) {
   return ::grpc::internal::BlockingUnaryCall< ::mavsdk::rpc::param_server::RetrieveParamCustomRequest, ::mavsdk::rpc::param_server::RetrieveParamCustomResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_RetrieveParamCustom_, context, request, response);
 }
@@ -187,6 +239,29 @@ ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ProvideParamCust
   return result;
 }
 
+::grpc::Status ParamServerService::Stub::ChangeParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest& request, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* response) {
+  return ::grpc::internal::BlockingUnaryCall< ::mavsdk::rpc::param_server::ChangeParamCustomRequest, ::mavsdk::rpc::param_server::ChangeParamCustomResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ChangeParamCustom_, context, request, response);
+}
+
+void ParamServerService::Stub::async::ChangeParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* request, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* response, std::function<void(::grpc::Status)> f) {
+  ::grpc::internal::CallbackUnaryCall< ::mavsdk::rpc::param_server::ChangeParamCustomRequest, ::mavsdk::rpc::param_server::ChangeParamCustomResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ChangeParamCustom_, context, request, response, std::move(f));
+}
+
+void ParamServerService::Stub::async::ChangeParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* request, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* response, ::grpc::ClientUnaryReactor* reactor) {
+  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ChangeParamCustom_, context, request, response, reactor);
+}
+
+::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamCustomResponse>* ParamServerService::Stub::PrepareAsyncChangeParamCustomRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::mavsdk::rpc::param_server::ChangeParamCustomResponse, ::mavsdk::rpc::param_server::ChangeParamCustomRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ChangeParamCustom_, context, request);
+}
+
+::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamCustomResponse>* ParamServerService::Stub::AsyncChangeParamCustomRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest& request, ::grpc::CompletionQueue* cq) {
+  auto* result =
+    this->PrepareAsyncChangeParamCustomRaw(context, request, cq);
+  result->StartCall();
+  return result;
+}
+
 ::grpc::Status ParamServerService::Stub::RetrieveAllParams(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest& request, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse* response) {
   return ::grpc::internal::BlockingUnaryCall< ::mavsdk::rpc::param_server::RetrieveAllParamsRequest, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_RetrieveAllParams_, context, request, response);
 }
@@ -234,6 +309,16 @@ ParamServerService::Service::Service() {
   AddMethod(new ::grpc::internal::RpcServiceMethod(
       ParamServerService_method_names[2],
       ::grpc::internal::RpcMethod::NORMAL_RPC,
+      new ::grpc::internal::RpcMethodHandler< ParamServerService::Service, ::mavsdk::rpc::param_server::ChangeParamIntRequest, ::mavsdk::rpc::param_server::ChangeParamIntResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
+          [](ParamServerService::Service* service,
+             ::grpc::ServerContext* ctx,
+             const ::mavsdk::rpc::param_server::ChangeParamIntRequest* req,
+             ::mavsdk::rpc::param_server::ChangeParamIntResponse* resp) {
+               return service->ChangeParamInt(ctx, req, resp);
+             }, this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      ParamServerService_method_names[3],
+      ::grpc::internal::RpcMethod::NORMAL_RPC,
       new ::grpc::internal::RpcMethodHandler< ParamServerService::Service, ::mavsdk::rpc::param_server::RetrieveParamFloatRequest, ::mavsdk::rpc::param_server::RetrieveParamFloatResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
           [](ParamServerService::Service* service,
              ::grpc::ServerContext* ctx,
@@ -242,7 +327,7 @@ ParamServerService::Service::Service() {
                return service->RetrieveParamFloat(ctx, req, resp);
              }, this)));
   AddMethod(new ::grpc::internal::RpcServiceMethod(
-      ParamServerService_method_names[3],
+      ParamServerService_method_names[4],
       ::grpc::internal::RpcMethod::NORMAL_RPC,
       new ::grpc::internal::RpcMethodHandler< ParamServerService::Service, ::mavsdk::rpc::param_server::ProvideParamFloatRequest, ::mavsdk::rpc::param_server::ProvideParamFloatResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
           [](ParamServerService::Service* service,
@@ -252,7 +337,17 @@ ParamServerService::Service::Service() {
                return service->ProvideParamFloat(ctx, req, resp);
              }, this)));
   AddMethod(new ::grpc::internal::RpcServiceMethod(
-      ParamServerService_method_names[4],
+      ParamServerService_method_names[5],
+      ::grpc::internal::RpcMethod::NORMAL_RPC,
+      new ::grpc::internal::RpcMethodHandler< ParamServerService::Service, ::mavsdk::rpc::param_server::ChangeParamFloatRequest, ::mavsdk::rpc::param_server::ChangeParamFloatResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
+          [](ParamServerService::Service* service,
+             ::grpc::ServerContext* ctx,
+             const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* req,
+             ::mavsdk::rpc::param_server::ChangeParamFloatResponse* resp) {
+               return service->ChangeParamFloat(ctx, req, resp);
+             }, this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      ParamServerService_method_names[6],
       ::grpc::internal::RpcMethod::NORMAL_RPC,
       new ::grpc::internal::RpcMethodHandler< ParamServerService::Service, ::mavsdk::rpc::param_server::RetrieveParamCustomRequest, ::mavsdk::rpc::param_server::RetrieveParamCustomResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
           [](ParamServerService::Service* service,
@@ -262,7 +357,7 @@ ParamServerService::Service::Service() {
                return service->RetrieveParamCustom(ctx, req, resp);
              }, this)));
   AddMethod(new ::grpc::internal::RpcServiceMethod(
-      ParamServerService_method_names[5],
+      ParamServerService_method_names[7],
       ::grpc::internal::RpcMethod::NORMAL_RPC,
       new ::grpc::internal::RpcMethodHandler< ParamServerService::Service, ::mavsdk::rpc::param_server::ProvideParamCustomRequest, ::mavsdk::rpc::param_server::ProvideParamCustomResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
           [](ParamServerService::Service* service,
@@ -272,7 +367,17 @@ ParamServerService::Service::Service() {
                return service->ProvideParamCustom(ctx, req, resp);
              }, this)));
   AddMethod(new ::grpc::internal::RpcServiceMethod(
-      ParamServerService_method_names[6],
+      ParamServerService_method_names[8],
+      ::grpc::internal::RpcMethod::NORMAL_RPC,
+      new ::grpc::internal::RpcMethodHandler< ParamServerService::Service, ::mavsdk::rpc::param_server::ChangeParamCustomRequest, ::mavsdk::rpc::param_server::ChangeParamCustomResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
+          [](ParamServerService::Service* service,
+             ::grpc::ServerContext* ctx,
+             const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* req,
+             ::mavsdk::rpc::param_server::ChangeParamCustomResponse* resp) {
+               return service->ChangeParamCustom(ctx, req, resp);
+             }, this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      ParamServerService_method_names[9],
       ::grpc::internal::RpcMethod::NORMAL_RPC,
       new ::grpc::internal::RpcMethodHandler< ParamServerService::Service, ::mavsdk::rpc::param_server::RetrieveAllParamsRequest, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
           [](ParamServerService::Service* service,
@@ -300,6 +405,13 @@ ::grpc::Status ParamServerService::Service::ProvideParamInt(::grpc::ServerContex
   return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
 }
 
+::grpc::Status ParamServerService::Service::ChangeParamInt(::grpc::ServerContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest* request, ::mavsdk::rpc::param_server::ChangeParamIntResponse* response) {
+  (void) context;
+  (void) request;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
 ::grpc::Status ParamServerService::Service::RetrieveParamFloat(::grpc::ServerContext* context, const ::mavsdk::rpc::param_server::RetrieveParamFloatRequest* request, ::mavsdk::rpc::param_server::RetrieveParamFloatResponse* response) {
   (void) context;
   (void) request;
@@ -314,6 +426,13 @@ ::grpc::Status ParamServerService::Service::ProvideParamFloat(::grpc::ServerCont
   return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
 }
 
+::grpc::Status ParamServerService::Service::ChangeParamFloat(::grpc::ServerContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* request, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* response) {
+  (void) context;
+  (void) request;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
 ::grpc::Status ParamServerService::Service::RetrieveParamCustom(::grpc::ServerContext* context, const ::mavsdk::rpc::param_server::RetrieveParamCustomRequest* request, ::mavsdk::rpc::param_server::RetrieveParamCustomResponse* response) {
   (void) context;
   (void) request;
@@ -328,6 +447,13 @@ ::grpc::Status ParamServerService::Service::ProvideParamCustom(::grpc::ServerCon
   return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
 }
 
+::grpc::Status ParamServerService::Service::ChangeParamCustom(::grpc::ServerContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* request, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* response) {
+  (void) context;
+  (void) request;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
 ::grpc::Status ParamServerService::Service::RetrieveAllParams(::grpc::ServerContext* context, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest* request, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse* response) {
   (void) context;
   (void) request;
diff --git a/src/mavsdk_server/src/generated/param_server/param_server.grpc.pb.h b/src/mavsdk_server/src/generated/param_server/param_server.grpc.pb.h
index 15c503de02..b6c797f6ae 100644
--- a/src/mavsdk_server/src/generated/param_server/param_server.grpc.pb.h
+++ b/src/mavsdk_server/src/generated/param_server/param_server.grpc.pb.h
@@ -61,6 +61,17 @@ class ParamServerService final {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ProvideParamIntResponse>>(PrepareAsyncProvideParamIntRaw(context, request, cq));
     }
     //
+    // Change an int parameter internally.
+    //
+    // If the type is wrong, the result will be `WRONG_TYPE`.
+    virtual ::grpc::Status ChangeParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest& request, ::mavsdk::rpc::param_server::ChangeParamIntResponse* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamIntResponse>> AsyncChangeParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamIntResponse>>(AsyncChangeParamIntRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamIntResponse>> PrepareAsyncChangeParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamIntResponse>>(PrepareAsyncChangeParamIntRaw(context, request, cq));
+    }
+    //
     // Retrieve a float parameter.
     //
     // If the type is wrong, the result will be `WRONG_TYPE`.
@@ -83,6 +94,17 @@ class ParamServerService final {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ProvideParamFloatResponse>>(PrepareAsyncProvideParamFloatRaw(context, request, cq));
     }
     //
+    // Change a float parameter internally.
+    //
+    // If the type is wrong, the result will be `WRONG_TYPE`.
+    virtual ::grpc::Status ChangeParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest& request, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamFloatResponse>> AsyncChangeParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamFloatResponse>>(AsyncChangeParamFloatRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamFloatResponse>> PrepareAsyncChangeParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamFloatResponse>>(PrepareAsyncChangeParamFloatRaw(context, request, cq));
+    }
+    //
     // Retrieve a custom parameter.
     //
     // If the type is wrong, the result will be `WRONG_TYPE`.
@@ -105,6 +127,17 @@ class ParamServerService final {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ProvideParamCustomResponse>>(PrepareAsyncProvideParamCustomRaw(context, request, cq));
     }
     //
+    // Change a custom parameter internally.
+    //
+    // If the type is wrong, the result will be `WRONG_TYPE`.
+    virtual ::grpc::Status ChangeParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest& request, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamCustomResponse>> AsyncChangeParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamCustomResponse>>(AsyncChangeParamCustomRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamCustomResponse>> PrepareAsyncChangeParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamCustomResponse>>(PrepareAsyncChangeParamCustomRaw(context, request, cq));
+    }
+    //
     // Retrieve all parameters.
     virtual ::grpc::Status RetrieveAllParams(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest& request, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse* response) = 0;
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::RetrieveAllParamsResponse>> AsyncRetrieveAllParams(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest& request, ::grpc::CompletionQueue* cq) {
@@ -129,6 +162,12 @@ class ParamServerService final {
       virtual void ProvideParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamIntRequest* request, ::mavsdk::rpc::param_server::ProvideParamIntResponse* response, std::function<void(::grpc::Status)>) = 0;
       virtual void ProvideParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamIntRequest* request, ::mavsdk::rpc::param_server::ProvideParamIntResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0;
       //
+      // Change an int parameter internally.
+      //
+      // If the type is wrong, the result will be `WRONG_TYPE`.
+      virtual void ChangeParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest* request, ::mavsdk::rpc::param_server::ChangeParamIntResponse* response, std::function<void(::grpc::Status)>) = 0;
+      virtual void ChangeParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest* request, ::mavsdk::rpc::param_server::ChangeParamIntResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0;
+      //
       // Retrieve a float parameter.
       //
       // If the type is wrong, the result will be `WRONG_TYPE`.
@@ -141,6 +180,12 @@ class ParamServerService final {
       virtual void ProvideParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamFloatRequest* request, ::mavsdk::rpc::param_server::ProvideParamFloatResponse* response, std::function<void(::grpc::Status)>) = 0;
       virtual void ProvideParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamFloatRequest* request, ::mavsdk::rpc::param_server::ProvideParamFloatResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0;
       //
+      // Change a float parameter internally.
+      //
+      // If the type is wrong, the result will be `WRONG_TYPE`.
+      virtual void ChangeParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* request, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* response, std::function<void(::grpc::Status)>) = 0;
+      virtual void ChangeParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* request, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0;
+      //
       // Retrieve a custom parameter.
       //
       // If the type is wrong, the result will be `WRONG_TYPE`.
@@ -153,6 +198,12 @@ class ParamServerService final {
       virtual void ProvideParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamCustomRequest* request, ::mavsdk::rpc::param_server::ProvideParamCustomResponse* response, std::function<void(::grpc::Status)>) = 0;
       virtual void ProvideParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamCustomRequest* request, ::mavsdk::rpc::param_server::ProvideParamCustomResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0;
       //
+      // Change a custom parameter internally.
+      //
+      // If the type is wrong, the result will be `WRONG_TYPE`.
+      virtual void ChangeParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* request, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* response, std::function<void(::grpc::Status)>) = 0;
+      virtual void ChangeParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* request, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0;
+      //
       // Retrieve all parameters.
       virtual void RetrieveAllParams(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest* request, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse* response, std::function<void(::grpc::Status)>) = 0;
       virtual void RetrieveAllParams(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest* request, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0;
@@ -165,14 +216,20 @@ class ParamServerService final {
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::RetrieveParamIntResponse>* PrepareAsyncRetrieveParamIntRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamIntRequest& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ProvideParamIntResponse>* AsyncProvideParamIntRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamIntRequest& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ProvideParamIntResponse>* PrepareAsyncProvideParamIntRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamIntRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamIntResponse>* AsyncChangeParamIntRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamIntResponse>* PrepareAsyncChangeParamIntRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::RetrieveParamFloatResponse>* AsyncRetrieveParamFloatRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamFloatRequest& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::RetrieveParamFloatResponse>* PrepareAsyncRetrieveParamFloatRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamFloatRequest& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ProvideParamFloatResponse>* AsyncProvideParamFloatRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamFloatRequest& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ProvideParamFloatResponse>* PrepareAsyncProvideParamFloatRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamFloatRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamFloatResponse>* AsyncChangeParamFloatRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamFloatResponse>* PrepareAsyncChangeParamFloatRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::RetrieveParamCustomResponse>* AsyncRetrieveParamCustomRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamCustomRequest& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::RetrieveParamCustomResponse>* PrepareAsyncRetrieveParamCustomRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamCustomRequest& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ProvideParamCustomResponse>* AsyncProvideParamCustomRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamCustomRequest& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ProvideParamCustomResponse>* PrepareAsyncProvideParamCustomRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamCustomRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamCustomResponse>* AsyncChangeParamCustomRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::ChangeParamCustomResponse>* PrepareAsyncChangeParamCustomRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::RetrieveAllParamsResponse>* AsyncRetrieveAllParamsRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::mavsdk::rpc::param_server::RetrieveAllParamsResponse>* PrepareAsyncRetrieveAllParamsRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest& request, ::grpc::CompletionQueue* cq) = 0;
   };
@@ -193,6 +250,13 @@ class ParamServerService final {
     std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ProvideParamIntResponse>> PrepareAsyncProvideParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamIntRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ProvideParamIntResponse>>(PrepareAsyncProvideParamIntRaw(context, request, cq));
     }
+    ::grpc::Status ChangeParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest& request, ::mavsdk::rpc::param_server::ChangeParamIntResponse* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamIntResponse>> AsyncChangeParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamIntResponse>>(AsyncChangeParamIntRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamIntResponse>> PrepareAsyncChangeParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamIntResponse>>(PrepareAsyncChangeParamIntRaw(context, request, cq));
+    }
     ::grpc::Status RetrieveParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamFloatRequest& request, ::mavsdk::rpc::param_server::RetrieveParamFloatResponse* response) override;
     std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::RetrieveParamFloatResponse>> AsyncRetrieveParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamFloatRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::RetrieveParamFloatResponse>>(AsyncRetrieveParamFloatRaw(context, request, cq));
@@ -207,6 +271,13 @@ class ParamServerService final {
     std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ProvideParamFloatResponse>> PrepareAsyncProvideParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamFloatRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ProvideParamFloatResponse>>(PrepareAsyncProvideParamFloatRaw(context, request, cq));
     }
+    ::grpc::Status ChangeParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest& request, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamFloatResponse>> AsyncChangeParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamFloatResponse>>(AsyncChangeParamFloatRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamFloatResponse>> PrepareAsyncChangeParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamFloatResponse>>(PrepareAsyncChangeParamFloatRaw(context, request, cq));
+    }
     ::grpc::Status RetrieveParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamCustomRequest& request, ::mavsdk::rpc::param_server::RetrieveParamCustomResponse* response) override;
     std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::RetrieveParamCustomResponse>> AsyncRetrieveParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamCustomRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::RetrieveParamCustomResponse>>(AsyncRetrieveParamCustomRaw(context, request, cq));
@@ -221,6 +292,13 @@ class ParamServerService final {
     std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ProvideParamCustomResponse>> PrepareAsyncProvideParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamCustomRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ProvideParamCustomResponse>>(PrepareAsyncProvideParamCustomRaw(context, request, cq));
     }
+    ::grpc::Status ChangeParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest& request, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamCustomResponse>> AsyncChangeParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamCustomResponse>>(AsyncChangeParamCustomRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamCustomResponse>> PrepareAsyncChangeParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamCustomResponse>>(PrepareAsyncChangeParamCustomRaw(context, request, cq));
+    }
     ::grpc::Status RetrieveAllParams(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest& request, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse* response) override;
     std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::RetrieveAllParamsResponse>> AsyncRetrieveAllParams(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::RetrieveAllParamsResponse>>(AsyncRetrieveAllParamsRaw(context, request, cq));
@@ -235,14 +313,20 @@ class ParamServerService final {
       void RetrieveParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamIntRequest* request, ::mavsdk::rpc::param_server::RetrieveParamIntResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
       void ProvideParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamIntRequest* request, ::mavsdk::rpc::param_server::ProvideParamIntResponse* response, std::function<void(::grpc::Status)>) override;
       void ProvideParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamIntRequest* request, ::mavsdk::rpc::param_server::ProvideParamIntResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
+      void ChangeParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest* request, ::mavsdk::rpc::param_server::ChangeParamIntResponse* response, std::function<void(::grpc::Status)>) override;
+      void ChangeParamInt(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest* request, ::mavsdk::rpc::param_server::ChangeParamIntResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
       void RetrieveParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamFloatRequest* request, ::mavsdk::rpc::param_server::RetrieveParamFloatResponse* response, std::function<void(::grpc::Status)>) override;
       void RetrieveParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamFloatRequest* request, ::mavsdk::rpc::param_server::RetrieveParamFloatResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
       void ProvideParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamFloatRequest* request, ::mavsdk::rpc::param_server::ProvideParamFloatResponse* response, std::function<void(::grpc::Status)>) override;
       void ProvideParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamFloatRequest* request, ::mavsdk::rpc::param_server::ProvideParamFloatResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
+      void ChangeParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* request, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* response, std::function<void(::grpc::Status)>) override;
+      void ChangeParamFloat(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* request, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
       void RetrieveParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamCustomRequest* request, ::mavsdk::rpc::param_server::RetrieveParamCustomResponse* response, std::function<void(::grpc::Status)>) override;
       void RetrieveParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamCustomRequest* request, ::mavsdk::rpc::param_server::RetrieveParamCustomResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
       void ProvideParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamCustomRequest* request, ::mavsdk::rpc::param_server::ProvideParamCustomResponse* response, std::function<void(::grpc::Status)>) override;
       void ProvideParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamCustomRequest* request, ::mavsdk::rpc::param_server::ProvideParamCustomResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
+      void ChangeParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* request, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* response, std::function<void(::grpc::Status)>) override;
+      void ChangeParamCustom(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* request, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
       void RetrieveAllParams(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest* request, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse* response, std::function<void(::grpc::Status)>) override;
       void RetrieveAllParams(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest* request, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
      private:
@@ -260,22 +344,31 @@ class ParamServerService final {
     ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::RetrieveParamIntResponse>* PrepareAsyncRetrieveParamIntRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamIntRequest& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ProvideParamIntResponse>* AsyncProvideParamIntRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamIntRequest& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ProvideParamIntResponse>* PrepareAsyncProvideParamIntRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamIntRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamIntResponse>* AsyncChangeParamIntRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamIntResponse>* PrepareAsyncChangeParamIntRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::RetrieveParamFloatResponse>* AsyncRetrieveParamFloatRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamFloatRequest& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::RetrieveParamFloatResponse>* PrepareAsyncRetrieveParamFloatRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamFloatRequest& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ProvideParamFloatResponse>* AsyncProvideParamFloatRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamFloatRequest& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ProvideParamFloatResponse>* PrepareAsyncProvideParamFloatRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamFloatRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamFloatResponse>* AsyncChangeParamFloatRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamFloatResponse>* PrepareAsyncChangeParamFloatRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::RetrieveParamCustomResponse>* AsyncRetrieveParamCustomRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamCustomRequest& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::RetrieveParamCustomResponse>* PrepareAsyncRetrieveParamCustomRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveParamCustomRequest& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ProvideParamCustomResponse>* AsyncProvideParamCustomRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamCustomRequest& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ProvideParamCustomResponse>* PrepareAsyncProvideParamCustomRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ProvideParamCustomRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamCustomResponse>* AsyncChangeParamCustomRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::ChangeParamCustomResponse>* PrepareAsyncChangeParamCustomRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::RetrieveAllParamsResponse>* AsyncRetrieveAllParamsRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::mavsdk::rpc::param_server::RetrieveAllParamsResponse>* PrepareAsyncRetrieveAllParamsRaw(::grpc::ClientContext* context, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest& request, ::grpc::CompletionQueue* cq) override;
     const ::grpc::internal::RpcMethod rpcmethod_RetrieveParamInt_;
     const ::grpc::internal::RpcMethod rpcmethod_ProvideParamInt_;
+    const ::grpc::internal::RpcMethod rpcmethod_ChangeParamInt_;
     const ::grpc::internal::RpcMethod rpcmethod_RetrieveParamFloat_;
     const ::grpc::internal::RpcMethod rpcmethod_ProvideParamFloat_;
+    const ::grpc::internal::RpcMethod rpcmethod_ChangeParamFloat_;
     const ::grpc::internal::RpcMethod rpcmethod_RetrieveParamCustom_;
     const ::grpc::internal::RpcMethod rpcmethod_ProvideParamCustom_;
+    const ::grpc::internal::RpcMethod rpcmethod_ChangeParamCustom_;
     const ::grpc::internal::RpcMethod rpcmethod_RetrieveAllParams_;
   };
   static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
@@ -295,6 +388,11 @@ class ParamServerService final {
     // If the type is wrong, the result will be `WRONG_TYPE`.
     virtual ::grpc::Status ProvideParamInt(::grpc::ServerContext* context, const ::mavsdk::rpc::param_server::ProvideParamIntRequest* request, ::mavsdk::rpc::param_server::ProvideParamIntResponse* response);
     //
+    // Change an int parameter internally.
+    //
+    // If the type is wrong, the result will be `WRONG_TYPE`.
+    virtual ::grpc::Status ChangeParamInt(::grpc::ServerContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest* request, ::mavsdk::rpc::param_server::ChangeParamIntResponse* response);
+    //
     // Retrieve a float parameter.
     //
     // If the type is wrong, the result will be `WRONG_TYPE`.
@@ -305,6 +403,11 @@ class ParamServerService final {
     // If the type is wrong, the result will be `WRONG_TYPE`.
     virtual ::grpc::Status ProvideParamFloat(::grpc::ServerContext* context, const ::mavsdk::rpc::param_server::ProvideParamFloatRequest* request, ::mavsdk::rpc::param_server::ProvideParamFloatResponse* response);
     //
+    // Change a float parameter internally.
+    //
+    // If the type is wrong, the result will be `WRONG_TYPE`.
+    virtual ::grpc::Status ChangeParamFloat(::grpc::ServerContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* request, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* response);
+    //
     // Retrieve a custom parameter.
     //
     // If the type is wrong, the result will be `WRONG_TYPE`.
@@ -315,6 +418,11 @@ class ParamServerService final {
     // If the type is wrong, the result will be `WRONG_TYPE`.
     virtual ::grpc::Status ProvideParamCustom(::grpc::ServerContext* context, const ::mavsdk::rpc::param_server::ProvideParamCustomRequest* request, ::mavsdk::rpc::param_server::ProvideParamCustomResponse* response);
     //
+    // Change a custom parameter internally.
+    //
+    // If the type is wrong, the result will be `WRONG_TYPE`.
+    virtual ::grpc::Status ChangeParamCustom(::grpc::ServerContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* request, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* response);
+    //
     // Retrieve all parameters.
     virtual ::grpc::Status RetrieveAllParams(::grpc::ServerContext* context, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest* request, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse* response);
   };
@@ -359,12 +467,32 @@ class ParamServerService final {
     }
   };
   template <class BaseClass>
+  class WithAsyncMethod_ChangeParamInt : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithAsyncMethod_ChangeParamInt() {
+      ::grpc::Service::MarkMethodAsync(2);
+    }
+    ~WithAsyncMethod_ChangeParamInt() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeParamInt(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamIntRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamIntResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestChangeParamInt(::grpc::ServerContext* context, ::mavsdk::rpc::param_server::ChangeParamIntRequest* request, ::grpc::ServerAsyncResponseWriter< ::mavsdk::rpc::param_server::ChangeParamIntResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
   class WithAsyncMethod_RetrieveParamFloat : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithAsyncMethod_RetrieveParamFloat() {
-      ::grpc::Service::MarkMethodAsync(2);
+      ::grpc::Service::MarkMethodAsync(3);
     }
     ~WithAsyncMethod_RetrieveParamFloat() override {
       BaseClassMustBeDerivedFromService(this);
@@ -375,7 +503,7 @@ class ParamServerService final {
       return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
     }
     void RequestRetrieveParamFloat(::grpc::ServerContext* context, ::mavsdk::rpc::param_server::RetrieveParamFloatRequest* request, ::grpc::ServerAsyncResponseWriter< ::mavsdk::rpc::param_server::RetrieveParamFloatResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag);
+      ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag);
     }
   };
   template <class BaseClass>
@@ -384,7 +512,7 @@ class ParamServerService final {
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithAsyncMethod_ProvideParamFloat() {
-      ::grpc::Service::MarkMethodAsync(3);
+      ::grpc::Service::MarkMethodAsync(4);
     }
     ~WithAsyncMethod_ProvideParamFloat() override {
       BaseClassMustBeDerivedFromService(this);
@@ -395,7 +523,27 @@ class ParamServerService final {
       return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
     }
     void RequestProvideParamFloat(::grpc::ServerContext* context, ::mavsdk::rpc::param_server::ProvideParamFloatRequest* request, ::grpc::ServerAsyncResponseWriter< ::mavsdk::rpc::param_server::ProvideParamFloatResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag);
+      ::grpc::Service::RequestAsyncUnary(4, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithAsyncMethod_ChangeParamFloat : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithAsyncMethod_ChangeParamFloat() {
+      ::grpc::Service::MarkMethodAsync(5);
+    }
+    ~WithAsyncMethod_ChangeParamFloat() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeParamFloat(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestChangeParamFloat(::grpc::ServerContext* context, ::mavsdk::rpc::param_server::ChangeParamFloatRequest* request, ::grpc::ServerAsyncResponseWriter< ::mavsdk::rpc::param_server::ChangeParamFloatResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(5, context, request, response, new_call_cq, notification_cq, tag);
     }
   };
   template <class BaseClass>
@@ -404,7 +552,7 @@ class ParamServerService final {
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithAsyncMethod_RetrieveParamCustom() {
-      ::grpc::Service::MarkMethodAsync(4);
+      ::grpc::Service::MarkMethodAsync(6);
     }
     ~WithAsyncMethod_RetrieveParamCustom() override {
       BaseClassMustBeDerivedFromService(this);
@@ -415,7 +563,7 @@ class ParamServerService final {
       return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
     }
     void RequestRetrieveParamCustom(::grpc::ServerContext* context, ::mavsdk::rpc::param_server::RetrieveParamCustomRequest* request, ::grpc::ServerAsyncResponseWriter< ::mavsdk::rpc::param_server::RetrieveParamCustomResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncUnary(4, context, request, response, new_call_cq, notification_cq, tag);
+      ::grpc::Service::RequestAsyncUnary(6, context, request, response, new_call_cq, notification_cq, tag);
     }
   };
   template <class BaseClass>
@@ -424,7 +572,7 @@ class ParamServerService final {
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithAsyncMethod_ProvideParamCustom() {
-      ::grpc::Service::MarkMethodAsync(5);
+      ::grpc::Service::MarkMethodAsync(7);
     }
     ~WithAsyncMethod_ProvideParamCustom() override {
       BaseClassMustBeDerivedFromService(this);
@@ -435,7 +583,27 @@ class ParamServerService final {
       return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
     }
     void RequestProvideParamCustom(::grpc::ServerContext* context, ::mavsdk::rpc::param_server::ProvideParamCustomRequest* request, ::grpc::ServerAsyncResponseWriter< ::mavsdk::rpc::param_server::ProvideParamCustomResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncUnary(5, context, request, response, new_call_cq, notification_cq, tag);
+      ::grpc::Service::RequestAsyncUnary(7, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithAsyncMethod_ChangeParamCustom : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithAsyncMethod_ChangeParamCustom() {
+      ::grpc::Service::MarkMethodAsync(8);
+    }
+    ~WithAsyncMethod_ChangeParamCustom() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeParamCustom(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestChangeParamCustom(::grpc::ServerContext* context, ::mavsdk::rpc::param_server::ChangeParamCustomRequest* request, ::grpc::ServerAsyncResponseWriter< ::mavsdk::rpc::param_server::ChangeParamCustomResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(8, context, request, response, new_call_cq, notification_cq, tag);
     }
   };
   template <class BaseClass>
@@ -444,7 +612,7 @@ class ParamServerService final {
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithAsyncMethod_RetrieveAllParams() {
-      ::grpc::Service::MarkMethodAsync(6);
+      ::grpc::Service::MarkMethodAsync(9);
     }
     ~WithAsyncMethod_RetrieveAllParams() override {
       BaseClassMustBeDerivedFromService(this);
@@ -455,10 +623,10 @@ class ParamServerService final {
       return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
     }
     void RequestRetrieveAllParams(::grpc::ServerContext* context, ::mavsdk::rpc::param_server::RetrieveAllParamsRequest* request, ::grpc::ServerAsyncResponseWriter< ::mavsdk::rpc::param_server::RetrieveAllParamsResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncUnary(6, context, request, response, new_call_cq, notification_cq, tag);
+      ::grpc::Service::RequestAsyncUnary(9, context, request, response, new_call_cq, notification_cq, tag);
     }
   };
-  typedef WithAsyncMethod_RetrieveParamInt<WithAsyncMethod_ProvideParamInt<WithAsyncMethod_RetrieveParamFloat<WithAsyncMethod_ProvideParamFloat<WithAsyncMethod_RetrieveParamCustom<WithAsyncMethod_ProvideParamCustom<WithAsyncMethod_RetrieveAllParams<Service > > > > > > > AsyncService;
+  typedef WithAsyncMethod_RetrieveParamInt<WithAsyncMethod_ProvideParamInt<WithAsyncMethod_ChangeParamInt<WithAsyncMethod_RetrieveParamFloat<WithAsyncMethod_ProvideParamFloat<WithAsyncMethod_ChangeParamFloat<WithAsyncMethod_RetrieveParamCustom<WithAsyncMethod_ProvideParamCustom<WithAsyncMethod_ChangeParamCustom<WithAsyncMethod_RetrieveAllParams<Service > > > > > > > > > > AsyncService;
   template <class BaseClass>
   class WithCallbackMethod_RetrieveParamInt : public BaseClass {
    private:
@@ -514,18 +682,45 @@ class ParamServerService final {
       ::grpc::CallbackServerContext* /*context*/, const ::mavsdk::rpc::param_server::ProvideParamIntRequest* /*request*/, ::mavsdk::rpc::param_server::ProvideParamIntResponse* /*response*/)  { return nullptr; }
   };
   template <class BaseClass>
+  class WithCallbackMethod_ChangeParamInt : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithCallbackMethod_ChangeParamInt() {
+      ::grpc::Service::MarkMethodCallback(2,
+          new ::grpc::internal::CallbackUnaryHandler< ::mavsdk::rpc::param_server::ChangeParamIntRequest, ::mavsdk::rpc::param_server::ChangeParamIntResponse>(
+            [this](
+                   ::grpc::CallbackServerContext* context, const ::mavsdk::rpc::param_server::ChangeParamIntRequest* request, ::mavsdk::rpc::param_server::ChangeParamIntResponse* response) { return this->ChangeParamInt(context, request, response); }));}
+    void SetMessageAllocatorFor_ChangeParamInt(
+        ::grpc::MessageAllocator< ::mavsdk::rpc::param_server::ChangeParamIntRequest, ::mavsdk::rpc::param_server::ChangeParamIntResponse>* allocator) {
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(2);
+      static_cast<::grpc::internal::CallbackUnaryHandler< ::mavsdk::rpc::param_server::ChangeParamIntRequest, ::mavsdk::rpc::param_server::ChangeParamIntResponse>*>(handler)
+              ->SetMessageAllocator(allocator);
+    }
+    ~WithCallbackMethod_ChangeParamInt() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeParamInt(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamIntRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamIntResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    virtual ::grpc::ServerUnaryReactor* ChangeParamInt(
+      ::grpc::CallbackServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamIntRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamIntResponse* /*response*/)  { return nullptr; }
+  };
+  template <class BaseClass>
   class WithCallbackMethod_RetrieveParamFloat : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithCallbackMethod_RetrieveParamFloat() {
-      ::grpc::Service::MarkMethodCallback(2,
+      ::grpc::Service::MarkMethodCallback(3,
           new ::grpc::internal::CallbackUnaryHandler< ::mavsdk::rpc::param_server::RetrieveParamFloatRequest, ::mavsdk::rpc::param_server::RetrieveParamFloatResponse>(
             [this](
                    ::grpc::CallbackServerContext* context, const ::mavsdk::rpc::param_server::RetrieveParamFloatRequest* request, ::mavsdk::rpc::param_server::RetrieveParamFloatResponse* response) { return this->RetrieveParamFloat(context, request, response); }));}
     void SetMessageAllocatorFor_RetrieveParamFloat(
         ::grpc::MessageAllocator< ::mavsdk::rpc::param_server::RetrieveParamFloatRequest, ::mavsdk::rpc::param_server::RetrieveParamFloatResponse>* allocator) {
-      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(2);
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(3);
       static_cast<::grpc::internal::CallbackUnaryHandler< ::mavsdk::rpc::param_server::RetrieveParamFloatRequest, ::mavsdk::rpc::param_server::RetrieveParamFloatResponse>*>(handler)
               ->SetMessageAllocator(allocator);
     }
@@ -546,13 +741,13 @@ class ParamServerService final {
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithCallbackMethod_ProvideParamFloat() {
-      ::grpc::Service::MarkMethodCallback(3,
+      ::grpc::Service::MarkMethodCallback(4,
           new ::grpc::internal::CallbackUnaryHandler< ::mavsdk::rpc::param_server::ProvideParamFloatRequest, ::mavsdk::rpc::param_server::ProvideParamFloatResponse>(
             [this](
                    ::grpc::CallbackServerContext* context, const ::mavsdk::rpc::param_server::ProvideParamFloatRequest* request, ::mavsdk::rpc::param_server::ProvideParamFloatResponse* response) { return this->ProvideParamFloat(context, request, response); }));}
     void SetMessageAllocatorFor_ProvideParamFloat(
         ::grpc::MessageAllocator< ::mavsdk::rpc::param_server::ProvideParamFloatRequest, ::mavsdk::rpc::param_server::ProvideParamFloatResponse>* allocator) {
-      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(3);
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(4);
       static_cast<::grpc::internal::CallbackUnaryHandler< ::mavsdk::rpc::param_server::ProvideParamFloatRequest, ::mavsdk::rpc::param_server::ProvideParamFloatResponse>*>(handler)
               ->SetMessageAllocator(allocator);
     }
@@ -568,18 +763,45 @@ class ParamServerService final {
       ::grpc::CallbackServerContext* /*context*/, const ::mavsdk::rpc::param_server::ProvideParamFloatRequest* /*request*/, ::mavsdk::rpc::param_server::ProvideParamFloatResponse* /*response*/)  { return nullptr; }
   };
   template <class BaseClass>
+  class WithCallbackMethod_ChangeParamFloat : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithCallbackMethod_ChangeParamFloat() {
+      ::grpc::Service::MarkMethodCallback(5,
+          new ::grpc::internal::CallbackUnaryHandler< ::mavsdk::rpc::param_server::ChangeParamFloatRequest, ::mavsdk::rpc::param_server::ChangeParamFloatResponse>(
+            [this](
+                   ::grpc::CallbackServerContext* context, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* request, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* response) { return this->ChangeParamFloat(context, request, response); }));}
+    void SetMessageAllocatorFor_ChangeParamFloat(
+        ::grpc::MessageAllocator< ::mavsdk::rpc::param_server::ChangeParamFloatRequest, ::mavsdk::rpc::param_server::ChangeParamFloatResponse>* allocator) {
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(5);
+      static_cast<::grpc::internal::CallbackUnaryHandler< ::mavsdk::rpc::param_server::ChangeParamFloatRequest, ::mavsdk::rpc::param_server::ChangeParamFloatResponse>*>(handler)
+              ->SetMessageAllocator(allocator);
+    }
+    ~WithCallbackMethod_ChangeParamFloat() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeParamFloat(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    virtual ::grpc::ServerUnaryReactor* ChangeParamFloat(
+      ::grpc::CallbackServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* /*response*/)  { return nullptr; }
+  };
+  template <class BaseClass>
   class WithCallbackMethod_RetrieveParamCustom : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithCallbackMethod_RetrieveParamCustom() {
-      ::grpc::Service::MarkMethodCallback(4,
+      ::grpc::Service::MarkMethodCallback(6,
           new ::grpc::internal::CallbackUnaryHandler< ::mavsdk::rpc::param_server::RetrieveParamCustomRequest, ::mavsdk::rpc::param_server::RetrieveParamCustomResponse>(
             [this](
                    ::grpc::CallbackServerContext* context, const ::mavsdk::rpc::param_server::RetrieveParamCustomRequest* request, ::mavsdk::rpc::param_server::RetrieveParamCustomResponse* response) { return this->RetrieveParamCustom(context, request, response); }));}
     void SetMessageAllocatorFor_RetrieveParamCustom(
         ::grpc::MessageAllocator< ::mavsdk::rpc::param_server::RetrieveParamCustomRequest, ::mavsdk::rpc::param_server::RetrieveParamCustomResponse>* allocator) {
-      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(4);
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(6);
       static_cast<::grpc::internal::CallbackUnaryHandler< ::mavsdk::rpc::param_server::RetrieveParamCustomRequest, ::mavsdk::rpc::param_server::RetrieveParamCustomResponse>*>(handler)
               ->SetMessageAllocator(allocator);
     }
@@ -600,13 +822,13 @@ class ParamServerService final {
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithCallbackMethod_ProvideParamCustom() {
-      ::grpc::Service::MarkMethodCallback(5,
+      ::grpc::Service::MarkMethodCallback(7,
           new ::grpc::internal::CallbackUnaryHandler< ::mavsdk::rpc::param_server::ProvideParamCustomRequest, ::mavsdk::rpc::param_server::ProvideParamCustomResponse>(
             [this](
                    ::grpc::CallbackServerContext* context, const ::mavsdk::rpc::param_server::ProvideParamCustomRequest* request, ::mavsdk::rpc::param_server::ProvideParamCustomResponse* response) { return this->ProvideParamCustom(context, request, response); }));}
     void SetMessageAllocatorFor_ProvideParamCustom(
         ::grpc::MessageAllocator< ::mavsdk::rpc::param_server::ProvideParamCustomRequest, ::mavsdk::rpc::param_server::ProvideParamCustomResponse>* allocator) {
-      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(5);
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(7);
       static_cast<::grpc::internal::CallbackUnaryHandler< ::mavsdk::rpc::param_server::ProvideParamCustomRequest, ::mavsdk::rpc::param_server::ProvideParamCustomResponse>*>(handler)
               ->SetMessageAllocator(allocator);
     }
@@ -622,18 +844,45 @@ class ParamServerService final {
       ::grpc::CallbackServerContext* /*context*/, const ::mavsdk::rpc::param_server::ProvideParamCustomRequest* /*request*/, ::mavsdk::rpc::param_server::ProvideParamCustomResponse* /*response*/)  { return nullptr; }
   };
   template <class BaseClass>
+  class WithCallbackMethod_ChangeParamCustom : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithCallbackMethod_ChangeParamCustom() {
+      ::grpc::Service::MarkMethodCallback(8,
+          new ::grpc::internal::CallbackUnaryHandler< ::mavsdk::rpc::param_server::ChangeParamCustomRequest, ::mavsdk::rpc::param_server::ChangeParamCustomResponse>(
+            [this](
+                   ::grpc::CallbackServerContext* context, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* request, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* response) { return this->ChangeParamCustom(context, request, response); }));}
+    void SetMessageAllocatorFor_ChangeParamCustom(
+        ::grpc::MessageAllocator< ::mavsdk::rpc::param_server::ChangeParamCustomRequest, ::mavsdk::rpc::param_server::ChangeParamCustomResponse>* allocator) {
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(8);
+      static_cast<::grpc::internal::CallbackUnaryHandler< ::mavsdk::rpc::param_server::ChangeParamCustomRequest, ::mavsdk::rpc::param_server::ChangeParamCustomResponse>*>(handler)
+              ->SetMessageAllocator(allocator);
+    }
+    ~WithCallbackMethod_ChangeParamCustom() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeParamCustom(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    virtual ::grpc::ServerUnaryReactor* ChangeParamCustom(
+      ::grpc::CallbackServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* /*response*/)  { return nullptr; }
+  };
+  template <class BaseClass>
   class WithCallbackMethod_RetrieveAllParams : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithCallbackMethod_RetrieveAllParams() {
-      ::grpc::Service::MarkMethodCallback(6,
+      ::grpc::Service::MarkMethodCallback(9,
           new ::grpc::internal::CallbackUnaryHandler< ::mavsdk::rpc::param_server::RetrieveAllParamsRequest, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse>(
             [this](
                    ::grpc::CallbackServerContext* context, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest* request, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse* response) { return this->RetrieveAllParams(context, request, response); }));}
     void SetMessageAllocatorFor_RetrieveAllParams(
         ::grpc::MessageAllocator< ::mavsdk::rpc::param_server::RetrieveAllParamsRequest, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse>* allocator) {
-      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(6);
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(9);
       static_cast<::grpc::internal::CallbackUnaryHandler< ::mavsdk::rpc::param_server::RetrieveAllParamsRequest, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse>*>(handler)
               ->SetMessageAllocator(allocator);
     }
@@ -648,7 +897,7 @@ class ParamServerService final {
     virtual ::grpc::ServerUnaryReactor* RetrieveAllParams(
       ::grpc::CallbackServerContext* /*context*/, const ::mavsdk::rpc::param_server::RetrieveAllParamsRequest* /*request*/, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse* /*response*/)  { return nullptr; }
   };
-  typedef WithCallbackMethod_RetrieveParamInt<WithCallbackMethod_ProvideParamInt<WithCallbackMethod_RetrieveParamFloat<WithCallbackMethod_ProvideParamFloat<WithCallbackMethod_RetrieveParamCustom<WithCallbackMethod_ProvideParamCustom<WithCallbackMethod_RetrieveAllParams<Service > > > > > > > CallbackService;
+  typedef WithCallbackMethod_RetrieveParamInt<WithCallbackMethod_ProvideParamInt<WithCallbackMethod_ChangeParamInt<WithCallbackMethod_RetrieveParamFloat<WithCallbackMethod_ProvideParamFloat<WithCallbackMethod_ChangeParamFloat<WithCallbackMethod_RetrieveParamCustom<WithCallbackMethod_ProvideParamCustom<WithCallbackMethod_ChangeParamCustom<WithCallbackMethod_RetrieveAllParams<Service > > > > > > > > > > CallbackService;
   typedef CallbackService ExperimentalCallbackService;
   template <class BaseClass>
   class WithGenericMethod_RetrieveParamInt : public BaseClass {
@@ -685,12 +934,29 @@ class ParamServerService final {
     }
   };
   template <class BaseClass>
+  class WithGenericMethod_ChangeParamInt : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithGenericMethod_ChangeParamInt() {
+      ::grpc::Service::MarkMethodGeneric(2);
+    }
+    ~WithGenericMethod_ChangeParamInt() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeParamInt(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamIntRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamIntResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
   class WithGenericMethod_RetrieveParamFloat : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithGenericMethod_RetrieveParamFloat() {
-      ::grpc::Service::MarkMethodGeneric(2);
+      ::grpc::Service::MarkMethodGeneric(3);
     }
     ~WithGenericMethod_RetrieveParamFloat() override {
       BaseClassMustBeDerivedFromService(this);
@@ -707,7 +973,7 @@ class ParamServerService final {
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithGenericMethod_ProvideParamFloat() {
-      ::grpc::Service::MarkMethodGeneric(3);
+      ::grpc::Service::MarkMethodGeneric(4);
     }
     ~WithGenericMethod_ProvideParamFloat() override {
       BaseClassMustBeDerivedFromService(this);
@@ -719,12 +985,29 @@ class ParamServerService final {
     }
   };
   template <class BaseClass>
+  class WithGenericMethod_ChangeParamFloat : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithGenericMethod_ChangeParamFloat() {
+      ::grpc::Service::MarkMethodGeneric(5);
+    }
+    ~WithGenericMethod_ChangeParamFloat() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeParamFloat(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
   class WithGenericMethod_RetrieveParamCustom : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithGenericMethod_RetrieveParamCustom() {
-      ::grpc::Service::MarkMethodGeneric(4);
+      ::grpc::Service::MarkMethodGeneric(6);
     }
     ~WithGenericMethod_RetrieveParamCustom() override {
       BaseClassMustBeDerivedFromService(this);
@@ -741,7 +1024,7 @@ class ParamServerService final {
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithGenericMethod_ProvideParamCustom() {
-      ::grpc::Service::MarkMethodGeneric(5);
+      ::grpc::Service::MarkMethodGeneric(7);
     }
     ~WithGenericMethod_ProvideParamCustom() override {
       BaseClassMustBeDerivedFromService(this);
@@ -753,12 +1036,29 @@ class ParamServerService final {
     }
   };
   template <class BaseClass>
+  class WithGenericMethod_ChangeParamCustom : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithGenericMethod_ChangeParamCustom() {
+      ::grpc::Service::MarkMethodGeneric(8);
+    }
+    ~WithGenericMethod_ChangeParamCustom() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeParamCustom(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
   class WithGenericMethod_RetrieveAllParams : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithGenericMethod_RetrieveAllParams() {
-      ::grpc::Service::MarkMethodGeneric(6);
+      ::grpc::Service::MarkMethodGeneric(9);
     }
     ~WithGenericMethod_RetrieveAllParams() override {
       BaseClassMustBeDerivedFromService(this);
@@ -810,12 +1110,32 @@ class ParamServerService final {
     }
   };
   template <class BaseClass>
+  class WithRawMethod_ChangeParamInt : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithRawMethod_ChangeParamInt() {
+      ::grpc::Service::MarkMethodRaw(2);
+    }
+    ~WithRawMethod_ChangeParamInt() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeParamInt(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamIntRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamIntResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestChangeParamInt(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
   class WithRawMethod_RetrieveParamFloat : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithRawMethod_RetrieveParamFloat() {
-      ::grpc::Service::MarkMethodRaw(2);
+      ::grpc::Service::MarkMethodRaw(3);
     }
     ~WithRawMethod_RetrieveParamFloat() override {
       BaseClassMustBeDerivedFromService(this);
@@ -826,7 +1146,7 @@ class ParamServerService final {
       return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
     }
     void RequestRetrieveParamFloat(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag);
+      ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag);
     }
   };
   template <class BaseClass>
@@ -835,7 +1155,7 @@ class ParamServerService final {
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithRawMethod_ProvideParamFloat() {
-      ::grpc::Service::MarkMethodRaw(3);
+      ::grpc::Service::MarkMethodRaw(4);
     }
     ~WithRawMethod_ProvideParamFloat() override {
       BaseClassMustBeDerivedFromService(this);
@@ -846,7 +1166,27 @@ class ParamServerService final {
       return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
     }
     void RequestProvideParamFloat(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag);
+      ::grpc::Service::RequestAsyncUnary(4, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithRawMethod_ChangeParamFloat : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithRawMethod_ChangeParamFloat() {
+      ::grpc::Service::MarkMethodRaw(5);
+    }
+    ~WithRawMethod_ChangeParamFloat() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeParamFloat(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestChangeParamFloat(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(5, context, request, response, new_call_cq, notification_cq, tag);
     }
   };
   template <class BaseClass>
@@ -855,7 +1195,7 @@ class ParamServerService final {
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithRawMethod_RetrieveParamCustom() {
-      ::grpc::Service::MarkMethodRaw(4);
+      ::grpc::Service::MarkMethodRaw(6);
     }
     ~WithRawMethod_RetrieveParamCustom() override {
       BaseClassMustBeDerivedFromService(this);
@@ -866,7 +1206,7 @@ class ParamServerService final {
       return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
     }
     void RequestRetrieveParamCustom(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncUnary(4, context, request, response, new_call_cq, notification_cq, tag);
+      ::grpc::Service::RequestAsyncUnary(6, context, request, response, new_call_cq, notification_cq, tag);
     }
   };
   template <class BaseClass>
@@ -875,7 +1215,7 @@ class ParamServerService final {
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithRawMethod_ProvideParamCustom() {
-      ::grpc::Service::MarkMethodRaw(5);
+      ::grpc::Service::MarkMethodRaw(7);
     }
     ~WithRawMethod_ProvideParamCustom() override {
       BaseClassMustBeDerivedFromService(this);
@@ -886,7 +1226,27 @@ class ParamServerService final {
       return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
     }
     void RequestProvideParamCustom(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncUnary(5, context, request, response, new_call_cq, notification_cq, tag);
+      ::grpc::Service::RequestAsyncUnary(7, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithRawMethod_ChangeParamCustom : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithRawMethod_ChangeParamCustom() {
+      ::grpc::Service::MarkMethodRaw(8);
+    }
+    ~WithRawMethod_ChangeParamCustom() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeParamCustom(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestChangeParamCustom(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(8, context, request, response, new_call_cq, notification_cq, tag);
     }
   };
   template <class BaseClass>
@@ -895,7 +1255,7 @@ class ParamServerService final {
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithRawMethod_RetrieveAllParams() {
-      ::grpc::Service::MarkMethodRaw(6);
+      ::grpc::Service::MarkMethodRaw(9);
     }
     ~WithRawMethod_RetrieveAllParams() override {
       BaseClassMustBeDerivedFromService(this);
@@ -906,7 +1266,7 @@ class ParamServerService final {
       return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
     }
     void RequestRetrieveAllParams(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncUnary(6, context, request, response, new_call_cq, notification_cq, tag);
+      ::grpc::Service::RequestAsyncUnary(9, context, request, response, new_call_cq, notification_cq, tag);
     }
   };
   template <class BaseClass>
@@ -954,12 +1314,34 @@ class ParamServerService final {
       ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
   };
   template <class BaseClass>
+  class WithRawCallbackMethod_ChangeParamInt : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithRawCallbackMethod_ChangeParamInt() {
+      ::grpc::Service::MarkMethodRawCallback(2,
+          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
+            [this](
+                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ChangeParamInt(context, request, response); }));
+    }
+    ~WithRawCallbackMethod_ChangeParamInt() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeParamInt(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamIntRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamIntResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    virtual ::grpc::ServerUnaryReactor* ChangeParamInt(
+      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
+  };
+  template <class BaseClass>
   class WithRawCallbackMethod_RetrieveParamFloat : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithRawCallbackMethod_RetrieveParamFloat() {
-      ::grpc::Service::MarkMethodRawCallback(2,
+      ::grpc::Service::MarkMethodRawCallback(3,
           new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
             [this](
                    ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->RetrieveParamFloat(context, request, response); }));
@@ -981,7 +1363,7 @@ class ParamServerService final {
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithRawCallbackMethod_ProvideParamFloat() {
-      ::grpc::Service::MarkMethodRawCallback(3,
+      ::grpc::Service::MarkMethodRawCallback(4,
           new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
             [this](
                    ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ProvideParamFloat(context, request, response); }));
@@ -998,12 +1380,34 @@ class ParamServerService final {
       ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
   };
   template <class BaseClass>
+  class WithRawCallbackMethod_ChangeParamFloat : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithRawCallbackMethod_ChangeParamFloat() {
+      ::grpc::Service::MarkMethodRawCallback(5,
+          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
+            [this](
+                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ChangeParamFloat(context, request, response); }));
+    }
+    ~WithRawCallbackMethod_ChangeParamFloat() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeParamFloat(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    virtual ::grpc::ServerUnaryReactor* ChangeParamFloat(
+      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
+  };
+  template <class BaseClass>
   class WithRawCallbackMethod_RetrieveParamCustom : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithRawCallbackMethod_RetrieveParamCustom() {
-      ::grpc::Service::MarkMethodRawCallback(4,
+      ::grpc::Service::MarkMethodRawCallback(6,
           new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
             [this](
                    ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->RetrieveParamCustom(context, request, response); }));
@@ -1025,7 +1429,7 @@ class ParamServerService final {
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithRawCallbackMethod_ProvideParamCustom() {
-      ::grpc::Service::MarkMethodRawCallback(5,
+      ::grpc::Service::MarkMethodRawCallback(7,
           new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
             [this](
                    ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ProvideParamCustom(context, request, response); }));
@@ -1042,12 +1446,34 @@ class ParamServerService final {
       ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
   };
   template <class BaseClass>
+  class WithRawCallbackMethod_ChangeParamCustom : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithRawCallbackMethod_ChangeParamCustom() {
+      ::grpc::Service::MarkMethodRawCallback(8,
+          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
+            [this](
+                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ChangeParamCustom(context, request, response); }));
+    }
+    ~WithRawCallbackMethod_ChangeParamCustom() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status ChangeParamCustom(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    virtual ::grpc::ServerUnaryReactor* ChangeParamCustom(
+      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
+  };
+  template <class BaseClass>
   class WithRawCallbackMethod_RetrieveAllParams : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithRawCallbackMethod_RetrieveAllParams() {
-      ::grpc::Service::MarkMethodRawCallback(6,
+      ::grpc::Service::MarkMethodRawCallback(9,
           new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
             [this](
                    ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->RetrieveAllParams(context, request, response); }));
@@ -1118,12 +1544,39 @@ class ParamServerService final {
     virtual ::grpc::Status StreamedProvideParamInt(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::mavsdk::rpc::param_server::ProvideParamIntRequest,::mavsdk::rpc::param_server::ProvideParamIntResponse>* server_unary_streamer) = 0;
   };
   template <class BaseClass>
+  class WithStreamedUnaryMethod_ChangeParamInt : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithStreamedUnaryMethod_ChangeParamInt() {
+      ::grpc::Service::MarkMethodStreamed(2,
+        new ::grpc::internal::StreamedUnaryHandler<
+          ::mavsdk::rpc::param_server::ChangeParamIntRequest, ::mavsdk::rpc::param_server::ChangeParamIntResponse>(
+            [this](::grpc::ServerContext* context,
+                   ::grpc::ServerUnaryStreamer<
+                     ::mavsdk::rpc::param_server::ChangeParamIntRequest, ::mavsdk::rpc::param_server::ChangeParamIntResponse>* streamer) {
+                       return this->StreamedChangeParamInt(context,
+                         streamer);
+                  }));
+    }
+    ~WithStreamedUnaryMethod_ChangeParamInt() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status ChangeParamInt(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamIntRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamIntResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with streamed unary
+    virtual ::grpc::Status StreamedChangeParamInt(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::mavsdk::rpc::param_server::ChangeParamIntRequest,::mavsdk::rpc::param_server::ChangeParamIntResponse>* server_unary_streamer) = 0;
+  };
+  template <class BaseClass>
   class WithStreamedUnaryMethod_RetrieveParamFloat : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithStreamedUnaryMethod_RetrieveParamFloat() {
-      ::grpc::Service::MarkMethodStreamed(2,
+      ::grpc::Service::MarkMethodStreamed(3,
         new ::grpc::internal::StreamedUnaryHandler<
           ::mavsdk::rpc::param_server::RetrieveParamFloatRequest, ::mavsdk::rpc::param_server::RetrieveParamFloatResponse>(
             [this](::grpc::ServerContext* context,
@@ -1150,7 +1603,7 @@ class ParamServerService final {
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithStreamedUnaryMethod_ProvideParamFloat() {
-      ::grpc::Service::MarkMethodStreamed(3,
+      ::grpc::Service::MarkMethodStreamed(4,
         new ::grpc::internal::StreamedUnaryHandler<
           ::mavsdk::rpc::param_server::ProvideParamFloatRequest, ::mavsdk::rpc::param_server::ProvideParamFloatResponse>(
             [this](::grpc::ServerContext* context,
@@ -1172,12 +1625,39 @@ class ParamServerService final {
     virtual ::grpc::Status StreamedProvideParamFloat(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::mavsdk::rpc::param_server::ProvideParamFloatRequest,::mavsdk::rpc::param_server::ProvideParamFloatResponse>* server_unary_streamer) = 0;
   };
   template <class BaseClass>
+  class WithStreamedUnaryMethod_ChangeParamFloat : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithStreamedUnaryMethod_ChangeParamFloat() {
+      ::grpc::Service::MarkMethodStreamed(5,
+        new ::grpc::internal::StreamedUnaryHandler<
+          ::mavsdk::rpc::param_server::ChangeParamFloatRequest, ::mavsdk::rpc::param_server::ChangeParamFloatResponse>(
+            [this](::grpc::ServerContext* context,
+                   ::grpc::ServerUnaryStreamer<
+                     ::mavsdk::rpc::param_server::ChangeParamFloatRequest, ::mavsdk::rpc::param_server::ChangeParamFloatResponse>* streamer) {
+                       return this->StreamedChangeParamFloat(context,
+                         streamer);
+                  }));
+    }
+    ~WithStreamedUnaryMethod_ChangeParamFloat() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status ChangeParamFloat(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamFloatRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamFloatResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with streamed unary
+    virtual ::grpc::Status StreamedChangeParamFloat(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::mavsdk::rpc::param_server::ChangeParamFloatRequest,::mavsdk::rpc::param_server::ChangeParamFloatResponse>* server_unary_streamer) = 0;
+  };
+  template <class BaseClass>
   class WithStreamedUnaryMethod_RetrieveParamCustom : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithStreamedUnaryMethod_RetrieveParamCustom() {
-      ::grpc::Service::MarkMethodStreamed(4,
+      ::grpc::Service::MarkMethodStreamed(6,
         new ::grpc::internal::StreamedUnaryHandler<
           ::mavsdk::rpc::param_server::RetrieveParamCustomRequest, ::mavsdk::rpc::param_server::RetrieveParamCustomResponse>(
             [this](::grpc::ServerContext* context,
@@ -1204,7 +1684,7 @@ class ParamServerService final {
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithStreamedUnaryMethod_ProvideParamCustom() {
-      ::grpc::Service::MarkMethodStreamed(5,
+      ::grpc::Service::MarkMethodStreamed(7,
         new ::grpc::internal::StreamedUnaryHandler<
           ::mavsdk::rpc::param_server::ProvideParamCustomRequest, ::mavsdk::rpc::param_server::ProvideParamCustomResponse>(
             [this](::grpc::ServerContext* context,
@@ -1226,12 +1706,39 @@ class ParamServerService final {
     virtual ::grpc::Status StreamedProvideParamCustom(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::mavsdk::rpc::param_server::ProvideParamCustomRequest,::mavsdk::rpc::param_server::ProvideParamCustomResponse>* server_unary_streamer) = 0;
   };
   template <class BaseClass>
+  class WithStreamedUnaryMethod_ChangeParamCustom : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithStreamedUnaryMethod_ChangeParamCustom() {
+      ::grpc::Service::MarkMethodStreamed(8,
+        new ::grpc::internal::StreamedUnaryHandler<
+          ::mavsdk::rpc::param_server::ChangeParamCustomRequest, ::mavsdk::rpc::param_server::ChangeParamCustomResponse>(
+            [this](::grpc::ServerContext* context,
+                   ::grpc::ServerUnaryStreamer<
+                     ::mavsdk::rpc::param_server::ChangeParamCustomRequest, ::mavsdk::rpc::param_server::ChangeParamCustomResponse>* streamer) {
+                       return this->StreamedChangeParamCustom(context,
+                         streamer);
+                  }));
+    }
+    ~WithStreamedUnaryMethod_ChangeParamCustom() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status ChangeParamCustom(::grpc::ServerContext* /*context*/, const ::mavsdk::rpc::param_server::ChangeParamCustomRequest* /*request*/, ::mavsdk::rpc::param_server::ChangeParamCustomResponse* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with streamed unary
+    virtual ::grpc::Status StreamedChangeParamCustom(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::mavsdk::rpc::param_server::ChangeParamCustomRequest,::mavsdk::rpc::param_server::ChangeParamCustomResponse>* server_unary_streamer) = 0;
+  };
+  template <class BaseClass>
   class WithStreamedUnaryMethod_RetrieveAllParams : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
     WithStreamedUnaryMethod_RetrieveAllParams() {
-      ::grpc::Service::MarkMethodStreamed(6,
+      ::grpc::Service::MarkMethodStreamed(9,
         new ::grpc::internal::StreamedUnaryHandler<
           ::mavsdk::rpc::param_server::RetrieveAllParamsRequest, ::mavsdk::rpc::param_server::RetrieveAllParamsResponse>(
             [this](::grpc::ServerContext* context,
@@ -1252,9 +1759,9 @@ class ParamServerService final {
     // replace default version of method with streamed unary
     virtual ::grpc::Status StreamedRetrieveAllParams(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::mavsdk::rpc::param_server::RetrieveAllParamsRequest,::mavsdk::rpc::param_server::RetrieveAllParamsResponse>* server_unary_streamer) = 0;
   };
-  typedef WithStreamedUnaryMethod_RetrieveParamInt<WithStreamedUnaryMethod_ProvideParamInt<WithStreamedUnaryMethod_RetrieveParamFloat<WithStreamedUnaryMethod_ProvideParamFloat<WithStreamedUnaryMethod_RetrieveParamCustom<WithStreamedUnaryMethod_ProvideParamCustom<WithStreamedUnaryMethod_RetrieveAllParams<Service > > > > > > > StreamedUnaryService;
+  typedef WithStreamedUnaryMethod_RetrieveParamInt<WithStreamedUnaryMethod_ProvideParamInt<WithStreamedUnaryMethod_ChangeParamInt<WithStreamedUnaryMethod_RetrieveParamFloat<WithStreamedUnaryMethod_ProvideParamFloat<WithStreamedUnaryMethod_ChangeParamFloat<WithStreamedUnaryMethod_RetrieveParamCustom<WithStreamedUnaryMethod_ProvideParamCustom<WithStreamedUnaryMethod_ChangeParamCustom<WithStreamedUnaryMethod_RetrieveAllParams<Service > > > > > > > > > > StreamedUnaryService;
   typedef Service SplitStreamedService;
-  typedef WithStreamedUnaryMethod_RetrieveParamInt<WithStreamedUnaryMethod_ProvideParamInt<WithStreamedUnaryMethod_RetrieveParamFloat<WithStreamedUnaryMethod_ProvideParamFloat<WithStreamedUnaryMethod_RetrieveParamCustom<WithStreamedUnaryMethod_ProvideParamCustom<WithStreamedUnaryMethod_RetrieveAllParams<Service > > > > > > > StreamedService;
+  typedef WithStreamedUnaryMethod_RetrieveParamInt<WithStreamedUnaryMethod_ProvideParamInt<WithStreamedUnaryMethod_ChangeParamInt<WithStreamedUnaryMethod_RetrieveParamFloat<WithStreamedUnaryMethod_ProvideParamFloat<WithStreamedUnaryMethod_ChangeParamFloat<WithStreamedUnaryMethod_RetrieveParamCustom<WithStreamedUnaryMethod_ProvideParamCustom<WithStreamedUnaryMethod_ChangeParamCustom<WithStreamedUnaryMethod_RetrieveAllParams<Service > > > > > > > > > > StreamedService;
 };
 
 }  // namespace param_server
diff --git a/src/mavsdk_server/src/generated/param_server/param_server.pb.cc b/src/mavsdk_server/src/generated/param_server/param_server.pb.cc
index 75ae773861..e4dc2459f9 100644
--- a/src/mavsdk_server/src/generated/param_server/param_server.pb.cc
+++ b/src/mavsdk_server/src/generated/param_server/param_server.pb.cc
@@ -94,6 +94,42 @@ struct ProvideParamIntResponseDefaultTypeInternal {
 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
     PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ProvideParamIntResponseDefaultTypeInternal _ProvideParamIntResponse_default_instance_;
 template <typename>
+PROTOBUF_CONSTEXPR ChangeParamIntRequest::ChangeParamIntRequest(
+    ::_pbi::ConstantInitialized): _impl_{
+    /*decltype(_impl_.name_)*/ {
+    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
+  }
+
+  , /*decltype(_impl_.value_)*/ 0
+
+  , /*decltype(_impl_._cached_size_)*/{}} {}
+struct ChangeParamIntRequestDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR ChangeParamIntRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
+  ~ChangeParamIntRequestDefaultTypeInternal() {}
+  union {
+    ChangeParamIntRequest _instance;
+  };
+};
+
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
+    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ChangeParamIntRequestDefaultTypeInternal _ChangeParamIntRequest_default_instance_;
+template <typename>
+PROTOBUF_CONSTEXPR ChangeParamIntResponse::ChangeParamIntResponse(
+    ::_pbi::ConstantInitialized): _impl_{
+    /*decltype(_impl_._has_bits_)*/{}
+  , /*decltype(_impl_._cached_size_)*/{}
+  , /*decltype(_impl_.param_server_result_)*/nullptr} {}
+struct ChangeParamIntResponseDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR ChangeParamIntResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
+  ~ChangeParamIntResponseDefaultTypeInternal() {}
+  union {
+    ChangeParamIntResponse _instance;
+  };
+};
+
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
+    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ChangeParamIntResponseDefaultTypeInternal _ChangeParamIntResponse_default_instance_;
+template <typename>
 PROTOBUF_CONSTEXPR RetrieveParamFloatRequest::RetrieveParamFloatRequest(
     ::_pbi::ConstantInitialized): _impl_{
     /*decltype(_impl_.name_)*/ {
@@ -166,6 +202,42 @@ struct ProvideParamFloatResponseDefaultTypeInternal {
 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
     PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ProvideParamFloatResponseDefaultTypeInternal _ProvideParamFloatResponse_default_instance_;
 template <typename>
+PROTOBUF_CONSTEXPR ChangeParamFloatRequest::ChangeParamFloatRequest(
+    ::_pbi::ConstantInitialized): _impl_{
+    /*decltype(_impl_.name_)*/ {
+    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
+  }
+
+  , /*decltype(_impl_.value_)*/ 0
+
+  , /*decltype(_impl_._cached_size_)*/{}} {}
+struct ChangeParamFloatRequestDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR ChangeParamFloatRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
+  ~ChangeParamFloatRequestDefaultTypeInternal() {}
+  union {
+    ChangeParamFloatRequest _instance;
+  };
+};
+
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
+    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ChangeParamFloatRequestDefaultTypeInternal _ChangeParamFloatRequest_default_instance_;
+template <typename>
+PROTOBUF_CONSTEXPR ChangeParamFloatResponse::ChangeParamFloatResponse(
+    ::_pbi::ConstantInitialized): _impl_{
+    /*decltype(_impl_._has_bits_)*/{}
+  , /*decltype(_impl_._cached_size_)*/{}
+  , /*decltype(_impl_.param_server_result_)*/nullptr} {}
+struct ChangeParamFloatResponseDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR ChangeParamFloatResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
+  ~ChangeParamFloatResponseDefaultTypeInternal() {}
+  union {
+    ChangeParamFloatResponse _instance;
+  };
+};
+
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
+    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ChangeParamFloatResponseDefaultTypeInternal _ChangeParamFloatResponse_default_instance_;
+template <typename>
 PROTOBUF_CONSTEXPR RetrieveParamCustomRequest::RetrieveParamCustomRequest(
     ::_pbi::ConstantInitialized): _impl_{
     /*decltype(_impl_.name_)*/ {
@@ -242,6 +314,44 @@ struct ProvideParamCustomResponseDefaultTypeInternal {
 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
     PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ProvideParamCustomResponseDefaultTypeInternal _ProvideParamCustomResponse_default_instance_;
 template <typename>
+PROTOBUF_CONSTEXPR ChangeParamCustomRequest::ChangeParamCustomRequest(
+    ::_pbi::ConstantInitialized): _impl_{
+    /*decltype(_impl_.name_)*/ {
+    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
+  }
+
+  , /*decltype(_impl_.value_)*/ {
+    &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized {}
+  }
+
+  , /*decltype(_impl_._cached_size_)*/{}} {}
+struct ChangeParamCustomRequestDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR ChangeParamCustomRequestDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
+  ~ChangeParamCustomRequestDefaultTypeInternal() {}
+  union {
+    ChangeParamCustomRequest _instance;
+  };
+};
+
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
+    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ChangeParamCustomRequestDefaultTypeInternal _ChangeParamCustomRequest_default_instance_;
+template <typename>
+PROTOBUF_CONSTEXPR ChangeParamCustomResponse::ChangeParamCustomResponse(
+    ::_pbi::ConstantInitialized): _impl_{
+    /*decltype(_impl_._has_bits_)*/{}
+  , /*decltype(_impl_._cached_size_)*/{}
+  , /*decltype(_impl_.param_server_result_)*/nullptr} {}
+struct ChangeParamCustomResponseDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR ChangeParamCustomResponseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
+  ~ChangeParamCustomResponseDefaultTypeInternal() {}
+  union {
+    ChangeParamCustomResponse _instance;
+  };
+};
+
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
+    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ChangeParamCustomResponseDefaultTypeInternal _ChangeParamCustomResponse_default_instance_;
+template <typename>
 PROTOBUF_CONSTEXPR RetrieveAllParamsRequest::RetrieveAllParamsRequest(
     ::_pbi::ConstantInitialized) {}
 struct RetrieveAllParamsRequestDefaultTypeInternal {
@@ -372,7 +482,7 @@ PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
 }  // namespace param_server
 }  // namespace rpc
 }  // namespace mavsdk
-static ::_pb::Metadata file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[19];
+static ::_pb::Metadata file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[25];
 static const ::_pb::EnumDescriptor* file_level_enum_descriptors_param_5fserver_2fparam_5fserver_2eproto[1];
 static constexpr const ::_pb::ServiceDescriptor**
     file_level_service_descriptors_param_5fserver_2fparam_5fserver_2eproto = nullptr;
@@ -420,6 +530,26 @@ const ::uint32_t TableStruct_param_5fserver_2fparam_5fserver_2eproto::offsets[]
     PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ProvideParamIntResponse, _impl_.param_server_result_),
     0,
     ~0u,  // no _has_bits_
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamIntRequest, _internal_metadata_),
+    ~0u,  // no _extensions_
+    ~0u,  // no _oneof_case_
+    ~0u,  // no _weak_field_map_
+    ~0u,  // no _inlined_string_donated_
+    ~0u,  // no _split_
+    ~0u,  // no sizeof(Split)
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamIntRequest, _impl_.name_),
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamIntRequest, _impl_.value_),
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamIntResponse, _impl_._has_bits_),
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamIntResponse, _internal_metadata_),
+    ~0u,  // no _extensions_
+    ~0u,  // no _oneof_case_
+    ~0u,  // no _weak_field_map_
+    ~0u,  // no _inlined_string_donated_
+    ~0u,  // no _split_
+    ~0u,  // no sizeof(Split)
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamIntResponse, _impl_.param_server_result_),
+    0,
+    ~0u,  // no _has_bits_
     PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::RetrieveParamFloatRequest, _internal_metadata_),
     ~0u,  // no _extensions_
     ~0u,  // no _oneof_case_
@@ -461,6 +591,26 @@ const ::uint32_t TableStruct_param_5fserver_2fparam_5fserver_2eproto::offsets[]
     PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ProvideParamFloatResponse, _impl_.param_server_result_),
     0,
     ~0u,  // no _has_bits_
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamFloatRequest, _internal_metadata_),
+    ~0u,  // no _extensions_
+    ~0u,  // no _oneof_case_
+    ~0u,  // no _weak_field_map_
+    ~0u,  // no _inlined_string_donated_
+    ~0u,  // no _split_
+    ~0u,  // no sizeof(Split)
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamFloatRequest, _impl_.name_),
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamFloatRequest, _impl_.value_),
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamFloatResponse, _impl_._has_bits_),
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamFloatResponse, _internal_metadata_),
+    ~0u,  // no _extensions_
+    ~0u,  // no _oneof_case_
+    ~0u,  // no _weak_field_map_
+    ~0u,  // no _inlined_string_donated_
+    ~0u,  // no _split_
+    ~0u,  // no sizeof(Split)
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamFloatResponse, _impl_.param_server_result_),
+    0,
+    ~0u,  // no _has_bits_
     PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::RetrieveParamCustomRequest, _internal_metadata_),
     ~0u,  // no _extensions_
     ~0u,  // no _oneof_case_
@@ -502,6 +652,26 @@ const ::uint32_t TableStruct_param_5fserver_2fparam_5fserver_2eproto::offsets[]
     PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ProvideParamCustomResponse, _impl_.param_server_result_),
     0,
     ~0u,  // no _has_bits_
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamCustomRequest, _internal_metadata_),
+    ~0u,  // no _extensions_
+    ~0u,  // no _oneof_case_
+    ~0u,  // no _weak_field_map_
+    ~0u,  // no _inlined_string_donated_
+    ~0u,  // no _split_
+    ~0u,  // no sizeof(Split)
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamCustomRequest, _impl_.name_),
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamCustomRequest, _impl_.value_),
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamCustomResponse, _impl_._has_bits_),
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamCustomResponse, _internal_metadata_),
+    ~0u,  // no _extensions_
+    ~0u,  // no _oneof_case_
+    ~0u,  // no _weak_field_map_
+    ~0u,  // no _inlined_string_donated_
+    ~0u,  // no _split_
+    ~0u,  // no sizeof(Split)
+    PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::ChangeParamCustomResponse, _impl_.param_server_result_),
+    0,
+    ~0u,  // no _has_bits_
     PROTOBUF_FIELD_OFFSET(::mavsdk::rpc::param_server::RetrieveAllParamsRequest, _internal_metadata_),
     ~0u,  // no _extensions_
     ~0u,  // no _oneof_case_
@@ -578,21 +748,27 @@ static const ::_pbi::MigrationSchema
         { 9, 19, -1, sizeof(::mavsdk::rpc::param_server::RetrieveParamIntResponse)},
         { 21, -1, -1, sizeof(::mavsdk::rpc::param_server::ProvideParamIntRequest)},
         { 31, 40, -1, sizeof(::mavsdk::rpc::param_server::ProvideParamIntResponse)},
-        { 41, -1, -1, sizeof(::mavsdk::rpc::param_server::RetrieveParamFloatRequest)},
-        { 50, 60, -1, sizeof(::mavsdk::rpc::param_server::RetrieveParamFloatResponse)},
-        { 62, -1, -1, sizeof(::mavsdk::rpc::param_server::ProvideParamFloatRequest)},
-        { 72, 81, -1, sizeof(::mavsdk::rpc::param_server::ProvideParamFloatResponse)},
-        { 82, -1, -1, sizeof(::mavsdk::rpc::param_server::RetrieveParamCustomRequest)},
-        { 91, 101, -1, sizeof(::mavsdk::rpc::param_server::RetrieveParamCustomResponse)},
-        { 103, -1, -1, sizeof(::mavsdk::rpc::param_server::ProvideParamCustomRequest)},
-        { 113, 122, -1, sizeof(::mavsdk::rpc::param_server::ProvideParamCustomResponse)},
-        { 123, -1, -1, sizeof(::mavsdk::rpc::param_server::RetrieveAllParamsRequest)},
-        { 131, 140, -1, sizeof(::mavsdk::rpc::param_server::RetrieveAllParamsResponse)},
-        { 141, -1, -1, sizeof(::mavsdk::rpc::param_server::IntParam)},
-        { 151, -1, -1, sizeof(::mavsdk::rpc::param_server::FloatParam)},
-        { 161, -1, -1, sizeof(::mavsdk::rpc::param_server::CustomParam)},
-        { 171, -1, -1, sizeof(::mavsdk::rpc::param_server::AllParams)},
-        { 182, -1, -1, sizeof(::mavsdk::rpc::param_server::ParamServerResult)},
+        { 41, -1, -1, sizeof(::mavsdk::rpc::param_server::ChangeParamIntRequest)},
+        { 51, 60, -1, sizeof(::mavsdk::rpc::param_server::ChangeParamIntResponse)},
+        { 61, -1, -1, sizeof(::mavsdk::rpc::param_server::RetrieveParamFloatRequest)},
+        { 70, 80, -1, sizeof(::mavsdk::rpc::param_server::RetrieveParamFloatResponse)},
+        { 82, -1, -1, sizeof(::mavsdk::rpc::param_server::ProvideParamFloatRequest)},
+        { 92, 101, -1, sizeof(::mavsdk::rpc::param_server::ProvideParamFloatResponse)},
+        { 102, -1, -1, sizeof(::mavsdk::rpc::param_server::ChangeParamFloatRequest)},
+        { 112, 121, -1, sizeof(::mavsdk::rpc::param_server::ChangeParamFloatResponse)},
+        { 122, -1, -1, sizeof(::mavsdk::rpc::param_server::RetrieveParamCustomRequest)},
+        { 131, 141, -1, sizeof(::mavsdk::rpc::param_server::RetrieveParamCustomResponse)},
+        { 143, -1, -1, sizeof(::mavsdk::rpc::param_server::ProvideParamCustomRequest)},
+        { 153, 162, -1, sizeof(::mavsdk::rpc::param_server::ProvideParamCustomResponse)},
+        { 163, -1, -1, sizeof(::mavsdk::rpc::param_server::ChangeParamCustomRequest)},
+        { 173, 182, -1, sizeof(::mavsdk::rpc::param_server::ChangeParamCustomResponse)},
+        { 183, -1, -1, sizeof(::mavsdk::rpc::param_server::RetrieveAllParamsRequest)},
+        { 191, 200, -1, sizeof(::mavsdk::rpc::param_server::RetrieveAllParamsResponse)},
+        { 201, -1, -1, sizeof(::mavsdk::rpc::param_server::IntParam)},
+        { 211, -1, -1, sizeof(::mavsdk::rpc::param_server::FloatParam)},
+        { 221, -1, -1, sizeof(::mavsdk::rpc::param_server::CustomParam)},
+        { 231, -1, -1, sizeof(::mavsdk::rpc::param_server::AllParams)},
+        { 242, -1, -1, sizeof(::mavsdk::rpc::param_server::ParamServerResult)},
 };
 
 static const ::_pb::Message* const file_default_instances[] = {
@@ -600,14 +776,20 @@ static const ::_pb::Message* const file_default_instances[] = {
     &::mavsdk::rpc::param_server::_RetrieveParamIntResponse_default_instance_._instance,
     &::mavsdk::rpc::param_server::_ProvideParamIntRequest_default_instance_._instance,
     &::mavsdk::rpc::param_server::_ProvideParamIntResponse_default_instance_._instance,
+    &::mavsdk::rpc::param_server::_ChangeParamIntRequest_default_instance_._instance,
+    &::mavsdk::rpc::param_server::_ChangeParamIntResponse_default_instance_._instance,
     &::mavsdk::rpc::param_server::_RetrieveParamFloatRequest_default_instance_._instance,
     &::mavsdk::rpc::param_server::_RetrieveParamFloatResponse_default_instance_._instance,
     &::mavsdk::rpc::param_server::_ProvideParamFloatRequest_default_instance_._instance,
     &::mavsdk::rpc::param_server::_ProvideParamFloatResponse_default_instance_._instance,
+    &::mavsdk::rpc::param_server::_ChangeParamFloatRequest_default_instance_._instance,
+    &::mavsdk::rpc::param_server::_ChangeParamFloatResponse_default_instance_._instance,
     &::mavsdk::rpc::param_server::_RetrieveParamCustomRequest_default_instance_._instance,
     &::mavsdk::rpc::param_server::_RetrieveParamCustomResponse_default_instance_._instance,
     &::mavsdk::rpc::param_server::_ProvideParamCustomRequest_default_instance_._instance,
     &::mavsdk::rpc::param_server::_ProvideParamCustomResponse_default_instance_._instance,
+    &::mavsdk::rpc::param_server::_ChangeParamCustomRequest_default_instance_._instance,
+    &::mavsdk::rpc::param_server::_ChangeParamCustomResponse_default_instance_._instance,
     &::mavsdk::rpc::param_server::_RetrieveAllParamsRequest_default_instance_._instance,
     &::mavsdk::rpc::param_server::_RetrieveAllParamsResponse_default_instance_._instance,
     &::mavsdk::rpc::param_server::_IntParam_default_instance_._instance,
@@ -626,66 +808,87 @@ const char descriptor_table_protodef_param_5fserver_2fparam_5fserver_2eproto[] P
     "\026ProvideParamIntRequest\022\014\n\004name\030\001 \001(\t\022\r\n"
     "\005value\030\002 \001(\005\"b\n\027ProvideParamIntResponse\022"
     "G\n\023param_server_result\030\001 \001(\0132*.mavsdk.rp"
-    "c.param_server.ParamServerResult\")\n\031Retr"
-    "ieveParamFloatRequest\022\014\n\004name\030\001 \001(\t\"t\n\032R"
-    "etrieveParamFloatResponse\022G\n\023param_serve"
-    "r_result\030\001 \001(\0132*.mavsdk.rpc.param_server"
-    ".ParamServerResult\022\r\n\005value\030\002 \001(\002\"7\n\030Pro"
-    "videParamFloatRequest\022\014\n\004name\030\001 \001(\t\022\r\n\005v"
-    "alue\030\002 \001(\002\"d\n\031ProvideParamFloatResponse\022"
-    "G\n\023param_server_result\030\001 \001(\0132*.mavsdk.rp"
-    "c.param_server.ParamServerResult\"*\n\032Retr"
-    "ieveParamCustomRequest\022\014\n\004name\030\001 \001(\t\"u\n\033"
-    "RetrieveParamCustomResponse\022G\n\023param_ser"
-    "ver_result\030\001 \001(\0132*.mavsdk.rpc.param_serv"
-    "er.ParamServerResult\022\r\n\005value\030\002 \001(\t\"8\n\031P"
-    "rovideParamCustomRequest\022\014\n\004name\030\001 \001(\t\022\r"
-    "\n\005value\030\002 \001(\t\"e\n\032ProvideParamCustomRespo"
-    "nse\022G\n\023param_server_result\030\001 \001(\0132*.mavsd"
-    "k.rpc.param_server.ParamServerResult\"\032\n\030"
-    "RetrieveAllParamsRequest\"O\n\031RetrieveAllP"
-    "aramsResponse\0222\n\006params\030\001 \001(\0132\".mavsdk.r"
-    "pc.param_server.AllParams\"\'\n\010IntParam\022\014\n"
-    "\004name\030\001 \001(\t\022\r\n\005value\030\002 \001(\005\")\n\nFloatParam"
-    "\022\014\n\004name\030\001 \001(\t\022\r\n\005value\030\002 \001(\002\"*\n\013CustomP"
-    "aram\022\014\n\004name\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"\272\001\n\tAl"
-    "lParams\0225\n\nint_params\030\001 \003(\0132!.mavsdk.rpc"
-    ".param_server.IntParam\0229\n\014float_params\030\002"
-    " \003(\0132#.mavsdk.rpc.param_server.FloatPara"
-    "m\022;\n\rcustom_params\030\003 \003(\0132$.mavsdk.rpc.pa"
-    "ram_server.CustomParam\"\241\002\n\021ParamServerRe"
-    "sult\022A\n\006result\030\001 \001(\01621.mavsdk.rpc.param_"
-    "server.ParamServerResult.Result\022\022\n\nresul"
-    "t_str\030\002 \001(\t\"\264\001\n\006Result\022\022\n\016RESULT_UNKNOWN"
-    "\020\000\022\022\n\016RESULT_SUCCESS\020\001\022\024\n\020RESULT_NOT_FOU"
-    "ND\020\002\022\025\n\021RESULT_WRONG_TYPE\020\003\022\036\n\032RESULT_PA"
-    "RAM_NAME_TOO_LONG\020\004\022\024\n\020RESULT_NO_SYSTEM\020"
-    "\005\022\037\n\033RESULT_PARAM_VALUE_TOO_LONG\020\0062\252\007\n\022P"
-    "aramServerService\022}\n\020RetrieveParamInt\0220."
-    "mavsdk.rpc.param_server.RetrieveParamInt"
-    "Request\0321.mavsdk.rpc.param_server.Retrie"
-    "veParamIntResponse\"\004\200\265\030\001\022z\n\017ProvideParam"
-    "Int\022/.mavsdk.rpc.param_server.ProvidePar"
-    "amIntRequest\0320.mavsdk.rpc.param_server.P"
-    "rovideParamIntResponse\"\004\200\265\030\001\022\203\001\n\022Retriev"
-    "eParamFloat\0222.mavsdk.rpc.param_server.Re"
-    "trieveParamFloatRequest\0323.mavsdk.rpc.par"
-    "am_server.RetrieveParamFloatResponse\"\004\200\265"
-    "\030\001\022\200\001\n\021ProvideParamFloat\0221.mavsdk.rpc.pa"
-    "ram_server.ProvideParamFloatRequest\0322.ma"
-    "vsdk.rpc.param_server.ProvideParamFloatR"
-    "esponse\"\004\200\265\030\001\022\206\001\n\023RetrieveParamCustom\0223."
-    "mavsdk.rpc.param_server.RetrieveParamCus"
-    "tomRequest\0324.mavsdk.rpc.param_server.Ret"
-    "rieveParamCustomResponse\"\004\200\265\030\001\022\203\001\n\022Provi"
-    "deParamCustom\0222.mavsdk.rpc.param_server."
-    "ProvideParamCustomRequest\0323.mavsdk.rpc.p"
-    "aram_server.ProvideParamCustomResponse\"\004"
-    "\200\265\030\001\022\200\001\n\021RetrieveAllParams\0221.mavsdk.rpc."
-    "param_server.RetrieveAllParamsRequest\0322."
-    "mavsdk.rpc.param_server.RetrieveAllParam"
-    "sResponse\"\004\200\265\030\001B*\n\026io.mavsdk.param_serve"
-    "rB\020ParamServerProtob\006proto3"
+    "c.param_server.ParamServerResult\"4\n\025Chan"
+    "geParamIntRequest\022\014\n\004name\030\001 \001(\t\022\r\n\005value"
+    "\030\002 \001(\005\"a\n\026ChangeParamIntResponse\022G\n\023para"
+    "m_server_result\030\001 \001(\0132*.mavsdk.rpc.param"
+    "_server.ParamServerResult\")\n\031RetrievePar"
+    "amFloatRequest\022\014\n\004name\030\001 \001(\t\"t\n\032Retrieve"
+    "ParamFloatResponse\022G\n\023param_server_resul"
+    "t\030\001 \001(\0132*.mavsdk.rpc.param_server.ParamS"
+    "erverResult\022\r\n\005value\030\002 \001(\002\"7\n\030ProvidePar"
+    "amFloatRequest\022\014\n\004name\030\001 \001(\t\022\r\n\005value\030\002 "
+    "\001(\002\"d\n\031ProvideParamFloatResponse\022G\n\023para"
+    "m_server_result\030\001 \001(\0132*.mavsdk.rpc.param"
+    "_server.ParamServerResult\"6\n\027ChangeParam"
+    "FloatRequest\022\014\n\004name\030\001 \001(\t\022\r\n\005value\030\002 \001("
+    "\002\"c\n\030ChangeParamFloatResponse\022G\n\023param_s"
+    "erver_result\030\001 \001(\0132*.mavsdk.rpc.param_se"
+    "rver.ParamServerResult\"*\n\032RetrieveParamC"
+    "ustomRequest\022\014\n\004name\030\001 \001(\t\"u\n\033RetrievePa"
+    "ramCustomResponse\022G\n\023param_server_result"
+    "\030\001 \001(\0132*.mavsdk.rpc.param_server.ParamSe"
+    "rverResult\022\r\n\005value\030\002 \001(\t\"8\n\031ProvidePara"
+    "mCustomRequest\022\014\n\004name\030\001 \001(\t\022\r\n\005value\030\002 "
+    "\001(\t\"e\n\032ProvideParamCustomResponse\022G\n\023par"
+    "am_server_result\030\001 \001(\0132*.mavsdk.rpc.para"
+    "m_server.ParamServerResult\"7\n\030ChangePara"
+    "mCustomRequest\022\014\n\004name\030\001 \001(\t\022\r\n\005value\030\002 "
+    "\001(\t\"d\n\031ChangeParamCustomResponse\022G\n\023para"
+    "m_server_result\030\001 \001(\0132*.mavsdk.rpc.param"
+    "_server.ParamServerResult\"\032\n\030RetrieveAll"
+    "ParamsRequest\"O\n\031RetrieveAllParamsRespon"
+    "se\0222\n\006params\030\001 \001(\0132\".mavsdk.rpc.param_se"
+    "rver.AllParams\"\'\n\010IntParam\022\014\n\004name\030\001 \001(\t"
+    "\022\r\n\005value\030\002 \001(\005\")\n\nFloatParam\022\014\n\004name\030\001 "
+    "\001(\t\022\r\n\005value\030\002 \001(\002\"*\n\013CustomParam\022\014\n\004nam"
+    "e\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"\272\001\n\tAllParams\0225\n\n"
+    "int_params\030\001 \003(\0132!.mavsdk.rpc.param_serv"
+    "er.IntParam\0229\n\014float_params\030\002 \003(\0132#.mavs"
+    "dk.rpc.param_server.FloatParam\022;\n\rcustom"
+    "_params\030\003 \003(\0132$.mavsdk.rpc.param_server."
+    "CustomParam\"\241\002\n\021ParamServerResult\022A\n\006res"
+    "ult\030\001 \001(\01621.mavsdk.rpc.param_server.Para"
+    "mServerResult.Result\022\022\n\nresult_str\030\002 \001(\t"
+    "\"\264\001\n\006Result\022\022\n\016RESULT_UNKNOWN\020\000\022\022\n\016RESUL"
+    "T_SUCCESS\020\001\022\024\n\020RESULT_NOT_FOUND\020\002\022\025\n\021RES"
+    "ULT_WRONG_TYPE\020\003\022\036\n\032RESULT_PARAM_NAME_TO"
+    "O_LONG\020\004\022\024\n\020RESULT_NO_SYSTEM\020\005\022\037\n\033RESULT"
+    "_PARAM_VALUE_TOO_LONG\020\0062\245\n\n\022ParamServerS"
+    "ervice\022}\n\020RetrieveParamInt\0220.mavsdk.rpc."
+    "param_server.RetrieveParamIntRequest\0321.m"
+    "avsdk.rpc.param_server.RetrieveParamIntR"
+    "esponse\"\004\200\265\030\001\022z\n\017ProvideParamInt\022/.mavsd"
+    "k.rpc.param_server.ProvideParamIntReques"
+    "t\0320.mavsdk.rpc.param_server.ProvideParam"
+    "IntResponse\"\004\200\265\030\001\022w\n\016ChangeParamInt\022..ma"
+    "vsdk.rpc.param_server.ChangeParamIntRequ"
+    "est\032/.mavsdk.rpc.param_server.ChangePara"
+    "mIntResponse\"\004\200\265\030\001\022\203\001\n\022RetrieveParamFloa"
+    "t\0222.mavsdk.rpc.param_server.RetrievePara"
+    "mFloatRequest\0323.mavsdk.rpc.param_server."
+    "RetrieveParamFloatResponse\"\004\200\265\030\001\022\200\001\n\021Pro"
+    "videParamFloat\0221.mavsdk.rpc.param_server"
+    ".ProvideParamFloatRequest\0322.mavsdk.rpc.p"
+    "aram_server.ProvideParamFloatResponse\"\004\200"
+    "\265\030\001\022}\n\020ChangeParamFloat\0220.mavsdk.rpc.par"
+    "am_server.ChangeParamFloatRequest\0321.mavs"
+    "dk.rpc.param_server.ChangeParamFloatResp"
+    "onse\"\004\200\265\030\001\022\206\001\n\023RetrieveParamCustom\0223.mav"
+    "sdk.rpc.param_server.RetrieveParamCustom"
+    "Request\0324.mavsdk.rpc.param_server.Retrie"
+    "veParamCustomResponse\"\004\200\265\030\001\022\203\001\n\022ProvideP"
+    "aramCustom\0222.mavsdk.rpc.param_server.Pro"
+    "videParamCustomRequest\0323.mavsdk.rpc.para"
+    "m_server.ProvideParamCustomResponse\"\004\200\265\030"
+    "\001\022\200\001\n\021ChangeParamCustom\0221.mavsdk.rpc.par"
+    "am_server.ChangeParamCustomRequest\0322.mav"
+    "sdk.rpc.param_server.ChangeParamCustomRe"
+    "sponse\"\004\200\265\030\001\022\200\001\n\021RetrieveAllParams\0221.mav"
+    "sdk.rpc.param_server.RetrieveAllParamsRe"
+    "quest\0322.mavsdk.rpc.param_server.Retrieve"
+    "AllParamsResponse\"\004\200\265\030\001B*\n\026io.mavsdk.par"
+    "am_serverB\020ParamServerProtob\006proto3"
 };
 static const ::_pbi::DescriptorTable* const descriptor_table_param_5fserver_2fparam_5fserver_2eproto_deps[1] =
     {
@@ -695,13 +898,13 @@ static ::absl::once_flag descriptor_table_param_5fserver_2fparam_5fserver_2eprot
 const ::_pbi::DescriptorTable descriptor_table_param_5fserver_2fparam_5fserver_2eproto = {
     false,
     false,
-    2747,
+    3595,
     descriptor_table_protodef_param_5fserver_2fparam_5fserver_2eproto,
     "param_server/param_server.proto",
     &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
     descriptor_table_param_5fserver_2fparam_5fserver_2eproto_deps,
     1,
-    19,
+    25,
     schemas,
     file_default_instances,
     TableStruct_param_5fserver_2fparam_5fserver_2eproto::offsets,
@@ -1637,21 +1840,23 @@ ::PROTOBUF_NAMESPACE_ID::Metadata ProvideParamIntResponse::GetMetadata() const {
 }
 // ===================================================================
 
-class RetrieveParamFloatRequest::_Internal {
+class ChangeParamIntRequest::_Internal {
  public:
 };
 
-RetrieveParamFloatRequest::RetrieveParamFloatRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+ChangeParamIntRequest::ChangeParamIntRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
   : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
   SharedCtor(arena);
-  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
+  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.ChangeParamIntRequest)
 }
-RetrieveParamFloatRequest::RetrieveParamFloatRequest(const RetrieveParamFloatRequest& from)
+ChangeParamIntRequest::ChangeParamIntRequest(const ChangeParamIntRequest& from)
   : ::PROTOBUF_NAMESPACE_ID::Message() {
-  RetrieveParamFloatRequest* const _this = this; (void)_this;
+  ChangeParamIntRequest* const _this = this; (void)_this;
   new (&_impl_) Impl_{
       decltype(_impl_.name_) {}
 
+    , decltype(_impl_.value_) {}
+
     , /*decltype(_impl_._cached_size_)*/{}};
 
   _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
@@ -1662,14 +1867,17 @@ RetrieveParamFloatRequest::RetrieveParamFloatRequest(const RetrieveParamFloatReq
   if (!from._internal_name().empty()) {
     _this->_impl_.name_.Set(from._internal_name(), _this->GetArenaForAllocation());
   }
-  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
+  _this->_impl_.value_ = from._impl_.value_;
+  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.ChangeParamIntRequest)
 }
 
-inline void RetrieveParamFloatRequest::SharedCtor(::_pb::Arena* arena) {
+inline void ChangeParamIntRequest::SharedCtor(::_pb::Arena* arena) {
   (void)arena;
   new (&_impl_) Impl_{
       decltype(_impl_.name_) {}
 
+    , decltype(_impl_.value_) { 0 }
+
     , /*decltype(_impl_._cached_size_)*/{}
   };
   _impl_.name_.InitDefault();
@@ -1678,8 +1886,8 @@ inline void RetrieveParamFloatRequest::SharedCtor(::_pb::Arena* arena) {
   #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 }
 
-RetrieveParamFloatRequest::~RetrieveParamFloatRequest() {
-  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
+ChangeParamIntRequest::~ChangeParamIntRequest() {
+  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.ChangeParamIntRequest)
   if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
   (void)arena;
     return;
@@ -1687,26 +1895,27 @@ RetrieveParamFloatRequest::~RetrieveParamFloatRequest() {
   SharedDtor();
 }
 
-inline void RetrieveParamFloatRequest::SharedDtor() {
+inline void ChangeParamIntRequest::SharedDtor() {
   ABSL_DCHECK(GetArenaForAllocation() == nullptr);
   _impl_.name_.Destroy();
 }
 
-void RetrieveParamFloatRequest::SetCachedSize(int size) const {
+void ChangeParamIntRequest::SetCachedSize(int size) const {
   _impl_._cached_size_.Set(size);
 }
 
-void RetrieveParamFloatRequest::Clear() {
-// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
+void ChangeParamIntRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.ChangeParamIntRequest)
   ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
   _impl_.name_.ClearToEmpty();
+  _impl_.value_ = 0;
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
-const char* RetrieveParamFloatRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+const char* ChangeParamIntRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
   while (!ctx->Done(&ptr)) {
     ::uint32_t tag;
@@ -1718,7 +1927,16 @@ const char* RetrieveParamFloatRequest::_InternalParse(const char* ptr, ::_pbi::P
           auto str = _internal_mutable_name();
           ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
           CHK_(ptr);
-          CHK_(::_pbi::VerifyUTF8(str, "mavsdk.rpc.param_server.RetrieveParamFloatRequest.name"));
+          CHK_(::_pbi::VerifyUTF8(str, "mavsdk.rpc.param_server.ChangeParamIntRequest.name"));
+        } else {
+          goto handle_unusual;
+        }
+        continue;
+      // int32 value = 2;
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 16)) {
+          _impl_.value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
+          CHK_(ptr);
         } else {
           goto handle_unusual;
         }
@@ -1746,9 +1964,9 @@ const char* RetrieveParamFloatRequest::_InternalParse(const char* ptr, ::_pbi::P
 #undef CHK_
 }
 
-::uint8_t* RetrieveParamFloatRequest::_InternalSerialize(
+::uint8_t* ChangeParamIntRequest::_InternalSerialize(
     ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
+  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.ChangeParamIntRequest)
   ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
 
@@ -1756,20 +1974,27 @@ ::uint8_t* RetrieveParamFloatRequest::_InternalSerialize(
   if (!this->_internal_name().empty()) {
     const std::string& _s = this->_internal_name();
     ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "mavsdk.rpc.param_server.RetrieveParamFloatRequest.name");
+        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "mavsdk.rpc.param_server.ChangeParamIntRequest.name");
     target = stream->WriteStringMaybeAliased(1, _s, target);
   }
 
+  // int32 value = 2;
+  if (this->_internal_value() != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
+        2, this->_internal_value(), target);
+  }
+
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
     target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
         _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
   }
-  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
+  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.ChangeParamIntRequest)
   return target;
 }
 
-::size_t RetrieveParamFloatRequest::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
+::size_t ChangeParamIntRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.ChangeParamIntRequest)
   ::size_t total_size = 0;
 
   ::uint32_t cached_has_bits = 0;
@@ -1782,20 +2007,26 @@ ::size_t RetrieveParamFloatRequest::ByteSizeLong() const {
                                     this->_internal_name());
   }
 
+  // int32 value = 2;
+  if (this->_internal_value() != 0) {
+    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
+        this->_internal_value());
+  }
+
   return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
 }
 
-const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RetrieveParamFloatRequest::_class_data_ = {
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ChangeParamIntRequest::_class_data_ = {
     ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
-    RetrieveParamFloatRequest::MergeImpl
+    ChangeParamIntRequest::MergeImpl
 };
-const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RetrieveParamFloatRequest::GetClassData() const { return &_class_data_; }
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ChangeParamIntRequest::GetClassData() const { return &_class_data_; }
 
 
-void RetrieveParamFloatRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
-  auto* const _this = static_cast<RetrieveParamFloatRequest*>(&to_msg);
-  auto& from = static_cast<const RetrieveParamFloatRequest&>(from_msg);
-  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
+void ChangeParamIntRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
+  auto* const _this = static_cast<ChangeParamIntRequest*>(&to_msg);
+  auto& from = static_cast<const ChangeParamIntRequest&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.ChangeParamIntRequest)
   ABSL_DCHECK_NE(&from, _this);
   ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
@@ -1803,87 +2034,87 @@ void RetrieveParamFloatRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_m
   if (!from._internal_name().empty()) {
     _this->_internal_set_name(from._internal_name());
   }
+  if (from._internal_value() != 0) {
+    _this->_internal_set_value(from._internal_value());
+  }
   _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
 }
 
-void RetrieveParamFloatRequest::CopyFrom(const RetrieveParamFloatRequest& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
+void ChangeParamIntRequest::CopyFrom(const ChangeParamIntRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.ChangeParamIntRequest)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
-bool RetrieveParamFloatRequest::IsInitialized() const {
+bool ChangeParamIntRequest::IsInitialized() const {
   return true;
 }
 
-void RetrieveParamFloatRequest::InternalSwap(RetrieveParamFloatRequest* other) {
+void ChangeParamIntRequest::InternalSwap(ChangeParamIntRequest* other) {
   using std::swap;
   auto* lhs_arena = GetArenaForAllocation();
   auto* rhs_arena = other->GetArenaForAllocation();
   _internal_metadata_.InternalSwap(&other->_internal_metadata_);
   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, lhs_arena,
                                        &other->_impl_.name_, rhs_arena);
+
+  swap(_impl_.value_, other->_impl_.value_);
 }
 
-::PROTOBUF_NAMESPACE_ID::Metadata RetrieveParamFloatRequest::GetMetadata() const {
+::PROTOBUF_NAMESPACE_ID::Metadata ChangeParamIntRequest::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
       &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
       file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[4]);
 }
 // ===================================================================
 
-class RetrieveParamFloatResponse::_Internal {
+class ChangeParamIntResponse::_Internal {
  public:
-  using HasBits = decltype(std::declval<RetrieveParamFloatResponse>()._impl_._has_bits_);
+  using HasBits = decltype(std::declval<ChangeParamIntResponse>()._impl_._has_bits_);
   static constexpr ::int32_t kHasBitsOffset =
-    8 * PROTOBUF_FIELD_OFFSET(RetrieveParamFloatResponse, _impl_._has_bits_);
-  static const ::mavsdk::rpc::param_server::ParamServerResult& param_server_result(const RetrieveParamFloatResponse* msg);
+    8 * PROTOBUF_FIELD_OFFSET(ChangeParamIntResponse, _impl_._has_bits_);
+  static const ::mavsdk::rpc::param_server::ParamServerResult& param_server_result(const ChangeParamIntResponse* msg);
   static void set_has_param_server_result(HasBits* has_bits) {
     (*has_bits)[0] |= 1u;
   }
 };
 
 const ::mavsdk::rpc::param_server::ParamServerResult&
-RetrieveParamFloatResponse::_Internal::param_server_result(const RetrieveParamFloatResponse* msg) {
+ChangeParamIntResponse::_Internal::param_server_result(const ChangeParamIntResponse* msg) {
   return *msg->_impl_.param_server_result_;
 }
-RetrieveParamFloatResponse::RetrieveParamFloatResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+ChangeParamIntResponse::ChangeParamIntResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
   : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
   SharedCtor(arena);
-  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
+  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.ChangeParamIntResponse)
 }
-RetrieveParamFloatResponse::RetrieveParamFloatResponse(const RetrieveParamFloatResponse& from)
+ChangeParamIntResponse::ChangeParamIntResponse(const ChangeParamIntResponse& from)
   : ::PROTOBUF_NAMESPACE_ID::Message() {
-  RetrieveParamFloatResponse* const _this = this; (void)_this;
+  ChangeParamIntResponse* const _this = this; (void)_this;
   new (&_impl_) Impl_{
       decltype(_impl_._has_bits_){from._impl_._has_bits_}
     , /*decltype(_impl_._cached_size_)*/{}
-    , decltype(_impl_.param_server_result_){nullptr}
-    , decltype(_impl_.value_) {}
-  };
+    , decltype(_impl_.param_server_result_){nullptr}};
 
   _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
     _this->_impl_.param_server_result_ = new ::mavsdk::rpc::param_server::ParamServerResult(*from._impl_.param_server_result_);
   }
-  _this->_impl_.value_ = from._impl_.value_;
-  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
+  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.ChangeParamIntResponse)
 }
 
-inline void RetrieveParamFloatResponse::SharedCtor(::_pb::Arena* arena) {
+inline void ChangeParamIntResponse::SharedCtor(::_pb::Arena* arena) {
   (void)arena;
   new (&_impl_) Impl_{
       decltype(_impl_._has_bits_){}
     , /*decltype(_impl_._cached_size_)*/{}
     , decltype(_impl_.param_server_result_){nullptr}
-    , decltype(_impl_.value_) { 0 }
-
   };
 }
 
-RetrieveParamFloatResponse::~RetrieveParamFloatResponse() {
-  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
+ChangeParamIntResponse::~ChangeParamIntResponse() {
+  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.ChangeParamIntResponse)
   if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
   (void)arena;
     return;
@@ -1891,17 +2122,17 @@ RetrieveParamFloatResponse::~RetrieveParamFloatResponse() {
   SharedDtor();
 }
 
-inline void RetrieveParamFloatResponse::SharedDtor() {
+inline void ChangeParamIntResponse::SharedDtor() {
   ABSL_DCHECK(GetArenaForAllocation() == nullptr);
   if (this != internal_default_instance()) delete _impl_.param_server_result_;
 }
 
-void RetrieveParamFloatResponse::SetCachedSize(int size) const {
+void ChangeParamIntResponse::SetCachedSize(int size) const {
   _impl_._cached_size_.Set(size);
 }
 
-void RetrieveParamFloatResponse::Clear() {
-// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
+void ChangeParamIntResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.ChangeParamIntResponse)
   ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
@@ -1911,12 +2142,11 @@ void RetrieveParamFloatResponse::Clear() {
     ABSL_DCHECK(_impl_.param_server_result_ != nullptr);
     _impl_.param_server_result_->Clear();
   }
-  _impl_.value_ = 0;
   _impl_._has_bits_.Clear();
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
-const char* RetrieveParamFloatResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+const char* ChangeParamIntResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
   _Internal::HasBits has_bits{};
   while (!ctx->Done(&ptr)) {
@@ -1932,15 +2162,6 @@ const char* RetrieveParamFloatResponse::_InternalParse(const char* ptr, ::_pbi::
           goto handle_unusual;
         }
         continue;
-      // float value = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 21)) {
-          _impl_.value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
-          ptr += sizeof(float);
-        } else {
-          goto handle_unusual;
-        }
-        continue;
       default:
         goto handle_unusual;
     }  // switch
@@ -1965,9 +2186,9 @@ const char* RetrieveParamFloatResponse::_InternalParse(const char* ptr, ::_pbi::
 #undef CHK_
 }
 
-::uint8_t* RetrieveParamFloatResponse::_InternalSerialize(
+::uint8_t* ChangeParamIntResponse::_InternalSerialize(
     ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
+  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.ChangeParamIntResponse)
   ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
 
@@ -1979,27 +2200,16 @@ ::uint8_t* RetrieveParamFloatResponse::_InternalSerialize(
         _Internal::param_server_result(this).GetCachedSize(), target, stream);
   }
 
-  // float value = 2;
-  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
-  float tmp_value = this->_internal_value();
-  ::uint32_t raw_value;
-  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
-  if (raw_value != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::_pbi::WireFormatLite::WriteFloatToArray(
-        2, this->_internal_value(), target);
-  }
-
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
     target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
         _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
   }
-  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
+  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.ChangeParamIntResponse)
   return target;
 }
 
-::size_t RetrieveParamFloatResponse::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
+::size_t ChangeParamIntResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.ChangeParamIntResponse)
   ::size_t total_size = 0;
 
   ::uint32_t cached_has_bits = 0;
@@ -2014,29 +2224,20 @@ ::size_t RetrieveParamFloatResponse::ByteSizeLong() const {
         *_impl_.param_server_result_);
   }
 
-  // float value = 2;
-  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
-  float tmp_value = this->_internal_value();
-  ::uint32_t raw_value;
-  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
-  if (raw_value != 0) {
-    total_size += 5;
-  }
-
   return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
 }
 
-const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RetrieveParamFloatResponse::_class_data_ = {
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ChangeParamIntResponse::_class_data_ = {
     ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
-    RetrieveParamFloatResponse::MergeImpl
+    ChangeParamIntResponse::MergeImpl
 };
-const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RetrieveParamFloatResponse::GetClassData() const { return &_class_data_; }
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ChangeParamIntResponse::GetClassData() const { return &_class_data_; }
 
 
-void RetrieveParamFloatResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
-  auto* const _this = static_cast<RetrieveParamFloatResponse*>(&to_msg);
-  auto& from = static_cast<const RetrieveParamFloatResponse&>(from_msg);
-  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
+void ChangeParamIntResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
+  auto* const _this = static_cast<ChangeParamIntResponse*>(&to_msg);
+  auto& from = static_cast<const ChangeParamIntResponse&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.ChangeParamIntResponse)
   ABSL_DCHECK_NE(&from, _this);
   ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
@@ -2045,63 +2246,49 @@ void RetrieveParamFloatResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_
     _this->_internal_mutable_param_server_result()->::mavsdk::rpc::param_server::ParamServerResult::MergeFrom(
         from._internal_param_server_result());
   }
-  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
-  float tmp_value = from._internal_value();
-  ::uint32_t raw_value;
-  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
-  if (raw_value != 0) {
-    _this->_internal_set_value(from._internal_value());
-  }
   _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
 }
 
-void RetrieveParamFloatResponse::CopyFrom(const RetrieveParamFloatResponse& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
+void ChangeParamIntResponse::CopyFrom(const ChangeParamIntResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.ChangeParamIntResponse)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
-bool RetrieveParamFloatResponse::IsInitialized() const {
+bool ChangeParamIntResponse::IsInitialized() const {
   return true;
 }
 
-void RetrieveParamFloatResponse::InternalSwap(RetrieveParamFloatResponse* other) {
+void ChangeParamIntResponse::InternalSwap(ChangeParamIntResponse* other) {
   using std::swap;
   _internal_metadata_.InternalSwap(&other->_internal_metadata_);
   swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
-  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
-      PROTOBUF_FIELD_OFFSET(RetrieveParamFloatResponse, _impl_.value_)
-      + sizeof(RetrieveParamFloatResponse::_impl_.value_)
-      - PROTOBUF_FIELD_OFFSET(RetrieveParamFloatResponse, _impl_.param_server_result_)>(
-          reinterpret_cast<char*>(&_impl_.param_server_result_),
-          reinterpret_cast<char*>(&other->_impl_.param_server_result_));
+  swap(_impl_.param_server_result_, other->_impl_.param_server_result_);
 }
 
-::PROTOBUF_NAMESPACE_ID::Metadata RetrieveParamFloatResponse::GetMetadata() const {
+::PROTOBUF_NAMESPACE_ID::Metadata ChangeParamIntResponse::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
       &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
       file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[5]);
 }
 // ===================================================================
 
-class ProvideParamFloatRequest::_Internal {
+class RetrieveParamFloatRequest::_Internal {
  public:
 };
 
-ProvideParamFloatRequest::ProvideParamFloatRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+RetrieveParamFloatRequest::RetrieveParamFloatRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
   : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
   SharedCtor(arena);
-  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
 }
-ProvideParamFloatRequest::ProvideParamFloatRequest(const ProvideParamFloatRequest& from)
+RetrieveParamFloatRequest::RetrieveParamFloatRequest(const RetrieveParamFloatRequest& from)
   : ::PROTOBUF_NAMESPACE_ID::Message() {
-  ProvideParamFloatRequest* const _this = this; (void)_this;
+  RetrieveParamFloatRequest* const _this = this; (void)_this;
   new (&_impl_) Impl_{
       decltype(_impl_.name_) {}
 
-    , decltype(_impl_.value_) {}
-
     , /*decltype(_impl_._cached_size_)*/{}};
 
   _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
@@ -2112,17 +2299,14 @@ ProvideParamFloatRequest::ProvideParamFloatRequest(const ProvideParamFloatReques
   if (!from._internal_name().empty()) {
     _this->_impl_.name_.Set(from._internal_name(), _this->GetArenaForAllocation());
   }
-  _this->_impl_.value_ = from._impl_.value_;
-  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
 }
 
-inline void ProvideParamFloatRequest::SharedCtor(::_pb::Arena* arena) {
+inline void RetrieveParamFloatRequest::SharedCtor(::_pb::Arena* arena) {
   (void)arena;
   new (&_impl_) Impl_{
       decltype(_impl_.name_) {}
 
-    , decltype(_impl_.value_) { 0 }
-
     , /*decltype(_impl_._cached_size_)*/{}
   };
   _impl_.name_.InitDefault();
@@ -2131,8 +2315,8 @@ inline void ProvideParamFloatRequest::SharedCtor(::_pb::Arena* arena) {
   #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 }
 
-ProvideParamFloatRequest::~ProvideParamFloatRequest() {
-  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+RetrieveParamFloatRequest::~RetrieveParamFloatRequest() {
+  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
   if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
   (void)arena;
     return;
@@ -2140,27 +2324,26 @@ ProvideParamFloatRequest::~ProvideParamFloatRequest() {
   SharedDtor();
 }
 
-inline void ProvideParamFloatRequest::SharedDtor() {
+inline void RetrieveParamFloatRequest::SharedDtor() {
   ABSL_DCHECK(GetArenaForAllocation() == nullptr);
   _impl_.name_.Destroy();
 }
 
-void ProvideParamFloatRequest::SetCachedSize(int size) const {
+void RetrieveParamFloatRequest::SetCachedSize(int size) const {
   _impl_._cached_size_.Set(size);
 }
 
-void ProvideParamFloatRequest::Clear() {
-// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+void RetrieveParamFloatRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
   ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
   _impl_.name_.ClearToEmpty();
-  _impl_.value_ = 0;
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
-const char* ProvideParamFloatRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+const char* RetrieveParamFloatRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
   while (!ctx->Done(&ptr)) {
     ::uint32_t tag;
@@ -2172,16 +2355,7 @@ const char* ProvideParamFloatRequest::_InternalParse(const char* ptr, ::_pbi::Pa
           auto str = _internal_mutable_name();
           ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
           CHK_(ptr);
-          CHK_(::_pbi::VerifyUTF8(str, "mavsdk.rpc.param_server.ProvideParamFloatRequest.name"));
-        } else {
-          goto handle_unusual;
-        }
-        continue;
-      // float value = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 21)) {
-          _impl_.value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
-          ptr += sizeof(float);
+          CHK_(::_pbi::VerifyUTF8(str, "mavsdk.rpc.param_server.RetrieveParamFloatRequest.name"));
         } else {
           goto handle_unusual;
         }
@@ -2209,9 +2383,9 @@ const char* ProvideParamFloatRequest::_InternalParse(const char* ptr, ::_pbi::Pa
 #undef CHK_
 }
 
-::uint8_t* ProvideParamFloatRequest::_InternalSerialize(
+::uint8_t* RetrieveParamFloatRequest::_InternalSerialize(
     ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
   ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
 
@@ -2219,31 +2393,20 @@ ::uint8_t* ProvideParamFloatRequest::_InternalSerialize(
   if (!this->_internal_name().empty()) {
     const std::string& _s = this->_internal_name();
     ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "mavsdk.rpc.param_server.ProvideParamFloatRequest.name");
+        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "mavsdk.rpc.param_server.RetrieveParamFloatRequest.name");
     target = stream->WriteStringMaybeAliased(1, _s, target);
   }
 
-  // float value = 2;
-  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
-  float tmp_value = this->_internal_value();
-  ::uint32_t raw_value;
-  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
-  if (raw_value != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::_pbi::WireFormatLite::WriteFloatToArray(
-        2, this->_internal_value(), target);
-  }
-
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
     target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
         _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
   }
-  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
   return target;
 }
 
-::size_t ProvideParamFloatRequest::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+::size_t RetrieveParamFloatRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
   ::size_t total_size = 0;
 
   ::uint32_t cached_has_bits = 0;
@@ -2256,29 +2419,20 @@ ::size_t ProvideParamFloatRequest::ByteSizeLong() const {
                                     this->_internal_name());
   }
 
-  // float value = 2;
-  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
-  float tmp_value = this->_internal_value();
-  ::uint32_t raw_value;
-  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
-  if (raw_value != 0) {
-    total_size += 5;
-  }
-
   return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
 }
 
-const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ProvideParamFloatRequest::_class_data_ = {
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RetrieveParamFloatRequest::_class_data_ = {
     ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
-    ProvideParamFloatRequest::MergeImpl
+    RetrieveParamFloatRequest::MergeImpl
 };
-const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ProvideParamFloatRequest::GetClassData() const { return &_class_data_; }
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RetrieveParamFloatRequest::GetClassData() const { return &_class_data_; }
 
 
-void ProvideParamFloatRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
-  auto* const _this = static_cast<ProvideParamFloatRequest*>(&to_msg);
-  auto& from = static_cast<const ProvideParamFloatRequest&>(from_msg);
-  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+void RetrieveParamFloatRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
+  auto* const _this = static_cast<RetrieveParamFloatRequest*>(&to_msg);
+  auto& from = static_cast<const RetrieveParamFloatRequest&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
   ABSL_DCHECK_NE(&from, _this);
   ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
@@ -2286,91 +2440,87 @@ void ProvideParamFloatRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_ms
   if (!from._internal_name().empty()) {
     _this->_internal_set_name(from._internal_name());
   }
-  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
-  float tmp_value = from._internal_value();
-  ::uint32_t raw_value;
-  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
-  if (raw_value != 0) {
-    _this->_internal_set_value(from._internal_value());
-  }
   _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
 }
 
-void ProvideParamFloatRequest::CopyFrom(const ProvideParamFloatRequest& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+void RetrieveParamFloatRequest::CopyFrom(const RetrieveParamFloatRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
-bool ProvideParamFloatRequest::IsInitialized() const {
+bool RetrieveParamFloatRequest::IsInitialized() const {
   return true;
 }
 
-void ProvideParamFloatRequest::InternalSwap(ProvideParamFloatRequest* other) {
+void RetrieveParamFloatRequest::InternalSwap(RetrieveParamFloatRequest* other) {
   using std::swap;
   auto* lhs_arena = GetArenaForAllocation();
   auto* rhs_arena = other->GetArenaForAllocation();
   _internal_metadata_.InternalSwap(&other->_internal_metadata_);
   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, lhs_arena,
                                        &other->_impl_.name_, rhs_arena);
-
-  swap(_impl_.value_, other->_impl_.value_);
 }
 
-::PROTOBUF_NAMESPACE_ID::Metadata ProvideParamFloatRequest::GetMetadata() const {
+::PROTOBUF_NAMESPACE_ID::Metadata RetrieveParamFloatRequest::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
       &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
       file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[6]);
 }
 // ===================================================================
 
-class ProvideParamFloatResponse::_Internal {
+class RetrieveParamFloatResponse::_Internal {
  public:
-  using HasBits = decltype(std::declval<ProvideParamFloatResponse>()._impl_._has_bits_);
+  using HasBits = decltype(std::declval<RetrieveParamFloatResponse>()._impl_._has_bits_);
   static constexpr ::int32_t kHasBitsOffset =
-    8 * PROTOBUF_FIELD_OFFSET(ProvideParamFloatResponse, _impl_._has_bits_);
-  static const ::mavsdk::rpc::param_server::ParamServerResult& param_server_result(const ProvideParamFloatResponse* msg);
+    8 * PROTOBUF_FIELD_OFFSET(RetrieveParamFloatResponse, _impl_._has_bits_);
+  static const ::mavsdk::rpc::param_server::ParamServerResult& param_server_result(const RetrieveParamFloatResponse* msg);
   static void set_has_param_server_result(HasBits* has_bits) {
     (*has_bits)[0] |= 1u;
   }
 };
 
 const ::mavsdk::rpc::param_server::ParamServerResult&
-ProvideParamFloatResponse::_Internal::param_server_result(const ProvideParamFloatResponse* msg) {
+RetrieveParamFloatResponse::_Internal::param_server_result(const RetrieveParamFloatResponse* msg) {
   return *msg->_impl_.param_server_result_;
 }
-ProvideParamFloatResponse::ProvideParamFloatResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+RetrieveParamFloatResponse::RetrieveParamFloatResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
   : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
   SharedCtor(arena);
-  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
 }
-ProvideParamFloatResponse::ProvideParamFloatResponse(const ProvideParamFloatResponse& from)
+RetrieveParamFloatResponse::RetrieveParamFloatResponse(const RetrieveParamFloatResponse& from)
   : ::PROTOBUF_NAMESPACE_ID::Message() {
-  ProvideParamFloatResponse* const _this = this; (void)_this;
+  RetrieveParamFloatResponse* const _this = this; (void)_this;
   new (&_impl_) Impl_{
       decltype(_impl_._has_bits_){from._impl_._has_bits_}
     , /*decltype(_impl_._cached_size_)*/{}
-    , decltype(_impl_.param_server_result_){nullptr}};
+    , decltype(_impl_.param_server_result_){nullptr}
+    , decltype(_impl_.value_) {}
+  };
 
   _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
     _this->_impl_.param_server_result_ = new ::mavsdk::rpc::param_server::ParamServerResult(*from._impl_.param_server_result_);
   }
-  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+  _this->_impl_.value_ = from._impl_.value_;
+  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
 }
 
-inline void ProvideParamFloatResponse::SharedCtor(::_pb::Arena* arena) {
+inline void RetrieveParamFloatResponse::SharedCtor(::_pb::Arena* arena) {
   (void)arena;
   new (&_impl_) Impl_{
       decltype(_impl_._has_bits_){}
     , /*decltype(_impl_._cached_size_)*/{}
     , decltype(_impl_.param_server_result_){nullptr}
+    , decltype(_impl_.value_) { 0 }
+
   };
 }
 
-ProvideParamFloatResponse::~ProvideParamFloatResponse() {
-  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+RetrieveParamFloatResponse::~RetrieveParamFloatResponse() {
+  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
   if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
   (void)arena;
     return;
@@ -2378,17 +2528,17 @@ ProvideParamFloatResponse::~ProvideParamFloatResponse() {
   SharedDtor();
 }
 
-inline void ProvideParamFloatResponse::SharedDtor() {
+inline void RetrieveParamFloatResponse::SharedDtor() {
   ABSL_DCHECK(GetArenaForAllocation() == nullptr);
   if (this != internal_default_instance()) delete _impl_.param_server_result_;
 }
 
-void ProvideParamFloatResponse::SetCachedSize(int size) const {
+void RetrieveParamFloatResponse::SetCachedSize(int size) const {
   _impl_._cached_size_.Set(size);
 }
 
-void ProvideParamFloatResponse::Clear() {
-// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+void RetrieveParamFloatResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
   ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
@@ -2398,11 +2548,12 @@ void ProvideParamFloatResponse::Clear() {
     ABSL_DCHECK(_impl_.param_server_result_ != nullptr);
     _impl_.param_server_result_->Clear();
   }
+  _impl_.value_ = 0;
   _impl_._has_bits_.Clear();
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
-const char* ProvideParamFloatResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+const char* RetrieveParamFloatResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
   _Internal::HasBits has_bits{};
   while (!ctx->Done(&ptr)) {
@@ -2418,6 +2569,15 @@ const char* ProvideParamFloatResponse::_InternalParse(const char* ptr, ::_pbi::P
           goto handle_unusual;
         }
         continue;
+      // float value = 2;
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 21)) {
+          _impl_.value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
+          ptr += sizeof(float);
+        } else {
+          goto handle_unusual;
+        }
+        continue;
       default:
         goto handle_unusual;
     }  // switch
@@ -2442,9 +2602,9 @@ const char* ProvideParamFloatResponse::_InternalParse(const char* ptr, ::_pbi::P
 #undef CHK_
 }
 
-::uint8_t* ProvideParamFloatResponse::_InternalSerialize(
+::uint8_t* RetrieveParamFloatResponse::_InternalSerialize(
     ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
   ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
 
@@ -2456,16 +2616,27 @@ ::uint8_t* ProvideParamFloatResponse::_InternalSerialize(
         _Internal::param_server_result(this).GetCachedSize(), target, stream);
   }
 
+  // float value = 2;
+  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
+  float tmp_value = this->_internal_value();
+  ::uint32_t raw_value;
+  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
+  if (raw_value != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteFloatToArray(
+        2, this->_internal_value(), target);
+  }
+
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
     target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
         _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
   }
-  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
   return target;
 }
 
-::size_t ProvideParamFloatResponse::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+::size_t RetrieveParamFloatResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
   ::size_t total_size = 0;
 
   ::uint32_t cached_has_bits = 0;
@@ -2480,20 +2651,29 @@ ::size_t ProvideParamFloatResponse::ByteSizeLong() const {
         *_impl_.param_server_result_);
   }
 
+  // float value = 2;
+  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
+  float tmp_value = this->_internal_value();
+  ::uint32_t raw_value;
+  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
+  if (raw_value != 0) {
+    total_size += 5;
+  }
+
   return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
 }
 
-const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ProvideParamFloatResponse::_class_data_ = {
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RetrieveParamFloatResponse::_class_data_ = {
     ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
-    ProvideParamFloatResponse::MergeImpl
+    RetrieveParamFloatResponse::MergeImpl
 };
-const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ProvideParamFloatResponse::GetClassData() const { return &_class_data_; }
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RetrieveParamFloatResponse::GetClassData() const { return &_class_data_; }
 
 
-void ProvideParamFloatResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
-  auto* const _this = static_cast<ProvideParamFloatResponse*>(&to_msg);
-  auto& from = static_cast<const ProvideParamFloatResponse&>(from_msg);
-  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+void RetrieveParamFloatResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
+  auto* const _this = static_cast<RetrieveParamFloatResponse*>(&to_msg);
+  auto& from = static_cast<const RetrieveParamFloatResponse&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
   ABSL_DCHECK_NE(&from, _this);
   ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
@@ -2502,50 +2682,1404 @@ void ProvideParamFloatResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_m
     _this->_internal_mutable_param_server_result()->::mavsdk::rpc::param_server::ParamServerResult::MergeFrom(
         from._internal_param_server_result());
   }
+  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
+  float tmp_value = from._internal_value();
+  ::uint32_t raw_value;
+  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
+  if (raw_value != 0) {
+    _this->_internal_set_value(from._internal_value());
+  }
   _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
 }
 
-void ProvideParamFloatResponse::CopyFrom(const ProvideParamFloatResponse& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+void RetrieveParamFloatResponse::CopyFrom(const RetrieveParamFloatResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
-bool ProvideParamFloatResponse::IsInitialized() const {
+bool RetrieveParamFloatResponse::IsInitialized() const {
   return true;
 }
 
-void ProvideParamFloatResponse::InternalSwap(ProvideParamFloatResponse* other) {
+void RetrieveParamFloatResponse::InternalSwap(RetrieveParamFloatResponse* other) {
   using std::swap;
   _internal_metadata_.InternalSwap(&other->_internal_metadata_);
   swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
-  swap(_impl_.param_server_result_, other->_impl_.param_server_result_);
+  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
+      PROTOBUF_FIELD_OFFSET(RetrieveParamFloatResponse, _impl_.value_)
+      + sizeof(RetrieveParamFloatResponse::_impl_.value_)
+      - PROTOBUF_FIELD_OFFSET(RetrieveParamFloatResponse, _impl_.param_server_result_)>(
+          reinterpret_cast<char*>(&_impl_.param_server_result_),
+          reinterpret_cast<char*>(&other->_impl_.param_server_result_));
 }
 
-::PROTOBUF_NAMESPACE_ID::Metadata ProvideParamFloatResponse::GetMetadata() const {
+::PROTOBUF_NAMESPACE_ID::Metadata RetrieveParamFloatResponse::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
       &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
       file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[7]);
 }
 // ===================================================================
 
-class RetrieveParamCustomRequest::_Internal {
+class ProvideParamFloatRequest::_Internal {
  public:
 };
 
-RetrieveParamCustomRequest::RetrieveParamCustomRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+ProvideParamFloatRequest::ProvideParamFloatRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
   : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
   SharedCtor(arena);
-  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.ProvideParamFloatRequest)
 }
-RetrieveParamCustomRequest::RetrieveParamCustomRequest(const RetrieveParamCustomRequest& from)
+ProvideParamFloatRequest::ProvideParamFloatRequest(const ProvideParamFloatRequest& from)
   : ::PROTOBUF_NAMESPACE_ID::Message() {
-  RetrieveParamCustomRequest* const _this = this; (void)_this;
+  ProvideParamFloatRequest* const _this = this; (void)_this;
   new (&_impl_) Impl_{
       decltype(_impl_.name_) {}
 
-    , /*decltype(_impl_._cached_size_)*/{}};
+    , decltype(_impl_.value_) {}
+
+    , /*decltype(_impl_._cached_size_)*/{}};
+
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  _impl_.name_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        _impl_.name_.Set("", GetArenaForAllocation());
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_name().empty()) {
+    _this->_impl_.name_.Set(from._internal_name(), _this->GetArenaForAllocation());
+  }
+  _this->_impl_.value_ = from._impl_.value_;
+  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+}
+
+inline void ProvideParamFloatRequest::SharedCtor(::_pb::Arena* arena) {
+  (void)arena;
+  new (&_impl_) Impl_{
+      decltype(_impl_.name_) {}
+
+    , decltype(_impl_.value_) { 0 }
+
+    , /*decltype(_impl_._cached_size_)*/{}
+  };
+  _impl_.name_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        _impl_.name_.Set("", GetArenaForAllocation());
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+}
+
+ProvideParamFloatRequest::~ProvideParamFloatRequest() {
+  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void ProvideParamFloatRequest::SharedDtor() {
+  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
+  _impl_.name_.Destroy();
+}
+
+void ProvideParamFloatRequest::SetCachedSize(int size) const {
+  _impl_._cached_size_.Set(size);
+}
+
+void ProvideParamFloatRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+  ::uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  _impl_.name_.ClearToEmpty();
+  _impl_.value_ = 0;
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* ProvideParamFloatRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    ::uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // string name = 1;
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
+          auto str = _internal_mutable_name();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "mavsdk.rpc.param_server.ProvideParamFloatRequest.name"));
+        } else {
+          goto handle_unusual;
+        }
+        continue;
+      // float value = 2;
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 21)) {
+          _impl_.value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
+          ptr += sizeof(float);
+        } else {
+          goto handle_unusual;
+        }
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+::uint8_t* ProvideParamFloatRequest::_InternalSerialize(
+    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+  ::uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string name = 1;
+  if (!this->_internal_name().empty()) {
+    const std::string& _s = this->_internal_name();
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "mavsdk.rpc.param_server.ProvideParamFloatRequest.name");
+    target = stream->WriteStringMaybeAliased(1, _s, target);
+  }
+
+  // float value = 2;
+  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
+  float tmp_value = this->_internal_value();
+  ::uint32_t raw_value;
+  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
+  if (raw_value != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteFloatToArray(
+        2, this->_internal_value(), target);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+  return target;
+}
+
+::size_t ProvideParamFloatRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+  ::size_t total_size = 0;
+
+  ::uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // string name = 1;
+  if (!this->_internal_name().empty()) {
+    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+                                    this->_internal_name());
+  }
+
+  // float value = 2;
+  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
+  float tmp_value = this->_internal_value();
+  ::uint32_t raw_value;
+  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
+  if (raw_value != 0) {
+    total_size += 5;
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ProvideParamFloatRequest::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
+    ProvideParamFloatRequest::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ProvideParamFloatRequest::GetClassData() const { return &_class_data_; }
+
+
+void ProvideParamFloatRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
+  auto* const _this = static_cast<ProvideParamFloatRequest*>(&to_msg);
+  auto& from = static_cast<const ProvideParamFloatRequest&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+  ABSL_DCHECK_NE(&from, _this);
+  ::uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (!from._internal_name().empty()) {
+    _this->_internal_set_name(from._internal_name());
+  }
+  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
+  float tmp_value = from._internal_value();
+  ::uint32_t raw_value;
+  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
+  if (raw_value != 0) {
+    _this->_internal_set_value(from._internal_value());
+  }
+  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void ProvideParamFloatRequest::CopyFrom(const ProvideParamFloatRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool ProvideParamFloatRequest::IsInitialized() const {
+  return true;
+}
+
+void ProvideParamFloatRequest::InternalSwap(ProvideParamFloatRequest* other) {
+  using std::swap;
+  auto* lhs_arena = GetArenaForAllocation();
+  auto* rhs_arena = other->GetArenaForAllocation();
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, lhs_arena,
+                                       &other->_impl_.name_, rhs_arena);
+
+  swap(_impl_.value_, other->_impl_.value_);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata ProvideParamFloatRequest::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[8]);
+}
+// ===================================================================
+
+class ProvideParamFloatResponse::_Internal {
+ public:
+  using HasBits = decltype(std::declval<ProvideParamFloatResponse>()._impl_._has_bits_);
+  static constexpr ::int32_t kHasBitsOffset =
+    8 * PROTOBUF_FIELD_OFFSET(ProvideParamFloatResponse, _impl_._has_bits_);
+  static const ::mavsdk::rpc::param_server::ParamServerResult& param_server_result(const ProvideParamFloatResponse* msg);
+  static void set_has_param_server_result(HasBits* has_bits) {
+    (*has_bits)[0] |= 1u;
+  }
+};
+
+const ::mavsdk::rpc::param_server::ParamServerResult&
+ProvideParamFloatResponse::_Internal::param_server_result(const ProvideParamFloatResponse* msg) {
+  return *msg->_impl_.param_server_result_;
+}
+ProvideParamFloatResponse::ProvideParamFloatResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
+  SharedCtor(arena);
+  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+}
+ProvideParamFloatResponse::ProvideParamFloatResponse(const ProvideParamFloatResponse& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  ProvideParamFloatResponse* const _this = this; (void)_this;
+  new (&_impl_) Impl_{
+      decltype(_impl_._has_bits_){from._impl_._has_bits_}
+    , /*decltype(_impl_._cached_size_)*/{}
+    , decltype(_impl_.param_server_result_){nullptr}};
+
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
+    _this->_impl_.param_server_result_ = new ::mavsdk::rpc::param_server::ParamServerResult(*from._impl_.param_server_result_);
+  }
+  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+}
+
+inline void ProvideParamFloatResponse::SharedCtor(::_pb::Arena* arena) {
+  (void)arena;
+  new (&_impl_) Impl_{
+      decltype(_impl_._has_bits_){}
+    , /*decltype(_impl_._cached_size_)*/{}
+    , decltype(_impl_.param_server_result_){nullptr}
+  };
+}
+
+ProvideParamFloatResponse::~ProvideParamFloatResponse() {
+  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void ProvideParamFloatResponse::SharedDtor() {
+  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
+  if (this != internal_default_instance()) delete _impl_.param_server_result_;
+}
+
+void ProvideParamFloatResponse::SetCachedSize(int size) const {
+  _impl_._cached_size_.Set(size);
+}
+
+void ProvideParamFloatResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+  ::uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  cached_has_bits = _impl_._has_bits_[0];
+  if (cached_has_bits & 0x00000001u) {
+    ABSL_DCHECK(_impl_.param_server_result_ != nullptr);
+    _impl_.param_server_result_->Clear();
+  }
+  _impl_._has_bits_.Clear();
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* ProvideParamFloatResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  _Internal::HasBits has_bits{};
+  while (!ctx->Done(&ptr)) {
+    ::uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
+          ptr = ctx->ParseMessage(_internal_mutable_param_server_result(), ptr);
+          CHK_(ptr);
+        } else {
+          goto handle_unusual;
+        }
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  _impl_._has_bits_.Or(has_bits);
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+::uint8_t* ProvideParamFloatResponse::_InternalSerialize(
+    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+  ::uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _impl_._has_bits_[0];
+  // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
+  if (cached_has_bits & 0x00000001u) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(1, _Internal::param_server_result(this),
+        _Internal::param_server_result(this).GetCachedSize(), target, stream);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+  return target;
+}
+
+::size_t ProvideParamFloatResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+  ::size_t total_size = 0;
+
+  ::uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
+  cached_has_bits = _impl_._has_bits_[0];
+  if (cached_has_bits & 0x00000001u) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *_impl_.param_server_result_);
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ProvideParamFloatResponse::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
+    ProvideParamFloatResponse::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ProvideParamFloatResponse::GetClassData() const { return &_class_data_; }
+
+
+void ProvideParamFloatResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
+  auto* const _this = static_cast<ProvideParamFloatResponse*>(&to_msg);
+  auto& from = static_cast<const ProvideParamFloatResponse&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+  ABSL_DCHECK_NE(&from, _this);
+  ::uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
+    _this->_internal_mutable_param_server_result()->::mavsdk::rpc::param_server::ParamServerResult::MergeFrom(
+        from._internal_param_server_result());
+  }
+  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void ProvideParamFloatResponse::CopyFrom(const ProvideParamFloatResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool ProvideParamFloatResponse::IsInitialized() const {
+  return true;
+}
+
+void ProvideParamFloatResponse::InternalSwap(ProvideParamFloatResponse* other) {
+  using std::swap;
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
+  swap(_impl_.param_server_result_, other->_impl_.param_server_result_);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata ProvideParamFloatResponse::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[9]);
+}
+// ===================================================================
+
+class ChangeParamFloatRequest::_Internal {
+ public:
+};
+
+ChangeParamFloatRequest::ChangeParamFloatRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
+  SharedCtor(arena);
+  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.ChangeParamFloatRequest)
+}
+ChangeParamFloatRequest::ChangeParamFloatRequest(const ChangeParamFloatRequest& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  ChangeParamFloatRequest* const _this = this; (void)_this;
+  new (&_impl_) Impl_{
+      decltype(_impl_.name_) {}
+
+    , decltype(_impl_.value_) {}
+
+    , /*decltype(_impl_._cached_size_)*/{}};
+
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  _impl_.name_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        _impl_.name_.Set("", GetArenaForAllocation());
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_name().empty()) {
+    _this->_impl_.name_.Set(from._internal_name(), _this->GetArenaForAllocation());
+  }
+  _this->_impl_.value_ = from._impl_.value_;
+  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.ChangeParamFloatRequest)
+}
+
+inline void ChangeParamFloatRequest::SharedCtor(::_pb::Arena* arena) {
+  (void)arena;
+  new (&_impl_) Impl_{
+      decltype(_impl_.name_) {}
+
+    , decltype(_impl_.value_) { 0 }
+
+    , /*decltype(_impl_._cached_size_)*/{}
+  };
+  _impl_.name_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        _impl_.name_.Set("", GetArenaForAllocation());
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+}
+
+ChangeParamFloatRequest::~ChangeParamFloatRequest() {
+  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.ChangeParamFloatRequest)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void ChangeParamFloatRequest::SharedDtor() {
+  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
+  _impl_.name_.Destroy();
+}
+
+void ChangeParamFloatRequest::SetCachedSize(int size) const {
+  _impl_._cached_size_.Set(size);
+}
+
+void ChangeParamFloatRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.ChangeParamFloatRequest)
+  ::uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  _impl_.name_.ClearToEmpty();
+  _impl_.value_ = 0;
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* ChangeParamFloatRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    ::uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // string name = 1;
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
+          auto str = _internal_mutable_name();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "mavsdk.rpc.param_server.ChangeParamFloatRequest.name"));
+        } else {
+          goto handle_unusual;
+        }
+        continue;
+      // float value = 2;
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 21)) {
+          _impl_.value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
+          ptr += sizeof(float);
+        } else {
+          goto handle_unusual;
+        }
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+::uint8_t* ChangeParamFloatRequest::_InternalSerialize(
+    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.ChangeParamFloatRequest)
+  ::uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string name = 1;
+  if (!this->_internal_name().empty()) {
+    const std::string& _s = this->_internal_name();
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "mavsdk.rpc.param_server.ChangeParamFloatRequest.name");
+    target = stream->WriteStringMaybeAliased(1, _s, target);
+  }
+
+  // float value = 2;
+  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
+  float tmp_value = this->_internal_value();
+  ::uint32_t raw_value;
+  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
+  if (raw_value != 0) {
+    target = stream->EnsureSpace(target);
+    target = ::_pbi::WireFormatLite::WriteFloatToArray(
+        2, this->_internal_value(), target);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.ChangeParamFloatRequest)
+  return target;
+}
+
+::size_t ChangeParamFloatRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.ChangeParamFloatRequest)
+  ::size_t total_size = 0;
+
+  ::uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // string name = 1;
+  if (!this->_internal_name().empty()) {
+    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+                                    this->_internal_name());
+  }
+
+  // float value = 2;
+  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
+  float tmp_value = this->_internal_value();
+  ::uint32_t raw_value;
+  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
+  if (raw_value != 0) {
+    total_size += 5;
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ChangeParamFloatRequest::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
+    ChangeParamFloatRequest::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ChangeParamFloatRequest::GetClassData() const { return &_class_data_; }
+
+
+void ChangeParamFloatRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
+  auto* const _this = static_cast<ChangeParamFloatRequest*>(&to_msg);
+  auto& from = static_cast<const ChangeParamFloatRequest&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.ChangeParamFloatRequest)
+  ABSL_DCHECK_NE(&from, _this);
+  ::uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (!from._internal_name().empty()) {
+    _this->_internal_set_name(from._internal_name());
+  }
+  static_assert(sizeof(::uint32_t) == sizeof(float), "Code assumes ::uint32_t and float are the same size.");
+  float tmp_value = from._internal_value();
+  ::uint32_t raw_value;
+  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
+  if (raw_value != 0) {
+    _this->_internal_set_value(from._internal_value());
+  }
+  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void ChangeParamFloatRequest::CopyFrom(const ChangeParamFloatRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.ChangeParamFloatRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool ChangeParamFloatRequest::IsInitialized() const {
+  return true;
+}
+
+void ChangeParamFloatRequest::InternalSwap(ChangeParamFloatRequest* other) {
+  using std::swap;
+  auto* lhs_arena = GetArenaForAllocation();
+  auto* rhs_arena = other->GetArenaForAllocation();
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, lhs_arena,
+                                       &other->_impl_.name_, rhs_arena);
+
+  swap(_impl_.value_, other->_impl_.value_);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata ChangeParamFloatRequest::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[10]);
+}
+// ===================================================================
+
+class ChangeParamFloatResponse::_Internal {
+ public:
+  using HasBits = decltype(std::declval<ChangeParamFloatResponse>()._impl_._has_bits_);
+  static constexpr ::int32_t kHasBitsOffset =
+    8 * PROTOBUF_FIELD_OFFSET(ChangeParamFloatResponse, _impl_._has_bits_);
+  static const ::mavsdk::rpc::param_server::ParamServerResult& param_server_result(const ChangeParamFloatResponse* msg);
+  static void set_has_param_server_result(HasBits* has_bits) {
+    (*has_bits)[0] |= 1u;
+  }
+};
+
+const ::mavsdk::rpc::param_server::ParamServerResult&
+ChangeParamFloatResponse::_Internal::param_server_result(const ChangeParamFloatResponse* msg) {
+  return *msg->_impl_.param_server_result_;
+}
+ChangeParamFloatResponse::ChangeParamFloatResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
+  SharedCtor(arena);
+  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.ChangeParamFloatResponse)
+}
+ChangeParamFloatResponse::ChangeParamFloatResponse(const ChangeParamFloatResponse& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  ChangeParamFloatResponse* const _this = this; (void)_this;
+  new (&_impl_) Impl_{
+      decltype(_impl_._has_bits_){from._impl_._has_bits_}
+    , /*decltype(_impl_._cached_size_)*/{}
+    , decltype(_impl_.param_server_result_){nullptr}};
+
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
+    _this->_impl_.param_server_result_ = new ::mavsdk::rpc::param_server::ParamServerResult(*from._impl_.param_server_result_);
+  }
+  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.ChangeParamFloatResponse)
+}
+
+inline void ChangeParamFloatResponse::SharedCtor(::_pb::Arena* arena) {
+  (void)arena;
+  new (&_impl_) Impl_{
+      decltype(_impl_._has_bits_){}
+    , /*decltype(_impl_._cached_size_)*/{}
+    , decltype(_impl_.param_server_result_){nullptr}
+  };
+}
+
+ChangeParamFloatResponse::~ChangeParamFloatResponse() {
+  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.ChangeParamFloatResponse)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void ChangeParamFloatResponse::SharedDtor() {
+  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
+  if (this != internal_default_instance()) delete _impl_.param_server_result_;
+}
+
+void ChangeParamFloatResponse::SetCachedSize(int size) const {
+  _impl_._cached_size_.Set(size);
+}
+
+void ChangeParamFloatResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.ChangeParamFloatResponse)
+  ::uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  cached_has_bits = _impl_._has_bits_[0];
+  if (cached_has_bits & 0x00000001u) {
+    ABSL_DCHECK(_impl_.param_server_result_ != nullptr);
+    _impl_.param_server_result_->Clear();
+  }
+  _impl_._has_bits_.Clear();
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* ChangeParamFloatResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  _Internal::HasBits has_bits{};
+  while (!ctx->Done(&ptr)) {
+    ::uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
+          ptr = ctx->ParseMessage(_internal_mutable_param_server_result(), ptr);
+          CHK_(ptr);
+        } else {
+          goto handle_unusual;
+        }
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  _impl_._has_bits_.Or(has_bits);
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+::uint8_t* ChangeParamFloatResponse::_InternalSerialize(
+    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.ChangeParamFloatResponse)
+  ::uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _impl_._has_bits_[0];
+  // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
+  if (cached_has_bits & 0x00000001u) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(1, _Internal::param_server_result(this),
+        _Internal::param_server_result(this).GetCachedSize(), target, stream);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.ChangeParamFloatResponse)
+  return target;
+}
+
+::size_t ChangeParamFloatResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.ChangeParamFloatResponse)
+  ::size_t total_size = 0;
+
+  ::uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
+  cached_has_bits = _impl_._has_bits_[0];
+  if (cached_has_bits & 0x00000001u) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *_impl_.param_server_result_);
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ChangeParamFloatResponse::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
+    ChangeParamFloatResponse::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ChangeParamFloatResponse::GetClassData() const { return &_class_data_; }
+
+
+void ChangeParamFloatResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
+  auto* const _this = static_cast<ChangeParamFloatResponse*>(&to_msg);
+  auto& from = static_cast<const ChangeParamFloatResponse&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.ChangeParamFloatResponse)
+  ABSL_DCHECK_NE(&from, _this);
+  ::uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
+    _this->_internal_mutable_param_server_result()->::mavsdk::rpc::param_server::ParamServerResult::MergeFrom(
+        from._internal_param_server_result());
+  }
+  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void ChangeParamFloatResponse::CopyFrom(const ChangeParamFloatResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.ChangeParamFloatResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool ChangeParamFloatResponse::IsInitialized() const {
+  return true;
+}
+
+void ChangeParamFloatResponse::InternalSwap(ChangeParamFloatResponse* other) {
+  using std::swap;
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
+  swap(_impl_.param_server_result_, other->_impl_.param_server_result_);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata ChangeParamFloatResponse::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[11]);
+}
+// ===================================================================
+
+class RetrieveParamCustomRequest::_Internal {
+ public:
+};
+
+RetrieveParamCustomRequest::RetrieveParamCustomRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
+  SharedCtor(arena);
+  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+}
+RetrieveParamCustomRequest::RetrieveParamCustomRequest(const RetrieveParamCustomRequest& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  RetrieveParamCustomRequest* const _this = this; (void)_this;
+  new (&_impl_) Impl_{
+      decltype(_impl_.name_) {}
+
+    , /*decltype(_impl_._cached_size_)*/{}};
+
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  _impl_.name_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        _impl_.name_.Set("", GetArenaForAllocation());
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_name().empty()) {
+    _this->_impl_.name_.Set(from._internal_name(), _this->GetArenaForAllocation());
+  }
+  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+}
+
+inline void RetrieveParamCustomRequest::SharedCtor(::_pb::Arena* arena) {
+  (void)arena;
+  new (&_impl_) Impl_{
+      decltype(_impl_.name_) {}
+
+    , /*decltype(_impl_._cached_size_)*/{}
+  };
+  _impl_.name_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        _impl_.name_.Set("", GetArenaForAllocation());
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+}
+
+RetrieveParamCustomRequest::~RetrieveParamCustomRequest() {
+  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void RetrieveParamCustomRequest::SharedDtor() {
+  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
+  _impl_.name_.Destroy();
+}
+
+void RetrieveParamCustomRequest::SetCachedSize(int size) const {
+  _impl_._cached_size_.Set(size);
+}
+
+void RetrieveParamCustomRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+  ::uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  _impl_.name_.ClearToEmpty();
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* RetrieveParamCustomRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  while (!ctx->Done(&ptr)) {
+    ::uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // string name = 1;
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
+          auto str = _internal_mutable_name();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "mavsdk.rpc.param_server.RetrieveParamCustomRequest.name"));
+        } else {
+          goto handle_unusual;
+        }
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+::uint8_t* RetrieveParamCustomRequest::_InternalSerialize(
+    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+  ::uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string name = 1;
+  if (!this->_internal_name().empty()) {
+    const std::string& _s = this->_internal_name();
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "mavsdk.rpc.param_server.RetrieveParamCustomRequest.name");
+    target = stream->WriteStringMaybeAliased(1, _s, target);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+  return target;
+}
+
+::size_t RetrieveParamCustomRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+  ::size_t total_size = 0;
+
+  ::uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // string name = 1;
+  if (!this->_internal_name().empty()) {
+    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+                                    this->_internal_name());
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RetrieveParamCustomRequest::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
+    RetrieveParamCustomRequest::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RetrieveParamCustomRequest::GetClassData() const { return &_class_data_; }
+
+
+void RetrieveParamCustomRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
+  auto* const _this = static_cast<RetrieveParamCustomRequest*>(&to_msg);
+  auto& from = static_cast<const RetrieveParamCustomRequest&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+  ABSL_DCHECK_NE(&from, _this);
+  ::uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (!from._internal_name().empty()) {
+    _this->_internal_set_name(from._internal_name());
+  }
+  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void RetrieveParamCustomRequest::CopyFrom(const RetrieveParamCustomRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool RetrieveParamCustomRequest::IsInitialized() const {
+  return true;
+}
+
+void RetrieveParamCustomRequest::InternalSwap(RetrieveParamCustomRequest* other) {
+  using std::swap;
+  auto* lhs_arena = GetArenaForAllocation();
+  auto* rhs_arena = other->GetArenaForAllocation();
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, lhs_arena,
+                                       &other->_impl_.name_, rhs_arena);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata RetrieveParamCustomRequest::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[12]);
+}
+// ===================================================================
+
+class RetrieveParamCustomResponse::_Internal {
+ public:
+  using HasBits = decltype(std::declval<RetrieveParamCustomResponse>()._impl_._has_bits_);
+  static constexpr ::int32_t kHasBitsOffset =
+    8 * PROTOBUF_FIELD_OFFSET(RetrieveParamCustomResponse, _impl_._has_bits_);
+  static const ::mavsdk::rpc::param_server::ParamServerResult& param_server_result(const RetrieveParamCustomResponse* msg);
+  static void set_has_param_server_result(HasBits* has_bits) {
+    (*has_bits)[0] |= 1u;
+  }
+};
+
+const ::mavsdk::rpc::param_server::ParamServerResult&
+RetrieveParamCustomResponse::_Internal::param_server_result(const RetrieveParamCustomResponse* msg) {
+  return *msg->_impl_.param_server_result_;
+}
+RetrieveParamCustomResponse::RetrieveParamCustomResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
+  SharedCtor(arena);
+  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+}
+RetrieveParamCustomResponse::RetrieveParamCustomResponse(const RetrieveParamCustomResponse& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  RetrieveParamCustomResponse* const _this = this; (void)_this;
+  new (&_impl_) Impl_{
+      decltype(_impl_._has_bits_){from._impl_._has_bits_}
+    , /*decltype(_impl_._cached_size_)*/{}
+    , decltype(_impl_.value_) {}
+
+    , decltype(_impl_.param_server_result_){nullptr}};
+
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+  _impl_.value_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        _impl_.value_.Set("", GetArenaForAllocation());
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_value().empty()) {
+    _this->_impl_.value_.Set(from._internal_value(), _this->GetArenaForAllocation());
+  }
+  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
+    _this->_impl_.param_server_result_ = new ::mavsdk::rpc::param_server::ParamServerResult(*from._impl_.param_server_result_);
+  }
+  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+}
+
+inline void RetrieveParamCustomResponse::SharedCtor(::_pb::Arena* arena) {
+  (void)arena;
+  new (&_impl_) Impl_{
+      decltype(_impl_._has_bits_){}
+    , /*decltype(_impl_._cached_size_)*/{}
+    , decltype(_impl_.value_) {}
+
+    , decltype(_impl_.param_server_result_){nullptr}
+  };
+  _impl_.value_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        _impl_.value_.Set("", GetArenaForAllocation());
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+}
+
+RetrieveParamCustomResponse::~RetrieveParamCustomResponse() {
+  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+  (void)arena;
+    return;
+  }
+  SharedDtor();
+}
+
+inline void RetrieveParamCustomResponse::SharedDtor() {
+  ABSL_DCHECK(GetArenaForAllocation() == nullptr);
+  _impl_.value_.Destroy();
+  if (this != internal_default_instance()) delete _impl_.param_server_result_;
+}
+
+void RetrieveParamCustomResponse::SetCachedSize(int size) const {
+  _impl_._cached_size_.Set(size);
+}
+
+void RetrieveParamCustomResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+  ::uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  _impl_.value_.ClearToEmpty();
+  cached_has_bits = _impl_._has_bits_[0];
+  if (cached_has_bits & 0x00000001u) {
+    ABSL_DCHECK(_impl_.param_server_result_ != nullptr);
+    _impl_.param_server_result_->Clear();
+  }
+  _impl_._has_bits_.Clear();
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* RetrieveParamCustomResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
+  _Internal::HasBits has_bits{};
+  while (!ctx->Done(&ptr)) {
+    ::uint32_t tag;
+    ptr = ::_pbi::ReadTag(ptr, &tag);
+    switch (tag >> 3) {
+      // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
+      case 1:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 10)) {
+          ptr = ctx->ParseMessage(_internal_mutable_param_server_result(), ptr);
+          CHK_(ptr);
+        } else {
+          goto handle_unusual;
+        }
+        continue;
+      // string value = 2;
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
+          auto str = _internal_mutable_value();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "mavsdk.rpc.param_server.RetrieveParamCustomResponse.value"));
+        } else {
+          goto handle_unusual;
+        }
+        continue;
+      default:
+        goto handle_unusual;
+    }  // switch
+  handle_unusual:
+    if ((tag == 0) || ((tag & 7) == 4)) {
+      CHK_(ptr);
+      ctx->SetLastTag(tag);
+      goto message_done;
+    }
+    ptr = UnknownFieldParse(
+        tag,
+        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+        ptr, ctx);
+    CHK_(ptr != nullptr);
+  }  // while
+message_done:
+  _impl_._has_bits_.Or(has_bits);
+  return ptr;
+failure:
+  ptr = nullptr;
+  goto message_done;
+#undef CHK_
+}
+
+::uint8_t* RetrieveParamCustomResponse::_InternalSerialize(
+    ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+  ::uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _impl_._has_bits_[0];
+  // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
+  if (cached_has_bits & 0x00000001u) {
+    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+      InternalWriteMessage(1, _Internal::param_server_result(this),
+        _Internal::param_server_result(this).GetCachedSize(), target, stream);
+  }
+
+  // string value = 2;
+  if (!this->_internal_value().empty()) {
+    const std::string& _s = this->_internal_value();
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "mavsdk.rpc.param_server.RetrieveParamCustomResponse.value");
+    target = stream->WriteStringMaybeAliased(2, _s, target);
+  }
+
+  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
+    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+  return target;
+}
+
+::size_t RetrieveParamCustomResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+  ::size_t total_size = 0;
+
+  ::uint32_t cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // string value = 2;
+  if (!this->_internal_value().empty()) {
+    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+                                    this->_internal_value());
+  }
+
+  // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
+  cached_has_bits = _impl_._has_bits_[0];
+  if (cached_has_bits & 0x00000001u) {
+    total_size += 1 +
+      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+        *_impl_.param_server_result_);
+  }
+
+  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RetrieveParamCustomResponse::_class_data_ = {
+    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
+    RetrieveParamCustomResponse::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RetrieveParamCustomResponse::GetClassData() const { return &_class_data_; }
+
+
+void RetrieveParamCustomResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
+  auto* const _this = static_cast<RetrieveParamCustomResponse*>(&to_msg);
+  auto& from = static_cast<const RetrieveParamCustomResponse&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+  ABSL_DCHECK_NE(&from, _this);
+  ::uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (!from._internal_value().empty()) {
+    _this->_internal_set_value(from._internal_value());
+  }
+  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
+    _this->_internal_mutable_param_server_result()->::mavsdk::rpc::param_server::ParamServerResult::MergeFrom(
+        from._internal_param_server_result());
+  }
+  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void RetrieveParamCustomResponse::CopyFrom(const RetrieveParamCustomResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool RetrieveParamCustomResponse::IsInitialized() const {
+  return true;
+}
+
+void RetrieveParamCustomResponse::InternalSwap(RetrieveParamCustomResponse* other) {
+  using std::swap;
+  auto* lhs_arena = GetArenaForAllocation();
+  auto* rhs_arena = other->GetArenaForAllocation();
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
+  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.value_, lhs_arena,
+                                       &other->_impl_.value_, rhs_arena);
+  swap(_impl_.param_server_result_, other->_impl_.param_server_result_);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata RetrieveParamCustomResponse::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[13]);
+}
+// ===================================================================
+
+class ProvideParamCustomRequest::_Internal {
+ public:
+};
+
+ProvideParamCustomRequest::ProvideParamCustomRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
+  SharedCtor(arena);
+  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.ProvideParamCustomRequest)
+}
+ProvideParamCustomRequest::ProvideParamCustomRequest(const ProvideParamCustomRequest& from)
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  ProvideParamCustomRequest* const _this = this; (void)_this;
+  new (&_impl_) Impl_{
+      decltype(_impl_.name_) {}
+
+    , decltype(_impl_.value_) {}
+
+    , /*decltype(_impl_._cached_size_)*/{}};
 
   _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   _impl_.name_.InitDefault();
@@ -2555,24 +4089,37 @@ RetrieveParamCustomRequest::RetrieveParamCustomRequest(const RetrieveParamCustom
   if (!from._internal_name().empty()) {
     _this->_impl_.name_.Set(from._internal_name(), _this->GetArenaForAllocation());
   }
-  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+  _impl_.value_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        _impl_.value_.Set("", GetArenaForAllocation());
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  if (!from._internal_value().empty()) {
+    _this->_impl_.value_.Set(from._internal_value(), _this->GetArenaForAllocation());
+  }
+  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.ProvideParamCustomRequest)
 }
 
-inline void RetrieveParamCustomRequest::SharedCtor(::_pb::Arena* arena) {
+inline void ProvideParamCustomRequest::SharedCtor(::_pb::Arena* arena) {
   (void)arena;
   new (&_impl_) Impl_{
       decltype(_impl_.name_) {}
 
+    , decltype(_impl_.value_) {}
+
     , /*decltype(_impl_._cached_size_)*/{}
   };
   _impl_.name_.InitDefault();
   #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
         _impl_.name_.Set("", GetArenaForAllocation());
   #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  _impl_.value_.InitDefault();
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        _impl_.value_.Set("", GetArenaForAllocation());
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 }
 
-RetrieveParamCustomRequest::~RetrieveParamCustomRequest() {
-  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+ProvideParamCustomRequest::~ProvideParamCustomRequest() {
+  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.ProvideParamCustomRequest)
   if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
   (void)arena;
     return;
@@ -2580,26 +4127,28 @@ RetrieveParamCustomRequest::~RetrieveParamCustomRequest() {
   SharedDtor();
 }
 
-inline void RetrieveParamCustomRequest::SharedDtor() {
+inline void ProvideParamCustomRequest::SharedDtor() {
   ABSL_DCHECK(GetArenaForAllocation() == nullptr);
   _impl_.name_.Destroy();
+  _impl_.value_.Destroy();
 }
 
-void RetrieveParamCustomRequest::SetCachedSize(int size) const {
+void ProvideParamCustomRequest::SetCachedSize(int size) const {
   _impl_._cached_size_.Set(size);
 }
 
-void RetrieveParamCustomRequest::Clear() {
-// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+void ProvideParamCustomRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.ProvideParamCustomRequest)
   ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
   _impl_.name_.ClearToEmpty();
+  _impl_.value_.ClearToEmpty();
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
-const char* RetrieveParamCustomRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+const char* ProvideParamCustomRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
   while (!ctx->Done(&ptr)) {
     ::uint32_t tag;
@@ -2611,7 +4160,18 @@ const char* RetrieveParamCustomRequest::_InternalParse(const char* ptr, ::_pbi::
           auto str = _internal_mutable_name();
           ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
           CHK_(ptr);
-          CHK_(::_pbi::VerifyUTF8(str, "mavsdk.rpc.param_server.RetrieveParamCustomRequest.name"));
+          CHK_(::_pbi::VerifyUTF8(str, "mavsdk.rpc.param_server.ProvideParamCustomRequest.name"));
+        } else {
+          goto handle_unusual;
+        }
+        continue;
+      // string value = 2;
+      case 2:
+        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
+          auto str = _internal_mutable_value();
+          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(ptr);
+          CHK_(::_pbi::VerifyUTF8(str, "mavsdk.rpc.param_server.ProvideParamCustomRequest.value"));
         } else {
           goto handle_unusual;
         }
@@ -2639,9 +4199,9 @@ const char* RetrieveParamCustomRequest::_InternalParse(const char* ptr, ::_pbi::
 #undef CHK_
 }
 
-::uint8_t* RetrieveParamCustomRequest::_InternalSerialize(
+::uint8_t* ProvideParamCustomRequest::_InternalSerialize(
     ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.ProvideParamCustomRequest)
   ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
 
@@ -2649,20 +4209,28 @@ ::uint8_t* RetrieveParamCustomRequest::_InternalSerialize(
   if (!this->_internal_name().empty()) {
     const std::string& _s = this->_internal_name();
     ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "mavsdk.rpc.param_server.RetrieveParamCustomRequest.name");
-    target = stream->WriteStringMaybeAliased(1, _s, target);
+        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "mavsdk.rpc.param_server.ProvideParamCustomRequest.name");
+    target = stream->WriteStringMaybeAliased(1, _s, target);
+  }
+
+  // string value = 2;
+  if (!this->_internal_value().empty()) {
+    const std::string& _s = this->_internal_value();
+    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "mavsdk.rpc.param_server.ProvideParamCustomRequest.value");
+    target = stream->WriteStringMaybeAliased(2, _s, target);
   }
 
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
     target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
         _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
   }
-  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.ProvideParamCustomRequest)
   return target;
 }
 
-::size_t RetrieveParamCustomRequest::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+::size_t ProvideParamCustomRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.ProvideParamCustomRequest)
   ::size_t total_size = 0;
 
   ::uint32_t cached_has_bits = 0;
@@ -2675,20 +4243,26 @@ ::size_t RetrieveParamCustomRequest::ByteSizeLong() const {
                                     this->_internal_name());
   }
 
+  // string value = 2;
+  if (!this->_internal_value().empty()) {
+    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+                                    this->_internal_value());
+  }
+
   return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
 }
 
-const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RetrieveParamCustomRequest::_class_data_ = {
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ProvideParamCustomRequest::_class_data_ = {
     ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
-    RetrieveParamCustomRequest::MergeImpl
+    ProvideParamCustomRequest::MergeImpl
 };
-const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RetrieveParamCustomRequest::GetClassData() const { return &_class_data_; }
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ProvideParamCustomRequest::GetClassData() const { return &_class_data_; }
 
 
-void RetrieveParamCustomRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
-  auto* const _this = static_cast<RetrieveParamCustomRequest*>(&to_msg);
-  auto& from = static_cast<const RetrieveParamCustomRequest&>(from_msg);
-  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+void ProvideParamCustomRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
+  auto* const _this = static_cast<ProvideParamCustomRequest*>(&to_msg);
+  auto& from = static_cast<const ProvideParamCustomRequest&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.ProvideParamCustomRequest)
   ABSL_DCHECK_NE(&from, _this);
   ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
@@ -2696,97 +4270,87 @@ void RetrieveParamCustomRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_
   if (!from._internal_name().empty()) {
     _this->_internal_set_name(from._internal_name());
   }
+  if (!from._internal_value().empty()) {
+    _this->_internal_set_value(from._internal_value());
+  }
   _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
 }
 
-void RetrieveParamCustomRequest::CopyFrom(const RetrieveParamCustomRequest& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+void ProvideParamCustomRequest::CopyFrom(const ProvideParamCustomRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.ProvideParamCustomRequest)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
-bool RetrieveParamCustomRequest::IsInitialized() const {
+bool ProvideParamCustomRequest::IsInitialized() const {
   return true;
 }
 
-void RetrieveParamCustomRequest::InternalSwap(RetrieveParamCustomRequest* other) {
+void ProvideParamCustomRequest::InternalSwap(ProvideParamCustomRequest* other) {
   using std::swap;
   auto* lhs_arena = GetArenaForAllocation();
   auto* rhs_arena = other->GetArenaForAllocation();
   _internal_metadata_.InternalSwap(&other->_internal_metadata_);
   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, lhs_arena,
                                        &other->_impl_.name_, rhs_arena);
+  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.value_, lhs_arena,
+                                       &other->_impl_.value_, rhs_arena);
 }
 
-::PROTOBUF_NAMESPACE_ID::Metadata RetrieveParamCustomRequest::GetMetadata() const {
+::PROTOBUF_NAMESPACE_ID::Metadata ProvideParamCustomRequest::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
       &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
-      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[8]);
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[14]);
 }
 // ===================================================================
 
-class RetrieveParamCustomResponse::_Internal {
+class ProvideParamCustomResponse::_Internal {
  public:
-  using HasBits = decltype(std::declval<RetrieveParamCustomResponse>()._impl_._has_bits_);
+  using HasBits = decltype(std::declval<ProvideParamCustomResponse>()._impl_._has_bits_);
   static constexpr ::int32_t kHasBitsOffset =
-    8 * PROTOBUF_FIELD_OFFSET(RetrieveParamCustomResponse, _impl_._has_bits_);
-  static const ::mavsdk::rpc::param_server::ParamServerResult& param_server_result(const RetrieveParamCustomResponse* msg);
+    8 * PROTOBUF_FIELD_OFFSET(ProvideParamCustomResponse, _impl_._has_bits_);
+  static const ::mavsdk::rpc::param_server::ParamServerResult& param_server_result(const ProvideParamCustomResponse* msg);
   static void set_has_param_server_result(HasBits* has_bits) {
     (*has_bits)[0] |= 1u;
   }
 };
 
 const ::mavsdk::rpc::param_server::ParamServerResult&
-RetrieveParamCustomResponse::_Internal::param_server_result(const RetrieveParamCustomResponse* msg) {
+ProvideParamCustomResponse::_Internal::param_server_result(const ProvideParamCustomResponse* msg) {
   return *msg->_impl_.param_server_result_;
 }
-RetrieveParamCustomResponse::RetrieveParamCustomResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+ProvideParamCustomResponse::ProvideParamCustomResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
   : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
   SharedCtor(arena);
-  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.ProvideParamCustomResponse)
 }
-RetrieveParamCustomResponse::RetrieveParamCustomResponse(const RetrieveParamCustomResponse& from)
+ProvideParamCustomResponse::ProvideParamCustomResponse(const ProvideParamCustomResponse& from)
   : ::PROTOBUF_NAMESPACE_ID::Message() {
-  RetrieveParamCustomResponse* const _this = this; (void)_this;
+  ProvideParamCustomResponse* const _this = this; (void)_this;
   new (&_impl_) Impl_{
       decltype(_impl_._has_bits_){from._impl_._has_bits_}
     , /*decltype(_impl_._cached_size_)*/{}
-    , decltype(_impl_.value_) {}
-
     , decltype(_impl_.param_server_result_){nullptr}};
 
   _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  _impl_.value_.InitDefault();
-  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
-        _impl_.value_.Set("", GetArenaForAllocation());
-  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
-  if (!from._internal_value().empty()) {
-    _this->_impl_.value_.Set(from._internal_value(), _this->GetArenaForAllocation());
-  }
   if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
     _this->_impl_.param_server_result_ = new ::mavsdk::rpc::param_server::ParamServerResult(*from._impl_.param_server_result_);
   }
-  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.ProvideParamCustomResponse)
 }
 
-inline void RetrieveParamCustomResponse::SharedCtor(::_pb::Arena* arena) {
+inline void ProvideParamCustomResponse::SharedCtor(::_pb::Arena* arena) {
   (void)arena;
   new (&_impl_) Impl_{
       decltype(_impl_._has_bits_){}
     , /*decltype(_impl_._cached_size_)*/{}
-    , decltype(_impl_.value_) {}
-
     , decltype(_impl_.param_server_result_){nullptr}
   };
-  _impl_.value_.InitDefault();
-  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
-        _impl_.value_.Set("", GetArenaForAllocation());
-  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 }
 
-RetrieveParamCustomResponse::~RetrieveParamCustomResponse() {
-  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+ProvideParamCustomResponse::~ProvideParamCustomResponse() {
+  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.ProvideParamCustomResponse)
   if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
   (void)arena;
     return;
@@ -2794,23 +4358,21 @@ RetrieveParamCustomResponse::~RetrieveParamCustomResponse() {
   SharedDtor();
 }
 
-inline void RetrieveParamCustomResponse::SharedDtor() {
+inline void ProvideParamCustomResponse::SharedDtor() {
   ABSL_DCHECK(GetArenaForAllocation() == nullptr);
-  _impl_.value_.Destroy();
   if (this != internal_default_instance()) delete _impl_.param_server_result_;
 }
 
-void RetrieveParamCustomResponse::SetCachedSize(int size) const {
+void ProvideParamCustomResponse::SetCachedSize(int size) const {
   _impl_._cached_size_.Set(size);
 }
 
-void RetrieveParamCustomResponse::Clear() {
-// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+void ProvideParamCustomResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.ProvideParamCustomResponse)
   ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  _impl_.value_.ClearToEmpty();
   cached_has_bits = _impl_._has_bits_[0];
   if (cached_has_bits & 0x00000001u) {
     ABSL_DCHECK(_impl_.param_server_result_ != nullptr);
@@ -2820,7 +4382,7 @@ void RetrieveParamCustomResponse::Clear() {
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
-const char* RetrieveParamCustomResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+const char* ProvideParamCustomResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
   _Internal::HasBits has_bits{};
   while (!ctx->Done(&ptr)) {
@@ -2836,17 +4398,6 @@ const char* RetrieveParamCustomResponse::_InternalParse(const char* ptr, ::_pbi:
           goto handle_unusual;
         }
         continue;
-      // string value = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::uint8_t>(tag) == 18)) {
-          auto str = _internal_mutable_value();
-          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-          CHK_(::_pbi::VerifyUTF8(str, "mavsdk.rpc.param_server.RetrieveParamCustomResponse.value"));
-        } else {
-          goto handle_unusual;
-        }
-        continue;
       default:
         goto handle_unusual;
     }  // switch
@@ -2871,9 +4422,9 @@ const char* RetrieveParamCustomResponse::_InternalParse(const char* ptr, ::_pbi:
 #undef CHK_
 }
 
-::uint8_t* RetrieveParamCustomResponse::_InternalSerialize(
+::uint8_t* ProvideParamCustomResponse::_InternalSerialize(
     ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.ProvideParamCustomResponse)
   ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
 
@@ -2885,36 +4436,22 @@ ::uint8_t* RetrieveParamCustomResponse::_InternalSerialize(
         _Internal::param_server_result(this).GetCachedSize(), target, stream);
   }
 
-  // string value = 2;
-  if (!this->_internal_value().empty()) {
-    const std::string& _s = this->_internal_value();
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "mavsdk.rpc.param_server.RetrieveParamCustomResponse.value");
-    target = stream->WriteStringMaybeAliased(2, _s, target);
-  }
-
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
     target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
         _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
   }
-  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.ProvideParamCustomResponse)
   return target;
 }
 
-::size_t RetrieveParamCustomResponse::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+::size_t ProvideParamCustomResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.ProvideParamCustomResponse)
   ::size_t total_size = 0;
 
   ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  // string value = 2;
-  if (!this->_internal_value().empty()) {
-    total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-                                    this->_internal_value());
-  }
-
   // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
   cached_has_bits = _impl_._has_bits_[0];
   if (cached_has_bits & 0x00000001u) {
@@ -2926,24 +4463,21 @@ ::size_t RetrieveParamCustomResponse::ByteSizeLong() const {
   return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
 }
 
-const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RetrieveParamCustomResponse::_class_data_ = {
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ProvideParamCustomResponse::_class_data_ = {
     ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
-    RetrieveParamCustomResponse::MergeImpl
+    ProvideParamCustomResponse::MergeImpl
 };
-const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RetrieveParamCustomResponse::GetClassData() const { return &_class_data_; }
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ProvideParamCustomResponse::GetClassData() const { return &_class_data_; }
 
 
-void RetrieveParamCustomResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
-  auto* const _this = static_cast<RetrieveParamCustomResponse*>(&to_msg);
-  auto& from = static_cast<const RetrieveParamCustomResponse&>(from_msg);
-  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+void ProvideParamCustomResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
+  auto* const _this = static_cast<ProvideParamCustomResponse*>(&to_msg);
+  auto& from = static_cast<const ProvideParamCustomResponse&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.ProvideParamCustomResponse)
   ABSL_DCHECK_NE(&from, _this);
   ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
 
-  if (!from._internal_value().empty()) {
-    _this->_internal_set_value(from._internal_value());
-  }
   if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
     _this->_internal_mutable_param_server_result()->::mavsdk::rpc::param_server::ParamServerResult::MergeFrom(
         from._internal_param_server_result());
@@ -2951,47 +4485,43 @@ void RetrieveParamCustomResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to
   _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
 }
 
-void RetrieveParamCustomResponse::CopyFrom(const RetrieveParamCustomResponse& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+void ProvideParamCustomResponse::CopyFrom(const ProvideParamCustomResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.ProvideParamCustomResponse)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
-bool RetrieveParamCustomResponse::IsInitialized() const {
+bool ProvideParamCustomResponse::IsInitialized() const {
   return true;
 }
 
-void RetrieveParamCustomResponse::InternalSwap(RetrieveParamCustomResponse* other) {
+void ProvideParamCustomResponse::InternalSwap(ProvideParamCustomResponse* other) {
   using std::swap;
-  auto* lhs_arena = GetArenaForAllocation();
-  auto* rhs_arena = other->GetArenaForAllocation();
   _internal_metadata_.InternalSwap(&other->_internal_metadata_);
   swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
-  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.value_, lhs_arena,
-                                       &other->_impl_.value_, rhs_arena);
   swap(_impl_.param_server_result_, other->_impl_.param_server_result_);
 }
 
-::PROTOBUF_NAMESPACE_ID::Metadata RetrieveParamCustomResponse::GetMetadata() const {
+::PROTOBUF_NAMESPACE_ID::Metadata ProvideParamCustomResponse::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
       &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
-      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[9]);
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[15]);
 }
 // ===================================================================
 
-class ProvideParamCustomRequest::_Internal {
+class ChangeParamCustomRequest::_Internal {
  public:
 };
 
-ProvideParamCustomRequest::ProvideParamCustomRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+ChangeParamCustomRequest::ChangeParamCustomRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
   : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
   SharedCtor(arena);
-  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.ProvideParamCustomRequest)
+  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.ChangeParamCustomRequest)
 }
-ProvideParamCustomRequest::ProvideParamCustomRequest(const ProvideParamCustomRequest& from)
+ChangeParamCustomRequest::ChangeParamCustomRequest(const ChangeParamCustomRequest& from)
   : ::PROTOBUF_NAMESPACE_ID::Message() {
-  ProvideParamCustomRequest* const _this = this; (void)_this;
+  ChangeParamCustomRequest* const _this = this; (void)_this;
   new (&_impl_) Impl_{
       decltype(_impl_.name_) {}
 
@@ -3014,10 +4544,10 @@ ProvideParamCustomRequest::ProvideParamCustomRequest(const ProvideParamCustomReq
   if (!from._internal_value().empty()) {
     _this->_impl_.value_.Set(from._internal_value(), _this->GetArenaForAllocation());
   }
-  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.ProvideParamCustomRequest)
+  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.ChangeParamCustomRequest)
 }
 
-inline void ProvideParamCustomRequest::SharedCtor(::_pb::Arena* arena) {
+inline void ChangeParamCustomRequest::SharedCtor(::_pb::Arena* arena) {
   (void)arena;
   new (&_impl_) Impl_{
       decltype(_impl_.name_) {}
@@ -3036,8 +4566,8 @@ inline void ProvideParamCustomRequest::SharedCtor(::_pb::Arena* arena) {
   #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
 }
 
-ProvideParamCustomRequest::~ProvideParamCustomRequest() {
-  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.ProvideParamCustomRequest)
+ChangeParamCustomRequest::~ChangeParamCustomRequest() {
+  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.ChangeParamCustomRequest)
   if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
   (void)arena;
     return;
@@ -3045,18 +4575,18 @@ ProvideParamCustomRequest::~ProvideParamCustomRequest() {
   SharedDtor();
 }
 
-inline void ProvideParamCustomRequest::SharedDtor() {
+inline void ChangeParamCustomRequest::SharedDtor() {
   ABSL_DCHECK(GetArenaForAllocation() == nullptr);
   _impl_.name_.Destroy();
   _impl_.value_.Destroy();
 }
 
-void ProvideParamCustomRequest::SetCachedSize(int size) const {
+void ChangeParamCustomRequest::SetCachedSize(int size) const {
   _impl_._cached_size_.Set(size);
 }
 
-void ProvideParamCustomRequest::Clear() {
-// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.ProvideParamCustomRequest)
+void ChangeParamCustomRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.ChangeParamCustomRequest)
   ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
@@ -3066,7 +4596,7 @@ void ProvideParamCustomRequest::Clear() {
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
-const char* ProvideParamCustomRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+const char* ChangeParamCustomRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
   while (!ctx->Done(&ptr)) {
     ::uint32_t tag;
@@ -3078,7 +4608,7 @@ const char* ProvideParamCustomRequest::_InternalParse(const char* ptr, ::_pbi::P
           auto str = _internal_mutable_name();
           ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
           CHK_(ptr);
-          CHK_(::_pbi::VerifyUTF8(str, "mavsdk.rpc.param_server.ProvideParamCustomRequest.name"));
+          CHK_(::_pbi::VerifyUTF8(str, "mavsdk.rpc.param_server.ChangeParamCustomRequest.name"));
         } else {
           goto handle_unusual;
         }
@@ -3089,7 +4619,7 @@ const char* ProvideParamCustomRequest::_InternalParse(const char* ptr, ::_pbi::P
           auto str = _internal_mutable_value();
           ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
           CHK_(ptr);
-          CHK_(::_pbi::VerifyUTF8(str, "mavsdk.rpc.param_server.ProvideParamCustomRequest.value"));
+          CHK_(::_pbi::VerifyUTF8(str, "mavsdk.rpc.param_server.ChangeParamCustomRequest.value"));
         } else {
           goto handle_unusual;
         }
@@ -3117,9 +4647,9 @@ const char* ProvideParamCustomRequest::_InternalParse(const char* ptr, ::_pbi::P
 #undef CHK_
 }
 
-::uint8_t* ProvideParamCustomRequest::_InternalSerialize(
+::uint8_t* ChangeParamCustomRequest::_InternalSerialize(
     ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.ProvideParamCustomRequest)
+  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.ChangeParamCustomRequest)
   ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
 
@@ -3127,7 +4657,7 @@ ::uint8_t* ProvideParamCustomRequest::_InternalSerialize(
   if (!this->_internal_name().empty()) {
     const std::string& _s = this->_internal_name();
     ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "mavsdk.rpc.param_server.ProvideParamCustomRequest.name");
+        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "mavsdk.rpc.param_server.ChangeParamCustomRequest.name");
     target = stream->WriteStringMaybeAliased(1, _s, target);
   }
 
@@ -3135,7 +4665,7 @@ ::uint8_t* ProvideParamCustomRequest::_InternalSerialize(
   if (!this->_internal_value().empty()) {
     const std::string& _s = this->_internal_value();
     ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "mavsdk.rpc.param_server.ProvideParamCustomRequest.value");
+        _s.data(), static_cast<int>(_s.length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "mavsdk.rpc.param_server.ChangeParamCustomRequest.value");
     target = stream->WriteStringMaybeAliased(2, _s, target);
   }
 
@@ -3143,12 +4673,12 @@ ::uint8_t* ProvideParamCustomRequest::_InternalSerialize(
     target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
         _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
   }
-  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.ProvideParamCustomRequest)
+  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.ChangeParamCustomRequest)
   return target;
 }
 
-::size_t ProvideParamCustomRequest::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.ProvideParamCustomRequest)
+::size_t ChangeParamCustomRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.ChangeParamCustomRequest)
   ::size_t total_size = 0;
 
   ::uint32_t cached_has_bits = 0;
@@ -3170,17 +4700,17 @@ ::size_t ProvideParamCustomRequest::ByteSizeLong() const {
   return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
 }
 
-const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ProvideParamCustomRequest::_class_data_ = {
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ChangeParamCustomRequest::_class_data_ = {
     ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
-    ProvideParamCustomRequest::MergeImpl
+    ChangeParamCustomRequest::MergeImpl
 };
-const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ProvideParamCustomRequest::GetClassData() const { return &_class_data_; }
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ChangeParamCustomRequest::GetClassData() const { return &_class_data_; }
 
 
-void ProvideParamCustomRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
-  auto* const _this = static_cast<ProvideParamCustomRequest*>(&to_msg);
-  auto& from = static_cast<const ProvideParamCustomRequest&>(from_msg);
-  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.ProvideParamCustomRequest)
+void ChangeParamCustomRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
+  auto* const _this = static_cast<ChangeParamCustomRequest*>(&to_msg);
+  auto& from = static_cast<const ChangeParamCustomRequest&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.ChangeParamCustomRequest)
   ABSL_DCHECK_NE(&from, _this);
   ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
@@ -3194,18 +4724,18 @@ void ProvideParamCustomRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_m
   _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
 }
 
-void ProvideParamCustomRequest::CopyFrom(const ProvideParamCustomRequest& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.ProvideParamCustomRequest)
+void ChangeParamCustomRequest::CopyFrom(const ChangeParamCustomRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.ChangeParamCustomRequest)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
-bool ProvideParamCustomRequest::IsInitialized() const {
+bool ChangeParamCustomRequest::IsInitialized() const {
   return true;
 }
 
-void ProvideParamCustomRequest::InternalSwap(ProvideParamCustomRequest* other) {
+void ChangeParamCustomRequest::InternalSwap(ChangeParamCustomRequest* other) {
   using std::swap;
   auto* lhs_arena = GetArenaForAllocation();
   auto* rhs_arena = other->GetArenaForAllocation();
@@ -3216,36 +4746,36 @@ void ProvideParamCustomRequest::InternalSwap(ProvideParamCustomRequest* other) {
                                        &other->_impl_.value_, rhs_arena);
 }
 
-::PROTOBUF_NAMESPACE_ID::Metadata ProvideParamCustomRequest::GetMetadata() const {
+::PROTOBUF_NAMESPACE_ID::Metadata ChangeParamCustomRequest::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
       &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
-      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[10]);
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[16]);
 }
 // ===================================================================
 
-class ProvideParamCustomResponse::_Internal {
+class ChangeParamCustomResponse::_Internal {
  public:
-  using HasBits = decltype(std::declval<ProvideParamCustomResponse>()._impl_._has_bits_);
+  using HasBits = decltype(std::declval<ChangeParamCustomResponse>()._impl_._has_bits_);
   static constexpr ::int32_t kHasBitsOffset =
-    8 * PROTOBUF_FIELD_OFFSET(ProvideParamCustomResponse, _impl_._has_bits_);
-  static const ::mavsdk::rpc::param_server::ParamServerResult& param_server_result(const ProvideParamCustomResponse* msg);
+    8 * PROTOBUF_FIELD_OFFSET(ChangeParamCustomResponse, _impl_._has_bits_);
+  static const ::mavsdk::rpc::param_server::ParamServerResult& param_server_result(const ChangeParamCustomResponse* msg);
   static void set_has_param_server_result(HasBits* has_bits) {
     (*has_bits)[0] |= 1u;
   }
 };
 
 const ::mavsdk::rpc::param_server::ParamServerResult&
-ProvideParamCustomResponse::_Internal::param_server_result(const ProvideParamCustomResponse* msg) {
+ChangeParamCustomResponse::_Internal::param_server_result(const ChangeParamCustomResponse* msg) {
   return *msg->_impl_.param_server_result_;
 }
-ProvideParamCustomResponse::ProvideParamCustomResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+ChangeParamCustomResponse::ChangeParamCustomResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
   : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
   SharedCtor(arena);
-  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.ProvideParamCustomResponse)
+  // @@protoc_insertion_point(arena_constructor:mavsdk.rpc.param_server.ChangeParamCustomResponse)
 }
-ProvideParamCustomResponse::ProvideParamCustomResponse(const ProvideParamCustomResponse& from)
+ChangeParamCustomResponse::ChangeParamCustomResponse(const ChangeParamCustomResponse& from)
   : ::PROTOBUF_NAMESPACE_ID::Message() {
-  ProvideParamCustomResponse* const _this = this; (void)_this;
+  ChangeParamCustomResponse* const _this = this; (void)_this;
   new (&_impl_) Impl_{
       decltype(_impl_._has_bits_){from._impl_._has_bits_}
     , /*decltype(_impl_._cached_size_)*/{}
@@ -3255,10 +4785,10 @@ ProvideParamCustomResponse::ProvideParamCustomResponse(const ProvideParamCustomR
   if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
     _this->_impl_.param_server_result_ = new ::mavsdk::rpc::param_server::ParamServerResult(*from._impl_.param_server_result_);
   }
-  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.ProvideParamCustomResponse)
+  // @@protoc_insertion_point(copy_constructor:mavsdk.rpc.param_server.ChangeParamCustomResponse)
 }
 
-inline void ProvideParamCustomResponse::SharedCtor(::_pb::Arena* arena) {
+inline void ChangeParamCustomResponse::SharedCtor(::_pb::Arena* arena) {
   (void)arena;
   new (&_impl_) Impl_{
       decltype(_impl_._has_bits_){}
@@ -3267,8 +4797,8 @@ inline void ProvideParamCustomResponse::SharedCtor(::_pb::Arena* arena) {
   };
 }
 
-ProvideParamCustomResponse::~ProvideParamCustomResponse() {
-  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.ProvideParamCustomResponse)
+ChangeParamCustomResponse::~ChangeParamCustomResponse() {
+  // @@protoc_insertion_point(destructor:mavsdk.rpc.param_server.ChangeParamCustomResponse)
   if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
   (void)arena;
     return;
@@ -3276,17 +4806,17 @@ ProvideParamCustomResponse::~ProvideParamCustomResponse() {
   SharedDtor();
 }
 
-inline void ProvideParamCustomResponse::SharedDtor() {
+inline void ChangeParamCustomResponse::SharedDtor() {
   ABSL_DCHECK(GetArenaForAllocation() == nullptr);
   if (this != internal_default_instance()) delete _impl_.param_server_result_;
 }
 
-void ProvideParamCustomResponse::SetCachedSize(int size) const {
+void ChangeParamCustomResponse::SetCachedSize(int size) const {
   _impl_._cached_size_.Set(size);
 }
 
-void ProvideParamCustomResponse::Clear() {
-// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.ProvideParamCustomResponse)
+void ChangeParamCustomResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:mavsdk.rpc.param_server.ChangeParamCustomResponse)
   ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
@@ -3300,7 +4830,7 @@ void ProvideParamCustomResponse::Clear() {
   _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
-const char* ProvideParamCustomResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
+const char* ChangeParamCustomResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
   _Internal::HasBits has_bits{};
   while (!ctx->Done(&ptr)) {
@@ -3340,9 +4870,9 @@ const char* ProvideParamCustomResponse::_InternalParse(const char* ptr, ::_pbi::
 #undef CHK_
 }
 
-::uint8_t* ProvideParamCustomResponse::_InternalSerialize(
+::uint8_t* ChangeParamCustomResponse::_InternalSerialize(
     ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.ProvideParamCustomResponse)
+  // @@protoc_insertion_point(serialize_to_array_start:mavsdk.rpc.param_server.ChangeParamCustomResponse)
   ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
 
@@ -3358,12 +4888,12 @@ ::uint8_t* ProvideParamCustomResponse::_InternalSerialize(
     target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
         _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
   }
-  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.ProvideParamCustomResponse)
+  // @@protoc_insertion_point(serialize_to_array_end:mavsdk.rpc.param_server.ChangeParamCustomResponse)
   return target;
 }
 
-::size_t ProvideParamCustomResponse::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.ProvideParamCustomResponse)
+::size_t ChangeParamCustomResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:mavsdk.rpc.param_server.ChangeParamCustomResponse)
   ::size_t total_size = 0;
 
   ::uint32_t cached_has_bits = 0;
@@ -3381,17 +4911,17 @@ ::size_t ProvideParamCustomResponse::ByteSizeLong() const {
   return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
 }
 
-const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ProvideParamCustomResponse::_class_data_ = {
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ChangeParamCustomResponse::_class_data_ = {
     ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
-    ProvideParamCustomResponse::MergeImpl
+    ChangeParamCustomResponse::MergeImpl
 };
-const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ProvideParamCustomResponse::GetClassData() const { return &_class_data_; }
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ChangeParamCustomResponse::GetClassData() const { return &_class_data_; }
 
 
-void ProvideParamCustomResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
-  auto* const _this = static_cast<ProvideParamCustomResponse*>(&to_msg);
-  auto& from = static_cast<const ProvideParamCustomResponse&>(from_msg);
-  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.ProvideParamCustomResponse)
+void ChangeParamCustomResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
+  auto* const _this = static_cast<ChangeParamCustomResponse*>(&to_msg);
+  auto& from = static_cast<const ChangeParamCustomResponse&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:mavsdk.rpc.param_server.ChangeParamCustomResponse)
   ABSL_DCHECK_NE(&from, _this);
   ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
@@ -3403,28 +4933,28 @@ void ProvideParamCustomResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_
   _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
 }
 
-void ProvideParamCustomResponse::CopyFrom(const ProvideParamCustomResponse& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.ProvideParamCustomResponse)
+void ChangeParamCustomResponse::CopyFrom(const ChangeParamCustomResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:mavsdk.rpc.param_server.ChangeParamCustomResponse)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
-bool ProvideParamCustomResponse::IsInitialized() const {
+bool ChangeParamCustomResponse::IsInitialized() const {
   return true;
 }
 
-void ProvideParamCustomResponse::InternalSwap(ProvideParamCustomResponse* other) {
+void ChangeParamCustomResponse::InternalSwap(ChangeParamCustomResponse* other) {
   using std::swap;
   _internal_metadata_.InternalSwap(&other->_internal_metadata_);
   swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
   swap(_impl_.param_server_result_, other->_impl_.param_server_result_);
 }
 
-::PROTOBUF_NAMESPACE_ID::Metadata ProvideParamCustomResponse::GetMetadata() const {
+::PROTOBUF_NAMESPACE_ID::Metadata ChangeParamCustomResponse::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
       &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
-      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[11]);
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[17]);
 }
 // ===================================================================
 
@@ -3462,7 +4992,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RetrieveAllParamsRequest::GetC
 ::PROTOBUF_NAMESPACE_ID::Metadata RetrieveAllParamsRequest::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
       &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
-      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[12]);
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[18]);
 }
 // ===================================================================
 
@@ -3667,7 +5197,7 @@ void RetrieveAllParamsResponse::InternalSwap(RetrieveAllParamsResponse* other) {
 ::PROTOBUF_NAMESPACE_ID::Metadata RetrieveAllParamsResponse::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
       &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
-      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[13]);
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[19]);
 }
 // ===================================================================
 
@@ -3896,7 +5426,7 @@ void IntParam::InternalSwap(IntParam* other) {
 ::PROTOBUF_NAMESPACE_ID::Metadata IntParam::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
       &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
-      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[14]);
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[20]);
 }
 // ===================================================================
 
@@ -4136,7 +5666,7 @@ void FloatParam::InternalSwap(FloatParam* other) {
 ::PROTOBUF_NAMESPACE_ID::Metadata FloatParam::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
       &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
-      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[15]);
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[21]);
 }
 // ===================================================================
 
@@ -4379,7 +5909,7 @@ void CustomParam::InternalSwap(CustomParam* other) {
 ::PROTOBUF_NAMESPACE_ID::Metadata CustomParam::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
       &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
-      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[16]);
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[22]);
 }
 // ===================================================================
 
@@ -4631,7 +6161,7 @@ void AllParams::InternalSwap(AllParams* other) {
 ::PROTOBUF_NAMESPACE_ID::Metadata AllParams::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
       &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
-      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[17]);
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[23]);
 }
 // ===================================================================
 
@@ -4860,7 +6390,7 @@ void ParamServerResult::InternalSwap(ParamServerResult* other) {
 ::PROTOBUF_NAMESPACE_ID::Metadata ParamServerResult::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
       &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_getter, &descriptor_table_param_5fserver_2fparam_5fserver_2eproto_once,
-      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[18]);
+      file_level_metadata_param_5fserver_2fparam_5fserver_2eproto[24]);
 }
 // @@protoc_insertion_point(namespace_scope)
 }  // namespace param_server
@@ -4883,6 +6413,14 @@ template<> PROTOBUF_NOINLINE ::mavsdk::rpc::param_server::ProvideParamIntRespons
 Arena::CreateMaybeMessage< ::mavsdk::rpc::param_server::ProvideParamIntResponse >(Arena* arena) {
   return Arena::CreateMessageInternal< ::mavsdk::rpc::param_server::ProvideParamIntResponse >(arena);
 }
+template<> PROTOBUF_NOINLINE ::mavsdk::rpc::param_server::ChangeParamIntRequest*
+Arena::CreateMaybeMessage< ::mavsdk::rpc::param_server::ChangeParamIntRequest >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::mavsdk::rpc::param_server::ChangeParamIntRequest >(arena);
+}
+template<> PROTOBUF_NOINLINE ::mavsdk::rpc::param_server::ChangeParamIntResponse*
+Arena::CreateMaybeMessage< ::mavsdk::rpc::param_server::ChangeParamIntResponse >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::mavsdk::rpc::param_server::ChangeParamIntResponse >(arena);
+}
 template<> PROTOBUF_NOINLINE ::mavsdk::rpc::param_server::RetrieveParamFloatRequest*
 Arena::CreateMaybeMessage< ::mavsdk::rpc::param_server::RetrieveParamFloatRequest >(Arena* arena) {
   return Arena::CreateMessageInternal< ::mavsdk::rpc::param_server::RetrieveParamFloatRequest >(arena);
@@ -4899,6 +6437,14 @@ template<> PROTOBUF_NOINLINE ::mavsdk::rpc::param_server::ProvideParamFloatRespo
 Arena::CreateMaybeMessage< ::mavsdk::rpc::param_server::ProvideParamFloatResponse >(Arena* arena) {
   return Arena::CreateMessageInternal< ::mavsdk::rpc::param_server::ProvideParamFloatResponse >(arena);
 }
+template<> PROTOBUF_NOINLINE ::mavsdk::rpc::param_server::ChangeParamFloatRequest*
+Arena::CreateMaybeMessage< ::mavsdk::rpc::param_server::ChangeParamFloatRequest >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::mavsdk::rpc::param_server::ChangeParamFloatRequest >(arena);
+}
+template<> PROTOBUF_NOINLINE ::mavsdk::rpc::param_server::ChangeParamFloatResponse*
+Arena::CreateMaybeMessage< ::mavsdk::rpc::param_server::ChangeParamFloatResponse >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::mavsdk::rpc::param_server::ChangeParamFloatResponse >(arena);
+}
 template<> PROTOBUF_NOINLINE ::mavsdk::rpc::param_server::RetrieveParamCustomRequest*
 Arena::CreateMaybeMessage< ::mavsdk::rpc::param_server::RetrieveParamCustomRequest >(Arena* arena) {
   return Arena::CreateMessageInternal< ::mavsdk::rpc::param_server::RetrieveParamCustomRequest >(arena);
@@ -4915,6 +6461,14 @@ template<> PROTOBUF_NOINLINE ::mavsdk::rpc::param_server::ProvideParamCustomResp
 Arena::CreateMaybeMessage< ::mavsdk::rpc::param_server::ProvideParamCustomResponse >(Arena* arena) {
   return Arena::CreateMessageInternal< ::mavsdk::rpc::param_server::ProvideParamCustomResponse >(arena);
 }
+template<> PROTOBUF_NOINLINE ::mavsdk::rpc::param_server::ChangeParamCustomRequest*
+Arena::CreateMaybeMessage< ::mavsdk::rpc::param_server::ChangeParamCustomRequest >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::mavsdk::rpc::param_server::ChangeParamCustomRequest >(arena);
+}
+template<> PROTOBUF_NOINLINE ::mavsdk::rpc::param_server::ChangeParamCustomResponse*
+Arena::CreateMaybeMessage< ::mavsdk::rpc::param_server::ChangeParamCustomResponse >(Arena* arena) {
+  return Arena::CreateMessageInternal< ::mavsdk::rpc::param_server::ChangeParamCustomResponse >(arena);
+}
 template<> PROTOBUF_NOINLINE ::mavsdk::rpc::param_server::RetrieveAllParamsRequest*
 Arena::CreateMaybeMessage< ::mavsdk::rpc::param_server::RetrieveAllParamsRequest >(Arena* arena) {
   return Arena::CreateMessageInternal< ::mavsdk::rpc::param_server::RetrieveAllParamsRequest >(arena);
diff --git a/src/mavsdk_server/src/generated/param_server/param_server.pb.h b/src/mavsdk_server/src/generated/param_server/param_server.pb.h
index 258c210955..63795f6ee2 100644
--- a/src/mavsdk_server/src/generated/param_server/param_server.pb.h
+++ b/src/mavsdk_server/src/generated/param_server/param_server.pb.h
@@ -59,6 +59,24 @@ namespace param_server {
 class AllParams;
 struct AllParamsDefaultTypeInternal;
 extern AllParamsDefaultTypeInternal _AllParams_default_instance_;
+class ChangeParamCustomRequest;
+struct ChangeParamCustomRequestDefaultTypeInternal;
+extern ChangeParamCustomRequestDefaultTypeInternal _ChangeParamCustomRequest_default_instance_;
+class ChangeParamCustomResponse;
+struct ChangeParamCustomResponseDefaultTypeInternal;
+extern ChangeParamCustomResponseDefaultTypeInternal _ChangeParamCustomResponse_default_instance_;
+class ChangeParamFloatRequest;
+struct ChangeParamFloatRequestDefaultTypeInternal;
+extern ChangeParamFloatRequestDefaultTypeInternal _ChangeParamFloatRequest_default_instance_;
+class ChangeParamFloatResponse;
+struct ChangeParamFloatResponseDefaultTypeInternal;
+extern ChangeParamFloatResponseDefaultTypeInternal _ChangeParamFloatResponse_default_instance_;
+class ChangeParamIntRequest;
+struct ChangeParamIntRequestDefaultTypeInternal;
+extern ChangeParamIntRequestDefaultTypeInternal _ChangeParamIntRequest_default_instance_;
+class ChangeParamIntResponse;
+struct ChangeParamIntResponseDefaultTypeInternal;
+extern ChangeParamIntResponseDefaultTypeInternal _ChangeParamIntResponse_default_instance_;
 class CustomParam;
 struct CustomParamDefaultTypeInternal;
 extern CustomParamDefaultTypeInternal _CustomParam_default_instance_;
@@ -120,6 +138,18 @@ PROTOBUF_NAMESPACE_OPEN
 template <>
 ::mavsdk::rpc::param_server::AllParams* Arena::CreateMaybeMessage<::mavsdk::rpc::param_server::AllParams>(Arena*);
 template <>
+::mavsdk::rpc::param_server::ChangeParamCustomRequest* Arena::CreateMaybeMessage<::mavsdk::rpc::param_server::ChangeParamCustomRequest>(Arena*);
+template <>
+::mavsdk::rpc::param_server::ChangeParamCustomResponse* Arena::CreateMaybeMessage<::mavsdk::rpc::param_server::ChangeParamCustomResponse>(Arena*);
+template <>
+::mavsdk::rpc::param_server::ChangeParamFloatRequest* Arena::CreateMaybeMessage<::mavsdk::rpc::param_server::ChangeParamFloatRequest>(Arena*);
+template <>
+::mavsdk::rpc::param_server::ChangeParamFloatResponse* Arena::CreateMaybeMessage<::mavsdk::rpc::param_server::ChangeParamFloatResponse>(Arena*);
+template <>
+::mavsdk::rpc::param_server::ChangeParamIntRequest* Arena::CreateMaybeMessage<::mavsdk::rpc::param_server::ChangeParamIntRequest>(Arena*);
+template <>
+::mavsdk::rpc::param_server::ChangeParamIntResponse* Arena::CreateMaybeMessage<::mavsdk::rpc::param_server::ChangeParamIntResponse>(Arena*);
+template <>
 ::mavsdk::rpc::param_server::CustomParam* Arena::CreateMaybeMessage<::mavsdk::rpc::param_server::CustomParam>(Arena*);
 template <>
 ::mavsdk::rpc::param_server::FloatParam* Arena::CreateMaybeMessage<::mavsdk::rpc::param_server::FloatParam>(Arena*);
@@ -877,25 +907,25 @@ class ProvideParamIntResponse final :
   friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
 };// -------------------------------------------------------------------
 
-class RetrieveParamFloatRequest final :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.RetrieveParamFloatRequest) */ {
+class ChangeParamIntRequest final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.ChangeParamIntRequest) */ {
  public:
-  inline RetrieveParamFloatRequest() : RetrieveParamFloatRequest(nullptr) {}
-  ~RetrieveParamFloatRequest() override;
+  inline ChangeParamIntRequest() : ChangeParamIntRequest(nullptr) {}
+  ~ChangeParamIntRequest() override;
   template<typename = void>
-  explicit PROTOBUF_CONSTEXPR RetrieveParamFloatRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+  explicit PROTOBUF_CONSTEXPR ChangeParamIntRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
-  RetrieveParamFloatRequest(const RetrieveParamFloatRequest& from);
-  RetrieveParamFloatRequest(RetrieveParamFloatRequest&& from) noexcept
-    : RetrieveParamFloatRequest() {
+  ChangeParamIntRequest(const ChangeParamIntRequest& from);
+  ChangeParamIntRequest(ChangeParamIntRequest&& from) noexcept
+    : ChangeParamIntRequest() {
     *this = ::std::move(from);
   }
 
-  inline RetrieveParamFloatRequest& operator=(const RetrieveParamFloatRequest& from) {
+  inline ChangeParamIntRequest& operator=(const ChangeParamIntRequest& from) {
     CopyFrom(from);
     return *this;
   }
-  inline RetrieveParamFloatRequest& operator=(RetrieveParamFloatRequest&& from) noexcept {
+  inline ChangeParamIntRequest& operator=(ChangeParamIntRequest&& from) noexcept {
     if (this == &from) return *this;
     if (GetOwningArena() == from.GetOwningArena()
   #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
@@ -925,20 +955,20 @@ class RetrieveParamFloatRequest final :
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
     return default_instance().GetMetadata().reflection;
   }
-  static const RetrieveParamFloatRequest& default_instance() {
+  static const ChangeParamIntRequest& default_instance() {
     return *internal_default_instance();
   }
-  static inline const RetrieveParamFloatRequest* internal_default_instance() {
-    return reinterpret_cast<const RetrieveParamFloatRequest*>(
-               &_RetrieveParamFloatRequest_default_instance_);
+  static inline const ChangeParamIntRequest* internal_default_instance() {
+    return reinterpret_cast<const ChangeParamIntRequest*>(
+               &_ChangeParamIntRequest_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
     4;
 
-  friend void swap(RetrieveParamFloatRequest& a, RetrieveParamFloatRequest& b) {
+  friend void swap(ChangeParamIntRequest& a, ChangeParamIntRequest& b) {
     a.Swap(&b);
   }
-  inline void Swap(RetrieveParamFloatRequest* other) {
+  inline void Swap(ChangeParamIntRequest* other) {
     if (other == this) return;
   #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
     if (GetOwningArena() != nullptr &&
@@ -951,7 +981,7 @@ class RetrieveParamFloatRequest final :
       ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
     }
   }
-  void UnsafeArenaSwap(RetrieveParamFloatRequest* other) {
+  void UnsafeArenaSwap(ChangeParamIntRequest* other) {
     if (other == this) return;
     ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
@@ -959,14 +989,14 @@ class RetrieveParamFloatRequest final :
 
   // implements Message ----------------------------------------------
 
-  RetrieveParamFloatRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
-    return CreateMaybeMessage<RetrieveParamFloatRequest>(arena);
+  ChangeParamIntRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<ChangeParamIntRequest>(arena);
   }
   using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
-  void CopyFrom(const RetrieveParamFloatRequest& from);
+  void CopyFrom(const ChangeParamIntRequest& from);
   using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
-  void MergeFrom( const RetrieveParamFloatRequest& from) {
-    RetrieveParamFloatRequest::MergeImpl(*this, from);
+  void MergeFrom( const ChangeParamIntRequest& from) {
+    ChangeParamIntRequest::MergeImpl(*this, from);
   }
   private:
   static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
@@ -984,15 +1014,15 @@ class RetrieveParamFloatRequest final :
   void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   void SharedDtor();
   void SetCachedSize(int size) const final;
-  void InternalSwap(RetrieveParamFloatRequest* other);
+  void InternalSwap(ChangeParamIntRequest* other);
 
   private:
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::absl::string_view FullMessageName() {
-    return "mavsdk.rpc.param_server.RetrieveParamFloatRequest";
+    return "mavsdk.rpc.param_server.ChangeParamIntRequest";
   }
   protected:
-  explicit RetrieveParamFloatRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  explicit ChangeParamIntRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   static const ClassData _class_data_;
@@ -1006,6 +1036,7 @@ class RetrieveParamFloatRequest final :
 
   enum : int {
     kNameFieldNumber = 1,
+    kValueFieldNumber = 2,
   };
   // string name = 1;
   void clear_name() ;
@@ -1027,7 +1058,17 @@ class RetrieveParamFloatRequest final :
   std::string* _internal_mutable_name();
 
   public:
-  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
+  // int32 value = 2;
+  void clear_value() ;
+  ::int32_t value() const;
+  void set_value(::int32_t value);
+
+  private:
+  ::int32_t _internal_value() const;
+  void _internal_set_value(::int32_t value);
+
+  public:
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.ChangeParamIntRequest)
  private:
   class _Internal;
 
@@ -1036,31 +1077,32 @@ class RetrieveParamFloatRequest final :
   typedef void DestructorSkippable_;
   struct Impl_ {
     ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
+    ::int32_t value_;
     mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   };
   union { Impl_ _impl_; };
   friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
 };// -------------------------------------------------------------------
 
-class RetrieveParamFloatResponse final :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.RetrieveParamFloatResponse) */ {
+class ChangeParamIntResponse final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.ChangeParamIntResponse) */ {
  public:
-  inline RetrieveParamFloatResponse() : RetrieveParamFloatResponse(nullptr) {}
-  ~RetrieveParamFloatResponse() override;
+  inline ChangeParamIntResponse() : ChangeParamIntResponse(nullptr) {}
+  ~ChangeParamIntResponse() override;
   template<typename = void>
-  explicit PROTOBUF_CONSTEXPR RetrieveParamFloatResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+  explicit PROTOBUF_CONSTEXPR ChangeParamIntResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
-  RetrieveParamFloatResponse(const RetrieveParamFloatResponse& from);
-  RetrieveParamFloatResponse(RetrieveParamFloatResponse&& from) noexcept
-    : RetrieveParamFloatResponse() {
+  ChangeParamIntResponse(const ChangeParamIntResponse& from);
+  ChangeParamIntResponse(ChangeParamIntResponse&& from) noexcept
+    : ChangeParamIntResponse() {
     *this = ::std::move(from);
   }
 
-  inline RetrieveParamFloatResponse& operator=(const RetrieveParamFloatResponse& from) {
+  inline ChangeParamIntResponse& operator=(const ChangeParamIntResponse& from) {
     CopyFrom(from);
     return *this;
   }
-  inline RetrieveParamFloatResponse& operator=(RetrieveParamFloatResponse&& from) noexcept {
+  inline ChangeParamIntResponse& operator=(ChangeParamIntResponse&& from) noexcept {
     if (this == &from) return *this;
     if (GetOwningArena() == from.GetOwningArena()
   #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
@@ -1090,20 +1132,20 @@ class RetrieveParamFloatResponse final :
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
     return default_instance().GetMetadata().reflection;
   }
-  static const RetrieveParamFloatResponse& default_instance() {
+  static const ChangeParamIntResponse& default_instance() {
     return *internal_default_instance();
   }
-  static inline const RetrieveParamFloatResponse* internal_default_instance() {
-    return reinterpret_cast<const RetrieveParamFloatResponse*>(
-               &_RetrieveParamFloatResponse_default_instance_);
+  static inline const ChangeParamIntResponse* internal_default_instance() {
+    return reinterpret_cast<const ChangeParamIntResponse*>(
+               &_ChangeParamIntResponse_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
     5;
 
-  friend void swap(RetrieveParamFloatResponse& a, RetrieveParamFloatResponse& b) {
+  friend void swap(ChangeParamIntResponse& a, ChangeParamIntResponse& b) {
     a.Swap(&b);
   }
-  inline void Swap(RetrieveParamFloatResponse* other) {
+  inline void Swap(ChangeParamIntResponse* other) {
     if (other == this) return;
   #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
     if (GetOwningArena() != nullptr &&
@@ -1116,7 +1158,7 @@ class RetrieveParamFloatResponse final :
       ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
     }
   }
-  void UnsafeArenaSwap(RetrieveParamFloatResponse* other) {
+  void UnsafeArenaSwap(ChangeParamIntResponse* other) {
     if (other == this) return;
     ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
@@ -1124,14 +1166,14 @@ class RetrieveParamFloatResponse final :
 
   // implements Message ----------------------------------------------
 
-  RetrieveParamFloatResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
-    return CreateMaybeMessage<RetrieveParamFloatResponse>(arena);
+  ChangeParamIntResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<ChangeParamIntResponse>(arena);
   }
   using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
-  void CopyFrom(const RetrieveParamFloatResponse& from);
+  void CopyFrom(const ChangeParamIntResponse& from);
   using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
-  void MergeFrom( const RetrieveParamFloatResponse& from) {
-    RetrieveParamFloatResponse::MergeImpl(*this, from);
+  void MergeFrom( const ChangeParamIntResponse& from) {
+    ChangeParamIntResponse::MergeImpl(*this, from);
   }
   private:
   static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
@@ -1149,15 +1191,15 @@ class RetrieveParamFloatResponse final :
   void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   void SharedDtor();
   void SetCachedSize(int size) const final;
-  void InternalSwap(RetrieveParamFloatResponse* other);
+  void InternalSwap(ChangeParamIntResponse* other);
 
   private:
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::absl::string_view FullMessageName() {
-    return "mavsdk.rpc.param_server.RetrieveParamFloatResponse";
+    return "mavsdk.rpc.param_server.ChangeParamIntResponse";
   }
   protected:
-  explicit RetrieveParamFloatResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  explicit ChangeParamIntResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   static const ClassData _class_data_;
@@ -1171,7 +1213,6 @@ class RetrieveParamFloatResponse final :
 
   enum : int {
     kParamServerResultFieldNumber = 1,
-    kValueFieldNumber = 2,
   };
   // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
   bool has_param_server_result() const;
@@ -1187,17 +1228,7 @@ class RetrieveParamFloatResponse final :
   void unsafe_arena_set_allocated_param_server_result(
       ::mavsdk::rpc::param_server::ParamServerResult* param_server_result);
   ::mavsdk::rpc::param_server::ParamServerResult* unsafe_arena_release_param_server_result();
-  // float value = 2;
-  void clear_value() ;
-  float value() const;
-  void set_value(float value);
-
-  private:
-  float _internal_value() const;
-  void _internal_set_value(float value);
-
-  public:
-  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.ChangeParamIntResponse)
  private:
   class _Internal;
 
@@ -1208,31 +1239,30 @@ class RetrieveParamFloatResponse final :
     ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
     mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
     ::mavsdk::rpc::param_server::ParamServerResult* param_server_result_;
-    float value_;
   };
   union { Impl_ _impl_; };
   friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
 };// -------------------------------------------------------------------
 
-class ProvideParamFloatRequest final :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.ProvideParamFloatRequest) */ {
+class RetrieveParamFloatRequest final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.RetrieveParamFloatRequest) */ {
  public:
-  inline ProvideParamFloatRequest() : ProvideParamFloatRequest(nullptr) {}
-  ~ProvideParamFloatRequest() override;
+  inline RetrieveParamFloatRequest() : RetrieveParamFloatRequest(nullptr) {}
+  ~RetrieveParamFloatRequest() override;
   template<typename = void>
-  explicit PROTOBUF_CONSTEXPR ProvideParamFloatRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+  explicit PROTOBUF_CONSTEXPR RetrieveParamFloatRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
-  ProvideParamFloatRequest(const ProvideParamFloatRequest& from);
-  ProvideParamFloatRequest(ProvideParamFloatRequest&& from) noexcept
-    : ProvideParamFloatRequest() {
+  RetrieveParamFloatRequest(const RetrieveParamFloatRequest& from);
+  RetrieveParamFloatRequest(RetrieveParamFloatRequest&& from) noexcept
+    : RetrieveParamFloatRequest() {
     *this = ::std::move(from);
   }
 
-  inline ProvideParamFloatRequest& operator=(const ProvideParamFloatRequest& from) {
+  inline RetrieveParamFloatRequest& operator=(const RetrieveParamFloatRequest& from) {
     CopyFrom(from);
     return *this;
   }
-  inline ProvideParamFloatRequest& operator=(ProvideParamFloatRequest&& from) noexcept {
+  inline RetrieveParamFloatRequest& operator=(RetrieveParamFloatRequest&& from) noexcept {
     if (this == &from) return *this;
     if (GetOwningArena() == from.GetOwningArena()
   #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
@@ -1262,20 +1292,20 @@ class ProvideParamFloatRequest final :
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
     return default_instance().GetMetadata().reflection;
   }
-  static const ProvideParamFloatRequest& default_instance() {
+  static const RetrieveParamFloatRequest& default_instance() {
     return *internal_default_instance();
   }
-  static inline const ProvideParamFloatRequest* internal_default_instance() {
-    return reinterpret_cast<const ProvideParamFloatRequest*>(
-               &_ProvideParamFloatRequest_default_instance_);
+  static inline const RetrieveParamFloatRequest* internal_default_instance() {
+    return reinterpret_cast<const RetrieveParamFloatRequest*>(
+               &_RetrieveParamFloatRequest_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
     6;
 
-  friend void swap(ProvideParamFloatRequest& a, ProvideParamFloatRequest& b) {
+  friend void swap(RetrieveParamFloatRequest& a, RetrieveParamFloatRequest& b) {
     a.Swap(&b);
   }
-  inline void Swap(ProvideParamFloatRequest* other) {
+  inline void Swap(RetrieveParamFloatRequest* other) {
     if (other == this) return;
   #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
     if (GetOwningArena() != nullptr &&
@@ -1288,7 +1318,7 @@ class ProvideParamFloatRequest final :
       ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
     }
   }
-  void UnsafeArenaSwap(ProvideParamFloatRequest* other) {
+  void UnsafeArenaSwap(RetrieveParamFloatRequest* other) {
     if (other == this) return;
     ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
@@ -1296,14 +1326,14 @@ class ProvideParamFloatRequest final :
 
   // implements Message ----------------------------------------------
 
-  ProvideParamFloatRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
-    return CreateMaybeMessage<ProvideParamFloatRequest>(arena);
+  RetrieveParamFloatRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<RetrieveParamFloatRequest>(arena);
   }
   using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
-  void CopyFrom(const ProvideParamFloatRequest& from);
+  void CopyFrom(const RetrieveParamFloatRequest& from);
   using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
-  void MergeFrom( const ProvideParamFloatRequest& from) {
-    ProvideParamFloatRequest::MergeImpl(*this, from);
+  void MergeFrom( const RetrieveParamFloatRequest& from) {
+    RetrieveParamFloatRequest::MergeImpl(*this, from);
   }
   private:
   static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
@@ -1321,15 +1351,15 @@ class ProvideParamFloatRequest final :
   void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   void SharedDtor();
   void SetCachedSize(int size) const final;
-  void InternalSwap(ProvideParamFloatRequest* other);
+  void InternalSwap(RetrieveParamFloatRequest* other);
 
   private:
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::absl::string_view FullMessageName() {
-    return "mavsdk.rpc.param_server.ProvideParamFloatRequest";
+    return "mavsdk.rpc.param_server.RetrieveParamFloatRequest";
   }
   protected:
-  explicit ProvideParamFloatRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  explicit RetrieveParamFloatRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   static const ClassData _class_data_;
@@ -1343,7 +1373,6 @@ class ProvideParamFloatRequest final :
 
   enum : int {
     kNameFieldNumber = 1,
-    kValueFieldNumber = 2,
   };
   // string name = 1;
   void clear_name() ;
@@ -1365,17 +1394,7 @@ class ProvideParamFloatRequest final :
   std::string* _internal_mutable_name();
 
   public:
-  // float value = 2;
-  void clear_value() ;
-  float value() const;
-  void set_value(float value);
-
-  private:
-  float _internal_value() const;
-  void _internal_set_value(float value);
-
-  public:
-  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.ProvideParamFloatRequest)
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.RetrieveParamFloatRequest)
  private:
   class _Internal;
 
@@ -1384,32 +1403,31 @@ class ProvideParamFloatRequest final :
   typedef void DestructorSkippable_;
   struct Impl_ {
     ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
-    float value_;
     mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   };
   union { Impl_ _impl_; };
   friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
 };// -------------------------------------------------------------------
 
-class ProvideParamFloatResponse final :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.ProvideParamFloatResponse) */ {
+class RetrieveParamFloatResponse final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.RetrieveParamFloatResponse) */ {
  public:
-  inline ProvideParamFloatResponse() : ProvideParamFloatResponse(nullptr) {}
-  ~ProvideParamFloatResponse() override;
+  inline RetrieveParamFloatResponse() : RetrieveParamFloatResponse(nullptr) {}
+  ~RetrieveParamFloatResponse() override;
   template<typename = void>
-  explicit PROTOBUF_CONSTEXPR ProvideParamFloatResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+  explicit PROTOBUF_CONSTEXPR RetrieveParamFloatResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
-  ProvideParamFloatResponse(const ProvideParamFloatResponse& from);
-  ProvideParamFloatResponse(ProvideParamFloatResponse&& from) noexcept
-    : ProvideParamFloatResponse() {
+  RetrieveParamFloatResponse(const RetrieveParamFloatResponse& from);
+  RetrieveParamFloatResponse(RetrieveParamFloatResponse&& from) noexcept
+    : RetrieveParamFloatResponse() {
     *this = ::std::move(from);
   }
 
-  inline ProvideParamFloatResponse& operator=(const ProvideParamFloatResponse& from) {
+  inline RetrieveParamFloatResponse& operator=(const RetrieveParamFloatResponse& from) {
     CopyFrom(from);
     return *this;
   }
-  inline ProvideParamFloatResponse& operator=(ProvideParamFloatResponse&& from) noexcept {
+  inline RetrieveParamFloatResponse& operator=(RetrieveParamFloatResponse&& from) noexcept {
     if (this == &from) return *this;
     if (GetOwningArena() == from.GetOwningArena()
   #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
@@ -1439,20 +1457,20 @@ class ProvideParamFloatResponse final :
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
     return default_instance().GetMetadata().reflection;
   }
-  static const ProvideParamFloatResponse& default_instance() {
+  static const RetrieveParamFloatResponse& default_instance() {
     return *internal_default_instance();
   }
-  static inline const ProvideParamFloatResponse* internal_default_instance() {
-    return reinterpret_cast<const ProvideParamFloatResponse*>(
-               &_ProvideParamFloatResponse_default_instance_);
+  static inline const RetrieveParamFloatResponse* internal_default_instance() {
+    return reinterpret_cast<const RetrieveParamFloatResponse*>(
+               &_RetrieveParamFloatResponse_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
     7;
 
-  friend void swap(ProvideParamFloatResponse& a, ProvideParamFloatResponse& b) {
+  friend void swap(RetrieveParamFloatResponse& a, RetrieveParamFloatResponse& b) {
     a.Swap(&b);
   }
-  inline void Swap(ProvideParamFloatResponse* other) {
+  inline void Swap(RetrieveParamFloatResponse* other) {
     if (other == this) return;
   #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
     if (GetOwningArena() != nullptr &&
@@ -1465,7 +1483,7 @@ class ProvideParamFloatResponse final :
       ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
     }
   }
-  void UnsafeArenaSwap(ProvideParamFloatResponse* other) {
+  void UnsafeArenaSwap(RetrieveParamFloatResponse* other) {
     if (other == this) return;
     ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
@@ -1473,14 +1491,14 @@ class ProvideParamFloatResponse final :
 
   // implements Message ----------------------------------------------
 
-  ProvideParamFloatResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
-    return CreateMaybeMessage<ProvideParamFloatResponse>(arena);
+  RetrieveParamFloatResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<RetrieveParamFloatResponse>(arena);
   }
   using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
-  void CopyFrom(const ProvideParamFloatResponse& from);
+  void CopyFrom(const RetrieveParamFloatResponse& from);
   using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
-  void MergeFrom( const ProvideParamFloatResponse& from) {
-    ProvideParamFloatResponse::MergeImpl(*this, from);
+  void MergeFrom( const RetrieveParamFloatResponse& from) {
+    RetrieveParamFloatResponse::MergeImpl(*this, from);
   }
   private:
   static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
@@ -1498,15 +1516,15 @@ class ProvideParamFloatResponse final :
   void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   void SharedDtor();
   void SetCachedSize(int size) const final;
-  void InternalSwap(ProvideParamFloatResponse* other);
+  void InternalSwap(RetrieveParamFloatResponse* other);
 
   private:
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::absl::string_view FullMessageName() {
-    return "mavsdk.rpc.param_server.ProvideParamFloatResponse";
+    return "mavsdk.rpc.param_server.RetrieveParamFloatResponse";
   }
   protected:
-  explicit ProvideParamFloatResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  explicit RetrieveParamFloatResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   static const ClassData _class_data_;
@@ -1520,6 +1538,7 @@ class ProvideParamFloatResponse final :
 
   enum : int {
     kParamServerResultFieldNumber = 1,
+    kValueFieldNumber = 2,
   };
   // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
   bool has_param_server_result() const;
@@ -1535,7 +1554,17 @@ class ProvideParamFloatResponse final :
   void unsafe_arena_set_allocated_param_server_result(
       ::mavsdk::rpc::param_server::ParamServerResult* param_server_result);
   ::mavsdk::rpc::param_server::ParamServerResult* unsafe_arena_release_param_server_result();
-  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.ProvideParamFloatResponse)
+  // float value = 2;
+  void clear_value() ;
+  float value() const;
+  void set_value(float value);
+
+  private:
+  float _internal_value() const;
+  void _internal_set_value(float value);
+
+  public:
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.RetrieveParamFloatResponse)
  private:
   class _Internal;
 
@@ -1546,30 +1575,31 @@ class ProvideParamFloatResponse final :
     ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
     mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
     ::mavsdk::rpc::param_server::ParamServerResult* param_server_result_;
+    float value_;
   };
   union { Impl_ _impl_; };
   friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
 };// -------------------------------------------------------------------
 
-class RetrieveParamCustomRequest final :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.RetrieveParamCustomRequest) */ {
+class ProvideParamFloatRequest final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.ProvideParamFloatRequest) */ {
  public:
-  inline RetrieveParamCustomRequest() : RetrieveParamCustomRequest(nullptr) {}
-  ~RetrieveParamCustomRequest() override;
+  inline ProvideParamFloatRequest() : ProvideParamFloatRequest(nullptr) {}
+  ~ProvideParamFloatRequest() override;
   template<typename = void>
-  explicit PROTOBUF_CONSTEXPR RetrieveParamCustomRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+  explicit PROTOBUF_CONSTEXPR ProvideParamFloatRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
-  RetrieveParamCustomRequest(const RetrieveParamCustomRequest& from);
-  RetrieveParamCustomRequest(RetrieveParamCustomRequest&& from) noexcept
-    : RetrieveParamCustomRequest() {
+  ProvideParamFloatRequest(const ProvideParamFloatRequest& from);
+  ProvideParamFloatRequest(ProvideParamFloatRequest&& from) noexcept
+    : ProvideParamFloatRequest() {
     *this = ::std::move(from);
   }
 
-  inline RetrieveParamCustomRequest& operator=(const RetrieveParamCustomRequest& from) {
+  inline ProvideParamFloatRequest& operator=(const ProvideParamFloatRequest& from) {
     CopyFrom(from);
     return *this;
   }
-  inline RetrieveParamCustomRequest& operator=(RetrieveParamCustomRequest&& from) noexcept {
+  inline ProvideParamFloatRequest& operator=(ProvideParamFloatRequest&& from) noexcept {
     if (this == &from) return *this;
     if (GetOwningArena() == from.GetOwningArena()
   #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
@@ -1599,20 +1629,20 @@ class RetrieveParamCustomRequest final :
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
     return default_instance().GetMetadata().reflection;
   }
-  static const RetrieveParamCustomRequest& default_instance() {
+  static const ProvideParamFloatRequest& default_instance() {
     return *internal_default_instance();
   }
-  static inline const RetrieveParamCustomRequest* internal_default_instance() {
-    return reinterpret_cast<const RetrieveParamCustomRequest*>(
-               &_RetrieveParamCustomRequest_default_instance_);
+  static inline const ProvideParamFloatRequest* internal_default_instance() {
+    return reinterpret_cast<const ProvideParamFloatRequest*>(
+               &_ProvideParamFloatRequest_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
     8;
 
-  friend void swap(RetrieveParamCustomRequest& a, RetrieveParamCustomRequest& b) {
+  friend void swap(ProvideParamFloatRequest& a, ProvideParamFloatRequest& b) {
     a.Swap(&b);
   }
-  inline void Swap(RetrieveParamCustomRequest* other) {
+  inline void Swap(ProvideParamFloatRequest* other) {
     if (other == this) return;
   #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
     if (GetOwningArena() != nullptr &&
@@ -1625,7 +1655,7 @@ class RetrieveParamCustomRequest final :
       ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
     }
   }
-  void UnsafeArenaSwap(RetrieveParamCustomRequest* other) {
+  void UnsafeArenaSwap(ProvideParamFloatRequest* other) {
     if (other == this) return;
     ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
@@ -1633,14 +1663,14 @@ class RetrieveParamCustomRequest final :
 
   // implements Message ----------------------------------------------
 
-  RetrieveParamCustomRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
-    return CreateMaybeMessage<RetrieveParamCustomRequest>(arena);
+  ProvideParamFloatRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<ProvideParamFloatRequest>(arena);
   }
   using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
-  void CopyFrom(const RetrieveParamCustomRequest& from);
+  void CopyFrom(const ProvideParamFloatRequest& from);
   using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
-  void MergeFrom( const RetrieveParamCustomRequest& from) {
-    RetrieveParamCustomRequest::MergeImpl(*this, from);
+  void MergeFrom( const ProvideParamFloatRequest& from) {
+    ProvideParamFloatRequest::MergeImpl(*this, from);
   }
   private:
   static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
@@ -1658,15 +1688,15 @@ class RetrieveParamCustomRequest final :
   void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   void SharedDtor();
   void SetCachedSize(int size) const final;
-  void InternalSwap(RetrieveParamCustomRequest* other);
+  void InternalSwap(ProvideParamFloatRequest* other);
 
   private:
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::absl::string_view FullMessageName() {
-    return "mavsdk.rpc.param_server.RetrieveParamCustomRequest";
+    return "mavsdk.rpc.param_server.ProvideParamFloatRequest";
   }
   protected:
-  explicit RetrieveParamCustomRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  explicit ProvideParamFloatRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   static const ClassData _class_data_;
@@ -1680,6 +1710,7 @@ class RetrieveParamCustomRequest final :
 
   enum : int {
     kNameFieldNumber = 1,
+    kValueFieldNumber = 2,
   };
   // string name = 1;
   void clear_name() ;
@@ -1701,7 +1732,17 @@ class RetrieveParamCustomRequest final :
   std::string* _internal_mutable_name();
 
   public:
-  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+  // float value = 2;
+  void clear_value() ;
+  float value() const;
+  void set_value(float value);
+
+  private:
+  float _internal_value() const;
+  void _internal_set_value(float value);
+
+  public:
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.ProvideParamFloatRequest)
  private:
   class _Internal;
 
@@ -1710,31 +1751,32 @@ class RetrieveParamCustomRequest final :
   typedef void DestructorSkippable_;
   struct Impl_ {
     ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
+    float value_;
     mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   };
   union { Impl_ _impl_; };
   friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
 };// -------------------------------------------------------------------
 
-class RetrieveParamCustomResponse final :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.RetrieveParamCustomResponse) */ {
+class ProvideParamFloatResponse final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.ProvideParamFloatResponse) */ {
  public:
-  inline RetrieveParamCustomResponse() : RetrieveParamCustomResponse(nullptr) {}
-  ~RetrieveParamCustomResponse() override;
+  inline ProvideParamFloatResponse() : ProvideParamFloatResponse(nullptr) {}
+  ~ProvideParamFloatResponse() override;
   template<typename = void>
-  explicit PROTOBUF_CONSTEXPR RetrieveParamCustomResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+  explicit PROTOBUF_CONSTEXPR ProvideParamFloatResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
-  RetrieveParamCustomResponse(const RetrieveParamCustomResponse& from);
-  RetrieveParamCustomResponse(RetrieveParamCustomResponse&& from) noexcept
-    : RetrieveParamCustomResponse() {
+  ProvideParamFloatResponse(const ProvideParamFloatResponse& from);
+  ProvideParamFloatResponse(ProvideParamFloatResponse&& from) noexcept
+    : ProvideParamFloatResponse() {
     *this = ::std::move(from);
   }
 
-  inline RetrieveParamCustomResponse& operator=(const RetrieveParamCustomResponse& from) {
+  inline ProvideParamFloatResponse& operator=(const ProvideParamFloatResponse& from) {
     CopyFrom(from);
     return *this;
   }
-  inline RetrieveParamCustomResponse& operator=(RetrieveParamCustomResponse&& from) noexcept {
+  inline ProvideParamFloatResponse& operator=(ProvideParamFloatResponse&& from) noexcept {
     if (this == &from) return *this;
     if (GetOwningArena() == from.GetOwningArena()
   #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
@@ -1764,20 +1806,20 @@ class RetrieveParamCustomResponse final :
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
     return default_instance().GetMetadata().reflection;
   }
-  static const RetrieveParamCustomResponse& default_instance() {
+  static const ProvideParamFloatResponse& default_instance() {
     return *internal_default_instance();
   }
-  static inline const RetrieveParamCustomResponse* internal_default_instance() {
-    return reinterpret_cast<const RetrieveParamCustomResponse*>(
-               &_RetrieveParamCustomResponse_default_instance_);
+  static inline const ProvideParamFloatResponse* internal_default_instance() {
+    return reinterpret_cast<const ProvideParamFloatResponse*>(
+               &_ProvideParamFloatResponse_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
     9;
 
-  friend void swap(RetrieveParamCustomResponse& a, RetrieveParamCustomResponse& b) {
+  friend void swap(ProvideParamFloatResponse& a, ProvideParamFloatResponse& b) {
     a.Swap(&b);
   }
-  inline void Swap(RetrieveParamCustomResponse* other) {
+  inline void Swap(ProvideParamFloatResponse* other) {
     if (other == this) return;
   #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
     if (GetOwningArena() != nullptr &&
@@ -1790,7 +1832,7 @@ class RetrieveParamCustomResponse final :
       ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
     }
   }
-  void UnsafeArenaSwap(RetrieveParamCustomResponse* other) {
+  void UnsafeArenaSwap(ProvideParamFloatResponse* other) {
     if (other == this) return;
     ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
@@ -1798,14 +1840,14 @@ class RetrieveParamCustomResponse final :
 
   // implements Message ----------------------------------------------
 
-  RetrieveParamCustomResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
-    return CreateMaybeMessage<RetrieveParamCustomResponse>(arena);
+  ProvideParamFloatResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<ProvideParamFloatResponse>(arena);
   }
   using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
-  void CopyFrom(const RetrieveParamCustomResponse& from);
+  void CopyFrom(const ProvideParamFloatResponse& from);
   using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
-  void MergeFrom( const RetrieveParamCustomResponse& from) {
-    RetrieveParamCustomResponse::MergeImpl(*this, from);
+  void MergeFrom( const ProvideParamFloatResponse& from) {
+    ProvideParamFloatResponse::MergeImpl(*this, from);
   }
   private:
   static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
@@ -1823,15 +1865,15 @@ class RetrieveParamCustomResponse final :
   void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   void SharedDtor();
   void SetCachedSize(int size) const final;
-  void InternalSwap(RetrieveParamCustomResponse* other);
+  void InternalSwap(ProvideParamFloatResponse* other);
 
   private:
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::absl::string_view FullMessageName() {
-    return "mavsdk.rpc.param_server.RetrieveParamCustomResponse";
+    return "mavsdk.rpc.param_server.ProvideParamFloatResponse";
   }
   protected:
-  explicit RetrieveParamCustomResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  explicit ProvideParamFloatResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   static const ClassData _class_data_;
@@ -1844,29 +1886,8 @@ class RetrieveParamCustomResponse final :
   // accessors -------------------------------------------------------
 
   enum : int {
-    kValueFieldNumber = 2,
     kParamServerResultFieldNumber = 1,
   };
-  // string value = 2;
-  void clear_value() ;
-  const std::string& value() const;
-
-
-
-
-  template <typename Arg_ = const std::string&, typename... Args_>
-  void set_value(Arg_&& arg, Args_... args);
-  std::string* mutable_value();
-  PROTOBUF_NODISCARD std::string* release_value();
-  void set_allocated_value(std::string* ptr);
-
-  private:
-  const std::string& _internal_value() const;
-  inline PROTOBUF_ALWAYS_INLINE void _internal_set_value(
-      const std::string& value);
-  std::string* _internal_mutable_value();
-
-  public:
   // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
   bool has_param_server_result() const;
   void clear_param_server_result() ;
@@ -1881,7 +1902,7 @@ class RetrieveParamCustomResponse final :
   void unsafe_arena_set_allocated_param_server_result(
       ::mavsdk::rpc::param_server::ParamServerResult* param_server_result);
   ::mavsdk::rpc::param_server::ParamServerResult* unsafe_arena_release_param_server_result();
-  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.ProvideParamFloatResponse)
  private:
   class _Internal;
 
@@ -1891,32 +1912,31 @@ class RetrieveParamCustomResponse final :
   struct Impl_ {
     ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
     mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr value_;
     ::mavsdk::rpc::param_server::ParamServerResult* param_server_result_;
   };
   union { Impl_ _impl_; };
   friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
 };// -------------------------------------------------------------------
 
-class ProvideParamCustomRequest final :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.ProvideParamCustomRequest) */ {
+class ChangeParamFloatRequest final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.ChangeParamFloatRequest) */ {
  public:
-  inline ProvideParamCustomRequest() : ProvideParamCustomRequest(nullptr) {}
-  ~ProvideParamCustomRequest() override;
+  inline ChangeParamFloatRequest() : ChangeParamFloatRequest(nullptr) {}
+  ~ChangeParamFloatRequest() override;
   template<typename = void>
-  explicit PROTOBUF_CONSTEXPR ProvideParamCustomRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+  explicit PROTOBUF_CONSTEXPR ChangeParamFloatRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
-  ProvideParamCustomRequest(const ProvideParamCustomRequest& from);
-  ProvideParamCustomRequest(ProvideParamCustomRequest&& from) noexcept
-    : ProvideParamCustomRequest() {
+  ChangeParamFloatRequest(const ChangeParamFloatRequest& from);
+  ChangeParamFloatRequest(ChangeParamFloatRequest&& from) noexcept
+    : ChangeParamFloatRequest() {
     *this = ::std::move(from);
   }
 
-  inline ProvideParamCustomRequest& operator=(const ProvideParamCustomRequest& from) {
+  inline ChangeParamFloatRequest& operator=(const ChangeParamFloatRequest& from) {
     CopyFrom(from);
     return *this;
   }
-  inline ProvideParamCustomRequest& operator=(ProvideParamCustomRequest&& from) noexcept {
+  inline ChangeParamFloatRequest& operator=(ChangeParamFloatRequest&& from) noexcept {
     if (this == &from) return *this;
     if (GetOwningArena() == from.GetOwningArena()
   #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
@@ -1946,20 +1966,20 @@ class ProvideParamCustomRequest final :
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
     return default_instance().GetMetadata().reflection;
   }
-  static const ProvideParamCustomRequest& default_instance() {
+  static const ChangeParamFloatRequest& default_instance() {
     return *internal_default_instance();
   }
-  static inline const ProvideParamCustomRequest* internal_default_instance() {
-    return reinterpret_cast<const ProvideParamCustomRequest*>(
-               &_ProvideParamCustomRequest_default_instance_);
+  static inline const ChangeParamFloatRequest* internal_default_instance() {
+    return reinterpret_cast<const ChangeParamFloatRequest*>(
+               &_ChangeParamFloatRequest_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
     10;
 
-  friend void swap(ProvideParamCustomRequest& a, ProvideParamCustomRequest& b) {
+  friend void swap(ChangeParamFloatRequest& a, ChangeParamFloatRequest& b) {
     a.Swap(&b);
   }
-  inline void Swap(ProvideParamCustomRequest* other) {
+  inline void Swap(ChangeParamFloatRequest* other) {
     if (other == this) return;
   #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
     if (GetOwningArena() != nullptr &&
@@ -1972,7 +1992,7 @@ class ProvideParamCustomRequest final :
       ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
     }
   }
-  void UnsafeArenaSwap(ProvideParamCustomRequest* other) {
+  void UnsafeArenaSwap(ChangeParamFloatRequest* other) {
     if (other == this) return;
     ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
@@ -1980,14 +2000,14 @@ class ProvideParamCustomRequest final :
 
   // implements Message ----------------------------------------------
 
-  ProvideParamCustomRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
-    return CreateMaybeMessage<ProvideParamCustomRequest>(arena);
+  ChangeParamFloatRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<ChangeParamFloatRequest>(arena);
   }
   using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
-  void CopyFrom(const ProvideParamCustomRequest& from);
+  void CopyFrom(const ChangeParamFloatRequest& from);
   using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
-  void MergeFrom( const ProvideParamCustomRequest& from) {
-    ProvideParamCustomRequest::MergeImpl(*this, from);
+  void MergeFrom( const ChangeParamFloatRequest& from) {
+    ChangeParamFloatRequest::MergeImpl(*this, from);
   }
   private:
   static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
@@ -2005,15 +2025,15 @@ class ProvideParamCustomRequest final :
   void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   void SharedDtor();
   void SetCachedSize(int size) const final;
-  void InternalSwap(ProvideParamCustomRequest* other);
+  void InternalSwap(ChangeParamFloatRequest* other);
 
   private:
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::absl::string_view FullMessageName() {
-    return "mavsdk.rpc.param_server.ProvideParamCustomRequest";
+    return "mavsdk.rpc.param_server.ChangeParamFloatRequest";
   }
   protected:
-  explicit ProvideParamCustomRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  explicit ChangeParamFloatRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   static const ClassData _class_data_;
@@ -2049,27 +2069,17 @@ class ProvideParamCustomRequest final :
   std::string* _internal_mutable_name();
 
   public:
-  // string value = 2;
+  // float value = 2;
   void clear_value() ;
-  const std::string& value() const;
-
-
-
-
-  template <typename Arg_ = const std::string&, typename... Args_>
-  void set_value(Arg_&& arg, Args_... args);
-  std::string* mutable_value();
-  PROTOBUF_NODISCARD std::string* release_value();
-  void set_allocated_value(std::string* ptr);
+  float value() const;
+  void set_value(float value);
 
   private:
-  const std::string& _internal_value() const;
-  inline PROTOBUF_ALWAYS_INLINE void _internal_set_value(
-      const std::string& value);
-  std::string* _internal_mutable_value();
+  float _internal_value() const;
+  void _internal_set_value(float value);
 
   public:
-  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.ProvideParamCustomRequest)
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.ChangeParamFloatRequest)
  private:
   class _Internal;
 
@@ -2078,32 +2088,32 @@ class ProvideParamCustomRequest final :
   typedef void DestructorSkippable_;
   struct Impl_ {
     ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr value_;
+    float value_;
     mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   };
   union { Impl_ _impl_; };
   friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
 };// -------------------------------------------------------------------
 
-class ProvideParamCustomResponse final :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.ProvideParamCustomResponse) */ {
+class ChangeParamFloatResponse final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.ChangeParamFloatResponse) */ {
  public:
-  inline ProvideParamCustomResponse() : ProvideParamCustomResponse(nullptr) {}
-  ~ProvideParamCustomResponse() override;
+  inline ChangeParamFloatResponse() : ChangeParamFloatResponse(nullptr) {}
+  ~ChangeParamFloatResponse() override;
   template<typename = void>
-  explicit PROTOBUF_CONSTEXPR ProvideParamCustomResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+  explicit PROTOBUF_CONSTEXPR ChangeParamFloatResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
-  ProvideParamCustomResponse(const ProvideParamCustomResponse& from);
-  ProvideParamCustomResponse(ProvideParamCustomResponse&& from) noexcept
-    : ProvideParamCustomResponse() {
+  ChangeParamFloatResponse(const ChangeParamFloatResponse& from);
+  ChangeParamFloatResponse(ChangeParamFloatResponse&& from) noexcept
+    : ChangeParamFloatResponse() {
     *this = ::std::move(from);
   }
 
-  inline ProvideParamCustomResponse& operator=(const ProvideParamCustomResponse& from) {
+  inline ChangeParamFloatResponse& operator=(const ChangeParamFloatResponse& from) {
     CopyFrom(from);
     return *this;
   }
-  inline ProvideParamCustomResponse& operator=(ProvideParamCustomResponse&& from) noexcept {
+  inline ChangeParamFloatResponse& operator=(ChangeParamFloatResponse&& from) noexcept {
     if (this == &from) return *this;
     if (GetOwningArena() == from.GetOwningArena()
   #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
@@ -2133,20 +2143,20 @@ class ProvideParamCustomResponse final :
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
     return default_instance().GetMetadata().reflection;
   }
-  static const ProvideParamCustomResponse& default_instance() {
+  static const ChangeParamFloatResponse& default_instance() {
     return *internal_default_instance();
   }
-  static inline const ProvideParamCustomResponse* internal_default_instance() {
-    return reinterpret_cast<const ProvideParamCustomResponse*>(
-               &_ProvideParamCustomResponse_default_instance_);
+  static inline const ChangeParamFloatResponse* internal_default_instance() {
+    return reinterpret_cast<const ChangeParamFloatResponse*>(
+               &_ChangeParamFloatResponse_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
     11;
 
-  friend void swap(ProvideParamCustomResponse& a, ProvideParamCustomResponse& b) {
+  friend void swap(ChangeParamFloatResponse& a, ChangeParamFloatResponse& b) {
     a.Swap(&b);
   }
-  inline void Swap(ProvideParamCustomResponse* other) {
+  inline void Swap(ChangeParamFloatResponse* other) {
     if (other == this) return;
   #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
     if (GetOwningArena() != nullptr &&
@@ -2159,7 +2169,7 @@ class ProvideParamCustomResponse final :
       ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
     }
   }
-  void UnsafeArenaSwap(ProvideParamCustomResponse* other) {
+  void UnsafeArenaSwap(ChangeParamFloatResponse* other) {
     if (other == this) return;
     ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
@@ -2167,14 +2177,14 @@ class ProvideParamCustomResponse final :
 
   // implements Message ----------------------------------------------
 
-  ProvideParamCustomResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
-    return CreateMaybeMessage<ProvideParamCustomResponse>(arena);
+  ChangeParamFloatResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<ChangeParamFloatResponse>(arena);
   }
   using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
-  void CopyFrom(const ProvideParamCustomResponse& from);
+  void CopyFrom(const ChangeParamFloatResponse& from);
   using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
-  void MergeFrom( const ProvideParamCustomResponse& from) {
-    ProvideParamCustomResponse::MergeImpl(*this, from);
+  void MergeFrom( const ChangeParamFloatResponse& from) {
+    ChangeParamFloatResponse::MergeImpl(*this, from);
   }
   private:
   static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
@@ -2192,15 +2202,15 @@ class ProvideParamCustomResponse final :
   void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   void SharedDtor();
   void SetCachedSize(int size) const final;
-  void InternalSwap(ProvideParamCustomResponse* other);
+  void InternalSwap(ChangeParamFloatResponse* other);
 
   private:
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::absl::string_view FullMessageName() {
-    return "mavsdk.rpc.param_server.ProvideParamCustomResponse";
+    return "mavsdk.rpc.param_server.ChangeParamFloatResponse";
   }
   protected:
-  explicit ProvideParamCustomResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  explicit ChangeParamFloatResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   static const ClassData _class_data_;
@@ -2229,7 +2239,7 @@ class ProvideParamCustomResponse final :
   void unsafe_arena_set_allocated_param_server_result(
       ::mavsdk::rpc::param_server::ParamServerResult* param_server_result);
   ::mavsdk::rpc::param_server::ParamServerResult* unsafe_arena_release_param_server_result();
-  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.ProvideParamCustomResponse)
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.ChangeParamFloatResponse)
  private:
   class _Internal;
 
@@ -2245,24 +2255,25 @@ class ProvideParamCustomResponse final :
   friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
 };// -------------------------------------------------------------------
 
-class RetrieveAllParamsRequest final :
-    public ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.RetrieveAllParamsRequest) */ {
+class RetrieveParamCustomRequest final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.RetrieveParamCustomRequest) */ {
  public:
-  inline RetrieveAllParamsRequest() : RetrieveAllParamsRequest(nullptr) {}
+  inline RetrieveParamCustomRequest() : RetrieveParamCustomRequest(nullptr) {}
+  ~RetrieveParamCustomRequest() override;
   template<typename = void>
-  explicit PROTOBUF_CONSTEXPR RetrieveAllParamsRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+  explicit PROTOBUF_CONSTEXPR RetrieveParamCustomRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
-  RetrieveAllParamsRequest(const RetrieveAllParamsRequest& from);
-  RetrieveAllParamsRequest(RetrieveAllParamsRequest&& from) noexcept
-    : RetrieveAllParamsRequest() {
+  RetrieveParamCustomRequest(const RetrieveParamCustomRequest& from);
+  RetrieveParamCustomRequest(RetrieveParamCustomRequest&& from) noexcept
+    : RetrieveParamCustomRequest() {
     *this = ::std::move(from);
   }
 
-  inline RetrieveAllParamsRequest& operator=(const RetrieveAllParamsRequest& from) {
+  inline RetrieveParamCustomRequest& operator=(const RetrieveParamCustomRequest& from) {
     CopyFrom(from);
     return *this;
   }
-  inline RetrieveAllParamsRequest& operator=(RetrieveAllParamsRequest&& from) noexcept {
+  inline RetrieveParamCustomRequest& operator=(RetrieveParamCustomRequest&& from) noexcept {
     if (this == &from) return *this;
     if (GetOwningArena() == from.GetOwningArena()
   #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
@@ -2292,20 +2303,20 @@ class RetrieveAllParamsRequest final :
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
     return default_instance().GetMetadata().reflection;
   }
-  static const RetrieveAllParamsRequest& default_instance() {
+  static const RetrieveParamCustomRequest& default_instance() {
     return *internal_default_instance();
   }
-  static inline const RetrieveAllParamsRequest* internal_default_instance() {
-    return reinterpret_cast<const RetrieveAllParamsRequest*>(
-               &_RetrieveAllParamsRequest_default_instance_);
+  static inline const RetrieveParamCustomRequest* internal_default_instance() {
+    return reinterpret_cast<const RetrieveParamCustomRequest*>(
+               &_RetrieveParamCustomRequest_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
     12;
 
-  friend void swap(RetrieveAllParamsRequest& a, RetrieveAllParamsRequest& b) {
+  friend void swap(RetrieveParamCustomRequest& a, RetrieveParamCustomRequest& b) {
     a.Swap(&b);
   }
-  inline void Swap(RetrieveAllParamsRequest* other) {
+  inline void Swap(RetrieveParamCustomRequest* other) {
     if (other == this) return;
   #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
     if (GetOwningArena() != nullptr &&
@@ -2318,7 +2329,7 @@ class RetrieveAllParamsRequest final :
       ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
     }
   }
-  void UnsafeArenaSwap(RetrieveAllParamsRequest* other) {
+  void UnsafeArenaSwap(RetrieveParamCustomRequest* other) {
     if (other == this) return;
     ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
@@ -2326,26 +2337,40 @@ class RetrieveAllParamsRequest final :
 
   // implements Message ----------------------------------------------
 
-  RetrieveAllParamsRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
-    return CreateMaybeMessage<RetrieveAllParamsRequest>(arena);
-  }
-  using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyFrom;
-  inline void CopyFrom(const RetrieveAllParamsRequest& from) {
-    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl(*this, from);
+  RetrieveParamCustomRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<RetrieveParamCustomRequest>(arena);
   }
-  using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeFrom;
-  void MergeFrom(const RetrieveAllParamsRequest& from) {
-    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl(*this, from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const RetrieveParamCustomRequest& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom( const RetrieveParamCustomRequest& from) {
+    RetrieveParamCustomRequest::MergeImpl(*this, from);
   }
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
   public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  ::size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  ::uint8_t* _InternalSerialize(
+      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }
+
+  private:
+  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(RetrieveParamCustomRequest* other);
 
   private:
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::absl::string_view FullMessageName() {
-    return "mavsdk.rpc.param_server.RetrieveAllParamsRequest";
+    return "mavsdk.rpc.param_server.RetrieveParamCustomRequest";
   }
   protected:
-  explicit RetrieveAllParamsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  explicit RetrieveParamCustomRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   static const ClassData _class_data_;
@@ -2357,37 +2382,63 @@ class RetrieveAllParamsRequest final :
 
   // accessors -------------------------------------------------------
 
-  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.RetrieveAllParamsRequest)
- private:
-  class _Internal;
-
-  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
-  typedef void InternalArenaConstructable_;
-  typedef void DestructorSkippable_;
-  struct Impl_ {
+  enum : int {
+    kNameFieldNumber = 1,
   };
-  friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
-};// -------------------------------------------------------------------
+  // string name = 1;
+  void clear_name() ;
+  const std::string& name() const;
 
-class RetrieveAllParamsResponse final :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.RetrieveAllParamsResponse) */ {
- public:
-  inline RetrieveAllParamsResponse() : RetrieveAllParamsResponse(nullptr) {}
-  ~RetrieveAllParamsResponse() override;
-  template<typename = void>
-  explicit PROTOBUF_CONSTEXPR RetrieveAllParamsResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
-  RetrieveAllParamsResponse(const RetrieveAllParamsResponse& from);
-  RetrieveAllParamsResponse(RetrieveAllParamsResponse&& from) noexcept
-    : RetrieveAllParamsResponse() {
+
+
+  template <typename Arg_ = const std::string&, typename... Args_>
+  void set_name(Arg_&& arg, Args_... args);
+  std::string* mutable_name();
+  PROTOBUF_NODISCARD std::string* release_name();
+  void set_allocated_name(std::string* ptr);
+
+  private:
+  const std::string& _internal_name() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(
+      const std::string& value);
+  std::string* _internal_mutable_name();
+
+  public:
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.RetrieveParamCustomRequest)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  struct Impl_ {
+    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
+    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  };
+  union { Impl_ _impl_; };
+  friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
+};// -------------------------------------------------------------------
+
+class RetrieveParamCustomResponse final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.RetrieveParamCustomResponse) */ {
+ public:
+  inline RetrieveParamCustomResponse() : RetrieveParamCustomResponse(nullptr) {}
+  ~RetrieveParamCustomResponse() override;
+  template<typename = void>
+  explicit PROTOBUF_CONSTEXPR RetrieveParamCustomResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  RetrieveParamCustomResponse(const RetrieveParamCustomResponse& from);
+  RetrieveParamCustomResponse(RetrieveParamCustomResponse&& from) noexcept
+    : RetrieveParamCustomResponse() {
     *this = ::std::move(from);
   }
 
-  inline RetrieveAllParamsResponse& operator=(const RetrieveAllParamsResponse& from) {
+  inline RetrieveParamCustomResponse& operator=(const RetrieveParamCustomResponse& from) {
     CopyFrom(from);
     return *this;
   }
-  inline RetrieveAllParamsResponse& operator=(RetrieveAllParamsResponse&& from) noexcept {
+  inline RetrieveParamCustomResponse& operator=(RetrieveParamCustomResponse&& from) noexcept {
     if (this == &from) return *this;
     if (GetOwningArena() == from.GetOwningArena()
   #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
@@ -2417,20 +2468,20 @@ class RetrieveAllParamsResponse final :
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
     return default_instance().GetMetadata().reflection;
   }
-  static const RetrieveAllParamsResponse& default_instance() {
+  static const RetrieveParamCustomResponse& default_instance() {
     return *internal_default_instance();
   }
-  static inline const RetrieveAllParamsResponse* internal_default_instance() {
-    return reinterpret_cast<const RetrieveAllParamsResponse*>(
-               &_RetrieveAllParamsResponse_default_instance_);
+  static inline const RetrieveParamCustomResponse* internal_default_instance() {
+    return reinterpret_cast<const RetrieveParamCustomResponse*>(
+               &_RetrieveParamCustomResponse_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
     13;
 
-  friend void swap(RetrieveAllParamsResponse& a, RetrieveAllParamsResponse& b) {
+  friend void swap(RetrieveParamCustomResponse& a, RetrieveParamCustomResponse& b) {
     a.Swap(&b);
   }
-  inline void Swap(RetrieveAllParamsResponse* other) {
+  inline void Swap(RetrieveParamCustomResponse* other) {
     if (other == this) return;
   #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
     if (GetOwningArena() != nullptr &&
@@ -2443,7 +2494,7 @@ class RetrieveAllParamsResponse final :
       ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
     }
   }
-  void UnsafeArenaSwap(RetrieveAllParamsResponse* other) {
+  void UnsafeArenaSwap(RetrieveParamCustomResponse* other) {
     if (other == this) return;
     ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
@@ -2451,14 +2502,14 @@ class RetrieveAllParamsResponse final :
 
   // implements Message ----------------------------------------------
 
-  RetrieveAllParamsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
-    return CreateMaybeMessage<RetrieveAllParamsResponse>(arena);
+  RetrieveParamCustomResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<RetrieveParamCustomResponse>(arena);
   }
   using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
-  void CopyFrom(const RetrieveAllParamsResponse& from);
+  void CopyFrom(const RetrieveParamCustomResponse& from);
   using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
-  void MergeFrom( const RetrieveAllParamsResponse& from) {
-    RetrieveAllParamsResponse::MergeImpl(*this, from);
+  void MergeFrom( const RetrieveParamCustomResponse& from) {
+    RetrieveParamCustomResponse::MergeImpl(*this, from);
   }
   private:
   static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
@@ -2476,15 +2527,15 @@ class RetrieveAllParamsResponse final :
   void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   void SharedDtor();
   void SetCachedSize(int size) const final;
-  void InternalSwap(RetrieveAllParamsResponse* other);
+  void InternalSwap(RetrieveParamCustomResponse* other);
 
   private:
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::absl::string_view FullMessageName() {
-    return "mavsdk.rpc.param_server.RetrieveAllParamsResponse";
+    return "mavsdk.rpc.param_server.RetrieveParamCustomResponse";
   }
   protected:
-  explicit RetrieveAllParamsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  explicit RetrieveParamCustomResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   static const ClassData _class_data_;
@@ -2497,23 +2548,44 @@ class RetrieveAllParamsResponse final :
   // accessors -------------------------------------------------------
 
   enum : int {
-    kParamsFieldNumber = 1,
+    kValueFieldNumber = 2,
+    kParamServerResultFieldNumber = 1,
   };
-  // .mavsdk.rpc.param_server.AllParams params = 1;
-  bool has_params() const;
-  void clear_params() ;
-  const ::mavsdk::rpc::param_server::AllParams& params() const;
-  PROTOBUF_NODISCARD ::mavsdk::rpc::param_server::AllParams* release_params();
-  ::mavsdk::rpc::param_server::AllParams* mutable_params();
-  void set_allocated_params(::mavsdk::rpc::param_server::AllParams* params);
+  // string value = 2;
+  void clear_value() ;
+  const std::string& value() const;
+
+
+
+
+  template <typename Arg_ = const std::string&, typename... Args_>
+  void set_value(Arg_&& arg, Args_... args);
+  std::string* mutable_value();
+  PROTOBUF_NODISCARD std::string* release_value();
+  void set_allocated_value(std::string* ptr);
+
   private:
-  const ::mavsdk::rpc::param_server::AllParams& _internal_params() const;
-  ::mavsdk::rpc::param_server::AllParams* _internal_mutable_params();
+  const std::string& _internal_value() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_value(
+      const std::string& value);
+  std::string* _internal_mutable_value();
+
   public:
-  void unsafe_arena_set_allocated_params(
-      ::mavsdk::rpc::param_server::AllParams* params);
-  ::mavsdk::rpc::param_server::AllParams* unsafe_arena_release_params();
-  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.RetrieveAllParamsResponse)
+  // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
+  bool has_param_server_result() const;
+  void clear_param_server_result() ;
+  const ::mavsdk::rpc::param_server::ParamServerResult& param_server_result() const;
+  PROTOBUF_NODISCARD ::mavsdk::rpc::param_server::ParamServerResult* release_param_server_result();
+  ::mavsdk::rpc::param_server::ParamServerResult* mutable_param_server_result();
+  void set_allocated_param_server_result(::mavsdk::rpc::param_server::ParamServerResult* param_server_result);
+  private:
+  const ::mavsdk::rpc::param_server::ParamServerResult& _internal_param_server_result() const;
+  ::mavsdk::rpc::param_server::ParamServerResult* _internal_mutable_param_server_result();
+  public:
+  void unsafe_arena_set_allocated_param_server_result(
+      ::mavsdk::rpc::param_server::ParamServerResult* param_server_result);
+  ::mavsdk::rpc::param_server::ParamServerResult* unsafe_arena_release_param_server_result();
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.RetrieveParamCustomResponse)
  private:
   class _Internal;
 
@@ -2523,31 +2595,32 @@ class RetrieveAllParamsResponse final :
   struct Impl_ {
     ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
     mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-    ::mavsdk::rpc::param_server::AllParams* params_;
+    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr value_;
+    ::mavsdk::rpc::param_server::ParamServerResult* param_server_result_;
   };
   union { Impl_ _impl_; };
   friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
 };// -------------------------------------------------------------------
 
-class IntParam final :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.IntParam) */ {
+class ProvideParamCustomRequest final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.ProvideParamCustomRequest) */ {
  public:
-  inline IntParam() : IntParam(nullptr) {}
-  ~IntParam() override;
+  inline ProvideParamCustomRequest() : ProvideParamCustomRequest(nullptr) {}
+  ~ProvideParamCustomRequest() override;
   template<typename = void>
-  explicit PROTOBUF_CONSTEXPR IntParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+  explicit PROTOBUF_CONSTEXPR ProvideParamCustomRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
-  IntParam(const IntParam& from);
-  IntParam(IntParam&& from) noexcept
-    : IntParam() {
+  ProvideParamCustomRequest(const ProvideParamCustomRequest& from);
+  ProvideParamCustomRequest(ProvideParamCustomRequest&& from) noexcept
+    : ProvideParamCustomRequest() {
     *this = ::std::move(from);
   }
 
-  inline IntParam& operator=(const IntParam& from) {
+  inline ProvideParamCustomRequest& operator=(const ProvideParamCustomRequest& from) {
     CopyFrom(from);
     return *this;
   }
-  inline IntParam& operator=(IntParam&& from) noexcept {
+  inline ProvideParamCustomRequest& operator=(ProvideParamCustomRequest&& from) noexcept {
     if (this == &from) return *this;
     if (GetOwningArena() == from.GetOwningArena()
   #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
@@ -2577,20 +2650,20 @@ class IntParam final :
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
     return default_instance().GetMetadata().reflection;
   }
-  static const IntParam& default_instance() {
+  static const ProvideParamCustomRequest& default_instance() {
     return *internal_default_instance();
   }
-  static inline const IntParam* internal_default_instance() {
-    return reinterpret_cast<const IntParam*>(
-               &_IntParam_default_instance_);
+  static inline const ProvideParamCustomRequest* internal_default_instance() {
+    return reinterpret_cast<const ProvideParamCustomRequest*>(
+               &_ProvideParamCustomRequest_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
     14;
 
-  friend void swap(IntParam& a, IntParam& b) {
+  friend void swap(ProvideParamCustomRequest& a, ProvideParamCustomRequest& b) {
     a.Swap(&b);
   }
-  inline void Swap(IntParam* other) {
+  inline void Swap(ProvideParamCustomRequest* other) {
     if (other == this) return;
   #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
     if (GetOwningArena() != nullptr &&
@@ -2603,7 +2676,7 @@ class IntParam final :
       ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
     }
   }
-  void UnsafeArenaSwap(IntParam* other) {
+  void UnsafeArenaSwap(ProvideParamCustomRequest* other) {
     if (other == this) return;
     ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
@@ -2611,14 +2684,14 @@ class IntParam final :
 
   // implements Message ----------------------------------------------
 
-  IntParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
-    return CreateMaybeMessage<IntParam>(arena);
+  ProvideParamCustomRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<ProvideParamCustomRequest>(arena);
   }
   using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
-  void CopyFrom(const IntParam& from);
+  void CopyFrom(const ProvideParamCustomRequest& from);
   using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
-  void MergeFrom( const IntParam& from) {
-    IntParam::MergeImpl(*this, from);
+  void MergeFrom( const ProvideParamCustomRequest& from) {
+    ProvideParamCustomRequest::MergeImpl(*this, from);
   }
   private:
   static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
@@ -2636,15 +2709,15 @@ class IntParam final :
   void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   void SharedDtor();
   void SetCachedSize(int size) const final;
-  void InternalSwap(IntParam* other);
+  void InternalSwap(ProvideParamCustomRequest* other);
 
   private:
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::absl::string_view FullMessageName() {
-    return "mavsdk.rpc.param_server.IntParam";
+    return "mavsdk.rpc.param_server.ProvideParamCustomRequest";
   }
   protected:
-  explicit IntParam(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  explicit ProvideParamCustomRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   static const ClassData _class_data_;
@@ -2680,17 +2753,27 @@ class IntParam final :
   std::string* _internal_mutable_name();
 
   public:
-  // int32 value = 2;
+  // string value = 2;
   void clear_value() ;
-  ::int32_t value() const;
-  void set_value(::int32_t value);
+  const std::string& value() const;
+
+
+
+
+  template <typename Arg_ = const std::string&, typename... Args_>
+  void set_value(Arg_&& arg, Args_... args);
+  std::string* mutable_value();
+  PROTOBUF_NODISCARD std::string* release_value();
+  void set_allocated_value(std::string* ptr);
 
   private:
-  ::int32_t _internal_value() const;
-  void _internal_set_value(::int32_t value);
+  const std::string& _internal_value() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_value(
+      const std::string& value);
+  std::string* _internal_mutable_value();
 
   public:
-  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.IntParam)
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.ProvideParamCustomRequest)
  private:
   class _Internal;
 
@@ -2699,32 +2782,32 @@ class IntParam final :
   typedef void DestructorSkippable_;
   struct Impl_ {
     ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
-    ::int32_t value_;
+    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr value_;
     mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
   };
   union { Impl_ _impl_; };
   friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
 };// -------------------------------------------------------------------
 
-class FloatParam final :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.FloatParam) */ {
+class ProvideParamCustomResponse final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.ProvideParamCustomResponse) */ {
  public:
-  inline FloatParam() : FloatParam(nullptr) {}
-  ~FloatParam() override;
+  inline ProvideParamCustomResponse() : ProvideParamCustomResponse(nullptr) {}
+  ~ProvideParamCustomResponse() override;
   template<typename = void>
-  explicit PROTOBUF_CONSTEXPR FloatParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+  explicit PROTOBUF_CONSTEXPR ProvideParamCustomResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
-  FloatParam(const FloatParam& from);
-  FloatParam(FloatParam&& from) noexcept
-    : FloatParam() {
+  ProvideParamCustomResponse(const ProvideParamCustomResponse& from);
+  ProvideParamCustomResponse(ProvideParamCustomResponse&& from) noexcept
+    : ProvideParamCustomResponse() {
     *this = ::std::move(from);
   }
 
-  inline FloatParam& operator=(const FloatParam& from) {
+  inline ProvideParamCustomResponse& operator=(const ProvideParamCustomResponse& from) {
     CopyFrom(from);
     return *this;
   }
-  inline FloatParam& operator=(FloatParam&& from) noexcept {
+  inline ProvideParamCustomResponse& operator=(ProvideParamCustomResponse&& from) noexcept {
     if (this == &from) return *this;
     if (GetOwningArena() == from.GetOwningArena()
   #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
@@ -2754,20 +2837,20 @@ class FloatParam final :
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
     return default_instance().GetMetadata().reflection;
   }
-  static const FloatParam& default_instance() {
+  static const ProvideParamCustomResponse& default_instance() {
     return *internal_default_instance();
   }
-  static inline const FloatParam* internal_default_instance() {
-    return reinterpret_cast<const FloatParam*>(
-               &_FloatParam_default_instance_);
+  static inline const ProvideParamCustomResponse* internal_default_instance() {
+    return reinterpret_cast<const ProvideParamCustomResponse*>(
+               &_ProvideParamCustomResponse_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
     15;
 
-  friend void swap(FloatParam& a, FloatParam& b) {
+  friend void swap(ProvideParamCustomResponse& a, ProvideParamCustomResponse& b) {
     a.Swap(&b);
   }
-  inline void Swap(FloatParam* other) {
+  inline void Swap(ProvideParamCustomResponse* other) {
     if (other == this) return;
   #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
     if (GetOwningArena() != nullptr &&
@@ -2780,7 +2863,7 @@ class FloatParam final :
       ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
     }
   }
-  void UnsafeArenaSwap(FloatParam* other) {
+  void UnsafeArenaSwap(ProvideParamCustomResponse* other) {
     if (other == this) return;
     ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
@@ -2788,14 +2871,14 @@ class FloatParam final :
 
   // implements Message ----------------------------------------------
 
-  FloatParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
-    return CreateMaybeMessage<FloatParam>(arena);
+  ProvideParamCustomResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<ProvideParamCustomResponse>(arena);
   }
   using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
-  void CopyFrom(const FloatParam& from);
+  void CopyFrom(const ProvideParamCustomResponse& from);
   using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
-  void MergeFrom( const FloatParam& from) {
-    FloatParam::MergeImpl(*this, from);
+  void MergeFrom( const ProvideParamCustomResponse& from) {
+    ProvideParamCustomResponse::MergeImpl(*this, from);
   }
   private:
   static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
@@ -2813,15 +2896,15 @@ class FloatParam final :
   void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   void SharedDtor();
   void SetCachedSize(int size) const final;
-  void InternalSwap(FloatParam* other);
+  void InternalSwap(ProvideParamCustomResponse* other);
 
   private:
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::absl::string_view FullMessageName() {
-    return "mavsdk.rpc.param_server.FloatParam";
+    return "mavsdk.rpc.param_server.ProvideParamCustomResponse";
   }
   protected:
-  explicit FloatParam(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  explicit ProvideParamCustomResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   static const ClassData _class_data_;
@@ -2834,40 +2917,23 @@ class FloatParam final :
   // accessors -------------------------------------------------------
 
   enum : int {
-    kNameFieldNumber = 1,
-    kValueFieldNumber = 2,
+    kParamServerResultFieldNumber = 1,
   };
-  // string name = 1;
-  void clear_name() ;
-  const std::string& name() const;
-
-
-
-
-  template <typename Arg_ = const std::string&, typename... Args_>
-  void set_name(Arg_&& arg, Args_... args);
-  std::string* mutable_name();
-  PROTOBUF_NODISCARD std::string* release_name();
-  void set_allocated_name(std::string* ptr);
-
-  private:
-  const std::string& _internal_name() const;
-  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(
-      const std::string& value);
-  std::string* _internal_mutable_name();
-
-  public:
-  // float value = 2;
-  void clear_value() ;
-  float value() const;
-  void set_value(float value);
-
+  // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
+  bool has_param_server_result() const;
+  void clear_param_server_result() ;
+  const ::mavsdk::rpc::param_server::ParamServerResult& param_server_result() const;
+  PROTOBUF_NODISCARD ::mavsdk::rpc::param_server::ParamServerResult* release_param_server_result();
+  ::mavsdk::rpc::param_server::ParamServerResult* mutable_param_server_result();
+  void set_allocated_param_server_result(::mavsdk::rpc::param_server::ParamServerResult* param_server_result);
   private:
-  float _internal_value() const;
-  void _internal_set_value(float value);
-
+  const ::mavsdk::rpc::param_server::ParamServerResult& _internal_param_server_result() const;
+  ::mavsdk::rpc::param_server::ParamServerResult* _internal_mutable_param_server_result();
   public:
-  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.FloatParam)
+  void unsafe_arena_set_allocated_param_server_result(
+      ::mavsdk::rpc::param_server::ParamServerResult* param_server_result);
+  ::mavsdk::rpc::param_server::ParamServerResult* unsafe_arena_release_param_server_result();
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.ProvideParamCustomResponse)
  private:
   class _Internal;
 
@@ -2875,33 +2941,33 @@ class FloatParam final :
   typedef void InternalArenaConstructable_;
   typedef void DestructorSkippable_;
   struct Impl_ {
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
-    float value_;
+    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
     mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+    ::mavsdk::rpc::param_server::ParamServerResult* param_server_result_;
   };
   union { Impl_ _impl_; };
   friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
 };// -------------------------------------------------------------------
 
-class CustomParam final :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.CustomParam) */ {
+class ChangeParamCustomRequest final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.ChangeParamCustomRequest) */ {
  public:
-  inline CustomParam() : CustomParam(nullptr) {}
-  ~CustomParam() override;
+  inline ChangeParamCustomRequest() : ChangeParamCustomRequest(nullptr) {}
+  ~ChangeParamCustomRequest() override;
   template<typename = void>
-  explicit PROTOBUF_CONSTEXPR CustomParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+  explicit PROTOBUF_CONSTEXPR ChangeParamCustomRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
-  CustomParam(const CustomParam& from);
-  CustomParam(CustomParam&& from) noexcept
-    : CustomParam() {
+  ChangeParamCustomRequest(const ChangeParamCustomRequest& from);
+  ChangeParamCustomRequest(ChangeParamCustomRequest&& from) noexcept
+    : ChangeParamCustomRequest() {
     *this = ::std::move(from);
   }
 
-  inline CustomParam& operator=(const CustomParam& from) {
+  inline ChangeParamCustomRequest& operator=(const ChangeParamCustomRequest& from) {
     CopyFrom(from);
     return *this;
   }
-  inline CustomParam& operator=(CustomParam&& from) noexcept {
+  inline ChangeParamCustomRequest& operator=(ChangeParamCustomRequest&& from) noexcept {
     if (this == &from) return *this;
     if (GetOwningArena() == from.GetOwningArena()
   #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
@@ -2931,20 +2997,20 @@ class CustomParam final :
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
     return default_instance().GetMetadata().reflection;
   }
-  static const CustomParam& default_instance() {
+  static const ChangeParamCustomRequest& default_instance() {
     return *internal_default_instance();
   }
-  static inline const CustomParam* internal_default_instance() {
-    return reinterpret_cast<const CustomParam*>(
-               &_CustomParam_default_instance_);
+  static inline const ChangeParamCustomRequest* internal_default_instance() {
+    return reinterpret_cast<const ChangeParamCustomRequest*>(
+               &_ChangeParamCustomRequest_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
     16;
 
-  friend void swap(CustomParam& a, CustomParam& b) {
+  friend void swap(ChangeParamCustomRequest& a, ChangeParamCustomRequest& b) {
     a.Swap(&b);
   }
-  inline void Swap(CustomParam* other) {
+  inline void Swap(ChangeParamCustomRequest* other) {
     if (other == this) return;
   #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
     if (GetOwningArena() != nullptr &&
@@ -2957,7 +3023,7 @@ class CustomParam final :
       ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
     }
   }
-  void UnsafeArenaSwap(CustomParam* other) {
+  void UnsafeArenaSwap(ChangeParamCustomRequest* other) {
     if (other == this) return;
     ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
@@ -2965,14 +3031,14 @@ class CustomParam final :
 
   // implements Message ----------------------------------------------
 
-  CustomParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
-    return CreateMaybeMessage<CustomParam>(arena);
+  ChangeParamCustomRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<ChangeParamCustomRequest>(arena);
   }
   using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
-  void CopyFrom(const CustomParam& from);
+  void CopyFrom(const ChangeParamCustomRequest& from);
   using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
-  void MergeFrom( const CustomParam& from) {
-    CustomParam::MergeImpl(*this, from);
+  void MergeFrom( const ChangeParamCustomRequest& from) {
+    ChangeParamCustomRequest::MergeImpl(*this, from);
   }
   private:
   static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
@@ -2990,15 +3056,15 @@ class CustomParam final :
   void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   void SharedDtor();
   void SetCachedSize(int size) const final;
-  void InternalSwap(CustomParam* other);
+  void InternalSwap(ChangeParamCustomRequest* other);
 
   private:
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::absl::string_view FullMessageName() {
-    return "mavsdk.rpc.param_server.CustomParam";
+    return "mavsdk.rpc.param_server.ChangeParamCustomRequest";
   }
   protected:
-  explicit CustomParam(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  explicit ChangeParamCustomRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   static const ClassData _class_data_;
@@ -3054,7 +3120,7 @@ class CustomParam final :
   std::string* _internal_mutable_value();
 
   public:
-  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.CustomParam)
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.ChangeParamCustomRequest)
  private:
   class _Internal;
 
@@ -3070,25 +3136,25 @@ class CustomParam final :
   friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
 };// -------------------------------------------------------------------
 
-class AllParams final :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.AllParams) */ {
+class ChangeParamCustomResponse final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.ChangeParamCustomResponse) */ {
  public:
-  inline AllParams() : AllParams(nullptr) {}
-  ~AllParams() override;
+  inline ChangeParamCustomResponse() : ChangeParamCustomResponse(nullptr) {}
+  ~ChangeParamCustomResponse() override;
   template<typename = void>
-  explicit PROTOBUF_CONSTEXPR AllParams(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+  explicit PROTOBUF_CONSTEXPR ChangeParamCustomResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
-  AllParams(const AllParams& from);
-  AllParams(AllParams&& from) noexcept
-    : AllParams() {
+  ChangeParamCustomResponse(const ChangeParamCustomResponse& from);
+  ChangeParamCustomResponse(ChangeParamCustomResponse&& from) noexcept
+    : ChangeParamCustomResponse() {
     *this = ::std::move(from);
   }
 
-  inline AllParams& operator=(const AllParams& from) {
+  inline ChangeParamCustomResponse& operator=(const ChangeParamCustomResponse& from) {
     CopyFrom(from);
     return *this;
   }
-  inline AllParams& operator=(AllParams&& from) noexcept {
+  inline ChangeParamCustomResponse& operator=(ChangeParamCustomResponse&& from) noexcept {
     if (this == &from) return *this;
     if (GetOwningArena() == from.GetOwningArena()
   #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
@@ -3118,20 +3184,20 @@ class AllParams final :
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
     return default_instance().GetMetadata().reflection;
   }
-  static const AllParams& default_instance() {
+  static const ChangeParamCustomResponse& default_instance() {
     return *internal_default_instance();
   }
-  static inline const AllParams* internal_default_instance() {
-    return reinterpret_cast<const AllParams*>(
-               &_AllParams_default_instance_);
+  static inline const ChangeParamCustomResponse* internal_default_instance() {
+    return reinterpret_cast<const ChangeParamCustomResponse*>(
+               &_ChangeParamCustomResponse_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
     17;
 
-  friend void swap(AllParams& a, AllParams& b) {
+  friend void swap(ChangeParamCustomResponse& a, ChangeParamCustomResponse& b) {
     a.Swap(&b);
   }
-  inline void Swap(AllParams* other) {
+  inline void Swap(ChangeParamCustomResponse* other) {
     if (other == this) return;
   #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
     if (GetOwningArena() != nullptr &&
@@ -3144,7 +3210,7 @@ class AllParams final :
       ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
     }
   }
-  void UnsafeArenaSwap(AllParams* other) {
+  void UnsafeArenaSwap(ChangeParamCustomResponse* other) {
     if (other == this) return;
     ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
@@ -3152,14 +3218,14 @@ class AllParams final :
 
   // implements Message ----------------------------------------------
 
-  AllParams* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
-    return CreateMaybeMessage<AllParams>(arena);
+  ChangeParamCustomResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<ChangeParamCustomResponse>(arena);
   }
   using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
-  void CopyFrom(const AllParams& from);
+  void CopyFrom(const ChangeParamCustomResponse& from);
   using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
-  void MergeFrom( const AllParams& from) {
-    AllParams::MergeImpl(*this, from);
+  void MergeFrom( const ChangeParamCustomResponse& from) {
+    ChangeParamCustomResponse::MergeImpl(*this, from);
   }
   private:
   static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
@@ -3177,15 +3243,15 @@ class AllParams final :
   void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   void SharedDtor();
   void SetCachedSize(int size) const final;
-  void InternalSwap(AllParams* other);
+  void InternalSwap(ChangeParamCustomResponse* other);
 
   private:
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::absl::string_view FullMessageName() {
-    return "mavsdk.rpc.param_server.AllParams";
+    return "mavsdk.rpc.param_server.ChangeParamCustomResponse";
   }
   protected:
-  explicit AllParams(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  explicit ChangeParamCustomResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   static const ClassData _class_data_;
@@ -3198,71 +3264,23 @@ class AllParams final :
   // accessors -------------------------------------------------------
 
   enum : int {
-    kIntParamsFieldNumber = 1,
-    kFloatParamsFieldNumber = 2,
-    kCustomParamsFieldNumber = 3,
+    kParamServerResultFieldNumber = 1,
   };
-  // repeated .mavsdk.rpc.param_server.IntParam int_params = 1;
-  int int_params_size() const;
-  private:
-  int _internal_int_params_size() const;
-
-  public:
-  void clear_int_params() ;
-  ::mavsdk::rpc::param_server::IntParam* mutable_int_params(int index);
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::IntParam >*
-      mutable_int_params();
-  private:
-  const ::mavsdk::rpc::param_server::IntParam& _internal_int_params(int index) const;
-  ::mavsdk::rpc::param_server::IntParam* _internal_add_int_params();
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::mavsdk::rpc::param_server::IntParam>& _internal_int_params() const;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::mavsdk::rpc::param_server::IntParam>* _internal_mutable_int_params();
-  public:
-  const ::mavsdk::rpc::param_server::IntParam& int_params(int index) const;
-  ::mavsdk::rpc::param_server::IntParam* add_int_params();
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::IntParam >&
-      int_params() const;
-  // repeated .mavsdk.rpc.param_server.FloatParam float_params = 2;
-  int float_params_size() const;
-  private:
-  int _internal_float_params_size() const;
-
-  public:
-  void clear_float_params() ;
-  ::mavsdk::rpc::param_server::FloatParam* mutable_float_params(int index);
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::FloatParam >*
-      mutable_float_params();
-  private:
-  const ::mavsdk::rpc::param_server::FloatParam& _internal_float_params(int index) const;
-  ::mavsdk::rpc::param_server::FloatParam* _internal_add_float_params();
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::mavsdk::rpc::param_server::FloatParam>& _internal_float_params() const;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::mavsdk::rpc::param_server::FloatParam>* _internal_mutable_float_params();
-  public:
-  const ::mavsdk::rpc::param_server::FloatParam& float_params(int index) const;
-  ::mavsdk::rpc::param_server::FloatParam* add_float_params();
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::FloatParam >&
-      float_params() const;
-  // repeated .mavsdk.rpc.param_server.CustomParam custom_params = 3;
-  int custom_params_size() const;
-  private:
-  int _internal_custom_params_size() const;
-
-  public:
-  void clear_custom_params() ;
-  ::mavsdk::rpc::param_server::CustomParam* mutable_custom_params(int index);
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::CustomParam >*
-      mutable_custom_params();
+  // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
+  bool has_param_server_result() const;
+  void clear_param_server_result() ;
+  const ::mavsdk::rpc::param_server::ParamServerResult& param_server_result() const;
+  PROTOBUF_NODISCARD ::mavsdk::rpc::param_server::ParamServerResult* release_param_server_result();
+  ::mavsdk::rpc::param_server::ParamServerResult* mutable_param_server_result();
+  void set_allocated_param_server_result(::mavsdk::rpc::param_server::ParamServerResult* param_server_result);
   private:
-  const ::mavsdk::rpc::param_server::CustomParam& _internal_custom_params(int index) const;
-  ::mavsdk::rpc::param_server::CustomParam* _internal_add_custom_params();
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::mavsdk::rpc::param_server::CustomParam>& _internal_custom_params() const;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::mavsdk::rpc::param_server::CustomParam>* _internal_mutable_custom_params();
+  const ::mavsdk::rpc::param_server::ParamServerResult& _internal_param_server_result() const;
+  ::mavsdk::rpc::param_server::ParamServerResult* _internal_mutable_param_server_result();
   public:
-  const ::mavsdk::rpc::param_server::CustomParam& custom_params(int index) const;
-  ::mavsdk::rpc::param_server::CustomParam* add_custom_params();
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::CustomParam >&
-      custom_params() const;
-  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.AllParams)
+  void unsafe_arena_set_allocated_param_server_result(
+      ::mavsdk::rpc::param_server::ParamServerResult* param_server_result);
+  ::mavsdk::rpc::param_server::ParamServerResult* unsafe_arena_release_param_server_result();
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.ChangeParamCustomResponse)
  private:
   class _Internal;
 
@@ -3270,34 +3288,32 @@ class AllParams final :
   typedef void InternalArenaConstructable_;
   typedef void DestructorSkippable_;
   struct Impl_ {
-    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::IntParam > int_params_;
-    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::FloatParam > float_params_;
-    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::CustomParam > custom_params_;
+    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
     mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+    ::mavsdk::rpc::param_server::ParamServerResult* param_server_result_;
   };
   union { Impl_ _impl_; };
   friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
 };// -------------------------------------------------------------------
 
-class ParamServerResult final :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.ParamServerResult) */ {
+class RetrieveAllParamsRequest final :
+    public ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.RetrieveAllParamsRequest) */ {
  public:
-  inline ParamServerResult() : ParamServerResult(nullptr) {}
-  ~ParamServerResult() override;
+  inline RetrieveAllParamsRequest() : RetrieveAllParamsRequest(nullptr) {}
   template<typename = void>
-  explicit PROTOBUF_CONSTEXPR ParamServerResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+  explicit PROTOBUF_CONSTEXPR RetrieveAllParamsRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
-  ParamServerResult(const ParamServerResult& from);
-  ParamServerResult(ParamServerResult&& from) noexcept
-    : ParamServerResult() {
+  RetrieveAllParamsRequest(const RetrieveAllParamsRequest& from);
+  RetrieveAllParamsRequest(RetrieveAllParamsRequest&& from) noexcept
+    : RetrieveAllParamsRequest() {
     *this = ::std::move(from);
   }
 
-  inline ParamServerResult& operator=(const ParamServerResult& from) {
+  inline RetrieveAllParamsRequest& operator=(const RetrieveAllParamsRequest& from) {
     CopyFrom(from);
     return *this;
   }
-  inline ParamServerResult& operator=(ParamServerResult&& from) noexcept {
+  inline RetrieveAllParamsRequest& operator=(RetrieveAllParamsRequest&& from) noexcept {
     if (this == &from) return *this;
     if (GetOwningArena() == from.GetOwningArena()
   #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
@@ -3327,20 +3343,20 @@ class ParamServerResult final :
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
     return default_instance().GetMetadata().reflection;
   }
-  static const ParamServerResult& default_instance() {
+  static const RetrieveAllParamsRequest& default_instance() {
     return *internal_default_instance();
   }
-  static inline const ParamServerResult* internal_default_instance() {
-    return reinterpret_cast<const ParamServerResult*>(
-               &_ParamServerResult_default_instance_);
+  static inline const RetrieveAllParamsRequest* internal_default_instance() {
+    return reinterpret_cast<const RetrieveAllParamsRequest*>(
+               &_RetrieveAllParamsRequest_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
     18;
 
-  friend void swap(ParamServerResult& a, ParamServerResult& b) {
+  friend void swap(RetrieveAllParamsRequest& a, RetrieveAllParamsRequest& b) {
     a.Swap(&b);
   }
-  inline void Swap(ParamServerResult* other) {
+  inline void Swap(RetrieveAllParamsRequest* other) {
     if (other == this) return;
   #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
     if (GetOwningArena() != nullptr &&
@@ -3353,7 +3369,7 @@ class ParamServerResult final :
       ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
     }
   }
-  void UnsafeArenaSwap(ParamServerResult* other) {
+  void UnsafeArenaSwap(RetrieveAllParamsRequest* other) {
     if (other == this) return;
     ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
@@ -3361,40 +3377,26 @@ class ParamServerResult final :
 
   // implements Message ----------------------------------------------
 
-  ParamServerResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
-    return CreateMaybeMessage<ParamServerResult>(arena);
+  RetrieveAllParamsRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<RetrieveAllParamsRequest>(arena);
   }
-  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
-  void CopyFrom(const ParamServerResult& from);
-  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
-  void MergeFrom( const ParamServerResult& from) {
-    ParamServerResult::MergeImpl(*this, from);
+  using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyFrom;
+  inline void CopyFrom(const RetrieveAllParamsRequest& from) {
+    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl(*this, from);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeFrom;
+  void MergeFrom(const RetrieveAllParamsRequest& from) {
+    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl(*this, from);
   }
-  private:
-  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
   public:
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  ::size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::uint8_t* _InternalSerialize(
-      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }
-
-  private:
-  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(ParamServerResult* other);
 
   private:
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::absl::string_view FullMessageName() {
-    return "mavsdk.rpc.param_server.ParamServerResult";
+    return "mavsdk.rpc.param_server.RetrieveAllParamsRequest";
   }
   protected:
-  explicit ParamServerResult(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  explicit RetrieveAllParamsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   static const ClassData _class_data_;
@@ -3404,68 +3406,165 @@ class ParamServerResult final :
 
   // nested types ----------------------------------------------------
 
-  using Result = ParamServerResult_Result;
-  static constexpr Result RESULT_UNKNOWN = ParamServerResult_Result_RESULT_UNKNOWN;
-  static constexpr Result RESULT_SUCCESS = ParamServerResult_Result_RESULT_SUCCESS;
-  static constexpr Result RESULT_NOT_FOUND = ParamServerResult_Result_RESULT_NOT_FOUND;
-  static constexpr Result RESULT_WRONG_TYPE = ParamServerResult_Result_RESULT_WRONG_TYPE;
-  static constexpr Result RESULT_PARAM_NAME_TOO_LONG = ParamServerResult_Result_RESULT_PARAM_NAME_TOO_LONG;
-  static constexpr Result RESULT_NO_SYSTEM = ParamServerResult_Result_RESULT_NO_SYSTEM;
-  static constexpr Result RESULT_PARAM_VALUE_TOO_LONG = ParamServerResult_Result_RESULT_PARAM_VALUE_TOO_LONG;
-  static inline bool Result_IsValid(int value) {
-    return ParamServerResult_Result_IsValid(value);
-  }
-  static constexpr Result Result_MIN = ParamServerResult_Result_Result_MIN;
-  static constexpr Result Result_MAX = ParamServerResult_Result_Result_MAX;
-  static constexpr int Result_ARRAYSIZE = ParamServerResult_Result_Result_ARRAYSIZE;
-  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Result_descriptor() {
-    return ParamServerResult_Result_descriptor();
+  // accessors -------------------------------------------------------
+
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.RetrieveAllParamsRequest)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  struct Impl_ {
+  };
+  friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
+};// -------------------------------------------------------------------
+
+class RetrieveAllParamsResponse final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.RetrieveAllParamsResponse) */ {
+ public:
+  inline RetrieveAllParamsResponse() : RetrieveAllParamsResponse(nullptr) {}
+  ~RetrieveAllParamsResponse() override;
+  template<typename = void>
+  explicit PROTOBUF_CONSTEXPR RetrieveAllParamsResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  RetrieveAllParamsResponse(const RetrieveAllParamsResponse& from);
+  RetrieveAllParamsResponse(RetrieveAllParamsResponse&& from) noexcept
+    : RetrieveAllParamsResponse() {
+    *this = ::std::move(from);
   }
-  template <typename T>
-  static inline const std::string& Result_Name(T value) {
-    return ParamServerResult_Result_Name(value);
+
+  inline RetrieveAllParamsResponse& operator=(const RetrieveAllParamsResponse& from) {
+    CopyFrom(from);
+    return *this;
   }
-  static inline bool Result_Parse(absl::string_view name, Result* value) {
-    return ParamServerResult_Result_Parse(name, value);
+  inline RetrieveAllParamsResponse& operator=(RetrieveAllParamsResponse&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
   }
 
-  // accessors -------------------------------------------------------
+  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
+  }
+  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+  }
 
-  enum : int {
-    kResultStrFieldNumber = 2,
-    kResultFieldNumber = 1,
-  };
-  // string result_str = 2;
-  void clear_result_str() ;
-  const std::string& result_str() const;
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const RetrieveAllParamsResponse& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const RetrieveAllParamsResponse* internal_default_instance() {
+    return reinterpret_cast<const RetrieveAllParamsResponse*>(
+               &_RetrieveAllParamsResponse_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    19;
 
+  friend void swap(RetrieveAllParamsResponse& a, RetrieveAllParamsResponse& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(RetrieveAllParamsResponse* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(RetrieveAllParamsResponse* other) {
+    if (other == this) return;
+    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
 
+  // implements Message ----------------------------------------------
 
+  RetrieveAllParamsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<RetrieveAllParamsResponse>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const RetrieveAllParamsResponse& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom( const RetrieveAllParamsResponse& from) {
+    RetrieveAllParamsResponse::MergeImpl(*this, from);
+  }
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
 
-  template <typename Arg_ = const std::string&, typename... Args_>
-  void set_result_str(Arg_&& arg, Args_... args);
-  std::string* mutable_result_str();
-  PROTOBUF_NODISCARD std::string* release_result_str();
-  void set_allocated_result_str(std::string* ptr);
+  ::size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  ::uint8_t* _InternalSerialize(
+      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }
 
   private:
-  const std::string& _internal_result_str() const;
-  inline PROTOBUF_ALWAYS_INLINE void _internal_set_result_str(
-      const std::string& value);
-  std::string* _internal_mutable_result_str();
+  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(RetrieveAllParamsResponse* other);
 
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::absl::string_view FullMessageName() {
+    return "mavsdk.rpc.param_server.RetrieveAllParamsResponse";
+  }
+  protected:
+  explicit RetrieveAllParamsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
-  // .mavsdk.rpc.param_server.ParamServerResult.Result result = 1;
-  void clear_result() ;
-  ::mavsdk::rpc::param_server::ParamServerResult_Result result() const;
-  void set_result(::mavsdk::rpc::param_server::ParamServerResult_Result value);
 
-  private:
-  ::mavsdk::rpc::param_server::ParamServerResult_Result _internal_result() const;
-  void _internal_set_result(::mavsdk::rpc::param_server::ParamServerResult_Result value);
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
 
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kParamsFieldNumber = 1,
+  };
+  // .mavsdk.rpc.param_server.AllParams params = 1;
+  bool has_params() const;
+  void clear_params() ;
+  const ::mavsdk::rpc::param_server::AllParams& params() const;
+  PROTOBUF_NODISCARD ::mavsdk::rpc::param_server::AllParams* release_params();
+  ::mavsdk::rpc::param_server::AllParams* mutable_params();
+  void set_allocated_params(::mavsdk::rpc::param_server::AllParams* params);
+  private:
+  const ::mavsdk::rpc::param_server::AllParams& _internal_params() const;
+  ::mavsdk::rpc::param_server::AllParams* _internal_mutable_params();
   public:
-  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.ParamServerResult)
+  void unsafe_arena_set_allocated_params(
+      ::mavsdk::rpc::param_server::AllParams* params);
+  ::mavsdk::rpc::param_server::AllParams* unsafe_arena_release_params();
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.RetrieveAllParamsResponse)
  private:
   class _Internal;
 
@@ -3473,101 +3572,1397 @@ class ParamServerResult final :
   typedef void InternalArenaConstructable_;
   typedef void DestructorSkippable_;
   struct Impl_ {
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr result_str_;
-    int result_;
+    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
     mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+    ::mavsdk::rpc::param_server::AllParams* params_;
   };
   union { Impl_ _impl_; };
   friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
-};
+};// -------------------------------------------------------------------
 
-// ===================================================================
+class IntParam final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.IntParam) */ {
+ public:
+  inline IntParam() : IntParam(nullptr) {}
+  ~IntParam() override;
+  template<typename = void>
+  explicit PROTOBUF_CONSTEXPR IntParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
+  IntParam(const IntParam& from);
+  IntParam(IntParam&& from) noexcept
+    : IntParam() {
+    *this = ::std::move(from);
+  }
 
+  inline IntParam& operator=(const IntParam& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline IntParam& operator=(IntParam&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
 
+  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
+  }
+  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+  }
 
-// ===================================================================
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const IntParam& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const IntParam* internal_default_instance() {
+    return reinterpret_cast<const IntParam*>(
+               &_IntParam_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    20;
 
+  friend void swap(IntParam& a, IntParam& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(IntParam* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(IntParam* other) {
+    if (other == this) return;
+    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  IntParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<IntParam>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const IntParam& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom( const IntParam& from) {
+    IntParam::MergeImpl(*this, from);
+  }
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  ::size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  ::uint8_t* _InternalSerialize(
+      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }
+
+  private:
+  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(IntParam* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::absl::string_view FullMessageName() {
+    return "mavsdk.rpc.param_server.IntParam";
+  }
+  protected:
+  explicit IntParam(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kNameFieldNumber = 1,
+    kValueFieldNumber = 2,
+  };
+  // string name = 1;
+  void clear_name() ;
+  const std::string& name() const;
+
+
+
+
+  template <typename Arg_ = const std::string&, typename... Args_>
+  void set_name(Arg_&& arg, Args_... args);
+  std::string* mutable_name();
+  PROTOBUF_NODISCARD std::string* release_name();
+  void set_allocated_name(std::string* ptr);
+
+  private:
+  const std::string& _internal_name() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(
+      const std::string& value);
+  std::string* _internal_mutable_name();
+
+  public:
+  // int32 value = 2;
+  void clear_value() ;
+  ::int32_t value() const;
+  void set_value(::int32_t value);
+
+  private:
+  ::int32_t _internal_value() const;
+  void _internal_set_value(::int32_t value);
+
+  public:
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.IntParam)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  struct Impl_ {
+    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
+    ::int32_t value_;
+    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  };
+  union { Impl_ _impl_; };
+  friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
+};// -------------------------------------------------------------------
+
+class FloatParam final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.FloatParam) */ {
+ public:
+  inline FloatParam() : FloatParam(nullptr) {}
+  ~FloatParam() override;
+  template<typename = void>
+  explicit PROTOBUF_CONSTEXPR FloatParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  FloatParam(const FloatParam& from);
+  FloatParam(FloatParam&& from) noexcept
+    : FloatParam() {
+    *this = ::std::move(from);
+  }
+
+  inline FloatParam& operator=(const FloatParam& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline FloatParam& operator=(FloatParam&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
+  }
+  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const FloatParam& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const FloatParam* internal_default_instance() {
+    return reinterpret_cast<const FloatParam*>(
+               &_FloatParam_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    21;
+
+  friend void swap(FloatParam& a, FloatParam& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(FloatParam* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(FloatParam* other) {
+    if (other == this) return;
+    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  FloatParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<FloatParam>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const FloatParam& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom( const FloatParam& from) {
+    FloatParam::MergeImpl(*this, from);
+  }
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  ::size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  ::uint8_t* _InternalSerialize(
+      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }
+
+  private:
+  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(FloatParam* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::absl::string_view FullMessageName() {
+    return "mavsdk.rpc.param_server.FloatParam";
+  }
+  protected:
+  explicit FloatParam(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kNameFieldNumber = 1,
+    kValueFieldNumber = 2,
+  };
+  // string name = 1;
+  void clear_name() ;
+  const std::string& name() const;
+
+
+
+
+  template <typename Arg_ = const std::string&, typename... Args_>
+  void set_name(Arg_&& arg, Args_... args);
+  std::string* mutable_name();
+  PROTOBUF_NODISCARD std::string* release_name();
+  void set_allocated_name(std::string* ptr);
+
+  private:
+  const std::string& _internal_name() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(
+      const std::string& value);
+  std::string* _internal_mutable_name();
+
+  public:
+  // float value = 2;
+  void clear_value() ;
+  float value() const;
+  void set_value(float value);
+
+  private:
+  float _internal_value() const;
+  void _internal_set_value(float value);
+
+  public:
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.FloatParam)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  struct Impl_ {
+    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
+    float value_;
+    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  };
+  union { Impl_ _impl_; };
+  friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
+};// -------------------------------------------------------------------
+
+class CustomParam final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.CustomParam) */ {
+ public:
+  inline CustomParam() : CustomParam(nullptr) {}
+  ~CustomParam() override;
+  template<typename = void>
+  explicit PROTOBUF_CONSTEXPR CustomParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  CustomParam(const CustomParam& from);
+  CustomParam(CustomParam&& from) noexcept
+    : CustomParam() {
+    *this = ::std::move(from);
+  }
+
+  inline CustomParam& operator=(const CustomParam& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline CustomParam& operator=(CustomParam&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
+  }
+  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const CustomParam& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const CustomParam* internal_default_instance() {
+    return reinterpret_cast<const CustomParam*>(
+               &_CustomParam_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    22;
+
+  friend void swap(CustomParam& a, CustomParam& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(CustomParam* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(CustomParam* other) {
+    if (other == this) return;
+    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  CustomParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<CustomParam>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const CustomParam& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom( const CustomParam& from) {
+    CustomParam::MergeImpl(*this, from);
+  }
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  ::size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  ::uint8_t* _InternalSerialize(
+      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }
+
+  private:
+  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(CustomParam* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::absl::string_view FullMessageName() {
+    return "mavsdk.rpc.param_server.CustomParam";
+  }
+  protected:
+  explicit CustomParam(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kNameFieldNumber = 1,
+    kValueFieldNumber = 2,
+  };
+  // string name = 1;
+  void clear_name() ;
+  const std::string& name() const;
+
+
+
+
+  template <typename Arg_ = const std::string&, typename... Args_>
+  void set_name(Arg_&& arg, Args_... args);
+  std::string* mutable_name();
+  PROTOBUF_NODISCARD std::string* release_name();
+  void set_allocated_name(std::string* ptr);
+
+  private:
+  const std::string& _internal_name() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(
+      const std::string& value);
+  std::string* _internal_mutable_name();
+
+  public:
+  // string value = 2;
+  void clear_value() ;
+  const std::string& value() const;
+
+
+
+
+  template <typename Arg_ = const std::string&, typename... Args_>
+  void set_value(Arg_&& arg, Args_... args);
+  std::string* mutable_value();
+  PROTOBUF_NODISCARD std::string* release_value();
+  void set_allocated_value(std::string* ptr);
+
+  private:
+  const std::string& _internal_value() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_value(
+      const std::string& value);
+  std::string* _internal_mutable_value();
+
+  public:
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.CustomParam)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  struct Impl_ {
+    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
+    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr value_;
+    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  };
+  union { Impl_ _impl_; };
+  friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
+};// -------------------------------------------------------------------
+
+class AllParams final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.AllParams) */ {
+ public:
+  inline AllParams() : AllParams(nullptr) {}
+  ~AllParams() override;
+  template<typename = void>
+  explicit PROTOBUF_CONSTEXPR AllParams(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  AllParams(const AllParams& from);
+  AllParams(AllParams&& from) noexcept
+    : AllParams() {
+    *this = ::std::move(from);
+  }
+
+  inline AllParams& operator=(const AllParams& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline AllParams& operator=(AllParams&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
+  }
+  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const AllParams& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const AllParams* internal_default_instance() {
+    return reinterpret_cast<const AllParams*>(
+               &_AllParams_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    23;
+
+  friend void swap(AllParams& a, AllParams& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(AllParams* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(AllParams* other) {
+    if (other == this) return;
+    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  AllParams* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<AllParams>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const AllParams& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom( const AllParams& from) {
+    AllParams::MergeImpl(*this, from);
+  }
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  ::size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  ::uint8_t* _InternalSerialize(
+      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }
+
+  private:
+  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(AllParams* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::absl::string_view FullMessageName() {
+    return "mavsdk.rpc.param_server.AllParams";
+  }
+  protected:
+  explicit AllParams(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kIntParamsFieldNumber = 1,
+    kFloatParamsFieldNumber = 2,
+    kCustomParamsFieldNumber = 3,
+  };
+  // repeated .mavsdk.rpc.param_server.IntParam int_params = 1;
+  int int_params_size() const;
+  private:
+  int _internal_int_params_size() const;
+
+  public:
+  void clear_int_params() ;
+  ::mavsdk::rpc::param_server::IntParam* mutable_int_params(int index);
+  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::IntParam >*
+      mutable_int_params();
+  private:
+  const ::mavsdk::rpc::param_server::IntParam& _internal_int_params(int index) const;
+  ::mavsdk::rpc::param_server::IntParam* _internal_add_int_params();
+  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::mavsdk::rpc::param_server::IntParam>& _internal_int_params() const;
+  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::mavsdk::rpc::param_server::IntParam>* _internal_mutable_int_params();
+  public:
+  const ::mavsdk::rpc::param_server::IntParam& int_params(int index) const;
+  ::mavsdk::rpc::param_server::IntParam* add_int_params();
+  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::IntParam >&
+      int_params() const;
+  // repeated .mavsdk.rpc.param_server.FloatParam float_params = 2;
+  int float_params_size() const;
+  private:
+  int _internal_float_params_size() const;
+
+  public:
+  void clear_float_params() ;
+  ::mavsdk::rpc::param_server::FloatParam* mutable_float_params(int index);
+  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::FloatParam >*
+      mutable_float_params();
+  private:
+  const ::mavsdk::rpc::param_server::FloatParam& _internal_float_params(int index) const;
+  ::mavsdk::rpc::param_server::FloatParam* _internal_add_float_params();
+  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::mavsdk::rpc::param_server::FloatParam>& _internal_float_params() const;
+  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::mavsdk::rpc::param_server::FloatParam>* _internal_mutable_float_params();
+  public:
+  const ::mavsdk::rpc::param_server::FloatParam& float_params(int index) const;
+  ::mavsdk::rpc::param_server::FloatParam* add_float_params();
+  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::FloatParam >&
+      float_params() const;
+  // repeated .mavsdk.rpc.param_server.CustomParam custom_params = 3;
+  int custom_params_size() const;
+  private:
+  int _internal_custom_params_size() const;
+
+  public:
+  void clear_custom_params() ;
+  ::mavsdk::rpc::param_server::CustomParam* mutable_custom_params(int index);
+  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::CustomParam >*
+      mutable_custom_params();
+  private:
+  const ::mavsdk::rpc::param_server::CustomParam& _internal_custom_params(int index) const;
+  ::mavsdk::rpc::param_server::CustomParam* _internal_add_custom_params();
+  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::mavsdk::rpc::param_server::CustomParam>& _internal_custom_params() const;
+  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::mavsdk::rpc::param_server::CustomParam>* _internal_mutable_custom_params();
+  public:
+  const ::mavsdk::rpc::param_server::CustomParam& custom_params(int index) const;
+  ::mavsdk::rpc::param_server::CustomParam* add_custom_params();
+  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::CustomParam >&
+      custom_params() const;
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.AllParams)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  struct Impl_ {
+    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::IntParam > int_params_;
+    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::FloatParam > float_params_;
+    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::mavsdk::rpc::param_server::CustomParam > custom_params_;
+    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  };
+  union { Impl_ _impl_; };
+  friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
+};// -------------------------------------------------------------------
+
+class ParamServerResult final :
+    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.param_server.ParamServerResult) */ {
+ public:
+  inline ParamServerResult() : ParamServerResult(nullptr) {}
+  ~ParamServerResult() override;
+  template<typename = void>
+  explicit PROTOBUF_CONSTEXPR ParamServerResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+  ParamServerResult(const ParamServerResult& from);
+  ParamServerResult(ParamServerResult&& from) noexcept
+    : ParamServerResult() {
+    *this = ::std::move(from);
+  }
+
+  inline ParamServerResult& operator=(const ParamServerResult& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  inline ParamServerResult& operator=(ParamServerResult&& from) noexcept {
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetOwningArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+
+  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
+  }
+  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+  }
+
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+    return GetDescriptor();
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
+  }
+  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const ParamServerResult& default_instance() {
+    return *internal_default_instance();
+  }
+  static inline const ParamServerResult* internal_default_instance() {
+    return reinterpret_cast<const ParamServerResult*>(
+               &_ParamServerResult_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    24;
+
+  friend void swap(ParamServerResult& a, ParamServerResult& b) {
+    a.Swap(&b);
+  }
+  inline void Swap(ParamServerResult* other) {
+    if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() != nullptr &&
+        GetOwningArena() == other->GetOwningArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetOwningArena() == other->GetOwningArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(ParamServerResult* other) {
+    if (other == this) return;
+    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
+    InternalSwap(other);
+  }
+
+  // implements Message ----------------------------------------------
+
+  ParamServerResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+    return CreateMaybeMessage<ParamServerResult>(arena);
+  }
+  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+  void CopyFrom(const ParamServerResult& from);
+  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+  void MergeFrom( const ParamServerResult& from) {
+    ParamServerResult::MergeImpl(*this, from);
+  }
+  private:
+  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
+  public:
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  ::size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
+  ::uint8_t* _InternalSerialize(
+      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }
+
+  private:
+  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(ParamServerResult* other);
+
+  private:
+  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+  static ::absl::string_view FullMessageName() {
+    return "mavsdk.rpc.param_server.ParamServerResult";
+  }
+  protected:
+  explicit ParamServerResult(::PROTOBUF_NAMESPACE_ID::Arena* arena);
+  public:
+
+  static const ClassData _class_data_;
+  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
+
+  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  using Result = ParamServerResult_Result;
+  static constexpr Result RESULT_UNKNOWN = ParamServerResult_Result_RESULT_UNKNOWN;
+  static constexpr Result RESULT_SUCCESS = ParamServerResult_Result_RESULT_SUCCESS;
+  static constexpr Result RESULT_NOT_FOUND = ParamServerResult_Result_RESULT_NOT_FOUND;
+  static constexpr Result RESULT_WRONG_TYPE = ParamServerResult_Result_RESULT_WRONG_TYPE;
+  static constexpr Result RESULT_PARAM_NAME_TOO_LONG = ParamServerResult_Result_RESULT_PARAM_NAME_TOO_LONG;
+  static constexpr Result RESULT_NO_SYSTEM = ParamServerResult_Result_RESULT_NO_SYSTEM;
+  static constexpr Result RESULT_PARAM_VALUE_TOO_LONG = ParamServerResult_Result_RESULT_PARAM_VALUE_TOO_LONG;
+  static inline bool Result_IsValid(int value) {
+    return ParamServerResult_Result_IsValid(value);
+  }
+  static constexpr Result Result_MIN = ParamServerResult_Result_Result_MIN;
+  static constexpr Result Result_MAX = ParamServerResult_Result_Result_MAX;
+  static constexpr int Result_ARRAYSIZE = ParamServerResult_Result_Result_ARRAYSIZE;
+  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Result_descriptor() {
+    return ParamServerResult_Result_descriptor();
+  }
+  template <typename T>
+  static inline const std::string& Result_Name(T value) {
+    return ParamServerResult_Result_Name(value);
+  }
+  static inline bool Result_Parse(absl::string_view name, Result* value) {
+    return ParamServerResult_Result_Parse(name, value);
+  }
+
+  // accessors -------------------------------------------------------
+
+  enum : int {
+    kResultStrFieldNumber = 2,
+    kResultFieldNumber = 1,
+  };
+  // string result_str = 2;
+  void clear_result_str() ;
+  const std::string& result_str() const;
+
+
+
+
+  template <typename Arg_ = const std::string&, typename... Args_>
+  void set_result_str(Arg_&& arg, Args_... args);
+  std::string* mutable_result_str();
+  PROTOBUF_NODISCARD std::string* release_result_str();
+  void set_allocated_result_str(std::string* ptr);
+
+  private:
+  const std::string& _internal_result_str() const;
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_result_str(
+      const std::string& value);
+  std::string* _internal_mutable_result_str();
+
+  public:
+  // .mavsdk.rpc.param_server.ParamServerResult.Result result = 1;
+  void clear_result() ;
+  ::mavsdk::rpc::param_server::ParamServerResult_Result result() const;
+  void set_result(::mavsdk::rpc::param_server::ParamServerResult_Result value);
+
+  private:
+  ::mavsdk::rpc::param_server::ParamServerResult_Result _internal_result() const;
+  void _internal_set_result(::mavsdk::rpc::param_server::ParamServerResult_Result value);
+
+  public:
+  // @@protoc_insertion_point(class_scope:mavsdk.rpc.param_server.ParamServerResult)
+ private:
+  class _Internal;
+
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
+  struct Impl_ {
+    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr result_str_;
+    int result_;
+    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  };
+  union { Impl_ _impl_; };
+  friend struct ::TableStruct_param_5fserver_2fparam_5fserver_2eproto;
+};
+
+// ===================================================================
+
+
+
+
+// ===================================================================
+
+
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif  // __GNUC__
+// -------------------------------------------------------------------
+
+// RetrieveParamIntRequest
+
+// string name = 1;
+inline void RetrieveParamIntRequest::clear_name() {
+  _impl_.name_.ClearToEmpty();
+}
+inline const std::string& RetrieveParamIntRequest::name() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.RetrieveParamIntRequest.name)
+  return _internal_name();
+}
+template <typename Arg_, typename... Args_>
+inline PROTOBUF_ALWAYS_INLINE void RetrieveParamIntRequest::set_name(Arg_&& arg,
+                                                     Args_... args) {
+  ;
+  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
+  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.RetrieveParamIntRequest.name)
+}
+inline std::string* RetrieveParamIntRequest::mutable_name() {
+  std::string* _s = _internal_mutable_name();
+  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.RetrieveParamIntRequest.name)
+  return _s;
+}
+inline const std::string& RetrieveParamIntRequest::_internal_name() const {
+  return _impl_.name_.Get();
+}
+inline void RetrieveParamIntRequest::_internal_set_name(const std::string& value) {
+  ;
+
+
+  _impl_.name_.Set(value, GetArenaForAllocation());
+}
+inline std::string* RetrieveParamIntRequest::_internal_mutable_name() {
+  ;
+  return _impl_.name_.Mutable( GetArenaForAllocation());
+}
+inline std::string* RetrieveParamIntRequest::release_name() {
+  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.RetrieveParamIntRequest.name)
+  return _impl_.name_.Release();
+}
+inline void RetrieveParamIntRequest::set_allocated_name(std::string* value) {
+  _impl_.name_.SetAllocated(value, GetArenaForAllocation());
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        if (_impl_.name_.IsDefault()) {
+          _impl_.name_.Set("", GetArenaForAllocation());
+        }
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.RetrieveParamIntRequest.name)
+}
+
+// -------------------------------------------------------------------
+
+// RetrieveParamIntResponse
+
+// .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
+inline bool RetrieveParamIntResponse::has_param_server_result() const {
+  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
+  PROTOBUF_ASSUME(!value || _impl_.param_server_result_ != nullptr);
+  return value;
+}
+inline void RetrieveParamIntResponse::clear_param_server_result() {
+  if (_impl_.param_server_result_ != nullptr) _impl_.param_server_result_->Clear();
+  _impl_._has_bits_[0] &= ~0x00000001u;
+}
+inline const ::mavsdk::rpc::param_server::ParamServerResult& RetrieveParamIntResponse::_internal_param_server_result() const {
+  const ::mavsdk::rpc::param_server::ParamServerResult* p = _impl_.param_server_result_;
+  return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::param_server::ParamServerResult&>(
+      ::mavsdk::rpc::param_server::_ParamServerResult_default_instance_);
+}
+inline const ::mavsdk::rpc::param_server::ParamServerResult& RetrieveParamIntResponse::param_server_result() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.RetrieveParamIntResponse.param_server_result)
+  return _internal_param_server_result();
+}
+inline void RetrieveParamIntResponse::unsafe_arena_set_allocated_param_server_result(
+    ::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
+  if (GetArenaForAllocation() == nullptr) {
+    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.param_server_result_);
+  }
+  _impl_.param_server_result_ = param_server_result;
+  if (param_server_result) {
+    _impl_._has_bits_[0] |= 0x00000001u;
+  } else {
+    _impl_._has_bits_[0] &= ~0x00000001u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.param_server.RetrieveParamIntResponse.param_server_result)
+}
+inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamIntResponse::release_param_server_result() {
+  _impl_._has_bits_[0] &= ~0x00000001u;
+  ::mavsdk::rpc::param_server::ParamServerResult* temp = _impl_.param_server_result_;
+  _impl_.param_server_result_ = nullptr;
+#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
+  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
+  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  if (GetArenaForAllocation() == nullptr) { delete old; }
+#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
+  if (GetArenaForAllocation() != nullptr) {
+    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  }
+#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
+  return temp;
+}
+inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamIntResponse::unsafe_arena_release_param_server_result() {
+  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.RetrieveParamIntResponse.param_server_result)
+  _impl_._has_bits_[0] &= ~0x00000001u;
+  ::mavsdk::rpc::param_server::ParamServerResult* temp = _impl_.param_server_result_;
+  _impl_.param_server_result_ = nullptr;
+  return temp;
+}
+inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamIntResponse::_internal_mutable_param_server_result() {
+  _impl_._has_bits_[0] |= 0x00000001u;
+  if (_impl_.param_server_result_ == nullptr) {
+    auto* p = CreateMaybeMessage<::mavsdk::rpc::param_server::ParamServerResult>(GetArenaForAllocation());
+    _impl_.param_server_result_ = p;
+  }
+  return _impl_.param_server_result_;
+}
+inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamIntResponse::mutable_param_server_result() {
+  ::mavsdk::rpc::param_server::ParamServerResult* _msg = _internal_mutable_param_server_result();
+  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.RetrieveParamIntResponse.param_server_result)
+  return _msg;
+}
+inline void RetrieveParamIntResponse::set_allocated_param_server_result(::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
+  if (message_arena == nullptr) {
+    delete _impl_.param_server_result_;
+  }
+  if (param_server_result) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(param_server_result);
+    if (message_arena != submessage_arena) {
+      param_server_result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, param_server_result, submessage_arena);
+    }
+    _impl_._has_bits_[0] |= 0x00000001u;
+  } else {
+    _impl_._has_bits_[0] &= ~0x00000001u;
+  }
+  _impl_.param_server_result_ = param_server_result;
+  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.RetrieveParamIntResponse.param_server_result)
+}
+
+// int32 value = 2;
+inline void RetrieveParamIntResponse::clear_value() {
+  _impl_.value_ = 0;
+}
+inline ::int32_t RetrieveParamIntResponse::value() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.RetrieveParamIntResponse.value)
+  return _internal_value();
+}
+inline void RetrieveParamIntResponse::set_value(::int32_t value) {
+  _internal_set_value(value);
+  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.RetrieveParamIntResponse.value)
+}
+inline ::int32_t RetrieveParamIntResponse::_internal_value() const {
+  return _impl_.value_;
+}
+inline void RetrieveParamIntResponse::_internal_set_value(::int32_t value) {
+  ;
+  _impl_.value_ = value;
+}
+
+// -------------------------------------------------------------------
+
+// ProvideParamIntRequest
+
+// string name = 1;
+inline void ProvideParamIntRequest::clear_name() {
+  _impl_.name_.ClearToEmpty();
+}
+inline const std::string& ProvideParamIntRequest::name() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ProvideParamIntRequest.name)
+  return _internal_name();
+}
+template <typename Arg_, typename... Args_>
+inline PROTOBUF_ALWAYS_INLINE void ProvideParamIntRequest::set_name(Arg_&& arg,
+                                                     Args_... args) {
+  ;
+  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
+  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.ProvideParamIntRequest.name)
+}
+inline std::string* ProvideParamIntRequest::mutable_name() {
+  std::string* _s = _internal_mutable_name();
+  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.ProvideParamIntRequest.name)
+  return _s;
+}
+inline const std::string& ProvideParamIntRequest::_internal_name() const {
+  return _impl_.name_.Get();
+}
+inline void ProvideParamIntRequest::_internal_set_name(const std::string& value) {
+  ;
+
+
+  _impl_.name_.Set(value, GetArenaForAllocation());
+}
+inline std::string* ProvideParamIntRequest::_internal_mutable_name() {
+  ;
+  return _impl_.name_.Mutable( GetArenaForAllocation());
+}
+inline std::string* ProvideParamIntRequest::release_name() {
+  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.ProvideParamIntRequest.name)
+  return _impl_.name_.Release();
+}
+inline void ProvideParamIntRequest::set_allocated_name(std::string* value) {
+  _impl_.name_.SetAllocated(value, GetArenaForAllocation());
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        if (_impl_.name_.IsDefault()) {
+          _impl_.name_.Set("", GetArenaForAllocation());
+        }
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.ProvideParamIntRequest.name)
+}
+
+// int32 value = 2;
+inline void ProvideParamIntRequest::clear_value() {
+  _impl_.value_ = 0;
+}
+inline ::int32_t ProvideParamIntRequest::value() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ProvideParamIntRequest.value)
+  return _internal_value();
+}
+inline void ProvideParamIntRequest::set_value(::int32_t value) {
+  _internal_set_value(value);
+  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.ProvideParamIntRequest.value)
+}
+inline ::int32_t ProvideParamIntRequest::_internal_value() const {
+  return _impl_.value_;
+}
+inline void ProvideParamIntRequest::_internal_set_value(::int32_t value) {
+  ;
+  _impl_.value_ = value;
+}
+
+// -------------------------------------------------------------------
+
+// ProvideParamIntResponse
+
+// .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
+inline bool ProvideParamIntResponse::has_param_server_result() const {
+  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
+  PROTOBUF_ASSUME(!value || _impl_.param_server_result_ != nullptr);
+  return value;
+}
+inline void ProvideParamIntResponse::clear_param_server_result() {
+  if (_impl_.param_server_result_ != nullptr) _impl_.param_server_result_->Clear();
+  _impl_._has_bits_[0] &= ~0x00000001u;
+}
+inline const ::mavsdk::rpc::param_server::ParamServerResult& ProvideParamIntResponse::_internal_param_server_result() const {
+  const ::mavsdk::rpc::param_server::ParamServerResult* p = _impl_.param_server_result_;
+  return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::param_server::ParamServerResult&>(
+      ::mavsdk::rpc::param_server::_ParamServerResult_default_instance_);
+}
+inline const ::mavsdk::rpc::param_server::ParamServerResult& ProvideParamIntResponse::param_server_result() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ProvideParamIntResponse.param_server_result)
+  return _internal_param_server_result();
+}
+inline void ProvideParamIntResponse::unsafe_arena_set_allocated_param_server_result(
+    ::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
+  if (GetArenaForAllocation() == nullptr) {
+    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.param_server_result_);
+  }
+  _impl_.param_server_result_ = param_server_result;
+  if (param_server_result) {
+    _impl_._has_bits_[0] |= 0x00000001u;
+  } else {
+    _impl_._has_bits_[0] &= ~0x00000001u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.param_server.ProvideParamIntResponse.param_server_result)
+}
+inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamIntResponse::release_param_server_result() {
+  _impl_._has_bits_[0] &= ~0x00000001u;
+  ::mavsdk::rpc::param_server::ParamServerResult* temp = _impl_.param_server_result_;
+  _impl_.param_server_result_ = nullptr;
+#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
+  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
+  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  if (GetArenaForAllocation() == nullptr) { delete old; }
+#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
+  if (GetArenaForAllocation() != nullptr) {
+    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  }
+#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
+  return temp;
+}
+inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamIntResponse::unsafe_arena_release_param_server_result() {
+  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.ProvideParamIntResponse.param_server_result)
+  _impl_._has_bits_[0] &= ~0x00000001u;
+  ::mavsdk::rpc::param_server::ParamServerResult* temp = _impl_.param_server_result_;
+  _impl_.param_server_result_ = nullptr;
+  return temp;
+}
+inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamIntResponse::_internal_mutable_param_server_result() {
+  _impl_._has_bits_[0] |= 0x00000001u;
+  if (_impl_.param_server_result_ == nullptr) {
+    auto* p = CreateMaybeMessage<::mavsdk::rpc::param_server::ParamServerResult>(GetArenaForAllocation());
+    _impl_.param_server_result_ = p;
+  }
+  return _impl_.param_server_result_;
+}
+inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamIntResponse::mutable_param_server_result() {
+  ::mavsdk::rpc::param_server::ParamServerResult* _msg = _internal_mutable_param_server_result();
+  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.ProvideParamIntResponse.param_server_result)
+  return _msg;
+}
+inline void ProvideParamIntResponse::set_allocated_param_server_result(::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
+  if (message_arena == nullptr) {
+    delete _impl_.param_server_result_;
+  }
+  if (param_server_result) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(param_server_result);
+    if (message_arena != submessage_arena) {
+      param_server_result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, param_server_result, submessage_arena);
+    }
+    _impl_._has_bits_[0] |= 0x00000001u;
+  } else {
+    _impl_._has_bits_[0] &= ~0x00000001u;
+  }
+  _impl_.param_server_result_ = param_server_result;
+  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.ProvideParamIntResponse.param_server_result)
+}
 
-#ifdef __GNUC__
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wstrict-aliasing"
-#endif  // __GNUC__
 // -------------------------------------------------------------------
 
-// RetrieveParamIntRequest
+// ChangeParamIntRequest
 
 // string name = 1;
-inline void RetrieveParamIntRequest::clear_name() {
+inline void ChangeParamIntRequest::clear_name() {
   _impl_.name_.ClearToEmpty();
 }
-inline const std::string& RetrieveParamIntRequest::name() const {
-  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.RetrieveParamIntRequest.name)
+inline const std::string& ChangeParamIntRequest::name() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ChangeParamIntRequest.name)
   return _internal_name();
 }
 template <typename Arg_, typename... Args_>
-inline PROTOBUF_ALWAYS_INLINE void RetrieveParamIntRequest::set_name(Arg_&& arg,
+inline PROTOBUF_ALWAYS_INLINE void ChangeParamIntRequest::set_name(Arg_&& arg,
                                                      Args_... args) {
   ;
   _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
-  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.RetrieveParamIntRequest.name)
+  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.ChangeParamIntRequest.name)
 }
-inline std::string* RetrieveParamIntRequest::mutable_name() {
+inline std::string* ChangeParamIntRequest::mutable_name() {
   std::string* _s = _internal_mutable_name();
-  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.RetrieveParamIntRequest.name)
+  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.ChangeParamIntRequest.name)
   return _s;
 }
-inline const std::string& RetrieveParamIntRequest::_internal_name() const {
+inline const std::string& ChangeParamIntRequest::_internal_name() const {
   return _impl_.name_.Get();
 }
-inline void RetrieveParamIntRequest::_internal_set_name(const std::string& value) {
+inline void ChangeParamIntRequest::_internal_set_name(const std::string& value) {
   ;
 
 
   _impl_.name_.Set(value, GetArenaForAllocation());
 }
-inline std::string* RetrieveParamIntRequest::_internal_mutable_name() {
+inline std::string* ChangeParamIntRequest::_internal_mutable_name() {
   ;
   return _impl_.name_.Mutable( GetArenaForAllocation());
 }
-inline std::string* RetrieveParamIntRequest::release_name() {
-  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.RetrieveParamIntRequest.name)
+inline std::string* ChangeParamIntRequest::release_name() {
+  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.ChangeParamIntRequest.name)
   return _impl_.name_.Release();
 }
-inline void RetrieveParamIntRequest::set_allocated_name(std::string* value) {
+inline void ChangeParamIntRequest::set_allocated_name(std::string* value) {
   _impl_.name_.SetAllocated(value, GetArenaForAllocation());
   #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
         if (_impl_.name_.IsDefault()) {
           _impl_.name_.Set("", GetArenaForAllocation());
         }
   #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
-  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.RetrieveParamIntRequest.name)
+  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.ChangeParamIntRequest.name)
+}
+
+// int32 value = 2;
+inline void ChangeParamIntRequest::clear_value() {
+  _impl_.value_ = 0;
+}
+inline ::int32_t ChangeParamIntRequest::value() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ChangeParamIntRequest.value)
+  return _internal_value();
+}
+inline void ChangeParamIntRequest::set_value(::int32_t value) {
+  _internal_set_value(value);
+  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.ChangeParamIntRequest.value)
+}
+inline ::int32_t ChangeParamIntRequest::_internal_value() const {
+  return _impl_.value_;
+}
+inline void ChangeParamIntRequest::_internal_set_value(::int32_t value) {
+  ;
+  _impl_.value_ = value;
 }
 
 // -------------------------------------------------------------------
 
-// RetrieveParamIntResponse
+// ChangeParamIntResponse
 
 // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
-inline bool RetrieveParamIntResponse::has_param_server_result() const {
+inline bool ChangeParamIntResponse::has_param_server_result() const {
   bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
   PROTOBUF_ASSUME(!value || _impl_.param_server_result_ != nullptr);
   return value;
 }
-inline void RetrieveParamIntResponse::clear_param_server_result() {
+inline void ChangeParamIntResponse::clear_param_server_result() {
   if (_impl_.param_server_result_ != nullptr) _impl_.param_server_result_->Clear();
   _impl_._has_bits_[0] &= ~0x00000001u;
 }
-inline const ::mavsdk::rpc::param_server::ParamServerResult& RetrieveParamIntResponse::_internal_param_server_result() const {
+inline const ::mavsdk::rpc::param_server::ParamServerResult& ChangeParamIntResponse::_internal_param_server_result() const {
   const ::mavsdk::rpc::param_server::ParamServerResult* p = _impl_.param_server_result_;
   return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::param_server::ParamServerResult&>(
       ::mavsdk::rpc::param_server::_ParamServerResult_default_instance_);
 }
-inline const ::mavsdk::rpc::param_server::ParamServerResult& RetrieveParamIntResponse::param_server_result() const {
-  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.RetrieveParamIntResponse.param_server_result)
+inline const ::mavsdk::rpc::param_server::ParamServerResult& ChangeParamIntResponse::param_server_result() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ChangeParamIntResponse.param_server_result)
   return _internal_param_server_result();
 }
-inline void RetrieveParamIntResponse::unsafe_arena_set_allocated_param_server_result(
+inline void ChangeParamIntResponse::unsafe_arena_set_allocated_param_server_result(
     ::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
   if (GetArenaForAllocation() == nullptr) {
     delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.param_server_result_);
@@ -3578,9 +4973,9 @@ inline void RetrieveParamIntResponse::unsafe_arena_set_allocated_param_server_re
   } else {
     _impl_._has_bits_[0] &= ~0x00000001u;
   }
-  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.param_server.RetrieveParamIntResponse.param_server_result)
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.param_server.ChangeParamIntResponse.param_server_result)
 }
-inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamIntResponse::release_param_server_result() {
+inline ::mavsdk::rpc::param_server::ParamServerResult* ChangeParamIntResponse::release_param_server_result() {
   _impl_._has_bits_[0] &= ~0x00000001u;
   ::mavsdk::rpc::param_server::ParamServerResult* temp = _impl_.param_server_result_;
   _impl_.param_server_result_ = nullptr;
@@ -3595,14 +4990,14 @@ inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamIntResponse:
 #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
   return temp;
 }
-inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamIntResponse::unsafe_arena_release_param_server_result() {
-  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.RetrieveParamIntResponse.param_server_result)
+inline ::mavsdk::rpc::param_server::ParamServerResult* ChangeParamIntResponse::unsafe_arena_release_param_server_result() {
+  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.ChangeParamIntResponse.param_server_result)
   _impl_._has_bits_[0] &= ~0x00000001u;
   ::mavsdk::rpc::param_server::ParamServerResult* temp = _impl_.param_server_result_;
   _impl_.param_server_result_ = nullptr;
   return temp;
 }
-inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamIntResponse::_internal_mutable_param_server_result() {
+inline ::mavsdk::rpc::param_server::ParamServerResult* ChangeParamIntResponse::_internal_mutable_param_server_result() {
   _impl_._has_bits_[0] |= 0x00000001u;
   if (_impl_.param_server_result_ == nullptr) {
     auto* p = CreateMaybeMessage<::mavsdk::rpc::param_server::ParamServerResult>(GetArenaForAllocation());
@@ -3610,12 +5005,12 @@ inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamIntResponse:
   }
   return _impl_.param_server_result_;
 }
-inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamIntResponse::mutable_param_server_result() {
+inline ::mavsdk::rpc::param_server::ParamServerResult* ChangeParamIntResponse::mutable_param_server_result() {
   ::mavsdk::rpc::param_server::ParamServerResult* _msg = _internal_mutable_param_server_result();
-  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.RetrieveParamIntResponse.param_server_result)
+  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.ChangeParamIntResponse.param_server_result)
   return _msg;
 }
-inline void RetrieveParamIntResponse::set_allocated_param_server_result(::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
+inline void ChangeParamIntResponse::set_allocated_param_server_result(::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
   ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
   if (message_arena == nullptr) {
     delete _impl_.param_server_result_;
@@ -3632,124 +5027,84 @@ inline void RetrieveParamIntResponse::set_allocated_param_server_result(::mavsdk
     _impl_._has_bits_[0] &= ~0x00000001u;
   }
   _impl_.param_server_result_ = param_server_result;
-  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.RetrieveParamIntResponse.param_server_result)
-}
-
-// int32 value = 2;
-inline void RetrieveParamIntResponse::clear_value() {
-  _impl_.value_ = 0;
-}
-inline ::int32_t RetrieveParamIntResponse::value() const {
-  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.RetrieveParamIntResponse.value)
-  return _internal_value();
-}
-inline void RetrieveParamIntResponse::set_value(::int32_t value) {
-  _internal_set_value(value);
-  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.RetrieveParamIntResponse.value)
-}
-inline ::int32_t RetrieveParamIntResponse::_internal_value() const {
-  return _impl_.value_;
-}
-inline void RetrieveParamIntResponse::_internal_set_value(::int32_t value) {
-  ;
-  _impl_.value_ = value;
+  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.ChangeParamIntResponse.param_server_result)
 }
 
 // -------------------------------------------------------------------
 
-// ProvideParamIntRequest
+// RetrieveParamFloatRequest
 
 // string name = 1;
-inline void ProvideParamIntRequest::clear_name() {
+inline void RetrieveParamFloatRequest::clear_name() {
   _impl_.name_.ClearToEmpty();
 }
-inline const std::string& ProvideParamIntRequest::name() const {
-  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ProvideParamIntRequest.name)
+inline const std::string& RetrieveParamFloatRequest::name() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.RetrieveParamFloatRequest.name)
   return _internal_name();
 }
 template <typename Arg_, typename... Args_>
-inline PROTOBUF_ALWAYS_INLINE void ProvideParamIntRequest::set_name(Arg_&& arg,
+inline PROTOBUF_ALWAYS_INLINE void RetrieveParamFloatRequest::set_name(Arg_&& arg,
                                                      Args_... args) {
   ;
   _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
-  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.ProvideParamIntRequest.name)
+  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.RetrieveParamFloatRequest.name)
 }
-inline std::string* ProvideParamIntRequest::mutable_name() {
+inline std::string* RetrieveParamFloatRequest::mutable_name() {
   std::string* _s = _internal_mutable_name();
-  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.ProvideParamIntRequest.name)
+  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.RetrieveParamFloatRequest.name)
   return _s;
 }
-inline const std::string& ProvideParamIntRequest::_internal_name() const {
+inline const std::string& RetrieveParamFloatRequest::_internal_name() const {
   return _impl_.name_.Get();
 }
-inline void ProvideParamIntRequest::_internal_set_name(const std::string& value) {
+inline void RetrieveParamFloatRequest::_internal_set_name(const std::string& value) {
   ;
 
 
   _impl_.name_.Set(value, GetArenaForAllocation());
 }
-inline std::string* ProvideParamIntRequest::_internal_mutable_name() {
+inline std::string* RetrieveParamFloatRequest::_internal_mutable_name() {
   ;
   return _impl_.name_.Mutable( GetArenaForAllocation());
 }
-inline std::string* ProvideParamIntRequest::release_name() {
-  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.ProvideParamIntRequest.name)
+inline std::string* RetrieveParamFloatRequest::release_name() {
+  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.RetrieveParamFloatRequest.name)
   return _impl_.name_.Release();
 }
-inline void ProvideParamIntRequest::set_allocated_name(std::string* value) {
+inline void RetrieveParamFloatRequest::set_allocated_name(std::string* value) {
   _impl_.name_.SetAllocated(value, GetArenaForAllocation());
   #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
         if (_impl_.name_.IsDefault()) {
           _impl_.name_.Set("", GetArenaForAllocation());
         }
   #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
-  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.ProvideParamIntRequest.name)
-}
-
-// int32 value = 2;
-inline void ProvideParamIntRequest::clear_value() {
-  _impl_.value_ = 0;
-}
-inline ::int32_t ProvideParamIntRequest::value() const {
-  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ProvideParamIntRequest.value)
-  return _internal_value();
-}
-inline void ProvideParamIntRequest::set_value(::int32_t value) {
-  _internal_set_value(value);
-  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.ProvideParamIntRequest.value)
-}
-inline ::int32_t ProvideParamIntRequest::_internal_value() const {
-  return _impl_.value_;
-}
-inline void ProvideParamIntRequest::_internal_set_value(::int32_t value) {
-  ;
-  _impl_.value_ = value;
+  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.RetrieveParamFloatRequest.name)
 }
 
 // -------------------------------------------------------------------
 
-// ProvideParamIntResponse
+// RetrieveParamFloatResponse
 
 // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
-inline bool ProvideParamIntResponse::has_param_server_result() const {
+inline bool RetrieveParamFloatResponse::has_param_server_result() const {
   bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
   PROTOBUF_ASSUME(!value || _impl_.param_server_result_ != nullptr);
   return value;
 }
-inline void ProvideParamIntResponse::clear_param_server_result() {
+inline void RetrieveParamFloatResponse::clear_param_server_result() {
   if (_impl_.param_server_result_ != nullptr) _impl_.param_server_result_->Clear();
   _impl_._has_bits_[0] &= ~0x00000001u;
 }
-inline const ::mavsdk::rpc::param_server::ParamServerResult& ProvideParamIntResponse::_internal_param_server_result() const {
+inline const ::mavsdk::rpc::param_server::ParamServerResult& RetrieveParamFloatResponse::_internal_param_server_result() const {
   const ::mavsdk::rpc::param_server::ParamServerResult* p = _impl_.param_server_result_;
   return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::param_server::ParamServerResult&>(
       ::mavsdk::rpc::param_server::_ParamServerResult_default_instance_);
 }
-inline const ::mavsdk::rpc::param_server::ParamServerResult& ProvideParamIntResponse::param_server_result() const {
-  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ProvideParamIntResponse.param_server_result)
+inline const ::mavsdk::rpc::param_server::ParamServerResult& RetrieveParamFloatResponse::param_server_result() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.RetrieveParamFloatResponse.param_server_result)
   return _internal_param_server_result();
 }
-inline void ProvideParamIntResponse::unsafe_arena_set_allocated_param_server_result(
+inline void RetrieveParamFloatResponse::unsafe_arena_set_allocated_param_server_result(
     ::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
   if (GetArenaForAllocation() == nullptr) {
     delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.param_server_result_);
@@ -3760,9 +5115,9 @@ inline void ProvideParamIntResponse::unsafe_arena_set_allocated_param_server_res
   } else {
     _impl_._has_bits_[0] &= ~0x00000001u;
   }
-  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.param_server.ProvideParamIntResponse.param_server_result)
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.param_server.RetrieveParamFloatResponse.param_server_result)
 }
-inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamIntResponse::release_param_server_result() {
+inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamFloatResponse::release_param_server_result() {
   _impl_._has_bits_[0] &= ~0x00000001u;
   ::mavsdk::rpc::param_server::ParamServerResult* temp = _impl_.param_server_result_;
   _impl_.param_server_result_ = nullptr;
@@ -3777,14 +5132,14 @@ inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamIntResponse::
 #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
   return temp;
 }
-inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamIntResponse::unsafe_arena_release_param_server_result() {
-  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.ProvideParamIntResponse.param_server_result)
+inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamFloatResponse::unsafe_arena_release_param_server_result() {
+  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.RetrieveParamFloatResponse.param_server_result)
   _impl_._has_bits_[0] &= ~0x00000001u;
   ::mavsdk::rpc::param_server::ParamServerResult* temp = _impl_.param_server_result_;
   _impl_.param_server_result_ = nullptr;
   return temp;
 }
-inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamIntResponse::_internal_mutable_param_server_result() {
+inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamFloatResponse::_internal_mutable_param_server_result() {
   _impl_._has_bits_[0] |= 0x00000001u;
   if (_impl_.param_server_result_ == nullptr) {
     auto* p = CreateMaybeMessage<::mavsdk::rpc::param_server::ParamServerResult>(GetArenaForAllocation());
@@ -3792,12 +5147,12 @@ inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamIntResponse::
   }
   return _impl_.param_server_result_;
 }
-inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamIntResponse::mutable_param_server_result() {
+inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamFloatResponse::mutable_param_server_result() {
   ::mavsdk::rpc::param_server::ParamServerResult* _msg = _internal_mutable_param_server_result();
-  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.ProvideParamIntResponse.param_server_result)
+  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.RetrieveParamFloatResponse.param_server_result)
   return _msg;
 }
-inline void ProvideParamIntResponse::set_allocated_param_server_result(::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
+inline void RetrieveParamFloatResponse::set_allocated_param_server_result(::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
   ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
   if (message_arena == nullptr) {
     delete _impl_.param_server_result_;
@@ -3814,84 +5169,124 @@ inline void ProvideParamIntResponse::set_allocated_param_server_result(::mavsdk:
     _impl_._has_bits_[0] &= ~0x00000001u;
   }
   _impl_.param_server_result_ = param_server_result;
-  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.ProvideParamIntResponse.param_server_result)
+  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.RetrieveParamFloatResponse.param_server_result)
+}
+
+// float value = 2;
+inline void RetrieveParamFloatResponse::clear_value() {
+  _impl_.value_ = 0;
+}
+inline float RetrieveParamFloatResponse::value() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.RetrieveParamFloatResponse.value)
+  return _internal_value();
+}
+inline void RetrieveParamFloatResponse::set_value(float value) {
+  _internal_set_value(value);
+  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.RetrieveParamFloatResponse.value)
+}
+inline float RetrieveParamFloatResponse::_internal_value() const {
+  return _impl_.value_;
+}
+inline void RetrieveParamFloatResponse::_internal_set_value(float value) {
+  ;
+  _impl_.value_ = value;
 }
 
 // -------------------------------------------------------------------
 
-// RetrieveParamFloatRequest
+// ProvideParamFloatRequest
 
 // string name = 1;
-inline void RetrieveParamFloatRequest::clear_name() {
+inline void ProvideParamFloatRequest::clear_name() {
   _impl_.name_.ClearToEmpty();
 }
-inline const std::string& RetrieveParamFloatRequest::name() const {
-  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.RetrieveParamFloatRequest.name)
+inline const std::string& ProvideParamFloatRequest::name() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ProvideParamFloatRequest.name)
   return _internal_name();
 }
 template <typename Arg_, typename... Args_>
-inline PROTOBUF_ALWAYS_INLINE void RetrieveParamFloatRequest::set_name(Arg_&& arg,
+inline PROTOBUF_ALWAYS_INLINE void ProvideParamFloatRequest::set_name(Arg_&& arg,
                                                      Args_... args) {
   ;
   _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
-  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.RetrieveParamFloatRequest.name)
+  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.ProvideParamFloatRequest.name)
 }
-inline std::string* RetrieveParamFloatRequest::mutable_name() {
+inline std::string* ProvideParamFloatRequest::mutable_name() {
   std::string* _s = _internal_mutable_name();
-  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.RetrieveParamFloatRequest.name)
+  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.ProvideParamFloatRequest.name)
   return _s;
 }
-inline const std::string& RetrieveParamFloatRequest::_internal_name() const {
+inline const std::string& ProvideParamFloatRequest::_internal_name() const {
   return _impl_.name_.Get();
 }
-inline void RetrieveParamFloatRequest::_internal_set_name(const std::string& value) {
+inline void ProvideParamFloatRequest::_internal_set_name(const std::string& value) {
   ;
 
 
   _impl_.name_.Set(value, GetArenaForAllocation());
 }
-inline std::string* RetrieveParamFloatRequest::_internal_mutable_name() {
+inline std::string* ProvideParamFloatRequest::_internal_mutable_name() {
   ;
   return _impl_.name_.Mutable( GetArenaForAllocation());
 }
-inline std::string* RetrieveParamFloatRequest::release_name() {
-  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.RetrieveParamFloatRequest.name)
+inline std::string* ProvideParamFloatRequest::release_name() {
+  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.ProvideParamFloatRequest.name)
   return _impl_.name_.Release();
 }
-inline void RetrieveParamFloatRequest::set_allocated_name(std::string* value) {
+inline void ProvideParamFloatRequest::set_allocated_name(std::string* value) {
   _impl_.name_.SetAllocated(value, GetArenaForAllocation());
   #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
         if (_impl_.name_.IsDefault()) {
           _impl_.name_.Set("", GetArenaForAllocation());
         }
   #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
-  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.RetrieveParamFloatRequest.name)
+  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.ProvideParamFloatRequest.name)
+}
+
+// float value = 2;
+inline void ProvideParamFloatRequest::clear_value() {
+  _impl_.value_ = 0;
+}
+inline float ProvideParamFloatRequest::value() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ProvideParamFloatRequest.value)
+  return _internal_value();
+}
+inline void ProvideParamFloatRequest::set_value(float value) {
+  _internal_set_value(value);
+  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.ProvideParamFloatRequest.value)
+}
+inline float ProvideParamFloatRequest::_internal_value() const {
+  return _impl_.value_;
+}
+inline void ProvideParamFloatRequest::_internal_set_value(float value) {
+  ;
+  _impl_.value_ = value;
 }
 
 // -------------------------------------------------------------------
 
-// RetrieveParamFloatResponse
+// ProvideParamFloatResponse
 
 // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
-inline bool RetrieveParamFloatResponse::has_param_server_result() const {
+inline bool ProvideParamFloatResponse::has_param_server_result() const {
   bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
   PROTOBUF_ASSUME(!value || _impl_.param_server_result_ != nullptr);
   return value;
 }
-inline void RetrieveParamFloatResponse::clear_param_server_result() {
+inline void ProvideParamFloatResponse::clear_param_server_result() {
   if (_impl_.param_server_result_ != nullptr) _impl_.param_server_result_->Clear();
   _impl_._has_bits_[0] &= ~0x00000001u;
 }
-inline const ::mavsdk::rpc::param_server::ParamServerResult& RetrieveParamFloatResponse::_internal_param_server_result() const {
+inline const ::mavsdk::rpc::param_server::ParamServerResult& ProvideParamFloatResponse::_internal_param_server_result() const {
   const ::mavsdk::rpc::param_server::ParamServerResult* p = _impl_.param_server_result_;
   return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::param_server::ParamServerResult&>(
       ::mavsdk::rpc::param_server::_ParamServerResult_default_instance_);
 }
-inline const ::mavsdk::rpc::param_server::ParamServerResult& RetrieveParamFloatResponse::param_server_result() const {
-  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.RetrieveParamFloatResponse.param_server_result)
+inline const ::mavsdk::rpc::param_server::ParamServerResult& ProvideParamFloatResponse::param_server_result() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ProvideParamFloatResponse.param_server_result)
   return _internal_param_server_result();
 }
-inline void RetrieveParamFloatResponse::unsafe_arena_set_allocated_param_server_result(
+inline void ProvideParamFloatResponse::unsafe_arena_set_allocated_param_server_result(
     ::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
   if (GetArenaForAllocation() == nullptr) {
     delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.param_server_result_);
@@ -3902,9 +5297,9 @@ inline void RetrieveParamFloatResponse::unsafe_arena_set_allocated_param_server_
   } else {
     _impl_._has_bits_[0] &= ~0x00000001u;
   }
-  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.param_server.RetrieveParamFloatResponse.param_server_result)
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.param_server.ProvideParamFloatResponse.param_server_result)
 }
-inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamFloatResponse::release_param_server_result() {
+inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamFloatResponse::release_param_server_result() {
   _impl_._has_bits_[0] &= ~0x00000001u;
   ::mavsdk::rpc::param_server::ParamServerResult* temp = _impl_.param_server_result_;
   _impl_.param_server_result_ = nullptr;
@@ -3919,14 +5314,14 @@ inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamFloatRespons
 #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
   return temp;
 }
-inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamFloatResponse::unsafe_arena_release_param_server_result() {
-  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.RetrieveParamFloatResponse.param_server_result)
+inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamFloatResponse::unsafe_arena_release_param_server_result() {
+  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.ProvideParamFloatResponse.param_server_result)
   _impl_._has_bits_[0] &= ~0x00000001u;
   ::mavsdk::rpc::param_server::ParamServerResult* temp = _impl_.param_server_result_;
   _impl_.param_server_result_ = nullptr;
   return temp;
 }
-inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamFloatResponse::_internal_mutable_param_server_result() {
+inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamFloatResponse::_internal_mutable_param_server_result() {
   _impl_._has_bits_[0] |= 0x00000001u;
   if (_impl_.param_server_result_ == nullptr) {
     auto* p = CreateMaybeMessage<::mavsdk::rpc::param_server::ParamServerResult>(GetArenaForAllocation());
@@ -3934,12 +5329,12 @@ inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamFloatRespons
   }
   return _impl_.param_server_result_;
 }
-inline ::mavsdk::rpc::param_server::ParamServerResult* RetrieveParamFloatResponse::mutable_param_server_result() {
+inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamFloatResponse::mutable_param_server_result() {
   ::mavsdk::rpc::param_server::ParamServerResult* _msg = _internal_mutable_param_server_result();
-  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.RetrieveParamFloatResponse.param_server_result)
+  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.ProvideParamFloatResponse.param_server_result)
   return _msg;
 }
-inline void RetrieveParamFloatResponse::set_allocated_param_server_result(::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
+inline void ProvideParamFloatResponse::set_allocated_param_server_result(::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
   ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
   if (message_arena == nullptr) {
     delete _impl_.param_server_result_;
@@ -3956,124 +5351,104 @@ inline void RetrieveParamFloatResponse::set_allocated_param_server_result(::mavs
     _impl_._has_bits_[0] &= ~0x00000001u;
   }
   _impl_.param_server_result_ = param_server_result;
-  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.RetrieveParamFloatResponse.param_server_result)
-}
-
-// float value = 2;
-inline void RetrieveParamFloatResponse::clear_value() {
-  _impl_.value_ = 0;
-}
-inline float RetrieveParamFloatResponse::value() const {
-  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.RetrieveParamFloatResponse.value)
-  return _internal_value();
-}
-inline void RetrieveParamFloatResponse::set_value(float value) {
-  _internal_set_value(value);
-  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.RetrieveParamFloatResponse.value)
-}
-inline float RetrieveParamFloatResponse::_internal_value() const {
-  return _impl_.value_;
-}
-inline void RetrieveParamFloatResponse::_internal_set_value(float value) {
-  ;
-  _impl_.value_ = value;
+  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.ProvideParamFloatResponse.param_server_result)
 }
 
 // -------------------------------------------------------------------
 
-// ProvideParamFloatRequest
+// ChangeParamFloatRequest
 
 // string name = 1;
-inline void ProvideParamFloatRequest::clear_name() {
+inline void ChangeParamFloatRequest::clear_name() {
   _impl_.name_.ClearToEmpty();
 }
-inline const std::string& ProvideParamFloatRequest::name() const {
-  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ProvideParamFloatRequest.name)
+inline const std::string& ChangeParamFloatRequest::name() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ChangeParamFloatRequest.name)
   return _internal_name();
 }
 template <typename Arg_, typename... Args_>
-inline PROTOBUF_ALWAYS_INLINE void ProvideParamFloatRequest::set_name(Arg_&& arg,
+inline PROTOBUF_ALWAYS_INLINE void ChangeParamFloatRequest::set_name(Arg_&& arg,
                                                      Args_... args) {
   ;
   _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
-  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.ProvideParamFloatRequest.name)
+  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.ChangeParamFloatRequest.name)
 }
-inline std::string* ProvideParamFloatRequest::mutable_name() {
+inline std::string* ChangeParamFloatRequest::mutable_name() {
   std::string* _s = _internal_mutable_name();
-  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.ProvideParamFloatRequest.name)
+  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.ChangeParamFloatRequest.name)
   return _s;
 }
-inline const std::string& ProvideParamFloatRequest::_internal_name() const {
+inline const std::string& ChangeParamFloatRequest::_internal_name() const {
   return _impl_.name_.Get();
 }
-inline void ProvideParamFloatRequest::_internal_set_name(const std::string& value) {
+inline void ChangeParamFloatRequest::_internal_set_name(const std::string& value) {
   ;
 
 
   _impl_.name_.Set(value, GetArenaForAllocation());
 }
-inline std::string* ProvideParamFloatRequest::_internal_mutable_name() {
+inline std::string* ChangeParamFloatRequest::_internal_mutable_name() {
   ;
   return _impl_.name_.Mutable( GetArenaForAllocation());
 }
-inline std::string* ProvideParamFloatRequest::release_name() {
-  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.ProvideParamFloatRequest.name)
+inline std::string* ChangeParamFloatRequest::release_name() {
+  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.ChangeParamFloatRequest.name)
   return _impl_.name_.Release();
 }
-inline void ProvideParamFloatRequest::set_allocated_name(std::string* value) {
+inline void ChangeParamFloatRequest::set_allocated_name(std::string* value) {
   _impl_.name_.SetAllocated(value, GetArenaForAllocation());
   #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
         if (_impl_.name_.IsDefault()) {
           _impl_.name_.Set("", GetArenaForAllocation());
         }
   #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
-  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.ProvideParamFloatRequest.name)
+  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.ChangeParamFloatRequest.name)
 }
 
 // float value = 2;
-inline void ProvideParamFloatRequest::clear_value() {
+inline void ChangeParamFloatRequest::clear_value() {
   _impl_.value_ = 0;
 }
-inline float ProvideParamFloatRequest::value() const {
-  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ProvideParamFloatRequest.value)
+inline float ChangeParamFloatRequest::value() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ChangeParamFloatRequest.value)
   return _internal_value();
 }
-inline void ProvideParamFloatRequest::set_value(float value) {
+inline void ChangeParamFloatRequest::set_value(float value) {
   _internal_set_value(value);
-  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.ProvideParamFloatRequest.value)
+  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.ChangeParamFloatRequest.value)
 }
-inline float ProvideParamFloatRequest::_internal_value() const {
+inline float ChangeParamFloatRequest::_internal_value() const {
   return _impl_.value_;
 }
-inline void ProvideParamFloatRequest::_internal_set_value(float value) {
+inline void ChangeParamFloatRequest::_internal_set_value(float value) {
   ;
   _impl_.value_ = value;
 }
 
 // -------------------------------------------------------------------
 
-// ProvideParamFloatResponse
+// ChangeParamFloatResponse
 
 // .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
-inline bool ProvideParamFloatResponse::has_param_server_result() const {
+inline bool ChangeParamFloatResponse::has_param_server_result() const {
   bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
   PROTOBUF_ASSUME(!value || _impl_.param_server_result_ != nullptr);
   return value;
 }
-inline void ProvideParamFloatResponse::clear_param_server_result() {
+inline void ChangeParamFloatResponse::clear_param_server_result() {
   if (_impl_.param_server_result_ != nullptr) _impl_.param_server_result_->Clear();
   _impl_._has_bits_[0] &= ~0x00000001u;
 }
-inline const ::mavsdk::rpc::param_server::ParamServerResult& ProvideParamFloatResponse::_internal_param_server_result() const {
+inline const ::mavsdk::rpc::param_server::ParamServerResult& ChangeParamFloatResponse::_internal_param_server_result() const {
   const ::mavsdk::rpc::param_server::ParamServerResult* p = _impl_.param_server_result_;
   return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::param_server::ParamServerResult&>(
       ::mavsdk::rpc::param_server::_ParamServerResult_default_instance_);
 }
-inline const ::mavsdk::rpc::param_server::ParamServerResult& ProvideParamFloatResponse::param_server_result() const {
-  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ProvideParamFloatResponse.param_server_result)
+inline const ::mavsdk::rpc::param_server::ParamServerResult& ChangeParamFloatResponse::param_server_result() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ChangeParamFloatResponse.param_server_result)
   return _internal_param_server_result();
 }
-inline void ProvideParamFloatResponse::unsafe_arena_set_allocated_param_server_result(
+inline void ChangeParamFloatResponse::unsafe_arena_set_allocated_param_server_result(
     ::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
   if (GetArenaForAllocation() == nullptr) {
     delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.param_server_result_);
@@ -4084,9 +5459,9 @@ inline void ProvideParamFloatResponse::unsafe_arena_set_allocated_param_server_r
   } else {
     _impl_._has_bits_[0] &= ~0x00000001u;
   }
-  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.param_server.ProvideParamFloatResponse.param_server_result)
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.param_server.ChangeParamFloatResponse.param_server_result)
 }
-inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamFloatResponse::release_param_server_result() {
+inline ::mavsdk::rpc::param_server::ParamServerResult* ChangeParamFloatResponse::release_param_server_result() {
   _impl_._has_bits_[0] &= ~0x00000001u;
   ::mavsdk::rpc::param_server::ParamServerResult* temp = _impl_.param_server_result_;
   _impl_.param_server_result_ = nullptr;
@@ -4101,14 +5476,14 @@ inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamFloatResponse
 #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
   return temp;
 }
-inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamFloatResponse::unsafe_arena_release_param_server_result() {
-  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.ProvideParamFloatResponse.param_server_result)
+inline ::mavsdk::rpc::param_server::ParamServerResult* ChangeParamFloatResponse::unsafe_arena_release_param_server_result() {
+  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.ChangeParamFloatResponse.param_server_result)
   _impl_._has_bits_[0] &= ~0x00000001u;
   ::mavsdk::rpc::param_server::ParamServerResult* temp = _impl_.param_server_result_;
   _impl_.param_server_result_ = nullptr;
   return temp;
 }
-inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamFloatResponse::_internal_mutable_param_server_result() {
+inline ::mavsdk::rpc::param_server::ParamServerResult* ChangeParamFloatResponse::_internal_mutable_param_server_result() {
   _impl_._has_bits_[0] |= 0x00000001u;
   if (_impl_.param_server_result_ == nullptr) {
     auto* p = CreateMaybeMessage<::mavsdk::rpc::param_server::ParamServerResult>(GetArenaForAllocation());
@@ -4116,12 +5491,12 @@ inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamFloatResponse
   }
   return _impl_.param_server_result_;
 }
-inline ::mavsdk::rpc::param_server::ParamServerResult* ProvideParamFloatResponse::mutable_param_server_result() {
+inline ::mavsdk::rpc::param_server::ParamServerResult* ChangeParamFloatResponse::mutable_param_server_result() {
   ::mavsdk::rpc::param_server::ParamServerResult* _msg = _internal_mutable_param_server_result();
-  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.ProvideParamFloatResponse.param_server_result)
+  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.ChangeParamFloatResponse.param_server_result)
   return _msg;
 }
-inline void ProvideParamFloatResponse::set_allocated_param_server_result(::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
+inline void ChangeParamFloatResponse::set_allocated_param_server_result(::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
   ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
   if (message_arena == nullptr) {
     delete _impl_.param_server_result_;
@@ -4138,7 +5513,7 @@ inline void ProvideParamFloatResponse::set_allocated_param_server_result(::mavsd
     _impl_._has_bits_[0] &= ~0x00000001u;
   }
   _impl_.param_server_result_ = param_server_result;
-  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.ProvideParamFloatResponse.param_server_result)
+  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.ChangeParamFloatResponse.param_server_result)
 }
 
 // -------------------------------------------------------------------
@@ -4521,6 +5896,195 @@ inline void ProvideParamCustomResponse::set_allocated_param_server_result(::mavs
 
 // -------------------------------------------------------------------
 
+// ChangeParamCustomRequest
+
+// string name = 1;
+inline void ChangeParamCustomRequest::clear_name() {
+  _impl_.name_.ClearToEmpty();
+}
+inline const std::string& ChangeParamCustomRequest::name() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ChangeParamCustomRequest.name)
+  return _internal_name();
+}
+template <typename Arg_, typename... Args_>
+inline PROTOBUF_ALWAYS_INLINE void ChangeParamCustomRequest::set_name(Arg_&& arg,
+                                                     Args_... args) {
+  ;
+  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
+  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.ChangeParamCustomRequest.name)
+}
+inline std::string* ChangeParamCustomRequest::mutable_name() {
+  std::string* _s = _internal_mutable_name();
+  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.ChangeParamCustomRequest.name)
+  return _s;
+}
+inline const std::string& ChangeParamCustomRequest::_internal_name() const {
+  return _impl_.name_.Get();
+}
+inline void ChangeParamCustomRequest::_internal_set_name(const std::string& value) {
+  ;
+
+
+  _impl_.name_.Set(value, GetArenaForAllocation());
+}
+inline std::string* ChangeParamCustomRequest::_internal_mutable_name() {
+  ;
+  return _impl_.name_.Mutable( GetArenaForAllocation());
+}
+inline std::string* ChangeParamCustomRequest::release_name() {
+  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.ChangeParamCustomRequest.name)
+  return _impl_.name_.Release();
+}
+inline void ChangeParamCustomRequest::set_allocated_name(std::string* value) {
+  _impl_.name_.SetAllocated(value, GetArenaForAllocation());
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        if (_impl_.name_.IsDefault()) {
+          _impl_.name_.Set("", GetArenaForAllocation());
+        }
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.ChangeParamCustomRequest.name)
+}
+
+// string value = 2;
+inline void ChangeParamCustomRequest::clear_value() {
+  _impl_.value_.ClearToEmpty();
+}
+inline const std::string& ChangeParamCustomRequest::value() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ChangeParamCustomRequest.value)
+  return _internal_value();
+}
+template <typename Arg_, typename... Args_>
+inline PROTOBUF_ALWAYS_INLINE void ChangeParamCustomRequest::set_value(Arg_&& arg,
+                                                     Args_... args) {
+  ;
+  _impl_.value_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
+  // @@protoc_insertion_point(field_set:mavsdk.rpc.param_server.ChangeParamCustomRequest.value)
+}
+inline std::string* ChangeParamCustomRequest::mutable_value() {
+  std::string* _s = _internal_mutable_value();
+  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.ChangeParamCustomRequest.value)
+  return _s;
+}
+inline const std::string& ChangeParamCustomRequest::_internal_value() const {
+  return _impl_.value_.Get();
+}
+inline void ChangeParamCustomRequest::_internal_set_value(const std::string& value) {
+  ;
+
+
+  _impl_.value_.Set(value, GetArenaForAllocation());
+}
+inline std::string* ChangeParamCustomRequest::_internal_mutable_value() {
+  ;
+  return _impl_.value_.Mutable( GetArenaForAllocation());
+}
+inline std::string* ChangeParamCustomRequest::release_value() {
+  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.ChangeParamCustomRequest.value)
+  return _impl_.value_.Release();
+}
+inline void ChangeParamCustomRequest::set_allocated_value(std::string* value) {
+  _impl_.value_.SetAllocated(value, GetArenaForAllocation());
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        if (_impl_.value_.IsDefault()) {
+          _impl_.value_.Set("", GetArenaForAllocation());
+        }
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.ChangeParamCustomRequest.value)
+}
+
+// -------------------------------------------------------------------
+
+// ChangeParamCustomResponse
+
+// .mavsdk.rpc.param_server.ParamServerResult param_server_result = 1;
+inline bool ChangeParamCustomResponse::has_param_server_result() const {
+  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
+  PROTOBUF_ASSUME(!value || _impl_.param_server_result_ != nullptr);
+  return value;
+}
+inline void ChangeParamCustomResponse::clear_param_server_result() {
+  if (_impl_.param_server_result_ != nullptr) _impl_.param_server_result_->Clear();
+  _impl_._has_bits_[0] &= ~0x00000001u;
+}
+inline const ::mavsdk::rpc::param_server::ParamServerResult& ChangeParamCustomResponse::_internal_param_server_result() const {
+  const ::mavsdk::rpc::param_server::ParamServerResult* p = _impl_.param_server_result_;
+  return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::param_server::ParamServerResult&>(
+      ::mavsdk::rpc::param_server::_ParamServerResult_default_instance_);
+}
+inline const ::mavsdk::rpc::param_server::ParamServerResult& ChangeParamCustomResponse::param_server_result() const {
+  // @@protoc_insertion_point(field_get:mavsdk.rpc.param_server.ChangeParamCustomResponse.param_server_result)
+  return _internal_param_server_result();
+}
+inline void ChangeParamCustomResponse::unsafe_arena_set_allocated_param_server_result(
+    ::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
+  if (GetArenaForAllocation() == nullptr) {
+    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.param_server_result_);
+  }
+  _impl_.param_server_result_ = param_server_result;
+  if (param_server_result) {
+    _impl_._has_bits_[0] |= 0x00000001u;
+  } else {
+    _impl_._has_bits_[0] &= ~0x00000001u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.param_server.ChangeParamCustomResponse.param_server_result)
+}
+inline ::mavsdk::rpc::param_server::ParamServerResult* ChangeParamCustomResponse::release_param_server_result() {
+  _impl_._has_bits_[0] &= ~0x00000001u;
+  ::mavsdk::rpc::param_server::ParamServerResult* temp = _impl_.param_server_result_;
+  _impl_.param_server_result_ = nullptr;
+#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
+  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
+  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  if (GetArenaForAllocation() == nullptr) { delete old; }
+#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
+  if (GetArenaForAllocation() != nullptr) {
+    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  }
+#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
+  return temp;
+}
+inline ::mavsdk::rpc::param_server::ParamServerResult* ChangeParamCustomResponse::unsafe_arena_release_param_server_result() {
+  // @@protoc_insertion_point(field_release:mavsdk.rpc.param_server.ChangeParamCustomResponse.param_server_result)
+  _impl_._has_bits_[0] &= ~0x00000001u;
+  ::mavsdk::rpc::param_server::ParamServerResult* temp = _impl_.param_server_result_;
+  _impl_.param_server_result_ = nullptr;
+  return temp;
+}
+inline ::mavsdk::rpc::param_server::ParamServerResult* ChangeParamCustomResponse::_internal_mutable_param_server_result() {
+  _impl_._has_bits_[0] |= 0x00000001u;
+  if (_impl_.param_server_result_ == nullptr) {
+    auto* p = CreateMaybeMessage<::mavsdk::rpc::param_server::ParamServerResult>(GetArenaForAllocation());
+    _impl_.param_server_result_ = p;
+  }
+  return _impl_.param_server_result_;
+}
+inline ::mavsdk::rpc::param_server::ParamServerResult* ChangeParamCustomResponse::mutable_param_server_result() {
+  ::mavsdk::rpc::param_server::ParamServerResult* _msg = _internal_mutable_param_server_result();
+  // @@protoc_insertion_point(field_mutable:mavsdk.rpc.param_server.ChangeParamCustomResponse.param_server_result)
+  return _msg;
+}
+inline void ChangeParamCustomResponse::set_allocated_param_server_result(::mavsdk::rpc::param_server::ParamServerResult* param_server_result) {
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
+  if (message_arena == nullptr) {
+    delete _impl_.param_server_result_;
+  }
+  if (param_server_result) {
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(param_server_result);
+    if (message_arena != submessage_arena) {
+      param_server_result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+          message_arena, param_server_result, submessage_arena);
+    }
+    _impl_._has_bits_[0] |= 0x00000001u;
+  } else {
+    _impl_._has_bits_[0] &= ~0x00000001u;
+  }
+  _impl_.param_server_result_ = param_server_result;
+  // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.param_server.ChangeParamCustomResponse.param_server_result)
+}
+
+// -------------------------------------------------------------------
+
 // RetrieveAllParamsRequest
 
 // -------------------------------------------------------------------
diff --git a/src/mavsdk_server/src/plugins/param_server/param_server_service_impl.h b/src/mavsdk_server/src/plugins/param_server/param_server_service_impl.h
index b6459574eb..bebfa9fb01 100644
--- a/src/mavsdk_server/src/plugins/param_server/param_server_service_impl.h
+++ b/src/mavsdk_server/src/plugins/param_server/param_server_service_impl.h
@@ -272,6 +272,37 @@ class ParamServerServiceImpl final : public rpc::param_server::ParamServerServic
         return grpc::Status::OK;
     }
 
+    grpc::Status ChangeParamInt(
+        grpc::ServerContext* /* context */,
+        const rpc::param_server::ChangeParamIntRequest* request,
+        rpc::param_server::ChangeParamIntResponse* response) override
+    {
+        if (_lazy_plugin.maybe_plugin() == nullptr) {
+            if (response != nullptr) {
+                // For server plugins, this should never happen, they should always be
+                // constructible.
+                auto result = mavsdk::ParamServer::Result::Unknown;
+                fillResponseWithResult(response, result);
+            }
+
+            return grpc::Status::OK;
+        }
+
+        if (request == nullptr) {
+            LogWarn() << "ChangeParamInt sent with a null request! Ignoring...";
+            return grpc::Status::OK;
+        }
+
+        auto result =
+            _lazy_plugin.maybe_plugin()->change_param_int(request->name(), request->value());
+
+        if (response != nullptr) {
+            fillResponseWithResult(response, result);
+        }
+
+        return grpc::Status::OK;
+    }
+
     grpc::Status RetrieveParamFloat(
         grpc::ServerContext* /* context */,
         const rpc::param_server::RetrieveParamFloatRequest* request,
@@ -335,6 +366,37 @@ class ParamServerServiceImpl final : public rpc::param_server::ParamServerServic
         return grpc::Status::OK;
     }
 
+    grpc::Status ChangeParamFloat(
+        grpc::ServerContext* /* context */,
+        const rpc::param_server::ChangeParamFloatRequest* request,
+        rpc::param_server::ChangeParamFloatResponse* response) override
+    {
+        if (_lazy_plugin.maybe_plugin() == nullptr) {
+            if (response != nullptr) {
+                // For server plugins, this should never happen, they should always be
+                // constructible.
+                auto result = mavsdk::ParamServer::Result::Unknown;
+                fillResponseWithResult(response, result);
+            }
+
+            return grpc::Status::OK;
+        }
+
+        if (request == nullptr) {
+            LogWarn() << "ChangeParamFloat sent with a null request! Ignoring...";
+            return grpc::Status::OK;
+        }
+
+        auto result =
+            _lazy_plugin.maybe_plugin()->change_param_float(request->name(), request->value());
+
+        if (response != nullptr) {
+            fillResponseWithResult(response, result);
+        }
+
+        return grpc::Status::OK;
+    }
+
     grpc::Status RetrieveParamCustom(
         grpc::ServerContext* /* context */,
         const rpc::param_server::RetrieveParamCustomRequest* request,
@@ -398,6 +460,37 @@ class ParamServerServiceImpl final : public rpc::param_server::ParamServerServic
         return grpc::Status::OK;
     }
 
+    grpc::Status ChangeParamCustom(
+        grpc::ServerContext* /* context */,
+        const rpc::param_server::ChangeParamCustomRequest* request,
+        rpc::param_server::ChangeParamCustomResponse* response) override
+    {
+        if (_lazy_plugin.maybe_plugin() == nullptr) {
+            if (response != nullptr) {
+                // For server plugins, this should never happen, they should always be
+                // constructible.
+                auto result = mavsdk::ParamServer::Result::Unknown;
+                fillResponseWithResult(response, result);
+            }
+
+            return grpc::Status::OK;
+        }
+
+        if (request == nullptr) {
+            LogWarn() << "ChangeParamCustom sent with a null request! Ignoring...";
+            return grpc::Status::OK;
+        }
+
+        auto result =
+            _lazy_plugin.maybe_plugin()->change_param_custom(request->name(), request->value());
+
+        if (response != nullptr) {
+            fillResponseWithResult(response, result);
+        }
+
+        return grpc::Status::OK;
+    }
+
     grpc::Status RetrieveAllParams(
         grpc::ServerContext* /* context */,
         const rpc::param_server::RetrieveAllParamsRequest* /* request */,