Skip to content

Commit

Permalink
Implement ml.set_upgrade_mode (#4535)
Browse files Browse the repository at this point in the history
Implement ml.set_upgrade_mode
  • Loading branch information
codebrain committed Apr 16, 2020
1 parent 035e4bc commit fab0de5
Show file tree
Hide file tree
Showing 8 changed files with 132 additions and 1 deletion.
1 change: 0 additions & 1 deletion src/ApiGenerator/Configuration/CodeConfiguration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ public static class CodeConfiguration
"cluster.delete_component_template.json",
"cluster.get_component_template.json",
"cluster.put_component_template.json",
"ml.set_upgrade_mode.json",
"security.get_builtin_privileges.json",
"transform.delete_transform.json",
"transform.get_transform.json",
Expand Down
12 changes: 12 additions & 0 deletions src/Nest/Descriptors.MachineLearning.cs
Original file line number Diff line number Diff line change
Expand Up @@ -864,6 +864,18 @@ protected RevertModelSnapshotDescriptor(): base()
// Request parameters
}

///<summary>Descriptor for SetUpgradeMode <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-set-upgrade-mode.html</para></summary>
public partial class SetUpgradeModeDescriptor : RequestDescriptorBase<SetUpgradeModeDescriptor, SetUpgradeModeRequestParameters, ISetUpgradeModeRequest>, ISetUpgradeModeRequest
{
internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningSetUpgradeMode;
// values part of the url path
// Request parameters
///<summary>Whether to enable upgrade_mode ML setting or not. Defaults to false.</summary>
public SetUpgradeModeDescriptor Enabled(bool? enabled = true) => Qs("enabled", enabled);
///<summary>Controls the time to wait before action times out. Defaults to 30 seconds</summary>
public SetUpgradeModeDescriptor Timeout(Time timeout) => Qs("timeout", timeout);
}

