@@ -24,16 +24,21 @@ import type { SearchCompositionRulesResponse } from '../model/searchCompositionR
24
24
25
25
import type { SearchForFacetValuesResponse } from '../model/searchForFacetValuesResponse' ;
26
26
import type { SearchResponse } from '../model/searchResponse' ;
27
+ import type { TaskIDResponse } from '../model/taskIDResponse' ;
27
28
28
29
import type {
29
30
CustomDeleteProps ,
30
31
CustomGetProps ,
31
32
CustomPostProps ,
32
33
CustomPutProps ,
34
+ DeleteCompositionProps ,
35
+ DeleteCompositionRuleProps ,
33
36
GetCompositionProps ,
34
37
GetRuleProps ,
35
38
GetTaskProps ,
36
39
ListCompositionsProps ,
40
+ PutCompositionProps ,
41
+ PutCompositionRuleProps ,
37
42
SaveRulesProps ,
38
43
SearchCompositionRulesProps ,
39
44
SearchForFacetValuesProps ,
@@ -307,6 +312,80 @@ export function createCompositionClient({
307
312
return transporter . request ( request , requestOptions ) ;
308
313
} ,
309
314
315
+ /**
316
+ * Delete a composition from the current Algolia application.
317
+ *
318
+ * Required API Key ACLs:
319
+ * - editSettings
320
+ * - settings
321
+ * @param deleteComposition - The deleteComposition object.
322
+ * @param deleteComposition.compositionID - Unique Composition ObjectID.
323
+ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
324
+ */
325
+ deleteComposition (
326
+ { compositionID } : DeleteCompositionProps ,
327
+ requestOptions ?: RequestOptions ,
328
+ ) : Promise < TaskIDResponse > {
329
+ if ( ! compositionID ) {
330
+ throw new Error ( 'Parameter `compositionID` is required when calling `deleteComposition`.' ) ;
331
+ }
332
+
333
+ const requestPath = '/1/compositions/{compositionID}' . replace (
334
+ '{compositionID}' ,
335
+ encodeURIComponent ( compositionID ) ,
336
+ ) ;
337
+ const headers : Headers = { } ;
338
+ const queryParameters : QueryParameters = { } ;
339
+
340
+ const request : Request = {
341
+ method : 'DELETE' ,
342
+ path : requestPath ,
343
+ queryParameters,
344
+ headers,
345
+ } ;
346
+
347
+ return transporter . request ( request , requestOptions ) ;
348
+ } ,
349
+
350
+ /**
351
+ * Delete a Composition Rule from the specified Composition ID.
352
+ *
353
+ * Required API Key ACLs:
354
+ * - editSettings
355
+ * - settings
356
+ * @param deleteCompositionRule - The deleteCompositionRule object.
357
+ * @param deleteCompositionRule.compositionID - Unique Composition ObjectID.
358
+ * @param deleteCompositionRule.objectID - Unique identifier of a rule object.
359
+ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
360
+ */
361
+ deleteCompositionRule (
362
+ { compositionID, objectID } : DeleteCompositionRuleProps ,
363
+ requestOptions ?: RequestOptions ,
364
+ ) : Promise < TaskIDResponse > {
365
+ if ( ! compositionID ) {
366
+ throw new Error ( 'Parameter `compositionID` is required when calling `deleteCompositionRule`.' ) ;
367
+ }
368
+
369
+ if ( ! objectID ) {
370
+ throw new Error ( 'Parameter `objectID` is required when calling `deleteCompositionRule`.' ) ;
371
+ }
372
+
373
+ const requestPath = '/1/compositions/{compositionID}/rules/{objectID}'
374
+ . replace ( '{compositionID}' , encodeURIComponent ( compositionID ) )
375
+ . replace ( '{objectID}' , encodeURIComponent ( objectID ) ) ;
376
+ const headers : Headers = { } ;
377
+ const queryParameters : QueryParameters = { } ;
378
+
379
+ const request : Request = {
380
+ method : 'DELETE' ,
381
+ path : requestPath ,
382
+ queryParameters,
383
+ headers,
384
+ } ;
385
+
386
+ return transporter . request ( request , requestOptions ) ;
387
+ } ,
388
+
310
389
/**
311
390
* Retrieve a single composition in the current Algolia application.
312
391
*
@@ -482,6 +561,112 @@ export function createCompositionClient({
482
561
return transporter . request ( request , requestOptions ) ;
483
562
} ,
484
563
564
+ /**
565
+ * Upsert a composition in the current Algolia application.
566
+ *
567
+ * Required API Key ACLs:
568
+ * - editSettings
569
+ * - settings
570
+ * @param putComposition - The putComposition object.
571
+ * @param putComposition.compositionID - Unique Composition ObjectID.
572
+ * @param putComposition.composition - The composition object.
573
+ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
574
+ */
575
+ putComposition (
576
+ { compositionID, composition } : PutCompositionProps ,
577
+ requestOptions ?: RequestOptions ,
578
+ ) : Promise < TaskIDResponse > {
579
+ if ( ! compositionID ) {
580
+ throw new Error ( 'Parameter `compositionID` is required when calling `putComposition`.' ) ;
581
+ }
582
+
583
+ if ( ! composition ) {
584
+ throw new Error ( 'Parameter `composition` is required when calling `putComposition`.' ) ;
585
+ }
586
+
587
+ if ( ! composition . objectID ) {
588
+ throw new Error ( 'Parameter `composition.objectID` is required when calling `putComposition`.' ) ;
589
+ }
590
+ if ( ! composition . name ) {
591
+ throw new Error ( 'Parameter `composition.name` is required when calling `putComposition`.' ) ;
592
+ }
593
+ if ( ! composition . behavior ) {
594
+ throw new Error ( 'Parameter `composition.behavior` is required when calling `putComposition`.' ) ;
595
+ }
596
+
597
+ const requestPath = '/1/compositions/{compositionID}' . replace (
598
+ '{compositionID}' ,
599
+ encodeURIComponent ( compositionID ) ,
600
+ ) ;
601
+ const headers : Headers = { } ;
602
+ const queryParameters : QueryParameters = { } ;
603
+
604
+ const request : Request = {
605
+ method : 'PUT' ,
606
+ path : requestPath ,
607
+ queryParameters,
608
+ headers,
609
+ data : composition ,
610
+ } ;
611
+
612
+ return transporter . request ( request , requestOptions ) ;
613
+ } ,
614
+
615
+ /**
616
+ * Upsert a Composition Rule for the specified composition ID.
617
+ *
618
+ * Required API Key ACLs:
619
+ * - editSettings
620
+ * - settings
621
+ * @param putCompositionRule - The putCompositionRule object.
622
+ * @param putCompositionRule.compositionID - Unique Composition ObjectID.
623
+ * @param putCompositionRule.objectID - Unique identifier of a rule object.
624
+ * @param putCompositionRule.compositionRule - The compositionRule object.
625
+ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
626
+ */
627
+ putCompositionRule (
628
+ { compositionID, objectID, compositionRule } : PutCompositionRuleProps ,
629
+ requestOptions ?: RequestOptions ,
630
+ ) : Promise < TaskIDResponse > {
631
+ if ( ! compositionID ) {
632
+ throw new Error ( 'Parameter `compositionID` is required when calling `putCompositionRule`.' ) ;
633
+ }
634
+
635
+ if ( ! objectID ) {
636
+ throw new Error ( 'Parameter `objectID` is required when calling `putCompositionRule`.' ) ;
637
+ }
638
+
639
+ if ( ! compositionRule ) {
640
+ throw new Error ( 'Parameter `compositionRule` is required when calling `putCompositionRule`.' ) ;
641
+ }
642
+
643
+ if ( ! compositionRule . objectID ) {
644
+ throw new Error ( 'Parameter `compositionRule.objectID` is required when calling `putCompositionRule`.' ) ;
645
+ }
646
+ if ( ! compositionRule . conditions ) {
647
+ throw new Error ( 'Parameter `compositionRule.conditions` is required when calling `putCompositionRule`.' ) ;
648
+ }
649
+ if ( ! compositionRule . consequence ) {
650
+ throw new Error ( 'Parameter `compositionRule.consequence` is required when calling `putCompositionRule`.' ) ;
651
+ }
652
+
653
+ const requestPath = '/1/compositions/{compositionID}/rules/{objectID}'
654
+ . replace ( '{compositionID}' , encodeURIComponent ( compositionID ) )
655
+ . replace ( '{objectID}' , encodeURIComponent ( objectID ) ) ;
656
+ const headers : Headers = { } ;
657
+ const queryParameters : QueryParameters = { } ;
658
+
659
+ const request : Request = {
660
+ method : 'PUT' ,
661
+ path : requestPath ,
662
+ queryParameters,
663
+ headers,
664
+ data : compositionRule ,
665
+ } ;
666
+
667
+ return transporter . request ( request , requestOptions ) ;
668
+ } ,
669
+
485
670
/**
486
671
* Create or update or delete multiple composition rules.
487
672
*
0 commit comments