Skip to content

Commit 3889d01

Browse files
committed
add support for the get ssl certificates API (#3537)
* add support for the get ssl certificates API * removed superfluous folder reference in Nest.csproj * internal setters on GetCertificatesResponse (cherry picked from commit a839bd8)
1 parent 05caedc commit 3889d01

File tree

13 files changed

+248
-2
lines changed

13 files changed

+248
-2
lines changed

src/CodeGeneration/ApiGenerator/ApiGenerator.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ public class ApiGenerator
3838
"xpack.ml.get_calendar_job.json",
3939
"xpack.ml.delete_forecast.json",
4040
"xpack.ml.find_file_structure.json",
41-
"xpack.ssl.certificates.json",
4241
"delete_by_query_rethrottle.json",
4342
"update_by_query_rethrottle.json",
4443

src/CodeGeneration/ApiGenerator/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ private static void Main(string[] args)
4040
RestSpecDownloader.Download(downloadBranch);
4141

4242
ApiGenerator.Generate(downloadBranch, "Core", "Graph", "License", "Security", "Watcher", "Info", "MachineLearning", "Migration", "Sql",
43-
"Rollup");
43+
"Rollup", "Ssl");
4444
}
4545
}
4646
}

src/Elasticsearch.Net/Domain/RequestParameters/RequestParameters.Generated.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2650,6 +2650,11 @@ public class TranslateSqlRequestParameters : RequestParameters<TranslateSqlReque
26502650
{
26512651
public override HttpMethod DefaultHttpMethod => HttpMethod.POST;
26522652
}
2653+
///<summary>Request options for XpackSslCertificates<pre>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-ssl.html</pre></summary>
2654+
public partial class GetCertificatesRequestParameters : RequestParameters<GetCertificatesRequestParameters>
2655+
{
2656+
public override HttpMethod DefaultHttpMethod => HttpMethod.GET;
2657+
}
26532658
///<summary>Request options for XpackWatcherAckWatch<pre>http://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-ack-watch.html</pre></summary>
26542659
public class AcknowledgeWatchRequestParameters : RequestParameters<AcknowledgeWatchRequestParameters>
26552660
{

src/Elasticsearch.Net/ElasticLowLevelClient.Generated.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4058,6 +4058,14 @@ public TResponse XpackSqlTranslateGet<TResponse>(TranslateSqlRequestParameters r
40584058
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
40594059
public Task<TResponse> XpackSqlTranslateGetAsync<TResponse>(TranslateSqlRequestParameters requestParameters = null, CancellationToken ctx = default(CancellationToken))
40604060
where TResponse : class, IElasticsearchResponse, new() => this.DoRequestAsync<TResponse>(GET, Url($"_xpack/sql/translate"), ctx, null, _params(requestParameters));
4061+
///<summary>GET on /_xpack/ssl/certificates <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-ssl.html</para></summary>
4062+
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
4063+
public TResponse XpackSslCertificates<TResponse>(GetCertificatesRequestParameters requestParameters = null)
4064+
where TResponse : class, IElasticsearchResponse, new() => this.DoRequest<TResponse>(GET, Url($"_xpack/ssl/certificates"), null, _params(requestParameters));
4065+
///<summary>GET on /_xpack/ssl/certificates <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-ssl.html</para></summary>
4066+
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
4067+
public Task<TResponse> XpackSslCertificatesAsync<TResponse>(GetCertificatesRequestParameters requestParameters = null, CancellationToken ctx = default(CancellationToken))
4068+
where TResponse : class, IElasticsearchResponse, new() => this.DoRequestAsync<TResponse>(GET, Url($"_xpack/ssl/certificates"), ctx, null, _params(requestParameters));
40614069
///<summary>PUT on /_xpack/watcher/watch/{watch_id}/_ack <para>http://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-ack-watch.html</para></summary>
40624070
///<param name="watch_id">Watch ID</param>
40634071
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>

src/Elasticsearch.Net/IElasticLowLevelClient.Generated.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3286,6 +3286,12 @@ public partial interface IElasticLowLevelClient
32863286
///<summary>GET on /_xpack/sql/translate <para>Translate SQL into Elasticsearch queries</para></summary>
32873287
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
32883288
Task<TResponse> XpackSqlTranslateGetAsync<TResponse>(TranslateSqlRequestParameters requestParameters = null, CancellationToken ctx = default(CancellationToken)) where TResponse : class, IElasticsearchResponse, new();
3289+
///<summary>GET on /_xpack/ssl/certificates <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-ssl.html</para></summary>
3290+
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
3291+
TResponse XpackSslCertificates<TResponse>(GetCertificatesRequestParameters requestParameters = null) where TResponse : class, IElasticsearchResponse, new();
3292+
///<summary>GET on /_xpack/ssl/certificates <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-ssl.html</para></summary>
3293+
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
3294+
Task<TResponse> XpackSslCertificatesAsync<TResponse>(GetCertificatesRequestParameters requestParameters = null, CancellationToken ctx = default(CancellationToken)) where TResponse : class, IElasticsearchResponse, new();
32893295
///<summary>PUT on /_xpack/watcher/watch/{watch_id}/_ack <para>http://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-ack-watch.html</para></summary>
32903296
///<param name="watch_id">Watch ID</param>
32913297
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
using System;
2+
using System.Collections;
3+
using System.IO;
4+
using System.Threading;
5+
using System.Threading.Tasks;
6+
using Elasticsearch.Net;
7+
8+
namespace Nest
9+
{
10+
public partial interface IElasticClient
11+
{
12+
/// <summary>
13+
/// The certificates API enables you to retrieve information about the X.509 certificates
14+
/// that are used to encrypt communications in your Elasticsearch cluster.
15+
/// </summary>
16+
IGetCertificatesResponse GetCertificates(Func<GetCertificatesDescriptor, IGetCertificatesRequest> selector = null);
17+
18+
/// <inheritdoc cref="GetCertificates(System.Func{Nest.GetCertificatesDescriptor,Nest.IGetCertificatesRequest})" />
19+
IGetCertificatesResponse GetCertificates(IGetCertificatesRequest request);
20+
21+
/// <inheritdoc cref="GetCertificates(System.Func{Nest.GetCertificatesDescriptor,Nest.IGetCertificatesRequest})" />
22+
Task<IGetCertificatesResponse> GetCertificatesAsync(Func<GetCertificatesDescriptor, IGetCertificatesRequest> selector = null,
23+
CancellationToken cancellationToken = default
24+
);
25+
26+
/// <inheritdoc cref="GetCertificates(System.Func{Nest.GetCertificatesDescriptor,Nest.IGetCertificatesRequest})" />
27+
Task<IGetCertificatesResponse> GetCertificatesAsync(IGetCertificatesRequest request,
28+
CancellationToken cancellationToken = default
29+
);
30+
}
31+
32+
public partial class ElasticClient
33+
{
34+
/// <inheritdoc cref="GetCertificates(System.Func{Nest.GetCertificatesDescriptor,Nest.IGetCertificatesRequest})" />
35+
public IGetCertificatesResponse GetCertificates(Func<GetCertificatesDescriptor, IGetCertificatesRequest> selector = null) =>
36+
GetCertificates(selector.InvokeOrDefault(new GetCertificatesDescriptor()));
37+
38+
/// <inheritdoc cref="GetCertificates(System.Func{Nest.GetCertificatesDescriptor,Nest.IGetCertificatesRequest})" />
39+
public IGetCertificatesResponse GetCertificates(IGetCertificatesRequest request) =>
40+
Dispatcher.Dispatch<IGetCertificatesRequest, GetCertificatesRequestParameters, GetCertificatesResponse>(
41+
request,
42+
ToCertificatesResponse,
43+
(p, d) => LowLevelDispatch.XpackSslCertificatesDispatch<GetCertificatesResponse>(p)
44+
);
45+
46+
/// <inheritdoc cref="GetCertificates(System.Func{Nest.GetCertificatesDescriptor,Nest.IGetCertificatesRequest})" />
47+
public Task<IGetCertificatesResponse> GetCertificatesAsync(Func<GetCertificatesDescriptor, IGetCertificatesRequest> selector = null,
48+
CancellationToken cancellationToken = default
49+
) =>
50+
GetCertificatesAsync(selector.InvokeOrDefault(new GetCertificatesDescriptor()), cancellationToken);
51+
52+
/// <inheritdoc cref="GetCertificates(System.Func{Nest.GetCertificatesDescriptor,Nest.IGetCertificatesRequest})" />
53+
public Task<IGetCertificatesResponse> GetCertificatesAsync(IGetCertificatesRequest request,
54+
CancellationToken cancellationToken = default
55+
) =>
56+
Dispatcher
57+
.DispatchAsync<IGetCertificatesRequest, GetCertificatesRequestParameters, GetCertificatesResponse,
58+
IGetCertificatesResponse>(
59+
request,
60+
cancellationToken,
61+
ToCertificatesResponse,
62+
(p, d, c) => LowLevelDispatch.XpackSslCertificatesDispatchAsync<GetCertificatesResponse>(p, c)
63+
);
64+
65+
private GetCertificatesResponse ToCertificatesResponse(IApiCallDetails apiCallDetails, Stream stream)
66+
{
67+
var result = RequestResponseSerializer.Deserialize<ClusterCertificateInformation[]>(stream);
68+
return new GetCertificatesResponse { Certificates = result };
69+
}
70+
}
71+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using Newtonsoft.Json;
2+
3+
namespace Nest
4+
{
5+
[MapsApi("xpack.ssl.certificates.json")]
6+
public partial interface IGetCertificatesRequest { }
7+
8+
public partial class GetCertificatesRequest { }
9+
10+
public partial class GetCertificatesDescriptor { }
11+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using Newtonsoft.Json;
4+
5+
namespace Nest
6+
{
7+
public interface IGetCertificatesResponse : IResponse
8+
{
9+
[JsonIgnore]
10+
IReadOnlyCollection<ClusterCertificateInformation> Certificates { get; }
11+
12+
}
13+
14+
public class GetCertificatesResponse : ResponseBase, IGetCertificatesResponse
15+
{
16+
public IReadOnlyCollection<ClusterCertificateInformation> Certificates { get; internal set; } =
17+
EmptyReadOnly<ClusterCertificateInformation>.Collection;
18+
}
19+
20+
public class ClusterCertificateInformation
21+
{
22+
23+
[JsonProperty("path")]
24+
public string Path { get; internal set; }
25+
26+
[JsonProperty("alias")]
27+
public string Alias { get; internal set; }
28+
29+
[JsonProperty("format")]
30+
public string Format { get; internal set; }
31+
32+
[JsonProperty("subject_dn")]
33+
public string SubjectDomainName { get; internal set; }
34+
35+
[JsonProperty("serial_number")]
36+
public string SerialNumber { get; internal set; }
37+
38+
[JsonProperty("has_private_key")]
39+
public bool HasPrivateKey { get; internal set; }
40+
41+
[JsonProperty("expiry")]
42+
public DateTimeOffset Expiry { get; internal set; }
43+
}
44+
}

src/Nest/_Generated/_Descriptors.generated.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4792,6 +4792,14 @@ public partial class TranslateSqlDescriptor : RequestDescriptorBase<TranslateSq
47924792

47934793
// Request parameters
47944794

4795+
}
4796+
///<summary>descriptor for XpackSslCertificates <pre>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-ssl.html</pre></summary>
4797+
public partial class GetCertificatesDescriptor : RequestDescriptorBase<GetCertificatesDescriptor,GetCertificatesRequestParameters, IGetCertificatesRequest>, IGetCertificatesRequest
4798+
{
4799+
// values part of the url path
4800+
4801+
// Request parameters
4802+
47954803
}
47964804
///<summary>descriptor for XpackWatcherAckWatch <pre>http://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-ack-watch.html</pre></summary>
47974805
public partial class AcknowledgeWatchDescriptor : RequestDescriptorBase<AcknowledgeWatchDescriptor,AcknowledgeWatchRequestParameters, IAcknowledgeWatchRequest>, IAcknowledgeWatchRequest

src/Nest/_Generated/_LowLevelDispatch.generated.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4542,6 +4542,26 @@ internal partial class LowLevelDispatch
45424542
throw InvalidDispatch("XpackSqlTranslate", p, new [] { POST, GET }, "/_xpack/sql/translate");
45434543
}
45444544

4545+
internal TResponse XpackSslCertificatesDispatch<TResponse>(IRequest<GetCertificatesRequestParameters> p) where TResponse : class, IElasticsearchResponse, new()
4546+
{
4547+
switch(p.HttpMethod)
4548+
{
4549+
case GET:
4550+
return _lowLevel.XpackSslCertificates<TResponse>(p.RequestParameters);
4551+
}
4552+
throw InvalidDispatch("XpackSslCertificates", p, new [] { GET }, "/_xpack/ssl/certificates");
4553+
}
4554+
4555+
internal Task<TResponse> XpackSslCertificatesDispatchAsync<TResponse>(IRequest<GetCertificatesRequestParameters> p, CancellationToken ct) where TResponse : class, IElasticsearchResponse, new()
4556+
{
4557+
switch(p.HttpMethod)
4558+
{
4559+
case GET:
4560+
return _lowLevel.XpackSslCertificatesAsync<TResponse>(p.RequestParameters,ct);
4561+
}
4562+
throw InvalidDispatch("XpackSslCertificates", p, new [] { GET }, "/_xpack/ssl/certificates");
4563+
}
4564+
45454565
internal TResponse XpackWatcherAckWatchDispatch<TResponse>(IRequest<AcknowledgeWatchRequestParameters> p) where TResponse : class, IElasticsearchResponse, new()
45464566
{
45474567
switch(p.HttpMethod)

0 commit comments

Comments
 (0)