Skip to content

Commit a9ffdc0

Browse files
committed
Modiify SLM execute lifecycle to use POST method as opposed to PUT.
Local patch for implementation in elastic/elasticsearch#47061 and subsequent PR elastic/elasticsearch#49233
1 parent 9270f12 commit a9ffdc0

File tree

4 files changed

+10
-10
lines changed

4 files changed

+10
-10
lines changed

src/CodeGeneration/ApiGenerator/RestSpecification/XPack/slm.execute_lifecycle.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
{
1010
"path":"/_slm/policy/{policy_id}/_execute",
1111
"methods":[
12-
"PUT"
12+
"POST","PUT"
1313
],
1414
"parts":{
1515
"policy_id":{

src/Elasticsearch.Net/Api/RequestParameters/RequestParameters.SnapshotLifecycleManagement.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public class DeleteSnapshotLifecycleRequestParameters : RequestParameters<Delete
3333
///<summary>Request options for ExecuteSnapshotLifecycle <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-execute.html</para></summary>
3434
public class ExecuteSnapshotLifecycleRequestParameters : RequestParameters<ExecuteSnapshotLifecycleRequestParameters>
3535
{
36-
public override HttpMethod DefaultHttpMethod => HttpMethod.PUT;
36+
public override HttpMethod DefaultHttpMethod => HttpMethod.POST;
3737
}
3838

3939
///<summary>Request options for GetSnapshotLifecycle <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-get.html</para></summary>

src/Elasticsearch.Net/ElasticLowLevelClient.SnapshotLifecycleManagement.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -54,17 +54,17 @@ public TResponse DeleteSnapshotLifecycle<TResponse>(string policyId, DeleteSnaps
5454
[MapsApi("slm.delete_lifecycle", "policy_id")]
5555
public Task<TResponse> DeleteSnapshotLifecycleAsync<TResponse>(string policyId, DeleteSnapshotLifecycleRequestParameters requestParameters = null, CancellationToken ctx = default)
5656
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(DELETE, Url($"_slm/policy/{policyId:policyId}"), ctx, null, RequestParams(requestParameters));
57-
///<summary>PUT on /_slm/policy/{policy_id}/_execute <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-execute.html</para></summary>
57+
///<summary>POST on /_slm/policy/{policy_id}/_execute <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-execute.html</para></summary>
5858
///<param name = "policyId">The id of the snapshot lifecycle policy to be executed</param>
5959
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
6060
public TResponse ExecuteSnapshotLifecycle<TResponse>(string policyId, ExecuteSnapshotLifecycleRequestParameters requestParameters = null)
61-
where TResponse : class, IElasticsearchResponse, new() => DoRequest<TResponse>(PUT, Url($"_slm/policy/{policyId:policyId}/_execute"), null, RequestParams(requestParameters));
62-
///<summary>PUT on /_slm/policy/{policy_id}/_execute <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-execute.html</para></summary>
61+
where TResponse : class, IElasticsearchResponse, new() => DoRequest<TResponse>(POST, Url($"_slm/policy/{policyId:policyId}/_execute"), null, RequestParams(requestParameters));
62+
///<summary>POST on /_slm/policy/{policy_id}/_execute <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-execute.html</para></summary>
6363
///<param name = "policyId">The id of the snapshot lifecycle policy to be executed</param>
6464
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
6565
[MapsApi("slm.execute_lifecycle", "policy_id")]
6666
public Task<TResponse> ExecuteSnapshotLifecycleAsync<TResponse>(string policyId, ExecuteSnapshotLifecycleRequestParameters requestParameters = null, CancellationToken ctx = default)
67-
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(PUT, Url($"_slm/policy/{policyId:policyId}/_execute"), ctx, null, RequestParams(requestParameters));
67+
where TResponse : class, IElasticsearchResponse, new() => DoRequestAsync<TResponse>(POST, Url($"_slm/policy/{policyId:policyId}/_execute"), ctx, null, RequestParams(requestParameters));
6868
///<summary>GET on /_slm/policy/{policy_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-get.html</para></summary>
6969
///<param name = "policyId">Comma-separated list of snapshot lifecycle policies to retrieve</param>
7070
///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>

src/Nest/ElasticClient.SnapshotLifecycleManagement.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -61,25 +61,25 @@ internal SnapshotLifecycleManagementNamespace(ElasticClient client): base(client
6161
/// </summary>
6262
public Task<DeleteSnapshotLifecycleResponse> DeleteSnapshotLifecycleAsync(IDeleteSnapshotLifecycleRequest request, CancellationToken ct = default) => DoRequestAsync<IDeleteSnapshotLifecycleRequest, DeleteSnapshotLifecycleResponse>(request, request.RequestParameters, ct);
6363
/// <summary>
64-
/// <c>PUT</c> request to the <c>slm.execute_lifecycle</c> API, read more about this API online:
64+
/// <c>POST</c> request to the <c>slm.execute_lifecycle</c> API, read more about this API online:
6565
/// <para></para>
6666
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-execute.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-execute.html</a>
6767
/// </summary>
6868
public ExecuteSnapshotLifecycleResponse ExecuteSnapshotLifecycle(Id policyId, Func<ExecuteSnapshotLifecycleDescriptor, IExecuteSnapshotLifecycleRequest> selector = null) => ExecuteSnapshotLifecycle(selector.InvokeOrDefault(new ExecuteSnapshotLifecycleDescriptor(policyId: policyId)));
6969
/// <summary>
70-
/// <c>PUT</c> request to the <c>slm.execute_lifecycle</c> API, read more about this API online:
70+
/// <c>POST</c> request to the <c>slm.execute_lifecycle</c> API, read more about this API online:
7171
/// <para></para>
7272
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-execute.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-execute.html</a>
7373
/// </summary>
7474
public Task<ExecuteSnapshotLifecycleResponse> ExecuteSnapshotLifecycleAsync(Id policyId, Func<ExecuteSnapshotLifecycleDescriptor, IExecuteSnapshotLifecycleRequest> selector = null, CancellationToken ct = default) => ExecuteSnapshotLifecycleAsync(selector.InvokeOrDefault(new ExecuteSnapshotLifecycleDescriptor(policyId: policyId)), ct);
7575
/// <summary>
76-
/// <c>PUT</c> request to the <c>slm.execute_lifecycle</c> API, read more about this API online:
76+
/// <c>POST</c> request to the <c>slm.execute_lifecycle</c> API, read more about this API online:
7777
/// <para></para>
7878
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-execute.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-execute.html</a>
7979
/// </summary>
8080
public ExecuteSnapshotLifecycleResponse ExecuteSnapshotLifecycle(IExecuteSnapshotLifecycleRequest request) => DoRequest<IExecuteSnapshotLifecycleRequest, ExecuteSnapshotLifecycleResponse>(request, request.RequestParameters);
8181
/// <summary>
82-
/// <c>PUT</c> request to the <c>slm.execute_lifecycle</c> API, read more about this API online:
82+
/// <c>POST</c> request to the <c>slm.execute_lifecycle</c> API, read more about this API online:
8383
/// <para></para>
8484
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-execute.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-api-execute.html</a>
8585
/// </summary>

0 commit comments

Comments
 (0)