Skip to content

Commit

Permalink
Implement security.get_builtin_privileges (#4536)
Browse files Browse the repository at this point in the history
Implement security.get_builtin_privileges
  • Loading branch information
codebrain committed Apr 16, 2020
1 parent fab0de5 commit 76ec77f
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",
"security.get_builtin_privileges.json",
"transform.delete_transform.json",
"transform.get_transform.json",
"transform.get_transform_stats.json",
Expand Down
8 changes: 8 additions & 0 deletions src/Nest/Descriptors.Security.cs
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,14 @@ public partial class GetApiKeyDescriptor : RequestDescriptorBase<GetApiKeyDescri
public GetApiKeyDescriptor Username(string username) => Qs("username", username);
}

///<summary>Descriptor for GetBuiltinPrivileges <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-builtin-privileges.html</para></summary>
public partial class GetBuiltinPrivilegesDescriptor : RequestDescriptorBase<GetBuiltinPrivilegesDescriptor, GetBuiltinPrivilegesRequestParameters, IGetBuiltinPrivilegesRequest>, IGetBuiltinPrivilegesRequest
{
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityGetBuiltinPrivileges;
// values part of the url path
// Request parameters
}

///<summary>Descriptor for GetPrivileges <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-privileges.html</para></summary>
public partial class GetPrivilegesDescriptor : RequestDescriptorBase<GetPrivilegesDescriptor, GetPrivilegesRequestParameters, IGetPrivilegesRequest>, IGetPrivilegesRequest
{
Expand Down
24 changes: 24 additions & 0 deletions src/Nest/ElasticClient.Security.cs
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,30 @@ internal SecurityNamespace(ElasticClient client): base(client)
/// </summary>
public Task<GetApiKeyResponse> GetApiKeyAsync(IGetApiKeyRequest request, CancellationToken ct = default) => DoRequestAsync<IGetApiKeyRequest, GetApiKeyResponse>(request, request.RequestParameters, ct);
/// <summary>
/// <c>GET</c> request to the <c>security.get_builtin_privileges</c> API, read more about this API online:
/// <para></para>
/// <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>
/// </summary>
public GetBuiltinPrivilegesResponse GetBuiltinPrivileges(Func<GetBuiltinPrivilegesDescriptor, IGetBuiltinPrivilegesRequest> selector = null) => GetBuiltinPrivileges(selector.InvokeOrDefault(new GetBuiltinPrivilegesDescriptor()));
/// <summary>
/// <c>GET</c> request to the <c>security.get_builtin_privileges</c> API, read more about this API online:
/// <para></para>
/// <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>
/// </summary>
public Task<GetBuiltinPrivilegesResponse> GetBuiltinPrivilegesAsync(Func<GetBuiltinPrivilegesDescriptor, IGetBuiltinPrivilegesRequest> selector = null, CancellationToken ct = default) => GetBuiltinPrivilegesAsync(selector.InvokeOrDefault(new GetBuiltinPrivilegesDescriptor()), ct);
/// <summary>
/// <c>GET</c> request to the <c>security.get_builtin_privileges</c> API, read more about this API online:
/// <para></para>
/// <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>
/// </summary>
public GetBuiltinPrivilegesResponse GetBuiltinPrivileges(IGetBuiltinPrivilegesRequest request) => DoRequest<IGetBuiltinPrivilegesRequest, GetBuiltinPrivilegesResponse>(request, request.RequestParameters);
/// <summary>
/// <c>GET</c> request to the <c>security.get_builtin_privileges</c> API, read more about this API online:
/// <para></para>
/// <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>
/// </summary>
public Task<GetBuiltinPrivilegesResponse> GetBuiltinPrivilegesAsync(IGetBuiltinPrivilegesRequest request, CancellationToken ct = default) => DoRequestAsync<IGetBuiltinPrivilegesRequest, GetBuiltinPrivilegesResponse>(request, request.RequestParameters, ct);
/// <summary>
/// <c>GET</c> request to the <c>security.get_privileges</c> API, read more about this API online:
/// <para></para>
/// <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>
Expand Down
14 changes: 14 additions & 0 deletions src/Nest/Requests.Security.cs
Original file line number Diff line number Diff line change
Expand Up @@ -490,6 +490,20 @@ public string Username
}
}

