@@ -24,16 +24,21 @@ import type { SearchCompositionRulesResponse } from '../model/searchCompositionR
2424
2525import type { SearchForFacetValuesResponse } from '../model/searchForFacetValuesResponse' ;
2626import type { SearchResponse } from '../model/searchResponse' ;
27+ import type { TaskIDResponse } from '../model/taskIDResponse' ;
2728
2829import type {
2930 CustomDeleteProps ,
3031 CustomGetProps ,
3132 CustomPostProps ,
3233 CustomPutProps ,
34+ DeleteCompositionProps ,
35+ DeleteCompositionRuleProps ,
3336 GetCompositionProps ,
3437 GetRuleProps ,
3538 GetTaskProps ,
3639 ListCompositionsProps ,
40+ PutCompositionProps ,
41+ PutCompositionRuleProps ,
3742 SaveRulesProps ,
3843 SearchCompositionRulesProps ,
3944 SearchForFacetValuesProps ,
@@ -307,6 +312,80 @@ export function createCompositionClient({
307312 return transporter . request ( request , requestOptions ) ;
308313 } ,
309314
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+
310389 /**
311390 * Retrieve a single composition in the current Algolia application.
312391 *
@@ -482,6 +561,112 @@ export function createCompositionClient({
482561 return transporter . request ( request , requestOptions ) ;
483562 } ,
484563
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+
485670 /**
486671 * Create or update or delete multiple composition rules.
487672 *
0 commit comments