Skip to content

Commit 633d7b6

Browse files
authored
Security API changes to add owner flag (#4178)
Security API changes to add owner flag. Have patched specification file for the time being, until the correct specification change is implemented.
1 parent b38cc1c commit 633d7b6

File tree

5 files changed

+101
-55
lines changed

5 files changed

+101
-55
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"security.get_api_key": {
3+
"url": {
4+
"params": {
5+
"owner": {
6+
"type": "boolean",
7+
"default": false,
8+
"description": "flag to query API keys owned by the currently authenticated user"
9+
}
10+
}
11+
}
12+
}
13+
}

src/Elasticsearch.Net/Api/RequestParameters/RequestParameters.Security.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,13 @@ public string Name
186186
set => Q("name", value);
187187
}
188188

189+
///<summary>flag to query API keys owned by the currently authenticated user</summary>
190+
public bool? Owner
191+
{
192+
get => Q<bool? >("owner");
193+
set => Q("owner", value);
194+
}
195+
189196
///<summary>realm name of the user who created this API key to be retrieved</summary>
190197
public string RealmName
191198
{

src/Nest/Descriptors.Security.cs

Lines changed: 57 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,13 @@ public partial class AuthenticateDescriptor : RequestDescriptorBase<Authenticate
4242
public partial class ChangePasswordDescriptor : RequestDescriptorBase<ChangePasswordDescriptor, ChangePasswordRequestParameters, IChangePasswordRequest>, IChangePasswordRequest
4343
{
4444
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityChangePassword;
45-
///<summary>/_security/user/{username}/_password</summary>
46-
///<param name = "username">Optional, accepts null</param>
45+
///<summary>/_security/user/{username}/_password</summary>
46+
///<param name = "username">Optional, accepts null</param>
4747
public ChangePasswordDescriptor(Name username): base(r => r.Optional("username", username))
4848
{
4949
}
5050

51-
///<summary>/_security/user/_password</summary>
51+
///<summary>/_security/user/_password</summary>
5252
public ChangePasswordDescriptor(): base()
5353
{
5454
}
@@ -66,13 +66,13 @@ public ChangePasswordDescriptor(): base()
6666
public partial class ClearCachedRealmsDescriptor : RequestDescriptorBase<ClearCachedRealmsDescriptor, ClearCachedRealmsRequestParameters, IClearCachedRealmsRequest>, IClearCachedRealmsRequest
6767
{
6868
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityClearCachedRealms;
69-
///<summary>/_security/realm/{realms}/_clear_cache</summary>
70-
///<param name = "realms">this parameter is required</param>
69+
///<summary>/_security/realm/{realms}/_clear_cache</summary>
70+
///<param name = "realms">this parameter is required</param>
7171
public ClearCachedRealmsDescriptor(Names realms): base(r => r.Required("realms", realms))
7272
{
7373
}
7474

75-
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
75+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
7676
[SerializationConstructor]
7777
protected ClearCachedRealmsDescriptor(): base()
7878
{
@@ -89,13 +89,13 @@ protected ClearCachedRealmsDescriptor(): base()
8989
public partial class ClearCachedRolesDescriptor : RequestDescriptorBase<ClearCachedRolesDescriptor, ClearCachedRolesRequestParameters, IClearCachedRolesRequest>, IClearCachedRolesRequest
9090
{
9191
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityClearCachedRoles;
92-
///<summary>/_security/role/{name}/_clear_cache</summary>
93-
///<param name = "name">this parameter is required</param>
92+
///<summary>/_security/role/{name}/_clear_cache</summary>
93+
///<param name = "name">this parameter is required</param>
9494
public ClearCachedRolesDescriptor(Names name): base(r => r.Required("name", name))
9595
{
9696
}
9797

98-
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
98+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
9999
[SerializationConstructor]
100100
protected ClearCachedRolesDescriptor(): base()
101101
{
@@ -120,14 +120,14 @@ public partial class CreateApiKeyDescriptor : RequestDescriptorBase<CreateApiKey
120120
public partial class DeletePrivilegesDescriptor : RequestDescriptorBase<DeletePrivilegesDescriptor, DeletePrivilegesRequestParameters, IDeletePrivilegesRequest>, IDeletePrivilegesRequest
121121
{
122122
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityDeletePrivileges;
123-
///<summary>/_security/privilege/{application}/{name}</summary>
124-
///<param name = "application">this parameter is required</param>
125-
///<param name = "name">this parameter is required</param>
123+
///<summary>/_security/privilege/{application}/{name}</summary>
124+
///<param name = "application">this parameter is required</param>
125+
///<param name = "name">this parameter is required</param>
126126
public DeletePrivilegesDescriptor(Name application, Name name): base(r => r.Required("application", application).Required("name", name))
127127
{
128128
}
129129

130-
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
130+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
131131
[SerializationConstructor]
132132
protected DeletePrivilegesDescriptor(): base()
133133
{
@@ -145,13 +145,13 @@ protected DeletePrivilegesDescriptor(): base()
145145
public partial class DeleteRoleDescriptor : RequestDescriptorBase<DeleteRoleDescriptor, DeleteRoleRequestParameters, IDeleteRoleRequest>, IDeleteRoleRequest
146146
{
147147
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityDeleteRole;
148-
///<summary>/_security/role/{name}</summary>
149-
///<param name = "name">this parameter is required</param>
148+
///<summary>/_security/role/{name}</summary>
149+
///<param name = "name">this parameter is required</param>
150150
public DeleteRoleDescriptor(Name name): base(r => r.Required("name", name))
151151
{
152152
}
153153

154-
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
154+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
155155
[SerializationConstructor]
156156
protected DeleteRoleDescriptor(): base()
157157
{
@@ -168,13 +168,13 @@ protected DeleteRoleDescriptor(): base()
168168
public partial class DeleteRoleMappingDescriptor : RequestDescriptorBase<DeleteRoleMappingDescriptor, DeleteRoleMappingRequestParameters, IDeleteRoleMappingRequest>, IDeleteRoleMappingRequest
169169
{
170170
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityDeleteRoleMapping;
171-
///<summary>/_security/role_mapping/{name}</summary>
172-
///<param name = "name">this parameter is required</param>
171+
///<summary>/_security/role_mapping/{name}</summary>
172+
///<param name = "name">this parameter is required</param>
173173
public DeleteRoleMappingDescriptor(Name name): base(r => r.Required("name", name))
174174
{
175175
}
176176

177-
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
177+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
178178
[SerializationConstructor]
179179
protected DeleteRoleMappingDescriptor(): base()
180180
{
@@ -191,13 +191,13 @@ protected DeleteRoleMappingDescriptor(): base()
191191
public partial class DeleteUserDescriptor : RequestDescriptorBase<DeleteUserDescriptor, DeleteUserRequestParameters, IDeleteUserRequest>, IDeleteUserRequest
192192
{
193193
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityDeleteUser;
194-
///<summary>/_security/user/{username}</summary>
195-
///<param name = "username">this parameter is required</param>
194+
///<summary>/_security/user/{username}</summary>
195+
///<param name = "username">this parameter is required</param>
196196
public DeleteUserDescriptor(Name username): base(r => r.Required("username", username))
197197
{
198198
}
199199

200-
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
200+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
201201
[SerializationConstructor]
202202
protected DeleteUserDescriptor(): base()
203203
{
@@ -214,13 +214,13 @@ protected DeleteUserDescriptor(): base()
214214
public partial class DisableUserDescriptor : RequestDescriptorBase<DisableUserDescriptor, DisableUserRequestParameters, IDisableUserRequest>, IDisableUserRequest
215215
{
216216
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityDisableUser;
217-
///<summary>/_security/user/{username}/_disable</summary>
218-
///<param name = "username">this parameter is required</param>
217+
///<summary>/_security/user/{username}/_disable</summary>
218+
///<param name = "username">this parameter is required</param>
219219
public DisableUserDescriptor(Name username): base(r => r.Required("username", username))
220220
{
221221
}
222222

223-
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
223+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
224224
[SerializationConstructor]
225225
protected DisableUserDescriptor(): base()
226226
{
@@ -237,13 +237,13 @@ protected DisableUserDescriptor(): base()
237237
public partial class EnableUserDescriptor : RequestDescriptorBase<EnableUserDescriptor, EnableUserRequestParameters, IEnableUserRequest>, IEnableUserRequest
238238
{
239239
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityEnableUser;
240-
///<summary>/_security/user/{username}/_enable</summary>
241-
///<param name = "username">this parameter is required</param>
240+
///<summary>/_security/user/{username}/_enable</summary>
241+
///<param name = "username">this parameter is required</param>
242242
public EnableUserDescriptor(Name username): base(r => r.Required("username", username))
243243
{
244244
}
245245

246-
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
246+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
247247
[SerializationConstructor]
248248
protected EnableUserDescriptor(): base()
249249
{
@@ -266,6 +266,8 @@ public partial class GetApiKeyDescriptor : RequestDescriptorBase<GetApiKeyDescri
266266
public GetApiKeyDescriptor Id(string id) => Qs("id", id);
267267
///<summary>API key name of the API key to be retrieved</summary>
268268
public GetApiKeyDescriptor Name(string name) => Qs("name", name);
269+
///<summary>flag to query API keys owned by the currently authenticated user</summary>
270+
public GetApiKeyDescriptor Owner(bool? owner = true) => Qs("owner", owner);
269271
///<summary>realm name of the user who created this API key to be retrieved</summary>
270272
public GetApiKeyDescriptor RealmName(string realmname) => Qs("realm_name", realmname);
271273
///<summary>user name of the user who created this API key to be retrieved</summary>
@@ -276,20 +278,20 @@ public partial class GetApiKeyDescriptor : RequestDescriptorBase<GetApiKeyDescri
276278
public partial class GetPrivilegesDescriptor : RequestDescriptorBase<GetPrivilegesDescriptor, GetPrivilegesRequestParameters, IGetPrivilegesRequest>, IGetPrivilegesRequest
277279
{
278280
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityGetPrivileges;
279-
///<summary>/_security/privilege</summary>
281+
///<summary>/_security/privilege</summary>
280282
public GetPrivilegesDescriptor(): base()
281283
{
282284
}
283285

284-
///<summary>/_security/privilege/{application}</summary>
285-
///<param name = "application">Optional, accepts null</param>
286+
///<summary>/_security/privilege/{application}</summary>
287+
///<param name = "application">Optional, accepts null</param>
286288
public GetPrivilegesDescriptor(Name application): base(r => r.Optional("application", application))
287289
{
288290
}
289291

290-
///<summary>/_security/privilege/{application}/{name}</summary>
291-
///<param name = "application">Optional, accepts null</param>
292-
///<param name = "name">Optional, accepts null</param>
292+
///<summary>/_security/privilege/{application}/{name}</summary>
293+
///<param name = "application">Optional, accepts null</param>
294+
///<param name = "name">Optional, accepts null</param>
293295
public GetPrivilegesDescriptor(Name application, Name name): base(r => r.Optional("application", application).Optional("name", name))
294296
{
295297
}
@@ -308,13 +310,13 @@ public GetPrivilegesDescriptor(Name application, Name name): base(r => r.Optiona
308310
public partial class GetRoleDescriptor : RequestDescriptorBase<GetRoleDescriptor, GetRoleRequestParameters, IGetRoleRequest>, IGetRoleRequest
309311
{
310312
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityGetRole;
311-
///<summary>/_security/role/{name}</summary>
312-
///<param name = "name">Optional, accepts null</param>
313+
///<summary>/_security/role/{name}</summary>
314+
///<param name = "name">Optional, accepts null</param>
313315
public GetRoleDescriptor(Name name): base(r => r.Optional("name", name))
314316
{
315317
}
316318

317-
///<summary>/_security/role</summary>
319+
///<summary>/_security/role</summary>
318320
public GetRoleDescriptor(): base()
319321
{
320322
}
@@ -330,13 +332,13 @@ public GetRoleDescriptor(): base()
330332
public partial class GetRoleMappingDescriptor : RequestDescriptorBase<GetRoleMappingDescriptor, GetRoleMappingRequestParameters, IGetRoleMappingRequest>, IGetRoleMappingRequest
331333
{
332334
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityGetRoleMapping;
333-
///<summary>/_security/role_mapping/{name}</summary>
334-
///<param name = "name">Optional, accepts null</param>
335+
///<summary>/_security/role_mapping/{name}</summary>
336+
///<param name = "name">Optional, accepts null</param>
335337
public GetRoleMappingDescriptor(Name name): base(r => r.Optional("name", name))
336338
{
337339
}
338340

339-
///<summary>/_security/role_mapping</summary>
341+
///<summary>/_security/role_mapping</summary>
340342
public GetRoleMappingDescriptor(): base()
341343
{
342344
}
@@ -360,13 +362,13 @@ public partial class GetUserAccessTokenDescriptor : RequestDescriptorBase<GetUse
360362
public partial class GetUserDescriptor : RequestDescriptorBase<GetUserDescriptor, GetUserRequestParameters, IGetUserRequest>, IGetUserRequest
361363
{
362364
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityGetUser;
363-
///<summary>/_security/user/{username}</summary>
364-
///<param name = "username">Optional, accepts null</param>
365+
///<summary>/_security/user/{username}</summary>
366+
///<param name = "username">Optional, accepts null</param>
365367
public GetUserDescriptor(Names username): base(r => r.Optional("username", username))
366368
{
367369
}
368370

369-
///<summary>/_security/user</summary>
371+
///<summary>/_security/user</summary>
370372
public GetUserDescriptor(): base()
371373
{
372374
}
@@ -390,13 +392,13 @@ public partial class GetUserPrivilegesDescriptor : RequestDescriptorBase<GetUser
390392
public partial class HasPrivilegesDescriptor : RequestDescriptorBase<HasPrivilegesDescriptor, HasPrivilegesRequestParameters, IHasPrivilegesRequest>, IHasPrivilegesRequest
391393
{
392394
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityHasPrivileges;
393-
///<summary>/_security/user/_has_privileges</summary>
395+
///<summary>/_security/user/_has_privileges</summary>
394396
public HasPrivilegesDescriptor(): base()
395397
{
396398
}
397399

398-
///<summary>/_security/user/{user}/_has_privileges</summary>
399-
///<param name = "user">Optional, accepts null</param>
400+
///<summary>/_security/user/{user}/_has_privileges</summary>
401+
///<param name = "user">Optional, accepts null</param>
400402
public HasPrivilegesDescriptor(Name user): base(r => r.Optional("user", user))
401403
{
402404
}
@@ -438,13 +440,13 @@ public partial class PutPrivilegesDescriptor : RequestDescriptorBase<PutPrivileg
438440
public partial class PutRoleDescriptor : RequestDescriptorBase<PutRoleDescriptor, PutRoleRequestParameters, IPutRoleRequest>, IPutRoleRequest
439441
{
440442
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityPutRole;
441-
///<summary>/_security/role/{name}</summary>
442-
///<param name = "name">this parameter is required</param>
443+
///<summary>/_security/role/{name}</summary>
444+
///<param name = "name">this parameter is required</param>
443445
public PutRoleDescriptor(Name name): base(r => r.Required("name", name))
444446
{
445447
}
446448

447-
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
449+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
448450
[SerializationConstructor]
449451
protected PutRoleDescriptor(): base()
450452
{
@@ -461,13 +463,13 @@ protected PutRoleDescriptor(): base()
461463
public partial class PutRoleMappingDescriptor : RequestDescriptorBase<PutRoleMappingDescriptor, PutRoleMappingRequestParameters, IPutRoleMappingRequest>, IPutRoleMappingRequest
462464
{
463465
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityPutRoleMapping;
464-
///<summary>/_security/role_mapping/{name}</summary>
465-
///<param name = "name">this parameter is required</param>
466+
///<summary>/_security/role_mapping/{name}</summary>
467+
///<param name = "name">this parameter is required</param>
466468
public PutRoleMappingDescriptor(Name name): base(r => r.Required("name", name))
467469
{
468470
}
469471

470-
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
472+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
471473
[SerializationConstructor]
472474
protected PutRoleMappingDescriptor(): base()
473475
{
@@ -484,13 +486,13 @@ protected PutRoleMappingDescriptor(): base()
484486
public partial class PutUserDescriptor : RequestDescriptorBase<PutUserDescriptor, PutUserRequestParameters, IPutUserRequest>, IPutUserRequest
485487
{
486488
internal override ApiUrls ApiUrls => ApiUrlsLookups.SecurityPutUser;
487-
///<summary>/_security/user/{username}</summary>
488-
///<param name = "username">this parameter is required</param>
489+
///<summary>/_security/user/{username}</summary>
490+
///<param name = "username">this parameter is required</param>
489491
public PutUserDescriptor(Name username): base(r => r.Required("username", username))
490492
{
491493
}
492494

493-
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
495+
///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
494496
[SerializationConstructor]
495497
protected PutUserDescriptor(): base()
496498
{

src/Nest/Requests.Security.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,6 +468,13 @@ public string Name
468468
set => Q("name", value);
469469
}
470470

471+
///<summary>flag to query API keys owned by the currently authenticated user</summary>
472+
public bool? Owner
473+
{
474+
get => Q<bool? >("owner");
475+
set => Q("owner", value);
476+
}
477+
471478
///<summary>realm name of the user who created this API key to be retrieved</summary>
472479
public string RealmName
473480
{

src/Nest/XPack/Security/ApiKey/InvalidateApiKey/InvalidateApiKeyRequest.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@ public partial interface IInvalidateApiKeyRequest
2828
/// </summary>
2929
[DataMember(Name = "username")]
3030
string Username { get; set; }
31+
32+
/// <summary>
33+
/// A boolean flag that can be used to query API keys owned by the currently authenticated user. Defaults to false.
34+
/// The RealmName or Username parameters cannot be specified when this parameter is set to true as they are
35+
/// assumed to be the currently authenticated ones.
36+
/// </summary>
37+
[DataMember(Name = "owner")]
38+
bool? Owner { get; set; }
3139
}
3240

3341
public partial class InvalidateApiKeyRequest
@@ -43,6 +51,9 @@ public partial class InvalidateApiKeyRequest
4351

4452
/// <inheritdoc />
4553
public string Username { get; set; }
54+
55+
/// <inheritdoc />
56+
public bool? Owner { get; set; }
4657
}
4758

4859
public partial class InvalidateApiKeyDescriptor
@@ -59,6 +70,9 @@ public partial class InvalidateApiKeyDescriptor
5970
/// <inheritdoc />
6071
string IInvalidateApiKeyRequest.Username { get; set; }
6172

73+
/// <inheritdoc />
74+
bool? IInvalidateApiKeyRequest.Owner { get; set; }
75+
6276
/// <inheritdoc cref="IInvalidateApiKeyRequest.Id" />
6377
public InvalidateApiKeyDescriptor Id(string id) => Assign(id, (a, v) => a.Id = v);
6478

@@ -70,5 +84,8 @@ public partial class InvalidateApiKeyDescriptor
7084

7185
/// <inheritdoc cref="IInvalidateApiKeyRequest.Username" />
7286
public InvalidateApiKeyDescriptor Username(string username) => Assign(username, (a, v) => a.Username = v);
87+
88+
/// <inheritdoc cref="IInvalidateApiKeyRequest.Owner" />
89+
public InvalidateApiKeyDescriptor Owner(bool? owner = true) => Assign(owner, (a, v) => a.Owner = v);
7390
}
7491
}

0 commit comments

Comments
 (0)