[InterfaceDataContract]
public partial interface IGetBuiltinPrivilegesRequest : IRequest<GetBuiltinPrivilegesRequestParameters>
{
}

///<summary>Request for GetBuiltinPrivileges <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-builtin-privileges.html</para></summary>
public partial class GetBuiltinPrivilegesRequest : PlainRequestBase<GetBuiltinPrivilegesRequestParameters>, IGetBuiltinPrivilegesRequest
{
protected IGetBuiltinPrivilegesRequest Self => this;
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityGetBuiltinPrivileges;
// values part of the url path
// Request parameters
}

[InterfaceDataContract]
public partial interface IGetPrivilegesRequest : IRequest<GetPrivilegesRequestParameters>
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace Nest
{
[MapsApi("security.get_builtin_privileges.json")]
public partial interface IGetBuiltinPrivilegesRequest { }

public partial class GetBuiltinPrivilegesRequest { }

public partial class GetBuiltinPrivilegesDescriptor { }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
using System.Collections.Generic;
using System.Runtime.Serialization;
using Elasticsearch.Net;
using Elasticsearch.Net.Utf8Json;

namespace Nest
{
[DataContract]
public class GetBuiltinPrivilegesResponse : ResponseBase
{
[DataMember(Name = "cluster")]
public IReadOnlyCollection<string> Cluster { get; internal set; } = EmptyReadOnly<string>.Collection;

[DataMember(Name = "index")]
public IReadOnlyCollection<string> Index { get; internal set; } = EmptyReadOnly<string>.Collection;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
using System;
using Elastic.Xunit.XunitPlumbing;
using Elasticsearch.Net;
using Nest;
using Tests.Core.Extensions;
using Tests.Core.ManagedElasticsearch.Clusters;
using Tests.Framework.EndpointTests;
using Tests.Framework.EndpointTests.TestState;

namespace Tests.XPack.Security.GetBuiltinPrivileges
{
[SkipVersion("<7.7.0", "Introduced in 7.7.0")]
public class GetBuiltinPrivilegesApiTests
: ApiIntegrationTestBase<XPackCluster, GetBuiltinPrivilegesResponse, IGetBuiltinPrivilegesRequest, GetBuiltinPrivilegesDescriptor,
GetBuiltinPrivilegesRequest>
{
public GetBuiltinPrivilegesApiTests(XPackCluster cluster, EndpointUsage usage) : base(cluster, usage) { }

protected override bool ExpectIsValid => true;
protected override int ExpectStatusCode => 200;

protected override Func<GetBuiltinPrivilegesDescriptor, IGetBuiltinPrivilegesRequest> Fluent => d => d;
protected override HttpMethod HttpMethod => HttpMethod.GET;

protected override GetBuiltinPrivilegesRequest Initializer => new GetBuiltinPrivilegesRequest();

protected override bool SupportsDeserialization => false;

protected override string UrlPath => $"/_security/privilege/_builtin";

protected override LazyResponses ClientUsage() => Calls(
(client, f) => client.Security.GetBuiltinPrivileges(f),
(client, f) => client.Security.GetBuiltinPrivilegesAsync(f),
(client, r) => client.Security.GetBuiltinPrivileges(r),
(client, r) => client.Security.GetBuiltinPrivilegesAsync(r)
);

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

protected override void ExpectResponse(GetBuiltinPrivilegesResponse response) => response.ShouldBeValid();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
using System.Threading.Tasks;
using Elastic.Xunit.XunitPlumbing;
using Nest;
using Tests.Framework.EndpointTests;
using static Tests.Framework.EndpointTests.UrlTester;

namespace Tests.XPack.Security.GetBuiltinPrivileges
{
public class GetBuiltinPrivilegesUrlTests : UrlTestsBase
{
[U] public override async Task Urls() =>
await GET("/_security/privilege/_builtin")
.Fluent(c => c.Security.GetBuiltinPrivileges())
.Request(c => c.Security.GetBuiltinPrivileges(new GetBuiltinPrivilegesRequest()))
.FluentAsync(c => c.Security.GetBuiltinPrivilegesAsync())
.RequestAsync(c => c.Security.GetBuiltinPrivilegesAsync(new GetBuiltinPrivilegesRequest()));
}
}

0 comments on commit 76ec77f

Please sign in to comment.