namespace ConsumePlugin open System open System.Collections.Generic open System.Text.Json.Serialization open System.Threading open System.Threading.Tasks open RestEase [] type JwtVaultAuthResponse = { [] ClientToken : string Accessor : string Policies : string list [] TokenPolicies : string list [] IdentityPolicies : string list [] LeaseDuration : int Renewable : bool [] TokenType : string [] EntityId : string Orphan : bool [] NumUses : int } [] type JwtVaultResponse = { [] RequestId : string [] LeaseId : string Renewable : bool [] LeaseDuration : int Auth : JwtVaultAuthResponse } [] type JwtSecretResponse = { [] RequestId : string [] LeaseId : string Renewable : bool [] LeaseDuration : int Data : IReadOnlyDictionary // These ones aren't actually part of the Vault response, but are here for tests Data2 : IDictionary Data3 : Dictionary Data4 : Map Data5 : IReadOnlyDictionary Data6 : IDictionary Data7 : Map Data8 : Dictionary } [] type IVaultClient = [] abstract GetSecret : jwt : JwtVaultResponse * [] path : string * [] mountPoint : string * ?ct : CancellationToken -> Task [] abstract GetJwt : role : string * jwt : string * ?ct : CancellationToken -> Task [] type IVaultClientNonExtensionMethod = [] abstract GetSecret : jwt : JwtVaultResponse * [] path : string * [] mountPoint : string * ?ct : CancellationToken -> Task [] abstract GetJwt : role : string * jwt : string * ?ct : CancellationToken -> Task [] type IVaultClientExtensionMethod = [] abstract GetSecret : jwt : JwtVaultResponse * [] path : string * [] mountPoint : string * ?ct : CancellationToken -> Task [] abstract GetJwt : role : string * jwt : string * ?ct : CancellationToken -> Task [] type VaultClientExtensionMethod = static member thisClashes = 99