Skip to content

Commit 9003ec2

Browse files
Implement security.get_builtin_privileges (#4536) (#4606)
Implement security.get_builtin_privileges Co-authored-by: Stuart Cam <stuart.cam@elastic.co>
1 parent 37dff26 commit 9003ec2

File tree

8 files changed

+132
-1
lines changed

8 files changed

+132
-1
lines changed

src/ApiGenerator/Configuration/CodeConfiguration.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ public static class CodeConfiguration
6666
"cluster.delete_component_template.json",
6767
"cluster.get_component_template.json",
6868
"cluster.put_component_template.json",
69-
"security.get_builtin_privileges.json",
7069
"transform.delete_transform.json",
7170
"transform.get_transform.json",
7271
"transform.get_transform_stats.json",

src/Nest/Descriptors.Security.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,14 @@ public partial class GetApiKeyDescriptor : RequestDescriptorBase<GetApiKeyDescri
274274
public GetApiKeyDescriptor Username(string username) => Qs("username", username);
275275
}
276276

277+
///<summary>Descriptor for GetBuiltinPrivileges <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-builtin-privileges.html</para></summary>
278+
public partial class GetBuiltinPrivilegesDescriptor : RequestDescriptorBase<GetBuiltinPrivilegesDescriptor, GetBuiltinPrivilegesRequestParameters, IGetBuiltinPrivilegesRequest>, IGetBuiltinPrivilegesRequest
279+
{
280+
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityGetBuiltinPrivileges;
281+
// values part of the url path
282+
// Request parameters
283+
}
284+
277285
///<summary>Descriptor for GetPrivileges <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-privileges.html</para></summary>
278286
public partial class GetPrivilegesDescriptor : RequestDescriptorBase<GetPrivilegesDescriptor, GetPrivilegesRequestParameters, IGetPrivilegesRequest>, IGetPrivilegesRequest
279287
{

src/Nest/ElasticClient.Security.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,30 @@ internal SecurityNamespace(ElasticClient client): base(client)
325325
/// </summary>
326326
public Task<GetApiKeyResponse> GetApiKeyAsync(IGetApiKeyRequest request, CancellationToken ct = default) => DoRequestAsync<IGetApiKeyRequest, GetApiKeyResponse>(request, request.RequestParameters, ct);
327327
/// <summary>
328+
/// <c>GET</c> request to the <c>security.get_builtin_privileges</c> API, read more about this API online:
329+
/// <para></para>
330+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-builtin-privileges.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-builtin-privileges.html</a>
331+
/// </summary>
332+
public GetBuiltinPrivilegesResponse GetBuiltinPrivileges(Func<GetBuiltinPrivilegesDescriptor, IGetBuiltinPrivilegesRequest> selector = null) => GetBuiltinPrivileges(selector.InvokeOrDefault(new GetBuiltinPrivilegesDescriptor()));
333+
/// <summary>
334+
/// <c>GET</c> request to the <c>security.get_builtin_privileges</c> API, read more about this API online:
335+
/// <para></para>
336+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-builtin-privileges.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-builtin-privileges.html</a>
337+
/// </summary>
338+
public Task<GetBuiltinPrivilegesResponse> GetBuiltinPrivilegesAsync(Func<GetBuiltinPrivilegesDescriptor, IGetBuiltinPrivilegesRequest> selector = null, CancellationToken ct = default) => GetBuiltinPrivilegesAsync(selector.InvokeOrDefault(new GetBuiltinPrivilegesDescriptor()), ct);
339+
/// <summary>
340+
/// <c>GET</c> request to the <c>security.get_builtin_privileges</c> API, read more about this API online:
341+
/// <para></para>
342+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-builtin-privileges.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-builtin-privileges.html</a>
343+
/// </summary>
344+
public GetBuiltinPrivilegesResponse GetBuiltinPrivileges(IGetBuiltinPrivilegesRequest request) => DoRequest<IGetBuiltinPrivilegesRequest, GetBuiltinPrivilegesResponse>(request, request.RequestParameters);
345+
/// <summary>
346+
/// <c>GET</c> request to the <c>security.get_builtin_privileges</c> API, read more about this API online:
347+
/// <para></para>
348+
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-builtin-privileges.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-builtin-privileges.html</a>
349+
/// </summary>
350+
public Task<GetBuiltinPrivilegesResponse> GetBuiltinPrivilegesAsync(IGetBuiltinPrivilegesRequest request, CancellationToken ct = default) => DoRequestAsync<IGetBuiltinPrivilegesRequest, GetBuiltinPrivilegesResponse>(request, request.RequestParameters, ct);
351+
/// <summary>
328352
/// <c>GET</c> request to the <c>security.get_privileges</c> API, read more about this API online:
329353
/// <para></para>
330354
/// <a href = "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-privileges.html">https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-privileges.html</a>

src/Nest/Requests.Security.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -490,6 +490,20 @@ public string Username
490490
}
491491
}
492492

