From 45f614067233ed7bc550326662f3fb95eb4ed012 Mon Sep 17 00:00:00 2001 From: Stuart Cam Date: Tue, 3 Sep 2019 15:07:18 +1000 Subject: [PATCH] Add metadata to snapshots. (#4072) Addresses http://github.com/elastic/elasticsearch/pull/41281 (issue: http://github.com/elastic/elasticsearch/issues/40638) --- .../GetSnapshotRequest.cs | 0 .../GetSnapshotResponse.cs | 0 .../SnapshotAndRestore/Snapshot/Snapshot.cs | 4 ++++ .../Snapshot/Snapshot/SnapshotRequest.cs | 16 +++++++++++++++- 4 files changed, 19 insertions(+), 1 deletion(-) rename src/Nest/Modules/SnapshotAndRestore/Snapshot/{GetSapshot => GetSnapshot}/GetSnapshotRequest.cs (100%) rename src/Nest/Modules/SnapshotAndRestore/Snapshot/{GetSapshot => GetSnapshot}/GetSnapshotResponse.cs (100%) diff --git a/src/Nest/Modules/SnapshotAndRestore/Snapshot/GetSapshot/GetSnapshotRequest.cs b/src/Nest/Modules/SnapshotAndRestore/Snapshot/GetSnapshot/GetSnapshotRequest.cs similarity index 100% rename from src/Nest/Modules/SnapshotAndRestore/Snapshot/GetSapshot/GetSnapshotRequest.cs rename to src/Nest/Modules/SnapshotAndRestore/Snapshot/GetSnapshot/GetSnapshotRequest.cs diff --git a/src/Nest/Modules/SnapshotAndRestore/Snapshot/GetSapshot/GetSnapshotResponse.cs b/src/Nest/Modules/SnapshotAndRestore/Snapshot/GetSnapshot/GetSnapshotResponse.cs similarity index 100% rename from src/Nest/Modules/SnapshotAndRestore/Snapshot/GetSapshot/GetSnapshotResponse.cs rename to src/Nest/Modules/SnapshotAndRestore/Snapshot/GetSnapshot/GetSnapshotResponse.cs diff --git a/src/Nest/Modules/SnapshotAndRestore/Snapshot/Snapshot.cs b/src/Nest/Modules/SnapshotAndRestore/Snapshot/Snapshot.cs index 8a6c532834e..377d6219edf 100644 --- a/src/Nest/Modules/SnapshotAndRestore/Snapshot/Snapshot.cs +++ b/src/Nest/Modules/SnapshotAndRestore/Snapshot/Snapshot.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Runtime.Serialization; +using Elasticsearch.Net; namespace Nest { @@ -35,5 +36,8 @@ public class Snapshot [DataMember(Name ="state")] public string State { get; internal set; } + + [DataMember(Name ="metadata")] + public IReadOnlyDictionary Metadata { get; internal set; } = EmptyReadOnly.Dictionary; } } diff --git a/src/Nest/Modules/SnapshotAndRestore/Snapshot/Snapshot/SnapshotRequest.cs b/src/Nest/Modules/SnapshotAndRestore/Snapshot/Snapshot/SnapshotRequest.cs index bd84591dd30..c70752e29e3 100644 --- a/src/Nest/Modules/SnapshotAndRestore/Snapshot/Snapshot/SnapshotRequest.cs +++ b/src/Nest/Modules/SnapshotAndRestore/Snapshot/Snapshot/SnapshotRequest.cs @@ -1,4 +1,6 @@ -using System.Runtime.Serialization; +using System; +using System.Collections.Generic; +using System.Runtime.Serialization; using Elasticsearch.Net.Utf8Json; namespace Nest @@ -18,6 +20,9 @@ public partial interface ISnapshotRequest [DataMember(Name ="partial")] bool? Partial { get; set; } + + [DataMember(Name = "metadata")] + IDictionary Metadata { get; set; } } public partial class SnapshotRequest @@ -28,6 +33,8 @@ public partial class SnapshotRequest public Indices Indices { get; set; } public bool? Partial { get; set; } + + public IDictionary Metadata { get; set; } } public partial class SnapshotDescriptor @@ -39,6 +46,8 @@ public partial class SnapshotDescriptor bool? ISnapshotRequest.Partial { get; set; } + IDictionary ISnapshotRequest.Metadata { get; set; } + public SnapshotDescriptor Index(IndexName index) => Indices(index); public SnapshotDescriptor Index() where T : class => Indices(typeof(T)); @@ -50,5 +59,10 @@ public partial class SnapshotDescriptor public SnapshotDescriptor IncludeGlobalState(bool? includeGlobalState = true) => Assign(includeGlobalState, (a, v) => a.IncludeGlobalState = v); public SnapshotDescriptor Partial(bool? partial = true) => Assign(partial, (a, v) => a.Partial = v); + + public SnapshotDescriptor Metadata(IDictionary metadata) => Assign(metadata, (a, v) => a.Metadata = v); + + public SnapshotDescriptor Metadata(Func, IDictionary> selector) => + Assign(selector, (a, v) => a.Metadata = v?.Invoke(new FluentDictionary())); } }