@@ -46,10 +46,14 @@ public class DatabaseAdminAstra : IDatabaseAdmin
4646 internal DatabaseAdminAstra ( Database database , DataApiClient client , CommandOptions adminOptions )
4747 {
4848 Guard . NotNull ( client , nameof ( client ) ) ;
49+ if ( database . DatabaseId == null )
50+ {
51+ throw new ArgumentException ( "Database must have a valid DatabaseId to use DatabaseAdminAstra" , nameof ( database ) ) ;
52+ }
4953 _client = client ;
5054 _adminOptions = adminOptions ;
5155 _database = database ;
52- _id = _database . DatabaseId ;
56+ _id = _database . DatabaseId . Value ;
5357 }
5458
5559 /// <summary>
@@ -575,6 +579,97 @@ internal async Task<FindEmbeddingProvidersResult> FindEmbeddingProvidersAsync(Co
575579 return response . Result ;
576580 }
577581
582+ /// <summary>
583+ /// Finds and returns available reranking providers for the current database.
584+ /// </summary>
585+ /// <returns>A <see cref="FindRerankingProvidersResult"/> containing the discovered providers.</returns>
586+ /// <example>
587+ /// <code>
588+ /// var providers = admin.FindRerankingProviders();
589+ /// </code>
590+ /// </example>
591+ public FindRerankingProvidersResult FindRerankingProviders ( )
592+ {
593+ return FindRerankingProvidersAsync ( null , true ) . ResultSync ( ) ;
594+ }
595+
596+ /// <summary>
597+ /// Asynchronously finds and returns available reranking providers for the current database.
598+ /// </summary>
599+ /// <returns>
600+ /// A task that resolves to a <see cref="FindRerankingProvidersResult"/> containing the discovered providers.
601+ /// </returns>
602+ /// <example>
603+ /// <code>
604+ /// var providers = await admin.FindRerankingProvidersAsync();
605+ /// </code>
606+ /// </example>
607+ public Task < FindRerankingProvidersResult > FindRerankingProvidersAsync ( )
608+ {
609+ return FindRerankingProvidersAsync ( null , false ) ;
610+ }
611+
612+ /// <summary>
613+ /// Finds and returns available reranking providers for the current database using the specified command options.
614+ /// </summary>
615+ /// <param name="options">Optional settings that influence request execution.</param>
616+ /// <returns>A <see cref="FindRerankingProvidersResult"/> containing the discovered providers.</returns>
617+ /// <example>
618+ /// <code>
619+ /// var providers = admin.FindRerankingProviders(options);
620+ /// </code>
621+ /// </example>
622+ public FindRerankingProvidersResult FindRerankingProviders ( FindRerankingProvidersCommandOptions options )
623+ {
624+ return FindRerankingProvidersAsync ( options , true ) . ResultSync ( ) ;
625+ }
626+
627+ /// <summary>
628+ /// Asynchronously finds and returns available reranking providers for the current database
629+ /// using the specified command options.
630+ /// </summary>
631+ /// <param name="options">Optional settings that influence request execution.</param>
632+ /// <returns>
633+ /// A task that resolves to a <see cref="FindRerankingProvidersResult"/> containing the discovered providers.
634+ /// </returns>
635+ /// <example>
636+ /// <code>
637+ /// var providers = await admin.FindRerankingProvidersAsync(options);
638+ /// </code>
639+ /// </example>
640+ public Task < FindRerankingProvidersResult > FindRerankingProvidersAsync ( FindRerankingProvidersCommandOptions options )
641+ {
642+ return FindRerankingProvidersAsync ( options , false ) ;
643+ }
644+
645+ internal async Task < FindRerankingProvidersResult > FindRerankingProvidersAsync ( FindRerankingProvidersCommandOptions options , bool runSynchronously )
646+ {
647+ if ( options == null )
648+ {
649+ options = new FindRerankingProvidersCommandOptions ( ) ;
650+ }
651+ options . DeserializeToObjectDictionary = true ;
652+ var command = CreateCommandEmbedding ( )
653+ . AddCommandOptions ( options )
654+ . WithTimeoutManager ( new DatabaseAdminTimeoutManager ( ) )
655+ . WithPayload ( new
656+ {
657+ findRerankingProviders = new
658+ {
659+ options = new
660+ {
661+ filterModelStatus = options . StatusString
662+ }
663+ }
664+ } ) ;
665+
666+ var response = await command
667+ . RunAsyncReturnStatus < FindRerankingProvidersResult > ( runSynchronously )
668+ . ConfigureAwait ( false ) ;
669+
670+ return response . Result ;
671+ }
672+
578673 private Command CreateCommandAdmin ( )
579674 {
580675 return new Command ( _database . Client , _optionsTree , new AdminCommandUrlBuilder ( ) ) ;
@@ -584,6 +679,5 @@ private Command CreateCommandEmbedding()
584679 {
585680 return new Command ( _database . Client , _optionsTree , new EmbeddingCommandUrlBuilder ( _database ) ) ;
586681 }
587-
588682 }
589683}
0 commit comments