Skip to content

Implement ml.set_upgrade_mode #4535

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 16, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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()));
}
}