@@ -33,6 +33,318 @@ public class CompositionClient(
3333 ).apply { shuffle() }
3434 }
3535
36+ /* *
37+ * This method lets you send requests to the Algolia REST API.
38+ * @param path Path of the endpoint, for example `1/newFeature`.
39+ * @param parameters Query parameters to apply to the current query.
40+ * @param requestOptions additional request configuration.
41+ */
42+ public suspend fun customDelete (path : String , parameters : Map <kotlin.String , Any >? = null, requestOptions : RequestOptions ? = null): JsonObject {
43+ require(path.isNotBlank()) { " Parameter `path` is required when calling `customDelete`." }
44+ val requestConfig = RequestConfig (
45+ method = RequestMethod .DELETE ,
46+ path = " /{path}" .replace(" {path}" , path),
47+ query = buildMap {
48+ parameters?.let { putAll(it) }
49+ },
50+ )
51+ return requester.execute(
52+ requestConfig = requestConfig,
53+ requestOptions = requestOptions,
54+ )
55+ }
56+
57+ /* *
58+ * This method lets you send requests to the Algolia REST API.
59+ * @param path Path of the endpoint, for example `1/newFeature`.
60+ * @param parameters Query parameters to apply to the current query.
61+ * @param requestOptions additional request configuration.
62+ */
63+ public suspend fun customGet (path : String , parameters : Map <kotlin.String , Any >? = null, requestOptions : RequestOptions ? = null): JsonObject {
64+ require(path.isNotBlank()) { " Parameter `path` is required when calling `customGet`." }
65+ val requestConfig = RequestConfig (
66+ method = RequestMethod .GET ,
67+ path = " /{path}" .replace(" {path}" , path),
68+ query = buildMap {
69+ parameters?.let { putAll(it) }
70+ },
71+ )
72+ return requester.execute(
73+ requestConfig = requestConfig,
74+ requestOptions = requestOptions,
75+ )
76+ }
77+
78+ /* *
79+ * This method lets you send requests to the Algolia REST API.
80+ * @param path Path of the endpoint, for example `1/newFeature`.
81+ * @param parameters Query parameters to apply to the current query.
82+ * @param body Parameters to send with the custom request.
83+ * @param requestOptions additional request configuration.
84+ */
85+ public suspend fun customPost (path : String , parameters : Map <kotlin.String , Any >? = null, body : JsonObject ? = null, requestOptions : RequestOptions ? = null): JsonObject {
86+ require(path.isNotBlank()) { " Parameter `path` is required when calling `customPost`." }
87+ val requestConfig = RequestConfig (
88+ method = RequestMethod .POST ,
89+ path = " /{path}" .replace(" {path}" , path),
90+ query = buildMap {
91+ parameters?.let { putAll(it) }
92+ },
93+ body = body,
94+ )
95+ return requester.execute(
96+ requestConfig = requestConfig,
97+ requestOptions = requestOptions,
98+ )
99+ }
100+
101+ /* *
102+ * This method lets you send requests to the Algolia REST API.
103+ * @param path Path of the endpoint, for example `1/newFeature`.
104+ * @param parameters Query parameters to apply to the current query.
105+ * @param body Parameters to send with the custom request.
106+ * @param requestOptions additional request configuration.
107+ */
108+ public suspend fun customPut (path : String , parameters : Map <kotlin.String , Any >? = null, body : JsonObject ? = null, requestOptions : RequestOptions ? = null): JsonObject {
109+ require(path.isNotBlank()) { " Parameter `path` is required when calling `customPut`." }
110+ val requestConfig = RequestConfig (
111+ method = RequestMethod .PUT ,
112+ path = " /{path}" .replace(" {path}" , path),
113+ query = buildMap {
114+ parameters?.let { putAll(it) }
115+ },
116+ body = body,
117+ )
118+ return requester.execute(
119+ requestConfig = requestConfig,
120+ requestOptions = requestOptions,
121+ )
122+ }
123+
124+ /* *
125+ * Delete a composition from the current Algolia application.
126+ *
127+ * Required API Key ACLs:
128+ * - editSettings
129+ * @param compositionID Unique Composition ObjectID.
130+ * @param requestOptions additional request configuration.
131+ */
132+ public suspend fun deleteComposition (compositionID : String , requestOptions : RequestOptions ? = null): TaskIDResponse {
133+ require(compositionID.isNotBlank()) { " Parameter `compositionID` is required when calling `deleteComposition`." }
134+ val requestConfig = RequestConfig (
135+ method = RequestMethod .DELETE ,
136+ path = listOf (" 1" , " compositions" , " $compositionID " ),
137+ )
138+ return requester.execute(
139+ requestConfig = requestConfig,
140+ requestOptions = requestOptions,
141+ )
142+ }
143+
144+ /* *
145+ * Delete a Composition Rule from the specified Composition ID.
146+ *
147+ * Required API Key ACLs:
148+ * - editSettings
149+ * @param compositionID Unique Composition ObjectID.
150+ * @param objectID Unique identifier of a rule object.
151+ * @param requestOptions additional request configuration.
152+ */
153+ public suspend fun deleteCompositionRule (compositionID : String , objectID : String , requestOptions : RequestOptions ? = null): TaskIDResponse {
154+ require(compositionID.isNotBlank()) { " Parameter `compositionID` is required when calling `deleteCompositionRule`." }
155+ require(objectID.isNotBlank()) { " Parameter `objectID` is required when calling `deleteCompositionRule`." }
156+ val requestConfig = RequestConfig (
157+ method = RequestMethod .DELETE ,
158+ path = listOf (" 1" , " compositions" , " $compositionID " , " rules" , " $objectID " ),
159+ )
160+ return requester.execute(
161+ requestConfig = requestConfig,
162+ requestOptions = requestOptions,
163+ )
164+ }
165+
166+ /* *
167+ * Retrieve a single composition in the current Algolia application.
168+ *
169+ * Required API Key ACLs:
170+ * - editSettings
171+ * - settings
172+ * @param compositionID Unique Composition ObjectID.
173+ * @param requestOptions additional request configuration.
174+ */
175+ public suspend fun getComposition (compositionID : String , requestOptions : RequestOptions ? = null): Composition {
176+ require(compositionID.isNotBlank()) { " Parameter `compositionID` is required when calling `getComposition`." }
177+ val requestConfig = RequestConfig (
178+ method = RequestMethod .GET ,
179+ path = listOf (" 1" , " compositions" , " $compositionID " ),
180+ )
181+ return requester.execute(
182+ requestConfig = requestConfig,
183+ requestOptions = requestOptions,
184+ )
185+ }
186+
187+ /* *
188+ * Retrieves a rule by its ID. To find the object ID of rules, use the [`search` operation](#tag/Rules/operation/searchRules).
189+ *
190+ * Required API Key ACLs:
191+ * - editSettings
192+ * - settings
193+ * @param compositionID Unique Composition ObjectID.
194+ * @param objectID Unique identifier of a rule object.
195+ * @param requestOptions additional request configuration.
196+ */
197+ public suspend fun getRule (compositionID : String , objectID : String , requestOptions : RequestOptions ? = null): CompositionRule {
198+ require(compositionID.isNotBlank()) { " Parameter `compositionID` is required when calling `getRule`." }
199+ require(objectID.isNotBlank()) { " Parameter `objectID` is required when calling `getRule`." }
200+ val requestConfig = RequestConfig (
201+ method = RequestMethod .GET ,
202+ path = listOf (" 1" , " compositions" , " $compositionID " , " rules" , " $objectID " ),
203+ )
204+ return requester.execute(
205+ requestConfig = requestConfig,
206+ requestOptions = requestOptions,
207+ )
208+ }
209+
210+ /* *
211+ * Checks the status of a given task.
212+ *
213+ * Required API Key ACLs:
214+ * - editSettings
215+ * - settings
216+ * - addObject
217+ * - deleteObject
218+ * - deleteIndex
219+ * @param compositionID Unique Composition ObjectID.
220+ * @param taskID Unique task identifier.
221+ * @param requestOptions additional request configuration.
222+ */
223+ public suspend fun getTask (compositionID : String , taskID : Long , requestOptions : RequestOptions ? = null): GetTaskResponse {
224+ require(compositionID.isNotBlank()) { " Parameter `compositionID` is required when calling `getTask`." }
225+ val requestConfig = RequestConfig (
226+ method = RequestMethod .GET ,
227+ path = listOf (" 1" , " compositions" , " $compositionID " , " task" , " $taskID " ),
228+ )
229+ return requester.execute(
230+ requestConfig = requestConfig,
231+ requestOptions = requestOptions,
232+ )
233+ }
234+
235+ /* *
236+ * Lists all compositions in the current Algolia application.
237+ *
238+ * Required API Key ACLs:
239+ * - editSettings
240+ * - settings
241+ * @param page Requested page of the API response. If `null`, the API response is not paginated.
242+ * @param hitsPerPage Number of hits per page. (default to 100)
243+ * @param requestOptions additional request configuration.
244+ */
245+ public suspend fun listCompositions (page : Int? = null, hitsPerPage : Int? = null, requestOptions : RequestOptions ? = null): ListCompositionsResponse {
246+ val requestConfig = RequestConfig (
247+ method = RequestMethod .GET ,
248+ path = listOf (" 1" , " compositions" ),
249+ query = buildMap {
250+ page?.let { put(" page" , it) }
251+ hitsPerPage?.let { put(" hitsPerPage" , it) }
252+ },
253+ )
254+ return requester.execute(
255+ requestConfig = requestConfig,
256+ requestOptions = requestOptions,
257+ )
258+ }
259+
260+ /* *
261+ * Adds, updates, or deletes compositions with a single API request.
262+ *
263+ * Required API Key ACLs:
264+ * - editSettings
265+ * @param batchParams
266+ * @param requestOptions additional request configuration.
267+ */
268+ public suspend fun multipleBatch (batchParams : BatchParams , requestOptions : RequestOptions ? = null): MultipleBatchResponse {
269+ val requestConfig = RequestConfig (
270+ method = RequestMethod .POST ,
271+ path = listOf (" 1" , " compositions" , " *" , " batch" ),
272+ body = batchParams,
273+ )
274+ return requester.execute(
275+ requestConfig = requestConfig,
276+ requestOptions = requestOptions,
277+ )
278+ }
279+
280+ /* *
281+ * Upsert a composition in the current Algolia application.
282+ *
283+ * Required API Key ACLs:
284+ * - editSettings
285+ * @param compositionID Unique Composition ObjectID.
286+ * @param composition
287+ * @param requestOptions additional request configuration.
288+ */
289+ public suspend fun putComposition (compositionID : String , composition : Composition , requestOptions : RequestOptions ? = null): TaskIDResponse {
290+ require(compositionID.isNotBlank()) { " Parameter `compositionID` is required when calling `putComposition`." }
291+ val requestConfig = RequestConfig (
292+ method = RequestMethod .PUT ,
293+ path = listOf (" 1" , " compositions" , " $compositionID " ),
294+ body = composition,
295+ )
296+ return requester.execute(
297+ requestConfig = requestConfig,
298+ requestOptions = requestOptions,
299+ )
300+ }
301+
302+ /* *
303+ * Upsert a Composition Rule for the specified composition ID.
304+ *
305+ * Required API Key ACLs:
306+ * - editSettings
307+ * @param compositionID Unique Composition ObjectID.
308+ * @param objectID Unique identifier of a rule object.
309+ * @param compositionRule
310+ * @param requestOptions additional request configuration.
311+ */
312+ public suspend fun putCompositionRule (compositionID : String , objectID : String , compositionRule : CompositionRule , requestOptions : RequestOptions ? = null): TaskIDResponse {
313+ require(compositionID.isNotBlank()) { " Parameter `compositionID` is required when calling `putCompositionRule`." }
314+ require(objectID.isNotBlank()) { " Parameter `objectID` is required when calling `putCompositionRule`." }
315+ val requestConfig = RequestConfig (
316+ method = RequestMethod .PUT ,
317+ path = listOf (" 1" , " compositions" , " $compositionID " , " rules" , " $objectID " ),
318+ body = compositionRule,
319+ )
320+ return requester.execute(
321+ requestConfig = requestConfig,
322+ requestOptions = requestOptions,
323+ )
324+ }
325+
326+ /* *
327+ * Create or update or delete multiple composition rules.
328+ *
329+ * Required API Key ACLs:
330+ * - editSettings
331+ * @param compositionID Unique Composition ObjectID.
332+ * @param rules
333+ * @param requestOptions additional request configuration.
334+ */
335+ public suspend fun saveRules (compositionID : String , rules : CompositionRulesBatchParams , requestOptions : RequestOptions ? = null): RulesMultipleBatchResponse {
336+ require(compositionID.isNotBlank()) { " Parameter `compositionID` is required when calling `saveRules`." }
337+ val requestConfig = RequestConfig (
338+ method = RequestMethod .POST ,
339+ path = listOf (" 1" , " compositions" , " $compositionID " , " rules" , " batch" ),
340+ body = rules,
341+ )
342+ return requester.execute(
343+ requestConfig = requestConfig,
344+ requestOptions = requestOptions,
345+ )
346+ }
347+
36348 /* *
37349 * Runs a query on a single composition and returns matching results.
38350 *
@@ -56,6 +368,28 @@ public class CompositionClient(
56368 )
57369 }
58370
371+ /* *
372+ * Searches for composition rules in your index.
373+ *
374+ * Required API Key ACLs:
375+ * - settings
376+ * @param compositionID Unique Composition ObjectID.
377+ * @param searchCompositionRulesParams
378+ * @param requestOptions additional request configuration.
379+ */
380+ public suspend fun searchCompositionRules (compositionID : String , searchCompositionRulesParams : SearchCompositionRulesParams ? = null, requestOptions : RequestOptions ? = null): SearchCompositionRulesResponse {
381+ require(compositionID.isNotBlank()) { " Parameter `compositionID` is required when calling `searchCompositionRules`." }
382+ val requestConfig = RequestConfig (
383+ method = RequestMethod .POST ,
384+ path = listOf (" 1" , " compositions" , " $compositionID " , " rules" , " search" ),
385+ body = searchCompositionRulesParams,
386+ )
387+ return requester.execute(
388+ requestConfig = requestConfig,
389+ requestOptions = requestOptions,
390+ )
391+ }
392+
59393 /* *
60394 * Searches for values of a specified facet attribute on the composition's main source's index. - By default, facet values are sorted by decreasing count. You can adjust this with the `sortFacetValueBy` parameter. - Searching for facet values doesn't work if you have **more than 65 searchable facets and searchable attributes combined**.
61395 *
0 commit comments