diff --git a/src/VaultSharp/Backends/Secret/Models/CredentialLeaseSettings.cs b/src/VaultSharp/Backends/Secret/Models/CredentialLeaseSettings.cs index 63736ff6..96946f6d 100644 --- a/src/VaultSharp/Backends/Secret/Models/CredentialLeaseSettings.cs +++ b/src/VaultSharp/Backends/Secret/Models/CredentialLeaseSettings.cs @@ -14,8 +14,8 @@ public class CredentialLeaseSettings /// /// The duration of the lease. /// - [JsonProperty("lease")] - public string LeaseDuration { get; set; } + [JsonProperty("ttl")] + public string TimeToLive { get; set; } /// /// [required] @@ -24,7 +24,7 @@ public class CredentialLeaseSettings /// /// The maximum duration of the lease. /// - [JsonProperty("lease_max")] - public string MaximumLeaseDuration { get; set; } + [JsonProperty("ttl_max")] + public string MaximumTimeToLive { get; set; } } } \ No newline at end of file diff --git a/src/VaultSharp/Backends/Secret/Models/ListInfo.cs b/src/VaultSharp/Backends/Secret/Models/ListInfo.cs new file mode 100644 index 00000000..11c81796 --- /dev/null +++ b/src/VaultSharp/Backends/Secret/Models/ListInfo.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace VaultSharp.Backends.Secret.Models +{ + /// + /// Represents the list of keys. + /// + public class ListInfo + { + /// + /// Gets or sets the keys. + /// + /// + /// The keys. + /// + [JsonProperty("keys")] + public List Keys { get; set; } + } +} \ No newline at end of file diff --git a/src/VaultSharp/IVaultClient.cs b/src/VaultSharp/IVaultClient.cs index efec051b..aa5b4a9b 100644 --- a/src/VaultSharp/IVaultClient.cs +++ b/src/VaultSharp/IVaultClient.cs @@ -902,7 +902,7 @@ public interface IVaultClient Task GenericDeleteSecretAsync(string locationPath, string genericBackendMountPoint = SecretBackendDefaultMountPoints.Generic); /// - /// Configures the connection information used to communicate with Microsoft Sql. + /// Configures the connection information used to communicate with Microsoft Sql Server. /// This API is a root protected call. /// /// [required] @@ -957,6 +957,17 @@ public interface IVaultClient /// Task> MicrosoftSqlReadNamedRoleAsync(string microsoftSqlRoleName, string microsoftSqlBackendMountPoint = SecretBackendDefaultMountPoints.MicrosoftSql); + /// + /// Returns a list of available roles. Only the role names are returned, not any values. + /// + /// [optional] + /// The mount point for the MicrosoftSql backend. Defaults to + /// Provide a value only if you have customized the MicrosoftSql mount point. + /// + /// A list of available roles. Only the role names are returned, not any values. + /// + Task> MicrosoftSqlReadAllRolesAsync(string microsoftSqlBackendMountPoint = SecretBackendDefaultMountPoints.MicrosoftSql); + /// /// Deletes a named MicrosoftSql role definition /// diff --git a/src/VaultSharp/VaultClient.cs b/src/VaultSharp/VaultClient.cs index 5eb69aa1..09109e11 100644 --- a/src/VaultSharp/VaultClient.cs +++ b/src/VaultSharp/VaultClient.cs @@ -771,6 +771,14 @@ public async Task> MicrosoftSqlReadNamedRoleA return result; } + public async Task> MicrosoftSqlReadAllRolesAsync(string microsoftSqlBackendMountPoint = SecretBackendDefaultMountPoints.MicrosoftSql) + { + Checker.NotNull(microsoftSqlBackendMountPoint, "microsoftSqlBackendMountPoint"); + + var result = await MakeVaultApiRequest>(microsoftSqlBackendMountPoint.Trim('/') + "/roles/?list=true", HttpMethod.Get).ConfigureAwait(continueOnCapturedContext: _continueAsyncTasksOnCapturedContext); + return result; + } + public async Task MicrosoftSqlDeleteNamedRoleAsync(string microsoftSqlRoleName, string microsoftSqlBackendMountPoint = SecretBackendDefaultMountPoints.MicrosoftSql) { Checker.NotNull(microsoftSqlBackendMountPoint, "microsoftSqlBackendMountPoint"); diff --git a/src/VaultSharp/VaultSharp.csproj b/src/VaultSharp/VaultSharp.csproj index fb3e09dd..641759f2 100644 --- a/src/VaultSharp/VaultSharp.csproj +++ b/src/VaultSharp/VaultSharp.csproj @@ -62,6 +62,7 @@ + diff --git a/test/VaultSharp.UnitTests/End2End/VaultClientEnd2EndTests.cs b/test/VaultSharp.UnitTests/End2End/VaultClientEnd2EndTests.cs index a1e5299f..17513aa4 100644 --- a/test/VaultSharp.UnitTests/End2End/VaultClientEnd2EndTests.cs +++ b/test/VaultSharp.UnitTests/End2End/VaultClientEnd2EndTests.cs @@ -1271,8 +1271,8 @@ await _authenticatedClient.MySqlConfigureConnectionAsync(new MySqlConnectionInfo await _authenticatedClient.MySqlConfigureCredentialLeaseSettingsAsync(new CredentialLeaseSettings() { - LeaseDuration = "1h", - MaximumLeaseDuration = "2h" + TimeToLive = "1h", + MaximumTimeToLive = "2h" }, mountPoint); await _authenticatedClient.MySqlWriteNamedRoleAsync(role, new MySqlRoleDefinition()