493+
[InterfaceDataContract]
494+
public partial interface IGetBuiltinPrivilegesRequest : IRequest<GetBuiltinPrivilegesRequestParameters>
495+
{
496+
}
497+
498+
///<summary>Request for GetBuiltinPrivileges <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-builtin-privileges.html</para></summary>
499+
public partial class GetBuiltinPrivilegesRequest : PlainRequestBase<GetBuiltinPrivilegesRequestParameters>, IGetBuiltinPrivilegesRequest
500+
{
501+
protected IGetBuiltinPrivilegesRequest Self => this;
502+
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityGetBuiltinPrivileges;
503+
// values part of the url path
504+
// Request parameters
505+
}
506+
493507
[InterfaceDataContract]
494508
public partial interface IGetPrivilegesRequest : IRequest<GetPrivilegesRequestParameters>
495509
{
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace Nest
2+
{
3+
[MapsApi("security.get_builtin_privileges.json")]
4+
public partial interface IGetBuiltinPrivilegesRequest { }
5+
6+
public partial class GetBuiltinPrivilegesRequest { }
7+
8+
public partial class GetBuiltinPrivilegesDescriptor { }
9+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System.Collections.Generic;
2+
using System.Runtime.Serialization;
3+
using Elasticsearch.Net;
4+
using Elasticsearch.Net.Utf8Json;
5+
6+
namespace Nest
7+
{
8+
[DataContract]
9+
public class GetBuiltinPrivilegesResponse : ResponseBase
10+
{
11+
[DataMember(Name = "cluster")]
12+
public IReadOnlyCollection<string> Cluster { get; internal set; } = EmptyReadOnly<string>.Collection;
13+
14+
[DataMember(Name = "index")]
15+
public IReadOnlyCollection<string> Index { get; internal set; } = EmptyReadOnly<string>.Collection;
16+
}
17+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
using System;
2+
using Elastic.Xunit.XunitPlumbing;
3+
using Elasticsearch.Net;
4+
using Nest;
5+
using Tests.Core.Extensions;
6+
using Tests.Core.ManagedElasticsearch.Clusters;
7+
using Tests.Framework.EndpointTests;
8+
using Tests.Framework.EndpointTests.TestState;
9+
10+
namespace Tests.XPack.Security.GetBuiltinPrivileges
11+
{
12+
[SkipVersion("<7.7.0", "Introduced in 7.7.0")]
13+
public class GetBuiltinPrivilegesApiTests
14+
: ApiIntegrationTestBase<XPackCluster, GetBuiltinPrivilegesResponse, IGetBuiltinPrivilegesRequest, GetBuiltinPrivilegesDescriptor,
15+
GetBuiltinPrivilegesRequest>
16+
{
17+
public GetBuiltinPrivilegesApiTests(XPackCluster cluster, EndpointUsage usage) : base(cluster, usage) { }
18+
19+
protected override bool ExpectIsValid => true;
20+
protected override int ExpectStatusCode => 200;
21+
22+
protected override Func<GetBuiltinPrivilegesDescriptor, IGetBuiltinPrivilegesRequest> Fluent => d => d;
23+
protected override HttpMethod HttpMethod => HttpMethod.GET;
24+
25+
protected override GetBuiltinPrivilegesRequest Initializer => new GetBuiltinPrivilegesRequest();
26+
27+
protected override bool SupportsDeserialization => false;
28+
29+
protected override string UrlPath => $"/_security/privilege/_builtin";
30+
31+
protected override LazyResponses ClientUsage() => Calls(
32+
(client, f) => client.Security.GetBuiltinPrivileges(f),
33+
(client, f) => client.Security.GetBuiltinPrivilegesAsync(f),
34+
(client, r) => client.Security.GetBuiltinPrivileges(r),
35+
(client, r) => client.Security.GetBuiltinPrivilegesAsync(r)
36+
);
37+
38+
protected override GetBuiltinPrivilegesDescriptor NewDescriptor() => new GetBuiltinPrivilegesDescriptor();
39+
40+
protected override void ExpectResponse(GetBuiltinPrivilegesResponse response) => response.ShouldBeValid();
41+
}
42+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using System.Threading.Tasks;
2+
using Elastic.Xunit.XunitPlumbing;
3+
using Nest;
4+
using Tests.Framework.EndpointTests;
5+
using static Tests.Framework.EndpointTests.UrlTester;
6+
7+
namespace Tests.XPack.Security.GetBuiltinPrivileges
8+
{
9+
public class GetBuiltinPrivilegesUrlTests : UrlTestsBase
10+
{
11+
[U] public override async Task Urls() =>
12+
await GET("/_security/privilege/_builtin")
13+
.Fluent(c => c.Security.GetBuiltinPrivileges())
14+
.Request(c => c.Security.GetBuiltinPrivileges(new GetBuiltinPrivilegesRequest()))
15+
.FluentAsync(c => c.Security.GetBuiltinPrivilegesAsync())
16+
.RequestAsync(c => c.Security.GetBuiltinPrivilegesAsync(new GetBuiltinPrivilegesRequest()));
17+
}
18+
}

0 commit comments

Comments
 (0)