aboutsummaryrefslogtreecommitdiffstats
path: root/yt/cpp
diff options
context:
space:
mode:
authorvovamelnikov <vovamelnikov@yandex-team.com>2023-09-05 19:08:38 +0300
committervovamelnikov <vovamelnikov@yandex-team.com>2023-09-05 20:29:26 +0300
commit7e762ee28ddf028e5e97d0d1873ddbb7800972ef (patch)
tree1e3e67eccae2ad1f706ace568af175e49d61a459 /yt/cpp
parent260e4396096e87d87dc7e95f9f6eb11854df0c2d (diff)
downloadydb-7e762ee28ddf028e5e97d0d1873ddbb7800972ef.tar.gz
YT-19222: Forbid irreversible changes to ACLs (unless they are forced)
Diffstat (limited to 'yt/cpp')
-rw-r--r--yt/cpp/mapreduce/interface/client_method_options.h8
-rw-r--r--yt/cpp/mapreduce/raw_client/rpc_parameters_serialization.cpp3
2 files changed, 10 insertions, 1 deletions
diff --git a/yt/cpp/mapreduce/interface/client_method_options.h b/yt/cpp/mapreduce/interface/client_method_options.h
index 8074632353..1efbc732ef 100644
--- a/yt/cpp/mapreduce/interface/client_method_options.h
+++ b/yt/cpp/mapreduce/interface/client_method_options.h
@@ -154,7 +154,13 @@ struct TSetOptions
///
/// @see https://yt.yandex-team.ru/docs/api/commands.html#multiset_attributes
struct TMultisetAttributesOptions
-{ };
+{
+ /// @cond Doxygen_Suppress
+ using TSelf = TMultisetAttributesOptions;
+ /// @endcond
+
+ FLUENT_FIELD_OPTION(bool, Force);
+};
///
/// @brief Options for @ref NYT::ICypressClient::List
diff --git a/yt/cpp/mapreduce/raw_client/rpc_parameters_serialization.cpp b/yt/cpp/mapreduce/raw_client/rpc_parameters_serialization.cpp
index 30f0fb3b9d..7a3c3548c7 100644
--- a/yt/cpp/mapreduce/raw_client/rpc_parameters_serialization.cpp
+++ b/yt/cpp/mapreduce/raw_client/rpc_parameters_serialization.cpp
@@ -193,6 +193,9 @@ TNode SerializeParamsForMultisetAttributes(
TNode result;
SetTransactionIdParam(&result, transactionId);
SetPathParam(&result, pathPrefix, path);
+ if (options.Force_) {
+ result["force"] = *options.Force_;
+ }
return result;
}