From a02bfa9d91d81ff45b69dee6fed7f017fc095a92 Mon Sep 17 00:00:00 2001 From: Stuart Cam Date: Mon, 2 Dec 2019 17:56:09 +1100 Subject: [PATCH 1/7] Implement REST API specification locally and generate files. --- .../XPack/slm.get_status.json | 19 +++++ .../RestSpecification/XPack/slm.start.json | 19 +++++ .../RestSpecification/XPack/slm.stop.json | 19 +++++ ...tParameters.SnapshotLifecycleManagement.cs | 18 +++++ ...LevelClient.SnapshotLifecycleManagement.cs | 27 +++++++ ...Descriptors.SnapshotLifecycleManagement.cs | 33 +++++++++ ...asticClient.SnapshotLifecycleManagement.cs | 72 +++++++++++++++++++ .../Requests.SnapshotLifecycleManagement.cs | 51 +++++++++++++ .../_Generated/ApiUrlsLookup.generated.cs | 3 + 9 files changed, 261 insertions(+) create mode 100644 src/CodeGeneration/ApiGenerator/RestSpecification/XPack/slm.get_status.json create mode 100644 src/CodeGeneration/ApiGenerator/RestSpecification/XPack/slm.start.json create mode 100644 src/CodeGeneration/ApiGenerator/RestSpecification/XPack/slm.stop.json diff --git a/src/CodeGeneration/ApiGenerator/RestSpecification/XPack/slm.get_status.json b/src/CodeGeneration/ApiGenerator/RestSpecification/XPack/slm.get_status.json new file mode 100644 index 00000000000..163ad5558c3 --- /dev/null +++ b/src/CodeGeneration/ApiGenerator/RestSpecification/XPack/slm.get_status.json @@ -0,0 +1,19 @@ +{ + "slm.get_status":{ + "documentation":{ + "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html" + }, + "stability":"stable", + "url":{ + "paths":[ + { + "path":"/_slm/status", + "methods":[ + "GET" + ] + } + ] + }, + "params":{} + } +} diff --git a/src/CodeGeneration/ApiGenerator/RestSpecification/XPack/slm.start.json b/src/CodeGeneration/ApiGenerator/RestSpecification/XPack/slm.start.json new file mode 100644 index 00000000000..21ae3d50978 --- /dev/null +++ b/src/CodeGeneration/ApiGenerator/RestSpecification/XPack/slm.start.json @@ -0,0 +1,19 @@ +{ + "slm.start":{ + "documentation":{ + "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html" + }, + "stability":"stable", + "url":{ + "paths":[ + { + "path":"/_slm/start", + "methods":[ + "POST" + ] + } + ] + }, + "params":{} + } +} diff --git a/src/CodeGeneration/ApiGenerator/RestSpecification/XPack/slm.stop.json b/src/CodeGeneration/ApiGenerator/RestSpecification/XPack/slm.stop.json new file mode 100644 index 00000000000..63b74ab9c2f --- /dev/null +++ b/src/CodeGeneration/ApiGenerator/RestSpecification/XPack/slm.stop.json @@ -0,0 +1,19 @@ +{ + "slm.stop":{ + "documentation":{ + "url":"https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html" + }, + "stability":"stable", + "url":{ + "paths":[ + { + "path":"/_slm/stop", + "methods":[ + "POST" + ] + } + ] + }, + "params":{} + } +} diff --git a/src/Elasticsearch.Net/Api/RequestParameters/RequestParameters.SnapshotLifecycleManagement.cs b/src/Elasticsearch.Net/Api/RequestParameters/RequestParameters.SnapshotLifecycleManagement.cs index da2e233adf5..2e9e3d41e77 100644 --- a/src/Elasticsearch.Net/Api/RequestParameters/RequestParameters.SnapshotLifecycleManagement.cs +++ b/src/Elasticsearch.Net/Api/RequestParameters/RequestParameters.SnapshotLifecycleManagement.cs @@ -42,9 +42,27 @@ public class GetSnapshotLifecycleRequestParameters : RequestParameters HttpMethod.GET; } + ///Request options for GetStatus https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html + public class GetStatusRequestParameters : RequestParameters + { + public override HttpMethod DefaultHttpMethod => HttpMethod.GET; + } + ///Request options for PutSnapshotLifecycle https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-put.html public class PutSnapshotLifecycleRequestParameters : RequestParameters { public override HttpMethod DefaultHttpMethod => HttpMethod.PUT; } + + ///Request options for Start https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html + public class StartRequestParameters : RequestParameters + { + public override HttpMethod DefaultHttpMethod => HttpMethod.POST; + } + + ///Request options for Stop https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html + public class StopRequestParameters : RequestParameters + { + public override HttpMethod DefaultHttpMethod => HttpMethod.POST; + } } \ No newline at end of file diff --git a/src/Elasticsearch.Net/ElasticLowLevelClient.SnapshotLifecycleManagement.cs b/src/Elasticsearch.Net/ElasticLowLevelClient.SnapshotLifecycleManagement.cs index 189ec0a3a3a..65b3ca64453 100644 --- a/src/Elasticsearch.Net/ElasticLowLevelClient.SnapshotLifecycleManagement.cs +++ b/src/Elasticsearch.Net/ElasticLowLevelClient.SnapshotLifecycleManagement.cs @@ -85,6 +85,15 @@ public TResponse GetSnapshotLifecycle(GetSnapshotLifecycleRequestPara [MapsApi("slm.get_lifecycle", "")] public Task GetSnapshotLifecycleAsync(GetSnapshotLifecycleRequestParameters requestParameters = null, CancellationToken ctx = default) where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync(GET, "_slm/policy", ctx, null, RequestParams(requestParameters)); + ///GET on /_slm/status https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html + ///Request specific configuration such as querystring parameters & request specific connection settings. + public TResponse GetStatus(GetStatusRequestParameters requestParameters = null) + where TResponse : class, IElasticsearchResponse, new() => DoRequest(GET, "_slm/status", null, RequestParams(requestParameters)); + ///GET on /_slm/status https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html + ///Request specific configuration such as querystring parameters & request specific connection settings. + [MapsApi("slm.get_status", "")] + public Task GetStatusAsync(GetStatusRequestParameters requestParameters = null, CancellationToken ctx = default) + where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync(GET, "_slm/status", ctx, null, RequestParams(requestParameters)); ///PUT on /_slm/policy/{policy_id} https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-put.html ///The id of the snapshot lifecycle policy ///The snapshot lifecycle policy definition to register @@ -98,5 +107,23 @@ public TResponse PutSnapshotLifecycle(string policyId, PostData body, [MapsApi("slm.put_lifecycle", "policy_id, body")] public Task PutSnapshotLifecycleAsync(string policyId, PostData body, PutSnapshotLifecycleRequestParameters requestParameters = null, CancellationToken ctx = default) where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync(PUT, Url($"_slm/policy/{policyId:policyId}"), ctx, body, RequestParams(requestParameters)); + ///POST on /_slm/start https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html + ///Request specific configuration such as querystring parameters & request specific connection settings. + public TResponse Start(StartRequestParameters requestParameters = null) + where TResponse : class, IElasticsearchResponse, new() => DoRequest(POST, "_slm/start", null, RequestParams(requestParameters)); + ///POST on /_slm/start https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html + ///Request specific configuration such as querystring parameters & request specific connection settings. + [MapsApi("slm.start", "")] + public Task StartAsync(StartRequestParameters requestParameters = null, CancellationToken ctx = default) + where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync(POST, "_slm/start", ctx, null, RequestParams(requestParameters)); + ///POST on /_slm/stop https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html + ///Request specific configuration such as querystring parameters & request specific connection settings. + public TResponse Stop(StopRequestParameters requestParameters = null) + where TResponse : class, IElasticsearchResponse, new() => DoRequest(POST, "_slm/stop", null, RequestParams(requestParameters)); + ///POST on /_slm/stop https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html + ///Request specific configuration such as querystring parameters & request specific connection settings. + [MapsApi("slm.stop", "")] + public Task StopAsync(StopRequestParameters requestParameters = null, CancellationToken ctx = default) + where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync(POST, "_slm/stop", ctx, null, RequestParams(requestParameters)); } } \ No newline at end of file diff --git a/src/Nest/Descriptors.SnapshotLifecycleManagement.cs b/src/Nest/Descriptors.SnapshotLifecycleManagement.cs index caca936b5f4..ac65c6850c1 100644 --- a/src/Nest/Descriptors.SnapshotLifecycleManagement.cs +++ b/src/Nest/Descriptors.SnapshotLifecycleManagement.cs @@ -94,6 +94,17 @@ public GetSnapshotLifecycleDescriptor(): base() // Request parameters } + ///Descriptor for GetStatus https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html + public partial class GetStatusDescriptor : RequestDescriptorBase, IGetStatusRequest + { + internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementGetStatus; + // values part of the url path + // Request parameters + [Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement GetStatusDescriptor and GetStatusRequest in a file called GetStatusRequest.cs in NEST's codebase", true)] + public bool IsUnmapped => true; + public bool UseIsUnmapped => IsUnmapped; + } + ///Descriptor for PutSnapshotLifecycle https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-put.html public partial class PutSnapshotLifecycleDescriptor : RequestDescriptorBase, IPutSnapshotLifecycleRequest { @@ -114,4 +125,26 @@ protected PutSnapshotLifecycleDescriptor(): base() Id IPutSnapshotLifecycleRequest.PolicyId => Self.RouteValues.Get("policy_id"); // Request parameters } + + ///Descriptor for Start https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html + public partial class StartDescriptor : RequestDescriptorBase, IStartRequest + { + internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementStart; + // values part of the url path + // Request parameters + [Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement StartDescriptor and StartRequest in a file called StartRequest.cs in NEST's codebase", true)] + public bool IsUnmapped => true; + public bool UseIsUnmapped => IsUnmapped; + } + + ///Descriptor for Stop https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html + public partial class StopDescriptor : RequestDescriptorBase, IStopRequest + { + internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementStop; + // values part of the url path + // Request parameters + [Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement StopDescriptor and StopRequest in a file called StopRequest.cs in NEST's codebase", true)] + public bool IsUnmapped => true; + public bool UseIsUnmapped => IsUnmapped; + } } \ No newline at end of file diff --git a/src/Nest/ElasticClient.SnapshotLifecycleManagement.cs b/src/Nest/ElasticClient.SnapshotLifecycleManagement.cs index e391a06c790..00a8c5257a5 100644 --- a/src/Nest/ElasticClient.SnapshotLifecycleManagement.cs +++ b/src/Nest/ElasticClient.SnapshotLifecycleManagement.cs @@ -109,6 +109,30 @@ internal SnapshotLifecycleManagementNamespace(ElasticClient client): base(client /// public Task GetSnapshotLifecycleAsync(IGetSnapshotLifecycleRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); /// + /// GET request to the slm.get_status API, read more about this API online: + /// + /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html + /// + public GetStatusResponse GetStatus(Func selector = null) => GetStatus(selector.InvokeOrDefault(new GetStatusDescriptor())); + /// + /// GET request to the slm.get_status API, read more about this API online: + /// + /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html + /// + public Task GetStatusAsync(Func selector = null, CancellationToken ct = default) => GetStatusAsync(selector.InvokeOrDefault(new GetStatusDescriptor()), ct); + /// + /// GET request to the slm.get_status API, read more about this API online: + /// + /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html + /// + public GetStatusResponse GetStatus(IGetStatusRequest request) => DoRequest(request, request.RequestParameters); + /// + /// GET request to the slm.get_status API, read more about this API online: + /// + /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html + /// + public Task GetStatusAsync(IGetStatusRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); + /// /// PUT request to the slm.put_lifecycle API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-put.html @@ -132,5 +156,53 @@ internal SnapshotLifecycleManagementNamespace(ElasticClient client): base(client /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-put.html /// public Task PutSnapshotLifecycleAsync(IPutSnapshotLifecycleRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); + /// + /// POST request to the slm.start API, read more about this API online: + /// + /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html + /// + public StartResponse Start(Func selector = null) => Start(selector.InvokeOrDefault(new StartDescriptor())); + /// + /// POST request to the slm.start API, read more about this API online: + /// + /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html + /// + public Task StartAsync(Func selector = null, CancellationToken ct = default) => StartAsync(selector.InvokeOrDefault(new StartDescriptor()), ct); + /// + /// POST request to the slm.start API, read more about this API online: + /// + /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html + /// + public StartResponse Start(IStartRequest request) => DoRequest(request, request.RequestParameters); + /// + /// POST request to the slm.start API, read more about this API online: + /// + /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html + /// + public Task StartAsync(IStartRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); + /// + /// POST request to the slm.stop API, read more about this API online: + /// + /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html + /// + public StopResponse Stop(Func selector = null) => Stop(selector.InvokeOrDefault(new StopDescriptor())); + /// + /// POST request to the slm.stop API, read more about this API online: + /// + /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html + /// + public Task StopAsync(Func selector = null, CancellationToken ct = default) => StopAsync(selector.InvokeOrDefault(new StopDescriptor()), ct); + /// + /// POST request to the slm.stop API, read more about this API online: + /// + /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html + /// + public StopResponse Stop(IStopRequest request) => DoRequest(request, request.RequestParameters); + /// + /// POST request to the slm.stop API, read more about this API online: + /// + /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html + /// + public Task StopAsync(IStopRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); } } \ No newline at end of file diff --git a/src/Nest/Requests.SnapshotLifecycleManagement.cs b/src/Nest/Requests.SnapshotLifecycleManagement.cs index 852d287b34a..64eb5eca430 100644 --- a/src/Nest/Requests.SnapshotLifecycleManagement.cs +++ b/src/Nest/Requests.SnapshotLifecycleManagement.cs @@ -129,6 +129,23 @@ public GetSnapshotLifecycleRequest(): base() // Request parameters } + [InterfaceDataContract] + public partial interface IGetStatusRequest : IRequest + { + } + + ///Request for GetStatus https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html + public partial class GetStatusRequest : PlainRequestBase, IGetStatusRequest + { + protected IGetStatusRequest Self => this; + internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementGetStatus; + // values part of the url path + // Request parameters + [Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement GetStatusDescriptor and GetStatusRequest in a file called GetStatusRequest.cs in NEST's codebase", true)] + public bool IsUnmapped => true; + public bool UseIsUnmapped => IsUnmapped; + } + [InterfaceDataContract] public partial interface IPutSnapshotLifecycleRequest : IRequest { @@ -161,4 +178,38 @@ protected PutSnapshotLifecycleRequest(): base() Id IPutSnapshotLifecycleRequest.PolicyId => Self.RouteValues.Get("policy_id"); // Request parameters } + + [InterfaceDataContract] + public partial interface IStartRequest : IRequest + { + } + + ///Request for Start https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html + public partial class StartRequest : PlainRequestBase, IStartRequest + { + protected IStartRequest Self => this; + internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementStart; + // values part of the url path + // Request parameters + [Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement StartDescriptor and StartRequest in a file called StartRequest.cs in NEST's codebase", true)] + public bool IsUnmapped => true; + public bool UseIsUnmapped => IsUnmapped; + } + + [InterfaceDataContract] + public partial interface IStopRequest : IRequest + { + } + + ///Request for Stop https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html + public partial class StopRequest : PlainRequestBase, IStopRequest + { + protected IStopRequest Self => this; + internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementStop; + // values part of the url path + // Request parameters + [Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement StopDescriptor and StopRequest in a file called StopRequest.cs in NEST's codebase", true)] + public bool IsUnmapped => true; + public bool UseIsUnmapped => IsUnmapped; + } } \ No newline at end of file diff --git a/src/Nest/_Generated/ApiUrlsLookup.generated.cs b/src/Nest/_Generated/ApiUrlsLookup.generated.cs index b4da77eb8a6..85625c711cb 100644 --- a/src/Nest/_Generated/ApiUrlsLookup.generated.cs +++ b/src/Nest/_Generated/ApiUrlsLookup.generated.cs @@ -236,7 +236,10 @@ internal static class ApiUrlsLookups internal static ApiUrls SnapshotLifecycleManagementDeleteSnapshotLifecycle = new ApiUrls(new[]{"_slm/policy/{policy_id}"}); internal static ApiUrls SnapshotLifecycleManagementExecuteSnapshotLifecycle = new ApiUrls(new[]{"_slm/policy/{policy_id}/_execute"}); internal static ApiUrls SnapshotLifecycleManagementGetSnapshotLifecycle = new ApiUrls(new[]{"_slm/policy/{policy_id}", "_slm/policy"}); + internal static ApiUrls SnapshotLifecycleManagementGetStatus = new ApiUrls(new[]{"_slm/status"}); internal static ApiUrls SnapshotLifecycleManagementPutSnapshotLifecycle = new ApiUrls(new[]{"_slm/policy/{policy_id}"}); + internal static ApiUrls SnapshotLifecycleManagementStart = new ApiUrls(new[]{"_slm/start"}); + internal static ApiUrls SnapshotLifecycleManagementStop = new ApiUrls(new[]{"_slm/stop"}); internal static ApiUrls SnapshotCleanupRepository = new ApiUrls(new[]{"_snapshot/{repository}/_cleanup"}); internal static ApiUrls SnapshotSnapshot = new ApiUrls(new[]{"_snapshot/{repository}/{snapshot}"}); internal static ApiUrls SnapshotCreateRepository = new ApiUrls(new[]{"_snapshot/{repository}"}); From b3e4df1baaa2e16e0ef98253e03c826b38d0d436 Mon Sep 17 00:00:00 2001 From: Stuart Cam Date: Mon, 2 Dec 2019 19:19:10 +1100 Subject: [PATCH 2/7] NEST request and response classes. Ensure Slm prefix is handled correctly in generator. --- .../ApiGenerator/Domain/Code/CsharpNames.cs | 3 +- ...tParameters.SnapshotLifecycleManagement.cs | 6 +-- ...LevelClient.SnapshotLifecycleManagement.cs | 12 +++--- ...Descriptors.SnapshotLifecycleManagement.cs | 27 +++++-------- ...asticClient.SnapshotLifecycleManagement.cs | 24 ++++++------ .../Requests.SnapshotLifecycleManagement.cs | 39 +++++++------------ .../Slm/GetStatus/GetSlmStatusRequest.cs | 9 +++++ .../Slm/GetStatus/GetSlmStatusResponse.cs | 10 +++++ src/Nest/XPack/Slm/Start/StartSlmRequest.cs | 9 +++++ src/Nest/XPack/Slm/Start/StartSlmResponse.cs | 4 ++ src/Nest/XPack/Slm/Stop/StopSlmRequest.cs | 9 +++++ src/Nest/XPack/Slm/Stop/StopSlmResponse.cs | 4 ++ 12 files changed, 92 insertions(+), 64 deletions(-) create mode 100644 src/Nest/XPack/Slm/GetStatus/GetSlmStatusRequest.cs create mode 100644 src/Nest/XPack/Slm/GetStatus/GetSlmStatusResponse.cs create mode 100644 src/Nest/XPack/Slm/Start/StartSlmRequest.cs create mode 100644 src/Nest/XPack/Slm/Start/StartSlmResponse.cs create mode 100644 src/Nest/XPack/Slm/Stop/StopSlmRequest.cs create mode 100644 src/Nest/XPack/Slm/Stop/StopSlmResponse.cs diff --git a/src/CodeGeneration/ApiGenerator/Domain/Code/CsharpNames.cs b/src/CodeGeneration/ApiGenerator/Domain/Code/CsharpNames.cs index 48c2cc7e406..5b4de91dd11 100644 --- a/src/CodeGeneration/ApiGenerator/Domain/Code/CsharpNames.cs +++ b/src/CodeGeneration/ApiGenerator/Domain/Code/CsharpNames.cs @@ -36,6 +36,7 @@ string Replace(string original, string ns, string find, string replace) { "Indices", (find: "Index", replace: "") }, { "CrossClusterReplication", (find: "Ccr", replace: "") }, { "IndexLifecycleManagement", (find: "Ilm", replace: "") }, + { "SnapshotLifecycleManagement", (find: "Slm", replace: "") }, }; foreach (var (ns, (find, replace)) in namespaceRenames) MethodName = Replace(MethodName, ns, find, replace); @@ -88,10 +89,10 @@ private static string CreateCSharpNamespace(string endpointNamespace) // https://github.com/elastic/elasticsearch/issues/41845 case "ssl": return "Security"; case "ilm": return "IndexLifecycleManagement"; + case "slm": return "SnapshotLifecycleManagement"; case "ccr": return "CrossClusterReplication"; case "ml": return "MachineLearning"; case "xpack": return "XPack"; - case "slm": return "SnapshotLifecycleManagement"; default: return endpointNamespace.ToPascalCase(); } } diff --git a/src/Elasticsearch.Net/Api/RequestParameters/RequestParameters.SnapshotLifecycleManagement.cs b/src/Elasticsearch.Net/Api/RequestParameters/RequestParameters.SnapshotLifecycleManagement.cs index 2e9e3d41e77..4a90a4a4d9d 100644 --- a/src/Elasticsearch.Net/Api/RequestParameters/RequestParameters.SnapshotLifecycleManagement.cs +++ b/src/Elasticsearch.Net/Api/RequestParameters/RequestParameters.SnapshotLifecycleManagement.cs @@ -43,7 +43,7 @@ public class GetSnapshotLifecycleRequestParameters : RequestParametersRequest options for GetStatus https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html - public class GetStatusRequestParameters : RequestParameters + public class GetSlmStatusRequestParameters : RequestParameters { public override HttpMethod DefaultHttpMethod => HttpMethod.GET; } @@ -55,13 +55,13 @@ public class PutSnapshotLifecycleRequestParameters : RequestParametersRequest options for Start https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html - public class StartRequestParameters : RequestParameters + public class StartSlmRequestParameters : RequestParameters { public override HttpMethod DefaultHttpMethod => HttpMethod.POST; } ///Request options for Stop https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html - public class StopRequestParameters : RequestParameters + public class StopSlmRequestParameters : RequestParameters { public override HttpMethod DefaultHttpMethod => HttpMethod.POST; } diff --git a/src/Elasticsearch.Net/ElasticLowLevelClient.SnapshotLifecycleManagement.cs b/src/Elasticsearch.Net/ElasticLowLevelClient.SnapshotLifecycleManagement.cs index 65b3ca64453..4c13521fa6e 100644 --- a/src/Elasticsearch.Net/ElasticLowLevelClient.SnapshotLifecycleManagement.cs +++ b/src/Elasticsearch.Net/ElasticLowLevelClient.SnapshotLifecycleManagement.cs @@ -87,12 +87,12 @@ public Task GetSnapshotLifecycleAsync(GetSnapshotLifecycle where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync(GET, "_slm/policy", ctx, null, RequestParams(requestParameters)); ///GET on /_slm/status https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html ///Request specific configuration such as querystring parameters & request specific connection settings. - public TResponse GetStatus(GetStatusRequestParameters requestParameters = null) + public TResponse GetStatus(GetSlmStatusRequestParameters requestParameters = null) where TResponse : class, IElasticsearchResponse, new() => DoRequest(GET, "_slm/status", null, RequestParams(requestParameters)); ///GET on /_slm/status https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html ///Request specific configuration such as querystring parameters & request specific connection settings. [MapsApi("slm.get_status", "")] - public Task GetStatusAsync(GetStatusRequestParameters requestParameters = null, CancellationToken ctx = default) + public Task GetStatusAsync(GetSlmStatusRequestParameters requestParameters = null, CancellationToken ctx = default) where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync(GET, "_slm/status", ctx, null, RequestParams(requestParameters)); ///PUT on /_slm/policy/{policy_id} https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-put.html ///The id of the snapshot lifecycle policy @@ -109,21 +109,21 @@ public Task PutSnapshotLifecycleAsync(string policyId, Pos where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync(PUT, Url($"_slm/policy/{policyId:policyId}"), ctx, body, RequestParams(requestParameters)); ///POST on /_slm/start https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html ///Request specific configuration such as querystring parameters & request specific connection settings. - public TResponse Start(StartRequestParameters requestParameters = null) + public TResponse Start(StartSlmRequestParameters requestParameters = null) where TResponse : class, IElasticsearchResponse, new() => DoRequest(POST, "_slm/start", null, RequestParams(requestParameters)); ///POST on /_slm/start https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html ///Request specific configuration such as querystring parameters & request specific connection settings. [MapsApi("slm.start", "")] - public Task StartAsync(StartRequestParameters requestParameters = null, CancellationToken ctx = default) + public Task StartAsync(StartSlmRequestParameters requestParameters = null, CancellationToken ctx = default) where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync(POST, "_slm/start", ctx, null, RequestParams(requestParameters)); ///POST on /_slm/stop https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html ///Request specific configuration such as querystring parameters & request specific connection settings. - public TResponse Stop(StopRequestParameters requestParameters = null) + public TResponse Stop(StopSlmRequestParameters requestParameters = null) where TResponse : class, IElasticsearchResponse, new() => DoRequest(POST, "_slm/stop", null, RequestParams(requestParameters)); ///POST on /_slm/stop https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html ///Request specific configuration such as querystring parameters & request specific connection settings. [MapsApi("slm.stop", "")] - public Task StopAsync(StopRequestParameters requestParameters = null, CancellationToken ctx = default) + public Task StopAsync(StopSlmRequestParameters requestParameters = null, CancellationToken ctx = default) where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync(POST, "_slm/stop", ctx, null, RequestParams(requestParameters)); } } \ No newline at end of file diff --git a/src/Nest/Descriptors.SnapshotLifecycleManagement.cs b/src/Nest/Descriptors.SnapshotLifecycleManagement.cs index ac65c6850c1..e3e53e94ce6 100644 --- a/src/Nest/Descriptors.SnapshotLifecycleManagement.cs +++ b/src/Nest/Descriptors.SnapshotLifecycleManagement.cs @@ -95,14 +95,11 @@ public GetSnapshotLifecycleDescriptor(): base() } ///Descriptor for GetStatus https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html - public partial class GetStatusDescriptor : RequestDescriptorBase, IGetStatusRequest + public partial class GetSlmStatusDescriptor : RequestDescriptorBase, IGetSlmStatusRequest { internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementGetStatus; - // values part of the url path - // Request parameters - [Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement GetStatusDescriptor and GetStatusRequest in a file called GetStatusRequest.cs in NEST's codebase", true)] - public bool IsUnmapped => true; - public bool UseIsUnmapped => IsUnmapped; + // values part of the url path + // Request parameters } ///Descriptor for PutSnapshotLifecycle https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-put.html @@ -127,24 +124,18 @@ protected PutSnapshotLifecycleDescriptor(): base() } ///Descriptor for Start https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html - public partial class StartDescriptor : RequestDescriptorBase, IStartRequest + public partial class StartSlmDescriptor : RequestDescriptorBase, IStartSlmRequest { internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementStart; - // values part of the url path - // Request parameters - [Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement StartDescriptor and StartRequest in a file called StartRequest.cs in NEST's codebase", true)] - public bool IsUnmapped => true; - public bool UseIsUnmapped => IsUnmapped; + // values part of the url path + // Request parameters } ///Descriptor for Stop https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html - public partial class StopDescriptor : RequestDescriptorBase, IStopRequest + public partial class StopSlmDescriptor : RequestDescriptorBase, IStopSlmRequest { internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementStop; - // values part of the url path - // Request parameters - [Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement StopDescriptor and StopRequest in a file called StopRequest.cs in NEST's codebase", true)] - public bool IsUnmapped => true; - public bool UseIsUnmapped => IsUnmapped; + // values part of the url path + // Request parameters } } \ No newline at end of file diff --git a/src/Nest/ElasticClient.SnapshotLifecycleManagement.cs b/src/Nest/ElasticClient.SnapshotLifecycleManagement.cs index 00a8c5257a5..8be1d138567 100644 --- a/src/Nest/ElasticClient.SnapshotLifecycleManagement.cs +++ b/src/Nest/ElasticClient.SnapshotLifecycleManagement.cs @@ -113,25 +113,25 @@ internal SnapshotLifecycleManagementNamespace(ElasticClient client): base(client /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html /// - public GetStatusResponse GetStatus(Func selector = null) => GetStatus(selector.InvokeOrDefault(new GetStatusDescriptor())); + public GetSlmStatusResponse GetStatus(Func selector = null) => GetStatus(selector.InvokeOrDefault(new GetSlmStatusDescriptor())); /// /// GET request to the slm.get_status API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html /// - public Task GetStatusAsync(Func selector = null, CancellationToken ct = default) => GetStatusAsync(selector.InvokeOrDefault(new GetStatusDescriptor()), ct); + public Task GetStatusAsync(Func selector = null, CancellationToken ct = default) => GetStatusAsync(selector.InvokeOrDefault(new GetSlmStatusDescriptor()), ct); /// /// GET request to the slm.get_status API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html /// - public GetStatusResponse GetStatus(IGetStatusRequest request) => DoRequest(request, request.RequestParameters); + public GetSlmStatusResponse GetStatus(IGetSlmStatusRequest request) => DoRequest(request, request.RequestParameters); /// /// GET request to the slm.get_status API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html /// - public Task GetStatusAsync(IGetStatusRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); + public Task GetStatusAsync(IGetSlmStatusRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); /// /// PUT request to the slm.put_lifecycle API, read more about this API online: /// @@ -161,48 +161,48 @@ internal SnapshotLifecycleManagementNamespace(ElasticClient client): base(client /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html /// - public StartResponse Start(Func selector = null) => Start(selector.InvokeOrDefault(new StartDescriptor())); + public StartSlmResponse Start(Func selector = null) => Start(selector.InvokeOrDefault(new StartSlmDescriptor())); /// /// POST request to the slm.start API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html /// - public Task StartAsync(Func selector = null, CancellationToken ct = default) => StartAsync(selector.InvokeOrDefault(new StartDescriptor()), ct); + public Task StartAsync(Func selector = null, CancellationToken ct = default) => StartAsync(selector.InvokeOrDefault(new StartSlmDescriptor()), ct); /// /// POST request to the slm.start API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html /// - public StartResponse Start(IStartRequest request) => DoRequest(request, request.RequestParameters); + public StartSlmResponse Start(IStartSlmRequest request) => DoRequest(request, request.RequestParameters); /// /// POST request to the slm.start API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html /// - public Task StartAsync(IStartRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); + public Task StartAsync(IStartSlmRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); /// /// POST request to the slm.stop API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html /// - public StopResponse Stop(Func selector = null) => Stop(selector.InvokeOrDefault(new StopDescriptor())); + public StopSlmResponse Stop(Func selector = null) => Stop(selector.InvokeOrDefault(new StopSlmDescriptor())); /// /// POST request to the slm.stop API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html /// - public Task StopAsync(Func selector = null, CancellationToken ct = default) => StopAsync(selector.InvokeOrDefault(new StopDescriptor()), ct); + public Task StopAsync(Func selector = null, CancellationToken ct = default) => StopAsync(selector.InvokeOrDefault(new StopSlmDescriptor()), ct); /// /// POST request to the slm.stop API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html /// - public StopResponse Stop(IStopRequest request) => DoRequest(request, request.RequestParameters); + public StopSlmResponse Stop(IStopSlmRequest request) => DoRequest(request, request.RequestParameters); /// /// POST request to the slm.stop API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html /// - public Task StopAsync(IStopRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); + public Task StopAsync(IStopSlmRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); } } \ No newline at end of file diff --git a/src/Nest/Requests.SnapshotLifecycleManagement.cs b/src/Nest/Requests.SnapshotLifecycleManagement.cs index 64eb5eca430..65c5ab0570a 100644 --- a/src/Nest/Requests.SnapshotLifecycleManagement.cs +++ b/src/Nest/Requests.SnapshotLifecycleManagement.cs @@ -130,20 +130,17 @@ public GetSnapshotLifecycleRequest(): base() } [InterfaceDataContract] - public partial interface IGetStatusRequest : IRequest + public partial interface IGetSlmStatusRequest : IRequest { } ///Request for GetStatus https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html - public partial class GetStatusRequest : PlainRequestBase, IGetStatusRequest + public partial class GetSlmStatusRequest : PlainRequestBase, IGetSlmStatusRequest { - protected IGetStatusRequest Self => this; + protected IGetSlmStatusRequest Self => this; internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementGetStatus; - // values part of the url path - // Request parameters - [Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement GetStatusDescriptor and GetStatusRequest in a file called GetStatusRequest.cs in NEST's codebase", true)] - public bool IsUnmapped => true; - public bool UseIsUnmapped => IsUnmapped; + // values part of the url path + // Request parameters } [InterfaceDataContract] @@ -180,36 +177,30 @@ protected PutSnapshotLifecycleRequest(): base() } [InterfaceDataContract] - public partial interface IStartRequest : IRequest + public partial interface IStartSlmRequest : IRequest { } ///Request for Start https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html - public partial class StartRequest : PlainRequestBase, IStartRequest + public partial class StartSlmRequest : PlainRequestBase, IStartSlmRequest { - protected IStartRequest Self => this; + protected IStartSlmRequest Self => this; internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementStart; - // values part of the url path - // Request parameters - [Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement StartDescriptor and StartRequest in a file called StartRequest.cs in NEST's codebase", true)] - public bool IsUnmapped => true; - public bool UseIsUnmapped => IsUnmapped; + // values part of the url path + // Request parameters } [InterfaceDataContract] - public partial interface IStopRequest : IRequest + public partial interface IStopSlmRequest : IRequest { } ///Request for Stop https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html - public partial class StopRequest : PlainRequestBase, IStopRequest + public partial class StopSlmRequest : PlainRequestBase, IStopSlmRequest { - protected IStopRequest Self => this; + protected IStopSlmRequest Self => this; internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementStop; - // values part of the url path - // Request parameters - [Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement StopDescriptor and StopRequest in a file called StopRequest.cs in NEST's codebase", true)] - public bool IsUnmapped => true; - public bool UseIsUnmapped => IsUnmapped; + // values part of the url path + // Request parameters } } \ No newline at end of file diff --git a/src/Nest/XPack/Slm/GetStatus/GetSlmStatusRequest.cs b/src/Nest/XPack/Slm/GetStatus/GetSlmStatusRequest.cs new file mode 100644 index 00000000000..f9b10f6c02a --- /dev/null +++ b/src/Nest/XPack/Slm/GetStatus/GetSlmStatusRequest.cs @@ -0,0 +1,9 @@ +namespace Nest +{ + [MapsApi("slm.get_status")] + public partial interface IGetSlmStatusRequest { } + + public partial class GetSlmStatusRequest { } + + public partial class GetSlmStatusDescriptor { } +} diff --git a/src/Nest/XPack/Slm/GetStatus/GetSlmStatusResponse.cs b/src/Nest/XPack/Slm/GetStatus/GetSlmStatusResponse.cs new file mode 100644 index 00000000000..934a387d612 --- /dev/null +++ b/src/Nest/XPack/Slm/GetStatus/GetSlmStatusResponse.cs @@ -0,0 +1,10 @@ +using System.Runtime.Serialization; + +namespace Nest +{ + public class GetSlmStatusResponse : ResponseBase + { + [DataMember(Name = "operation_mode")] + public LifecycleOperationMode OperationMode { get; internal set; } + } +} diff --git a/src/Nest/XPack/Slm/Start/StartSlmRequest.cs b/src/Nest/XPack/Slm/Start/StartSlmRequest.cs new file mode 100644 index 00000000000..797b7939111 --- /dev/null +++ b/src/Nest/XPack/Slm/Start/StartSlmRequest.cs @@ -0,0 +1,9 @@ +namespace Nest +{ + [MapsApi("slm.start")] + public partial interface IStartSlmRequest { } + + public partial class StartSlmRequest { } + + public partial class StartSlmDescriptor { } +} diff --git a/src/Nest/XPack/Slm/Start/StartSlmResponse.cs b/src/Nest/XPack/Slm/Start/StartSlmResponse.cs new file mode 100644 index 00000000000..06f5c45e13c --- /dev/null +++ b/src/Nest/XPack/Slm/Start/StartSlmResponse.cs @@ -0,0 +1,4 @@ +namespace Nest +{ + public class StartSlmResponse : AcknowledgedResponseBase { } +} diff --git a/src/Nest/XPack/Slm/Stop/StopSlmRequest.cs b/src/Nest/XPack/Slm/Stop/StopSlmRequest.cs new file mode 100644 index 00000000000..a52754310da --- /dev/null +++ b/src/Nest/XPack/Slm/Stop/StopSlmRequest.cs @@ -0,0 +1,9 @@ +namespace Nest +{ + [MapsApi("slm.stop")] + public partial interface IStopSlmRequest { } + + public partial class StopSlmRequest { } + + public partial class StopSlmDescriptor { } +} diff --git a/src/Nest/XPack/Slm/Stop/StopSlmResponse.cs b/src/Nest/XPack/Slm/Stop/StopSlmResponse.cs new file mode 100644 index 00000000000..aa1713ab371 --- /dev/null +++ b/src/Nest/XPack/Slm/Stop/StopSlmResponse.cs @@ -0,0 +1,4 @@ +namespace Nest +{ + public class StopSlmResponse : AcknowledgedResponseBase { } +} From fa0f85d40dab963cc041a5656a8674af22294d80 Mon Sep 17 00:00:00 2001 From: Stuart Cam Date: Mon, 2 Dec 2019 22:21:50 +1100 Subject: [PATCH 3/7] Added tests --- src/Tests/Tests/XPack/Slm/SlmApiTests.cs | 39 ++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/src/Tests/Tests/XPack/Slm/SlmApiTests.cs b/src/Tests/Tests/XPack/Slm/SlmApiTests.cs index 095ad1d6b55..fa5b3c5cb70 100644 --- a/src/Tests/Tests/XPack/Slm/SlmApiTests.cs +++ b/src/Tests/Tests/XPack/Slm/SlmApiTests.cs @@ -11,7 +11,7 @@ namespace Tests.XPack.Slm { - [SkipVersion("<7.4.0", "All APIs exist in Elasticsearch 7.4.0")] + [SkipVersion("<7.5.0", "All APIs exist in Elasticsearch 7.4.0, Status, Start and Stop added in 7.5.0")] public class SlmApiTests : CoordinatedIntegrationTestBase { private const string CreateRepositoryStep = nameof(CreateRepositoryStep); @@ -19,9 +19,10 @@ public class SlmApiTests : CoordinatedIntegrationTestBase private const string ExecuteSnapshotLifecycleStep = nameof(ExecuteSnapshotLifecycleStep); private const string GetAllSnapshotLifecycleStep = nameof(GetAllSnapshotLifecycleStep); private const string GetSnapshotLifecycleStep = nameof(GetSnapshotLifecycleStep); + private const string GetSnapshotLifecycleStatusStep = nameof(GetSnapshotLifecycleStatusStep); private const string GetSnapshotLifecycleAfterExecuteStep = nameof(GetSnapshotLifecycleAfterExecuteStep); private const string PutSnapshotLifecycleStep = nameof(PutSnapshotLifecycleStep); - + private const string StopSnapshotLifecycleStep = nameof(StopSnapshotLifecycleStep); public SlmApiTests(XPackCluster cluster, EndpointUsage usage) : base(new CoordinatedUsage(cluster, usage) { @@ -79,6 +80,16 @@ public SlmApiTests(XPackCluster cluster, EndpointUsage usage) : base(new Coordin (v, c, r) => c.SnapshotLifecycleManagement.GetSnapshotLifecycleAsync(r) ) }, + { + GetSnapshotLifecycleStatusStep, u => u.Calls( + v => new GetSlmStatusRequest(), + (v, d) => d, + (v, c, f) => c.SnapshotLifecycleManagement.GetStatus(f), + (v, c, f) => c.SnapshotLifecycleManagement.GetStatusAsync(f), + (v, c, r) => c.SnapshotLifecycleManagement.GetStatus(r), + (v, c, r) => c.SnapshotLifecycleManagement.GetStatusAsync(r) + ) + }, { GetAllSnapshotLifecycleStep, u => u.Calls( @@ -116,6 +127,16 @@ public SlmApiTests(XPackCluster cluster, EndpointUsage usage) : base(new Coordin (v, c, r) => c.SnapshotLifecycleManagement.GetSnapshotLifecycleAsync(r) ) }, + { + StopSnapshotLifecycleStep, u => u.Calls( + v => new StopSlmRequest(), + (v, d) => d, + (v, c, f) => c.SnapshotLifecycleManagement.Stop(f), + (v, c, f) => c.SnapshotLifecycleManagement.StopAsync(f), + (v, c, r) => c.SnapshotLifecycleManagement.Stop(r), + (v, c, r) => c.SnapshotLifecycleManagement.StopAsync(r) + ) + }, { DeleteSnapshotLifecycleStep, u => u.Calls await Assert await Assert(GetSnapshotLifecycleStatusStep, (v, r) => + { + r.IsValid.Should().BeTrue(); + r.ApiCall.HttpStatusCode.Should().Be(200); + r.OperationMode.Should().Be(LifecycleOperationMode.Running); + }); + + [I] public async Task StopSnapshotLifecycleResponse() => await Assert(StopSnapshotLifecycleStep, (v, r) => + { + r.IsValid.Should().BeTrue(); + r.ApiCall.HttpStatusCode.Should().Be(200); + r.Acknowledged.Should().BeTrue(); + }); + [I] public async Task ExecuteSnapshotLifecycleResponse() => await Assert(ExecuteSnapshotLifecycleStep, (v, r) => { From 019da7d87292133d7c61b977b0779740bdbba0eb Mon Sep 17 00:00:00 2001 From: Stuart Cam Date: Tue, 3 Dec 2019 17:15:32 +1100 Subject: [PATCH 4/7] Url tests --- .../GetLifecycleStatusUrlTests.cs | 18 ++++++++++++++++++ .../StartLifecycle/StartLifecycleUrlTests.cs | 18 ++++++++++++++++++ .../Slm/StopLifecycle/StopLifecycleUrlTests.cs | 18 ++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 src/Tests/Tests/XPack/Slm/GetStatusLifecycle/GetLifecycleStatusUrlTests.cs create mode 100644 src/Tests/Tests/XPack/Slm/StartLifecycle/StartLifecycleUrlTests.cs create mode 100644 src/Tests/Tests/XPack/Slm/StopLifecycle/StopLifecycleUrlTests.cs diff --git a/src/Tests/Tests/XPack/Slm/GetStatusLifecycle/GetLifecycleStatusUrlTests.cs b/src/Tests/Tests/XPack/Slm/GetStatusLifecycle/GetLifecycleStatusUrlTests.cs new file mode 100644 index 00000000000..0897443f2af --- /dev/null +++ b/src/Tests/Tests/XPack/Slm/GetStatusLifecycle/GetLifecycleStatusUrlTests.cs @@ -0,0 +1,18 @@ +using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; +using Nest; +using Tests.Framework.EndpointTests; +using static Tests.Framework.EndpointTests.UrlTester; + +namespace Tests.XPack.Slm.GetStatusLifecycle +{ + public class GetLifecycleStatusUrlTests : UrlTestsBase + { + [U] public override async Task Urls() => + await GET("/_slm/status") + .Fluent(c => c.SnapshotLifecycleManagement.GetStatus()) + .Request(c => c.SnapshotLifecycleManagement.GetStatus(new GetSlmStatusRequest())) + .FluentAsync(c => c.SnapshotLifecycleManagement.GetStatusAsync()) + .RequestAsync(c => c.SnapshotLifecycleManagement.GetStatusAsync(new GetSlmStatusRequest())); + } +} diff --git a/src/Tests/Tests/XPack/Slm/StartLifecycle/StartLifecycleUrlTests.cs b/src/Tests/Tests/XPack/Slm/StartLifecycle/StartLifecycleUrlTests.cs new file mode 100644 index 00000000000..ca2a5c4ed95 --- /dev/null +++ b/src/Tests/Tests/XPack/Slm/StartLifecycle/StartLifecycleUrlTests.cs @@ -0,0 +1,18 @@ +using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; +using Nest; +using Tests.Framework.EndpointTests; +using static Tests.Framework.EndpointTests.UrlTester; + +namespace Tests.XPack.Slm.StartLifecycle +{ + public class StartLifecycleUrlTests : UrlTestsBase + { + [U] public override async Task Urls() => + await POST("/_slm/start") + .Fluent(c => c.SnapshotLifecycleManagement.Start()) + .Request(c => c.SnapshotLifecycleManagement.Start(new StartSlmRequest())) + .FluentAsync(c => c.SnapshotLifecycleManagement.StartAsync()) + .RequestAsync(c => c.SnapshotLifecycleManagement.StartAsync(new StartSlmRequest())); + } +} diff --git a/src/Tests/Tests/XPack/Slm/StopLifecycle/StopLifecycleUrlTests.cs b/src/Tests/Tests/XPack/Slm/StopLifecycle/StopLifecycleUrlTests.cs new file mode 100644 index 00000000000..cb8a544d945 --- /dev/null +++ b/src/Tests/Tests/XPack/Slm/StopLifecycle/StopLifecycleUrlTests.cs @@ -0,0 +1,18 @@ +using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; +using Nest; +using Tests.Framework.EndpointTests; +using static Tests.Framework.EndpointTests.UrlTester; + +namespace Tests.XPack.Slm.StopLifecycle +{ + public class StopLifecycleUrlTests : UrlTestsBase + { + [U] public override async Task Urls() => + await POST("/_slm/stop") + .Fluent(c => c.SnapshotLifecycleManagement.Stop()) + .Request(c => c.SnapshotLifecycleManagement.Stop(new StopSlmRequest())) + .FluentAsync(c => c.SnapshotLifecycleManagement.StopAsync()) + .RequestAsync(c => c.SnapshotLifecycleManagement.StopAsync(new StopSlmRequest())); + } +} From 02d0da28a7c2657bb9d0cacd805a4480f300c6c4 Mon Sep 17 00:00:00 2001 From: Stuart Cam Date: Fri, 13 Dec 2019 13:27:27 +1100 Subject: [PATCH 5/7] Fix tests --- src/Tests/Tests/XPack/Slm/SlmApiTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Tests/Tests/XPack/Slm/SlmApiTests.cs b/src/Tests/Tests/XPack/Slm/SlmApiTests.cs index fa5b3c5cb70..6d82f1922f4 100644 --- a/src/Tests/Tests/XPack/Slm/SlmApiTests.cs +++ b/src/Tests/Tests/XPack/Slm/SlmApiTests.cs @@ -188,14 +188,14 @@ [I] public async Task GetAllSnapshotLifecycleResponse() => await Assert await Assert(GetSnapshotLifecycleStatusStep, (v, r) => + [I] public async Task GetSnapshotLifecycleStatusResponse() => await Assert(GetSnapshotLifecycleStatusStep, (v, r) => { r.IsValid.Should().BeTrue(); r.ApiCall.HttpStatusCode.Should().Be(200); r.OperationMode.Should().Be(LifecycleOperationMode.Running); }); - [I] public async Task StopSnapshotLifecycleResponse() => await Assert(StopSnapshotLifecycleStep, (v, r) => + [I] public async Task StopSnapshotLifecycleResponse() => await Assert(StopSnapshotLifecycleStep, (v, r) => { r.IsValid.Should().BeTrue(); r.ApiCall.HttpStatusCode.Should().Be(200); From 1536d52c49af17d431ac0d48bcaf4bc5e4d80b67 Mon Sep 17 00:00:00 2001 From: Stuart Cam Date: Fri, 13 Dec 2019 15:15:56 +1100 Subject: [PATCH 6/7] Rename all request and response objects from Slm to SnapshotLifecycleManagement --- ...tParameters.SnapshotLifecycleManagement.cs | 6 ++--- ...LevelClient.SnapshotLifecycleManagement.cs | 12 +++++----- ...Descriptors.SnapshotLifecycleManagement.cs | 6 ++--- ...asticClient.SnapshotLifecycleManagement.cs | 24 +++++++++---------- .../Requests.SnapshotLifecycleManagement.cs | 18 +++++++------- .../Slm/GetStatus/GetSlmStatusRequest.cs | 9 ------- ...napshotLifecycleManagementStatusRequest.cs | 9 +++++++ ...pshotLifecycleManagementStatusResponse.cs} | 2 +- src/Nest/XPack/Slm/Start/StartSlmRequest.cs | 9 ------- src/Nest/XPack/Slm/Start/StartSlmResponse.cs | 4 ---- ...StartSnapshotLifecycleManagementRequest.cs | 9 +++++++ ...tartSnapshotLifecycleManagementResponse.cs | 4 ++++ src/Nest/XPack/Slm/Stop/StopSlmRequest.cs | 9 ------- src/Nest/XPack/Slm/Stop/StopSlmResponse.cs | 4 ---- .../StopSnapshotLifecycleManagementRequest.cs | 9 +++++++ ...StopSnapshotLifecycleManagementResponse.cs | 4 ++++ .../GetLifecycleStatusUrlTests.cs | 4 ++-- src/Tests/Tests/XPack/Slm/SlmApiTests.cs | 12 +++++----- .../StartLifecycle/StartLifecycleUrlTests.cs | 4 ++-- .../StopLifecycle/StopLifecycleUrlTests.cs | 4 ++-- 20 files changed, 81 insertions(+), 81 deletions(-) delete mode 100644 src/Nest/XPack/Slm/GetStatus/GetSlmStatusRequest.cs create mode 100644 src/Nest/XPack/Slm/GetStatus/GetSnapshotLifecycleManagementStatusRequest.cs rename src/Nest/XPack/Slm/GetStatus/{GetSlmStatusResponse.cs => GetSnapshotLifecycleManagementStatusResponse.cs} (70%) delete mode 100644 src/Nest/XPack/Slm/Start/StartSlmRequest.cs delete mode 100644 src/Nest/XPack/Slm/Start/StartSlmResponse.cs create mode 100644 src/Nest/XPack/Slm/Start/StartSnapshotLifecycleManagementRequest.cs create mode 100644 src/Nest/XPack/Slm/Start/StartSnapshotLifecycleManagementResponse.cs delete mode 100644 src/Nest/XPack/Slm/Stop/StopSlmRequest.cs delete mode 100644 src/Nest/XPack/Slm/Stop/StopSlmResponse.cs create mode 100644 src/Nest/XPack/Slm/Stop/StopSnapshotLifecycleManagementRequest.cs create mode 100644 src/Nest/XPack/Slm/Stop/StopSnapshotLifecycleManagementResponse.cs diff --git a/src/Elasticsearch.Net/Api/RequestParameters/RequestParameters.SnapshotLifecycleManagement.cs b/src/Elasticsearch.Net/Api/RequestParameters/RequestParameters.SnapshotLifecycleManagement.cs index 4a90a4a4d9d..8be5140280e 100644 --- a/src/Elasticsearch.Net/Api/RequestParameters/RequestParameters.SnapshotLifecycleManagement.cs +++ b/src/Elasticsearch.Net/Api/RequestParameters/RequestParameters.SnapshotLifecycleManagement.cs @@ -43,7 +43,7 @@ public class GetSnapshotLifecycleRequestParameters : RequestParametersRequest options for GetStatus https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html - public class GetSlmStatusRequestParameters : RequestParameters + public class GetSnapshotLifecycleManagementStatusRequestParameters : RequestParameters { public override HttpMethod DefaultHttpMethod => HttpMethod.GET; } @@ -55,13 +55,13 @@ public class PutSnapshotLifecycleRequestParameters : RequestParametersRequest options for Start https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html - public class StartSlmRequestParameters : RequestParameters + public class StartSnapshotLifecycleManagementRequestParameters : RequestParameters { public override HttpMethod DefaultHttpMethod => HttpMethod.POST; } ///Request options for Stop https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html - public class StopSlmRequestParameters : RequestParameters + public class StopSnapshotLifecycleManagementRequestParameters : RequestParameters { public override HttpMethod DefaultHttpMethod => HttpMethod.POST; } diff --git a/src/Elasticsearch.Net/ElasticLowLevelClient.SnapshotLifecycleManagement.cs b/src/Elasticsearch.Net/ElasticLowLevelClient.SnapshotLifecycleManagement.cs index 4c13521fa6e..5b1b5a34b46 100644 --- a/src/Elasticsearch.Net/ElasticLowLevelClient.SnapshotLifecycleManagement.cs +++ b/src/Elasticsearch.Net/ElasticLowLevelClient.SnapshotLifecycleManagement.cs @@ -87,12 +87,12 @@ public Task GetSnapshotLifecycleAsync(GetSnapshotLifecycle where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync(GET, "_slm/policy", ctx, null, RequestParams(requestParameters)); ///GET on /_slm/status https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html ///Request specific configuration such as querystring parameters & request specific connection settings. - public TResponse GetStatus(GetSlmStatusRequestParameters requestParameters = null) + public TResponse GetStatus(GetSnapshotLifecycleManagementStatusRequestParameters requestParameters = null) where TResponse : class, IElasticsearchResponse, new() => DoRequest(GET, "_slm/status", null, RequestParams(requestParameters)); ///GET on /_slm/status https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html ///Request specific configuration such as querystring parameters & request specific connection settings. [MapsApi("slm.get_status", "")] - public Task GetStatusAsync(GetSlmStatusRequestParameters requestParameters = null, CancellationToken ctx = default) + public Task GetStatusAsync(GetSnapshotLifecycleManagementStatusRequestParameters requestParameters = null, CancellationToken ctx = default) where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync(GET, "_slm/status", ctx, null, RequestParams(requestParameters)); ///PUT on /_slm/policy/{policy_id} https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-put.html ///The id of the snapshot lifecycle policy @@ -109,21 +109,21 @@ public Task PutSnapshotLifecycleAsync(string policyId, Pos where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync(PUT, Url($"_slm/policy/{policyId:policyId}"), ctx, body, RequestParams(requestParameters)); ///POST on /_slm/start https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html ///Request specific configuration such as querystring parameters & request specific connection settings. - public TResponse Start(StartSlmRequestParameters requestParameters = null) + public TResponse Start(StartSnapshotLifecycleManagementRequestParameters requestParameters = null) where TResponse : class, IElasticsearchResponse, new() => DoRequest(POST, "_slm/start", null, RequestParams(requestParameters)); ///POST on /_slm/start https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html ///Request specific configuration such as querystring parameters & request specific connection settings. [MapsApi("slm.start", "")] - public Task StartAsync(StartSlmRequestParameters requestParameters = null, CancellationToken ctx = default) + public Task StartAsync(StartSnapshotLifecycleManagementRequestParameters requestParameters = null, CancellationToken ctx = default) where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync(POST, "_slm/start", ctx, null, RequestParams(requestParameters)); ///POST on /_slm/stop https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html ///Request specific configuration such as querystring parameters & request specific connection settings. - public TResponse Stop(StopSlmRequestParameters requestParameters = null) + public TResponse Stop(StopSnapshotLifecycleManagementRequestParameters requestParameters = null) where TResponse : class, IElasticsearchResponse, new() => DoRequest(POST, "_slm/stop", null, RequestParams(requestParameters)); ///POST on /_slm/stop https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html ///Request specific configuration such as querystring parameters & request specific connection settings. [MapsApi("slm.stop", "")] - public Task StopAsync(StopSlmRequestParameters requestParameters = null, CancellationToken ctx = default) + public Task StopAsync(StopSnapshotLifecycleManagementRequestParameters requestParameters = null, CancellationToken ctx = default) where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync(POST, "_slm/stop", ctx, null, RequestParams(requestParameters)); } } \ No newline at end of file diff --git a/src/Nest/Descriptors.SnapshotLifecycleManagement.cs b/src/Nest/Descriptors.SnapshotLifecycleManagement.cs index e3e53e94ce6..2889ba8a6c3 100644 --- a/src/Nest/Descriptors.SnapshotLifecycleManagement.cs +++ b/src/Nest/Descriptors.SnapshotLifecycleManagement.cs @@ -95,7 +95,7 @@ public GetSnapshotLifecycleDescriptor(): base() } ///Descriptor for GetStatus https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html - public partial class GetSlmStatusDescriptor : RequestDescriptorBase, IGetSlmStatusRequest + public partial class GetSnapshotLifecycleManagementStatusDescriptor : RequestDescriptorBase, IGetSnapshotLifecycleManagementStatusRequest { internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementGetStatus; // values part of the url path @@ -124,7 +124,7 @@ protected PutSnapshotLifecycleDescriptor(): base() } ///Descriptor for Start https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html - public partial class StartSlmDescriptor : RequestDescriptorBase, IStartSlmRequest + public partial class StartSnapshotLifecycleManagementDescriptor : RequestDescriptorBase, IStartSnapshotLifecycleManagementRequest { internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementStart; // values part of the url path @@ -132,7 +132,7 @@ public partial class StartSlmDescriptor : RequestDescriptorBaseDescriptor for Stop https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html - public partial class StopSlmDescriptor : RequestDescriptorBase, IStopSlmRequest + public partial class StopSnapshotLifecycleManagementDescriptor : RequestDescriptorBase, IStopSnapshotLifecycleManagementRequest { internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementStop; // values part of the url path diff --git a/src/Nest/ElasticClient.SnapshotLifecycleManagement.cs b/src/Nest/ElasticClient.SnapshotLifecycleManagement.cs index 8be1d138567..c02a33c4383 100644 --- a/src/Nest/ElasticClient.SnapshotLifecycleManagement.cs +++ b/src/Nest/ElasticClient.SnapshotLifecycleManagement.cs @@ -113,25 +113,25 @@ internal SnapshotLifecycleManagementNamespace(ElasticClient client): base(client /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html /// - public GetSlmStatusResponse GetStatus(Func selector = null) => GetStatus(selector.InvokeOrDefault(new GetSlmStatusDescriptor())); + public GetSnapshotLifecycleManagementStatusResponse GetStatus(Func selector = null) => GetStatus(selector.InvokeOrDefault(new GetSnapshotLifecycleManagementStatusDescriptor())); /// /// GET request to the slm.get_status API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html /// - public Task GetStatusAsync(Func selector = null, CancellationToken ct = default) => GetStatusAsync(selector.InvokeOrDefault(new GetSlmStatusDescriptor()), ct); + public Task GetStatusAsync(Func selector = null, CancellationToken ct = default) => GetStatusAsync(selector.InvokeOrDefault(new GetSnapshotLifecycleManagementStatusDescriptor()), ct); /// /// GET request to the slm.get_status API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html /// - public GetSlmStatusResponse GetStatus(IGetSlmStatusRequest request) => DoRequest(request, request.RequestParameters); + public GetSnapshotLifecycleManagementStatusResponse GetStatus(IGetSnapshotLifecycleManagementStatusRequest request) => DoRequest(request, request.RequestParameters); /// /// GET request to the slm.get_status API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html /// - public Task GetStatusAsync(IGetSlmStatusRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); + public Task GetStatusAsync(IGetSnapshotLifecycleManagementStatusRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); /// /// PUT request to the slm.put_lifecycle API, read more about this API online: /// @@ -161,48 +161,48 @@ internal SnapshotLifecycleManagementNamespace(ElasticClient client): base(client /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html /// - public StartSlmResponse Start(Func selector = null) => Start(selector.InvokeOrDefault(new StartSlmDescriptor())); + public StartSnapshotLifecycleManagementResponse Start(Func selector = null) => Start(selector.InvokeOrDefault(new StartSnapshotLifecycleManagementDescriptor())); /// /// POST request to the slm.start API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html /// - public Task StartAsync(Func selector = null, CancellationToken ct = default) => StartAsync(selector.InvokeOrDefault(new StartSlmDescriptor()), ct); + public Task StartAsync(Func selector = null, CancellationToken ct = default) => StartAsync(selector.InvokeOrDefault(new StartSnapshotLifecycleManagementDescriptor()), ct); /// /// POST request to the slm.start API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html /// - public StartSlmResponse Start(IStartSlmRequest request) => DoRequest(request, request.RequestParameters); + public StartSnapshotLifecycleManagementResponse Start(IStartSnapshotLifecycleManagementRequest request) => DoRequest(request, request.RequestParameters); /// /// POST request to the slm.start API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html /// - public Task StartAsync(IStartSlmRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); + public Task StartAsync(IStartSnapshotLifecycleManagementRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); /// /// POST request to the slm.stop API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html /// - public StopSlmResponse Stop(Func selector = null) => Stop(selector.InvokeOrDefault(new StopSlmDescriptor())); + public StopSnapshotLifecycleManagementResponse Stop(Func selector = null) => Stop(selector.InvokeOrDefault(new StopSnapshotLifecycleManagementDescriptor())); /// /// POST request to the slm.stop API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html /// - public Task StopAsync(Func selector = null, CancellationToken ct = default) => StopAsync(selector.InvokeOrDefault(new StopSlmDescriptor()), ct); + public Task StopAsync(Func selector = null, CancellationToken ct = default) => StopAsync(selector.InvokeOrDefault(new StopSnapshotLifecycleManagementDescriptor()), ct); /// /// POST request to the slm.stop API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html /// - public StopSlmResponse Stop(IStopSlmRequest request) => DoRequest(request, request.RequestParameters); + public StopSnapshotLifecycleManagementResponse Stop(IStopSnapshotLifecycleManagementRequest request) => DoRequest(request, request.RequestParameters); /// /// POST request to the slm.stop API, read more about this API online: /// /// https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html /// - public Task StopAsync(IStopSlmRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); + public Task StopAsync(IStopSnapshotLifecycleManagementRequest request, CancellationToken ct = default) => DoRequestAsync(request, request.RequestParameters, ct); } } \ No newline at end of file diff --git a/src/Nest/Requests.SnapshotLifecycleManagement.cs b/src/Nest/Requests.SnapshotLifecycleManagement.cs index 65c5ab0570a..7a7e43faf41 100644 --- a/src/Nest/Requests.SnapshotLifecycleManagement.cs +++ b/src/Nest/Requests.SnapshotLifecycleManagement.cs @@ -130,14 +130,14 @@ public GetSnapshotLifecycleRequest(): base() } [InterfaceDataContract] - public partial interface IGetSlmStatusRequest : IRequest + public partial interface IGetSnapshotLifecycleManagementStatusRequest : IRequest { } ///Request for GetStatus https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-get-status.html - public partial class GetSlmStatusRequest : PlainRequestBase, IGetSlmStatusRequest + public partial class GetSnapshotLifecycleManagementStatusRequest : PlainRequestBase, IGetSnapshotLifecycleManagementStatusRequest { - protected IGetSlmStatusRequest Self => this; + protected IGetSnapshotLifecycleManagementStatusRequest Self => this; internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementGetStatus; // values part of the url path // Request parameters @@ -177,28 +177,28 @@ protected PutSnapshotLifecycleRequest(): base() } [InterfaceDataContract] - public partial interface IStartSlmRequest : IRequest + public partial interface IStartSnapshotLifecycleManagementRequest : IRequest { } ///Request for Start https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-start.html - public partial class StartSlmRequest : PlainRequestBase, IStartSlmRequest + public partial class StartSnapshotLifecycleManagementRequest : PlainRequestBase, IStartSnapshotLifecycleManagementRequest { - protected IStartSlmRequest Self => this; + protected IStartSnapshotLifecycleManagementRequest Self => this; internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementStart; // values part of the url path // Request parameters } [InterfaceDataContract] - public partial interface IStopSlmRequest : IRequest + public partial interface IStopSnapshotLifecycleManagementRequest : IRequest { } ///Request for Stop https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-stop.html - public partial class StopSlmRequest : PlainRequestBase, IStopSlmRequest + public partial class StopSnapshotLifecycleManagementRequest : PlainRequestBase, IStopSnapshotLifecycleManagementRequest { - protected IStopSlmRequest Self => this; + protected IStopSnapshotLifecycleManagementRequest Self => this; internal override ApiUrls ApiUrls => ApiUrlsLookups.SnapshotLifecycleManagementStop; // values part of the url path // Request parameters diff --git a/src/Nest/XPack/Slm/GetStatus/GetSlmStatusRequest.cs b/src/Nest/XPack/Slm/GetStatus/GetSlmStatusRequest.cs deleted file mode 100644 index f9b10f6c02a..00000000000 --- a/src/Nest/XPack/Slm/GetStatus/GetSlmStatusRequest.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Nest -{ - [MapsApi("slm.get_status")] - public partial interface IGetSlmStatusRequest { } - - public partial class GetSlmStatusRequest { } - - public partial class GetSlmStatusDescriptor { } -} diff --git a/src/Nest/XPack/Slm/GetStatus/GetSnapshotLifecycleManagementStatusRequest.cs b/src/Nest/XPack/Slm/GetStatus/GetSnapshotLifecycleManagementStatusRequest.cs new file mode 100644 index 00000000000..b0609a32580 --- /dev/null +++ b/src/Nest/XPack/Slm/GetStatus/GetSnapshotLifecycleManagementStatusRequest.cs @@ -0,0 +1,9 @@ +namespace Nest +{ + [MapsApi("slm.get_status")] + public partial interface IGetSnapshotLifecycleManagementStatusRequest { } + + public partial class GetSnapshotLifecycleManagementStatusRequest { } + + public partial class GetSnapshotLifecycleManagementStatusDescriptor { } +} diff --git a/src/Nest/XPack/Slm/GetStatus/GetSlmStatusResponse.cs b/src/Nest/XPack/Slm/GetStatus/GetSnapshotLifecycleManagementStatusResponse.cs similarity index 70% rename from src/Nest/XPack/Slm/GetStatus/GetSlmStatusResponse.cs rename to src/Nest/XPack/Slm/GetStatus/GetSnapshotLifecycleManagementStatusResponse.cs index 934a387d612..a53ce67e34e 100644 --- a/src/Nest/XPack/Slm/GetStatus/GetSlmStatusResponse.cs +++ b/src/Nest/XPack/Slm/GetStatus/GetSnapshotLifecycleManagementStatusResponse.cs @@ -2,7 +2,7 @@ namespace Nest { - public class GetSlmStatusResponse : ResponseBase + public class GetSnapshotLifecycleManagementStatusResponse : ResponseBase { [DataMember(Name = "operation_mode")] public LifecycleOperationMode OperationMode { get; internal set; } diff --git a/src/Nest/XPack/Slm/Start/StartSlmRequest.cs b/src/Nest/XPack/Slm/Start/StartSlmRequest.cs deleted file mode 100644 index 797b7939111..00000000000 --- a/src/Nest/XPack/Slm/Start/StartSlmRequest.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Nest -{ - [MapsApi("slm.start")] - public partial interface IStartSlmRequest { } - - public partial class StartSlmRequest { } - - public partial class StartSlmDescriptor { } -} diff --git a/src/Nest/XPack/Slm/Start/StartSlmResponse.cs b/src/Nest/XPack/Slm/Start/StartSlmResponse.cs deleted file mode 100644 index 06f5c45e13c..00000000000 --- a/src/Nest/XPack/Slm/Start/StartSlmResponse.cs +++ /dev/null @@ -1,4 +0,0 @@ -namespace Nest -{ - public class StartSlmResponse : AcknowledgedResponseBase { } -} diff --git a/src/Nest/XPack/Slm/Start/StartSnapshotLifecycleManagementRequest.cs b/src/Nest/XPack/Slm/Start/StartSnapshotLifecycleManagementRequest.cs new file mode 100644 index 00000000000..c485126999c --- /dev/null +++ b/src/Nest/XPack/Slm/Start/StartSnapshotLifecycleManagementRequest.cs @@ -0,0 +1,9 @@ +namespace Nest +{ + [MapsApi("slm.start")] + public partial interface IStartSnapshotLifecycleManagementRequest { } + + public partial class StartSnapshotLifecycleManagementRequest { } + + public partial class StartSnapshotLifecycleManagementDescriptor { } +} diff --git a/src/Nest/XPack/Slm/Start/StartSnapshotLifecycleManagementResponse.cs b/src/Nest/XPack/Slm/Start/StartSnapshotLifecycleManagementResponse.cs new file mode 100644 index 00000000000..dc9e985ddf1 --- /dev/null +++ b/src/Nest/XPack/Slm/Start/StartSnapshotLifecycleManagementResponse.cs @@ -0,0 +1,4 @@ +namespace Nest +{ + public class StartSnapshotLifecycleManagementResponse : AcknowledgedResponseBase { } +} diff --git a/src/Nest/XPack/Slm/Stop/StopSlmRequest.cs b/src/Nest/XPack/Slm/Stop/StopSlmRequest.cs deleted file mode 100644 index a52754310da..00000000000 --- a/src/Nest/XPack/Slm/Stop/StopSlmRequest.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Nest -{ - [MapsApi("slm.stop")] - public partial interface IStopSlmRequest { } - - public partial class StopSlmRequest { } - - public partial class StopSlmDescriptor { } -} diff --git a/src/Nest/XPack/Slm/Stop/StopSlmResponse.cs b/src/Nest/XPack/Slm/Stop/StopSlmResponse.cs deleted file mode 100644 index aa1713ab371..00000000000 --- a/src/Nest/XPack/Slm/Stop/StopSlmResponse.cs +++ /dev/null @@ -1,4 +0,0 @@ -namespace Nest -{ - public class StopSlmResponse : AcknowledgedResponseBase { } -} diff --git a/src/Nest/XPack/Slm/Stop/StopSnapshotLifecycleManagementRequest.cs b/src/Nest/XPack/Slm/Stop/StopSnapshotLifecycleManagementRequest.cs new file mode 100644 index 00000000000..696494841ec --- /dev/null +++ b/src/Nest/XPack/Slm/Stop/StopSnapshotLifecycleManagementRequest.cs @@ -0,0 +1,9 @@ +namespace Nest +{ + [MapsApi("slm.stop")] + public partial interface IStopSnapshotLifecycleManagementRequest { } + + public partial class StopSnapshotLifecycleManagementRequest { } + + public partial class StopSnapshotLifecycleManagementDescriptor { } +} diff --git a/src/Nest/XPack/Slm/Stop/StopSnapshotLifecycleManagementResponse.cs b/src/Nest/XPack/Slm/Stop/StopSnapshotLifecycleManagementResponse.cs new file mode 100644 index 00000000000..562289344da --- /dev/null +++ b/src/Nest/XPack/Slm/Stop/StopSnapshotLifecycleManagementResponse.cs @@ -0,0 +1,4 @@ +namespace Nest +{ + public class StopSnapshotLifecycleManagementResponse : AcknowledgedResponseBase { } +} diff --git a/src/Tests/Tests/XPack/Slm/GetStatusLifecycle/GetLifecycleStatusUrlTests.cs b/src/Tests/Tests/XPack/Slm/GetStatusLifecycle/GetLifecycleStatusUrlTests.cs index 0897443f2af..1d5f971f286 100644 --- a/src/Tests/Tests/XPack/Slm/GetStatusLifecycle/GetLifecycleStatusUrlTests.cs +++ b/src/Tests/Tests/XPack/Slm/GetStatusLifecycle/GetLifecycleStatusUrlTests.cs @@ -11,8 +11,8 @@ public class GetLifecycleStatusUrlTests : UrlTestsBase [U] public override async Task Urls() => await GET("/_slm/status") .Fluent(c => c.SnapshotLifecycleManagement.GetStatus()) - .Request(c => c.SnapshotLifecycleManagement.GetStatus(new GetSlmStatusRequest())) + .Request(c => c.SnapshotLifecycleManagement.GetStatus(new GetSnapshotLifecycleManagementStatusRequest())) .FluentAsync(c => c.SnapshotLifecycleManagement.GetStatusAsync()) - .RequestAsync(c => c.SnapshotLifecycleManagement.GetStatusAsync(new GetSlmStatusRequest())); + .RequestAsync(c => c.SnapshotLifecycleManagement.GetStatusAsync(new GetSnapshotLifecycleManagementStatusRequest())); } } diff --git a/src/Tests/Tests/XPack/Slm/SlmApiTests.cs b/src/Tests/Tests/XPack/Slm/SlmApiTests.cs index 6d82f1922f4..0d9bee7e333 100644 --- a/src/Tests/Tests/XPack/Slm/SlmApiTests.cs +++ b/src/Tests/Tests/XPack/Slm/SlmApiTests.cs @@ -81,8 +81,8 @@ public SlmApiTests(XPackCluster cluster, EndpointUsage usage) : base(new Coordin ) }, { - GetSnapshotLifecycleStatusStep, u => u.Calls( - v => new GetSlmStatusRequest(), + GetSnapshotLifecycleStatusStep, u => u.Calls( + v => new GetSnapshotLifecycleManagementStatusRequest(), (v, d) => d, (v, c, f) => c.SnapshotLifecycleManagement.GetStatus(f), (v, c, f) => c.SnapshotLifecycleManagement.GetStatusAsync(f), @@ -128,8 +128,8 @@ public SlmApiTests(XPackCluster cluster, EndpointUsage usage) : base(new Coordin ) }, { - StopSnapshotLifecycleStep, u => u.Calls( - v => new StopSlmRequest(), + StopSnapshotLifecycleStep, u => u.Calls( + v => new StopSnapshotLifecycleManagementRequest(), (v, d) => d, (v, c, f) => c.SnapshotLifecycleManagement.Stop(f), (v, c, f) => c.SnapshotLifecycleManagement.StopAsync(f), @@ -188,14 +188,14 @@ [I] public async Task GetAllSnapshotLifecycleResponse() => await Assert await Assert(GetSnapshotLifecycleStatusStep, (v, r) => + [I] public async Task GetSnapshotLifecycleStatusResponse() => await Assert(GetSnapshotLifecycleStatusStep, (v, r) => { r.IsValid.Should().BeTrue(); r.ApiCall.HttpStatusCode.Should().Be(200); r.OperationMode.Should().Be(LifecycleOperationMode.Running); }); - [I] public async Task StopSnapshotLifecycleResponse() => await Assert(StopSnapshotLifecycleStep, (v, r) => + [I] public async Task StopSnapshotLifecycleResponse() => await Assert(StopSnapshotLifecycleStep, (v, r) => { r.IsValid.Should().BeTrue(); r.ApiCall.HttpStatusCode.Should().Be(200); diff --git a/src/Tests/Tests/XPack/Slm/StartLifecycle/StartLifecycleUrlTests.cs b/src/Tests/Tests/XPack/Slm/StartLifecycle/StartLifecycleUrlTests.cs index ca2a5c4ed95..4a00330be6f 100644 --- a/src/Tests/Tests/XPack/Slm/StartLifecycle/StartLifecycleUrlTests.cs +++ b/src/Tests/Tests/XPack/Slm/StartLifecycle/StartLifecycleUrlTests.cs @@ -11,8 +11,8 @@ public class StartLifecycleUrlTests : UrlTestsBase [U] public override async Task Urls() => await POST("/_slm/start") .Fluent(c => c.SnapshotLifecycleManagement.Start()) - .Request(c => c.SnapshotLifecycleManagement.Start(new StartSlmRequest())) + .Request(c => c.SnapshotLifecycleManagement.Start(new StartSnapshotLifecycleManagementRequest())) .FluentAsync(c => c.SnapshotLifecycleManagement.StartAsync()) - .RequestAsync(c => c.SnapshotLifecycleManagement.StartAsync(new StartSlmRequest())); + .RequestAsync(c => c.SnapshotLifecycleManagement.StartAsync(new StartSnapshotLifecycleManagementRequest())); } } diff --git a/src/Tests/Tests/XPack/Slm/StopLifecycle/StopLifecycleUrlTests.cs b/src/Tests/Tests/XPack/Slm/StopLifecycle/StopLifecycleUrlTests.cs index cb8a544d945..cf3495a5d23 100644 --- a/src/Tests/Tests/XPack/Slm/StopLifecycle/StopLifecycleUrlTests.cs +++ b/src/Tests/Tests/XPack/Slm/StopLifecycle/StopLifecycleUrlTests.cs @@ -11,8 +11,8 @@ public class StopLifecycleUrlTests : UrlTestsBase [U] public override async Task Urls() => await POST("/_slm/stop") .Fluent(c => c.SnapshotLifecycleManagement.Stop()) - .Request(c => c.SnapshotLifecycleManagement.Stop(new StopSlmRequest())) + .Request(c => c.SnapshotLifecycleManagement.Stop(new StopSnapshotLifecycleManagementRequest())) .FluentAsync(c => c.SnapshotLifecycleManagement.StopAsync()) - .RequestAsync(c => c.SnapshotLifecycleManagement.StopAsync(new StopSlmRequest())); + .RequestAsync(c => c.SnapshotLifecycleManagement.StopAsync(new StopSnapshotLifecycleManagementRequest())); } } From 18b89848142b1f2a284ba3a59f1246809d910b0c Mon Sep 17 00:00:00 2001 From: Stuart Cam Date: Fri, 13 Dec 2019 15:51:44 +1100 Subject: [PATCH 7/7] Add /_slm/stats Url tests --- .../GetLifecycleStatsUrlTests.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/Tests/Tests/XPack/Slm/GetLifecycleStats/GetLifecycleStatsUrlTests.cs diff --git a/src/Tests/Tests/XPack/Slm/GetLifecycleStats/GetLifecycleStatsUrlTests.cs b/src/Tests/Tests/XPack/Slm/GetLifecycleStats/GetLifecycleStatsUrlTests.cs new file mode 100644 index 00000000000..9beafa4bce6 --- /dev/null +++ b/src/Tests/Tests/XPack/Slm/GetLifecycleStats/GetLifecycleStatsUrlTests.cs @@ -0,0 +1,18 @@ +using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; +using Nest; +using Tests.Framework.EndpointTests; +using static Tests.Framework.EndpointTests.UrlTester; + +namespace Tests.XPack.Slm.StartLifecycle +{ + public class GetLifecycleStatsUrlTests : UrlTestsBase + { + [U] public override async Task Urls() => + await GET("/_slm/stats") + .Fluent(c => c.SnapshotLifecycleManagement.GetSnapshotLifecycleStats()) + .Request(c => c.SnapshotLifecycleManagement.GetSnapshotLifecycleStats(new GetSnapshotLifecycleStatsRequest())) + .FluentAsync(c => c.SnapshotLifecycleManagement.GetSnapshotLifecycleStatsAsync()) + .RequestAsync(c => c.SnapshotLifecycleManagement.GetSnapshotLifecycleStatsAsync(new GetSnapshotLifecycleStatsRequest())); + } +}