Skip to content

Commit a839bd8

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
1 parent e7e5bd9 commit a839bd8

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
@@ -39,7 +39,6 @@ public class ApiGenerator
3939
"xpack.ml.get_calendar_job.json",
4040
"xpack.ml.delete_forecast.json",
4141
"xpack.ml.find_file_structure.json",
42-
"xpack.ssl.certificates.json",
4342
"delete_by_query_rethrottle.json",
4443
"update_by_query_rethrottle.json",
4544

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
@@ -2636,6 +2636,11 @@ public partial class TranslateSqlRequestParameters : RequestParameters<Translate
26362636
{
26372637
public override HttpMethod DefaultHttpMethod => HttpMethod.POST;
26382638
}
2639+
///<summary>Request options for XpackSslCertificates<pre>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-ssl.html</pre></summary>
2640+
public partial class GetCertificatesRequestParameters : RequestParameters<GetCertificatesRequestParameters>
2641+
{
2642+
public override HttpMethod DefaultHttpMethod => HttpMethod.GET;
2643+
}
26392644
///<summary>Request options for XpackWatcherAckWatch<pre>http://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-ack-watch.html</pre></summary>
26402645
public partial class AcknowledgeWatchRequestParameters : RequestParameters<AcknowledgeWatchRequestParameters>
26412646
{

src/Elasticsearch.Net/ElasticLowLevelClient.Generated.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4018,6 +4018,14 @@ public TResponse XpackSqlTranslateGet<TResponse>(TranslateSqlRequestParameters r
40184018
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
40194019
public Task<TResponse> XpackSqlTranslateGetAsync<TResponse>(TranslateSqlRequestParameters requestParameters = null, CancellationToken ctx = default(CancellationToken))
40204020
where TResponse : class, IElasticsearchResponse, new() => this.DoRequestAsync<TResponse>(GET, Url($"_xpack/sql/translate"), ctx, null, _params(requestParameters));
4021+
///<summary>GET on /_xpack/ssl/certificates <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-ssl.html</para></summary>
4022+
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
4023+
public TResponse XpackSslCertificates<TResponse>(GetCertificatesRequestParameters requestParameters = null)
4024+
where TResponse : class, IElasticsearchResponse, new() => this.DoRequest<TResponse>(GET, Url($"_xpack/ssl/certificates"), null, _params(requestParameters));
4025+
///<summary>GET on /_xpack/ssl/certificates <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-ssl.html</para></summary>
4026+
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
4027+
public Task<TResponse> XpackSslCertificatesAsync<TResponse>(GetCertificatesRequestParameters requestParameters = null, CancellationToken ctx = default(CancellationToken))
4028+
where TResponse : class, IElasticsearchResponse, new() => this.DoRequestAsync<TResponse>(GET, Url($"_xpack/ssl/certificates"), ctx, null, _params(requestParameters));
40214029
///<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>
40224030
///<param name="watch_id">Watch ID</param>
40234031
///<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
@@ -3254,6 +3254,12 @@ public partial interface IElasticLowLevelClient
32543254
///<summary>GET on /_xpack/sql/translate <para>Translate SQL into Elasticsearch queries</para></summary>
32553255
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
32563256
Task<TResponse> XpackSqlTranslateGetAsync<TResponse>(TranslateSqlRequestParameters requestParameters = null, CancellationToken ctx = default(CancellationToken)) where TResponse : class, IElasticsearchResponse, new();
3257+
///<summary>GET on /_xpack/ssl/certificates <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-ssl.html</para></summary>
3258+
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
3259+
TResponse XpackSslCertificates<TResponse>(GetCertificatesRequestParameters requestParameters = null) where TResponse : class, IElasticsearchResponse, new();
3260+
///<summary>GET on /_xpack/ssl/certificates <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-ssl.html</para></summary>
3261+
///<param name="requestParameters">A func that allows you to describe the querystring parameters &amp; request specific connection settings.</param>
3262+
Task<TResponse> XpackSslCertificatesAsync<TResponse>(GetCertificatesRequestParameters requestParameters = null, CancellationToken ctx = default(CancellationToken)) where TResponse : class, IElasticsearchResponse, new();
32573263
///<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>
32583264
///<param name="watch_id">Watch ID</param>
32593265
///<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
@@ -4764,6 +4764,14 @@ public partial class TranslateSqlDescriptor : RequestDescriptorBase<TranslateSq
47644764

47654765
// Request parameters
47664766

4767+
}
4768+
///<summary>descriptor for XpackSslCertificates <pre>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-ssl.html</pre></summary>
4769+
public partial class GetCertificatesDescriptor : RequestDescriptorBase<GetCertificatesDescriptor,GetCertificatesRequestParameters, IGetCertificatesRequest>, IGetCertificatesRequest
4770+
{
4771+
// values part of the url path
4772+
4773+
// Request parameters
4774+
47674775
}
47684776
///<summary>descriptor for XpackWatcherAckWatch <pre>http://www.elastic.co/guide/en/elasticsearch/reference/current/watcher-api-ack-watch.html</pre></summary>
47694777
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
@@ -4514,6 +4514,26 @@ internal partial class LowLevelDispatch
45144514
throw InvalidDispatch("XpackSqlTranslate", p, new [] { POST, GET }, "/_xpack/sql/translate");
45154515
}
45164516

4517+
internal TResponse XpackSslCertificatesDispatch<TResponse>(IRequest<GetCertificatesRequestParameters> p) where TResponse : class, IElasticsearchResponse, new()
4518+
{
4519+
switch(p.HttpMethod)
4520+
{
4521+
case GET:
4522+
return _lowLevel.XpackSslCertificates<TResponse>(p.RequestParameters);
4523+
}
4524+
throw InvalidDispatch("XpackSslCertificates", p, new [] { GET }, "/_xpack/ssl/certificates");
4525+
}
4526+
4527+
internal Task<TResponse> XpackSslCertificatesDispatchAsync<TResponse>(IRequest<GetCertificatesRequestParameters> p, CancellationToken ct) where TResponse : class, IElasticsearchResponse, new()
4528+
{
4529+
switch(p.HttpMethod)
4530+
{
4531+
case GET:
4532+
return _lowLevel.XpackSslCertificatesAsync<TResponse>(p.RequestParameters,ct);
4533+
}
4534+
throw InvalidDispatch("XpackSslCertificates", p, new [] { GET }, "/_xpack/ssl/certificates");
4535+
}
4536+
45174537
internal TResponse XpackWatcherAckWatchDispatch<TResponse>(IRequest<AcknowledgeWatchRequestParameters> p) where TResponse : class, IElasticsearchResponse, new()
45184538
{
45194539
switch(p.HttpMethod)

0 commit comments

Comments
 (0)