@@ -89,3 +89,37 @@ function deleteregisteredmodel(instance::MLFlow, name::String)::Bool
89
89
mlfdelete (instance, " registered-models/delete" ; name= name)
90
90
return true
91
91
end
92
+
93
+ """
94
+ searchregisteredmodels(instance::MLFlow, filter::String, max_results::Int64,
95
+ order_by::String, page_token::String)
96
+
97
+ # Arguments
98
+ - `instance:` [`MLFlow`](@ref) configuration.
99
+ - `filter`: String filter condition. See [MLFlow documentation](https://mlflow.org/docs/latest/rest-api.html#search-registeredmodels).
100
+ - `max_results`: Maximum number of models desired.
101
+ - `order_by`: List of columns for ordering search results, which can include model name
102
+ and last updated timestamp with an optional “DESC” or “ASC” annotation, where “ASC” is
103
+ the default. Tiebreaks are done by model name ASC.
104
+ - `page_token`: Pagination token to go to the next page based on a previous search query.
105
+
106
+ # Returns
107
+ - Vector of [`RegisteredModel`](@ref) that were found in the [`MLFlow`](@ref) instance.
108
+ - The next page token if there are more results.
109
+ """
110
+ function searchregisteredmodels (instance:: MLFlow ; filter:: String = " " ,
111
+ max_results:: Int64 = 100 , order_by:: Array{String} = String[],
112
+ page_token:: String = " " ):: Tuple{Array{RegisteredModel}, Union{String, Nothing}}
113
+ parameters = (; max_results, page_token, filter)
114
+
115
+ if order_by |> ! isempty
116
+ parameters = (; order_by, parameters... )
117
+ end
118
+
119
+ result = mlfget (instance, " registered-models/search" ; parameters... )
120
+
121
+ registered_models = get (result, " registered_models" , []) |> (x -> [RegisteredModel (y) for y in x])
122
+ next_page_token = get (result, " next_page_token" , nothing )
123
+
124
+ return registered_models, next_page_token
125
+ end
0 commit comments