@@ -33,6 +33,318 @@ public class CompositionClient(
33
33
).apply { shuffle() }
34
34
}
35
35
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
+
36
348
/* *
37
349
* Runs a query on a single composition and returns matching results.
38
350
*
@@ -56,6 +368,28 @@ public class CompositionClient(
56
368
)
57
369
}
58
370
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
+
59
393
/* *
60
394
* 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**.
61
395
*
0 commit comments