///<summary>Descriptor for StartDatafeed <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-start-datafeed.html</para></summary>
public partial class StartDatafeedDescriptor : RequestDescriptorBase<StartDatafeedDescriptor, StartDatafeedRequestParameters, IStartDatafeedRequest>, IStartDatafeedRequest
{
Expand Down
24 changes: 24 additions & 0 deletions src/Nest/ElasticClient.MachineLearning.cs
Original file line number Diff line number Diff line change
Expand Up @@ -935,6 +935,30 @@ public Task<PutJobResponse> PutJobAsync<TDocument>(Id jobId, Func<PutJobDescript
/// </summary>
public Task<RevertModelSnapshotResponse> RevertModelSnapshotAsync(IRevertModelSnapshotRequest request, CancellationToken ct = default) => DoRequestAsync<IRevertModelSnapshotRequest, RevertModelSnapshotResponse>(request, request.RequestParameters, ct);
/// <summary>
/// <c>POST</c> request to the <c>ml.set_upgrade_mode</c> API, read more about this API online:
/// <para></para>
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-set-upgrade-mode.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-set-upgrade-mode.html</a>
/// </summary>
public SetUpgradeModeResponse SetUpgradeMode(Func<SetUpgradeModeDescriptor, ISetUpgradeModeRequest> selector = null) => SetUpgradeMode(selector.InvokeOrDefault(new SetUpgradeModeDescriptor()));
/// <summary>
/// <c>POST</c> request to the <c>ml.set_upgrade_mode</c> API, read more about this API online:
/// <para></para>
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-set-upgrade-mode.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-set-upgrade-mode.html</a>
/// </summary>
public Task<SetUpgradeModeResponse> SetUpgradeModeAsync(Func<SetUpgradeModeDescriptor, ISetUpgradeModeRequest> selector = null, CancellationToken ct = default) => SetUpgradeModeAsync(selector.InvokeOrDefault(new SetUpgradeModeDescriptor()), ct);
/// <summary>
/// <c>POST</c> request to the <c>ml.set_upgrade_mode</c> API, read more about this API online:
/// <para></para>
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-set-upgrade-mode.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-set-upgrade-mode.html</a>
/// </summary>
public SetUpgradeModeResponse SetUpgradeMode(ISetUpgradeModeRequest request) => DoRequest<ISetUpgradeModeRequest, SetUpgradeModeResponse>(request, request.RequestParameters);
/// <summary>
/// <c>POST</c> request to the <c>ml.set_upgrade_mode</c> API, read more about this API online:
/// <para></para>
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-set-upgrade-mode.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-set-upgrade-mode.html</a>
/// </summary>
public Task<SetUpgradeModeResponse> SetUpgradeModeAsync(ISetUpgradeModeRequest request, CancellationToken ct = default) => DoRequestAsync<ISetUpgradeModeRequest, SetUpgradeModeResponse>(request, request.RequestParameters, ct);
/// <summary>
/// <c>POST</c> request to the <c>ml.start_datafeed</c> API, read more about this API online:
/// <para></para>
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-start-datafeed.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-start-datafeed.html</a>
Expand Down
27 changes: 27 additions & 0 deletions src/Nest/Requests.MachineLearning.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1443,6 +1443,33 @@ protected RevertModelSnapshotRequest(): base()
// Request parameters
}

[InterfaceDataContract]
public partial interface ISetUpgradeModeRequest : IRequest<SetUpgradeModeRequestParameters>
{
}

///<summary>Request for SetUpgradeMode <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-set-upgrade-mode.html</para></summary>
public partial class SetUpgradeModeRequest : PlainRequestBase<SetUpgradeModeRequestParameters>, ISetUpgradeModeRequest
{
protected ISetUpgradeModeRequest Self => this;
internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningSetUpgradeMode;
// values part of the url path
// Request parameters
///<summary>Whether to enable upgrade_mode ML setting or not. Defaults to false.</summary>
public bool? Enabled
{
get => Q<bool? >("enabled");
set => Q("enabled", value);
}

///<summary>Controls the time to wait before action times out. Defaults to 30 seconds</summary>
public Time Timeout
{
get => Q<Time>("timeout");
set => Q("timeout", value);
}
}

[InterfaceDataContract]
public partial interface IStartDatafeedRequest : IRequest<StartDatafeedRequestParameters>
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace Nest
{
[MapsApi("ml.set_upgrade_mode.json")]
public partial interface ISetUpgradeModeRequest { }

public partial class SetUpgradeModeRequest { }

public partial class SetUpgradeModeDescriptor { }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
namespace Nest
{
public class SetUpgradeModeResponse : AcknowledgedResponseBase { }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
using System;
using Elastic.Xunit.XunitPlumbing;
using Elasticsearch.Net;
using FluentAssertions;
using Nest;
using Tests.Core.Extensions;
using Tests.Framework.EndpointTests.TestState;

namespace Tests.XPack.MachineLearning.SetUpgradeMode
{
[SkipVersion("<7.7.0", "Introduced in 7.7.0")]
public class SetUpgradeModeApiTests : MachineLearningIntegrationTestBase<SetUpgradeModeResponse, ISetUpgradeModeRequest, SetUpgradeModeDescriptor, SetUpgradeModeRequest>
{
public SetUpgradeModeApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { }

protected override bool ExpectIsValid => true;
protected override object ExpectJson => null;
protected override int ExpectStatusCode => 200;
protected override Func<SetUpgradeModeDescriptor, ISetUpgradeModeRequest> Fluent => f => f;
protected override HttpMethod HttpMethod => HttpMethod.POST;
protected override SetUpgradeModeRequest Initializer => new SetUpgradeModeRequest();
protected override string UrlPath => $"/_ml/set_upgrade_mode";

protected override LazyResponses ClientUsage() => Calls(
(client, f) => client.MachineLearning.SetUpgradeMode(f),
(client, f) => client.MachineLearning.SetUpgradeModeAsync(f),
(client, r) => client.MachineLearning.SetUpgradeMode(r),
(client, r) => client.MachineLearning.SetUpgradeModeAsync(r)
);

protected override SetUpgradeModeDescriptor NewDescriptor() => new SetUpgradeModeDescriptor();

protected override void ExpectResponse(SetUpgradeModeResponse response)
{
response.ShouldBeValid();
response.Acknowledged.Should().BeTrue();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
using System.Threading.Tasks;
using Elastic.Xunit.XunitPlumbing;
using Nest;
using Tests.Framework.EndpointTests;
using static Tests.Framework.EndpointTests.UrlTester;

namespace Tests.XPack.MachineLearning.SetUpgradeMode
{
public class SetUpgradeModeUrlTests : UrlTestsBase
{
[U] public override async Task Urls() => await POST("/_ml/set_upgrade_mode")
.Fluent(c => c.MachineLearning.SetUpgradeMode())
.Request(c => c.MachineLearning.SetUpgradeMode(new SetUpgradeModeRequest()))
.FluentAsync(c => c.MachineLearning.SetUpgradeModeAsync())
.RequestAsync(c => c.MachineLearning.SetUpgradeModeAsync(new SetUpgradeModeRequest()));
}
}

0 comments on commit fab0de5

Please sign in to comment.