@kadoa/node-sdk 0.11.0 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -464,13 +464,15 @@ type CreateRuleStatusEnum = typeof CreateRuleStatusEnum[keyof typeof CreateRuleS
464
464
  * https://openapi-generator.tech
465
465
  * Do not edit the class manually.
466
466
  */
467
- /**
468
- * Comparison results between expected and actual data schema
469
- */
470
- interface SchemaValidationResult {
471
- 'missingColumns': Array<string>;
472
- 'missingRequiredColumns': Array<string>;
473
- 'extraColumns': Array<string>;
467
+ interface ExtractionClassificationFieldCategoriesInner {
468
+ /**
469
+ * Short title/label of the category
470
+ */
471
+ 'title': string;
472
+ /**
473
+ * Full definition/description of the category
474
+ */
475
+ 'definition': string;
474
476
  }
475
477
 
476
478
  /**
@@ -484,10 +486,29 @@ interface SchemaValidationResult {
484
486
  * https://openapi-generator.tech
485
487
  * Do not edit the class manually.
486
488
  */
489
+
487
490
  /**
488
- * @type ValidationCompletedAt
491
+ * Categorizes extracted data into predefined labels based on the content
489
492
  */
490
- type ValidationCompletedAt = string;
493
+ interface ExtractionClassificationField {
494
+ /**
495
+ * Field name (letters and numbers only)
496
+ */
497
+ 'name': string;
498
+ /**
499
+ * Field description
500
+ */
501
+ 'description': string;
502
+ 'fieldType': ExtractionClassificationFieldFieldTypeEnum;
503
+ /**
504
+ * List of predefined categories for classification
505
+ */
506
+ 'categories': Array<ExtractionClassificationFieldCategoriesInner>;
507
+ }
508
+ declare const ExtractionClassificationFieldFieldTypeEnum: {
509
+ readonly Classification: "CLASSIFICATION";
510
+ };
511
+ type ExtractionClassificationFieldFieldTypeEnum = typeof ExtractionClassificationFieldFieldTypeEnum[keyof typeof ExtractionClassificationFieldFieldTypeEnum];
491
512
 
492
513
  /**
493
514
  * Kadoa API
@@ -501,9 +522,33 @@ type ValidationCompletedAt = string;
501
522
  * Do not edit the class manually.
502
523
  */
503
524
  /**
504
- * @type ValidationCreatedAt
525
+ * Exposes the raw page content in different formats (HTML, Markdown) for further processing
505
526
  */
506
- type ValidationCreatedAt = string;
527
+ interface ExtractionMetadataField {
528
+ /**
529
+ * Field name (letters and numbers only)
530
+ */
531
+ 'name': string;
532
+ /**
533
+ * Field description
534
+ */
535
+ 'description': string;
536
+ 'fieldType': ExtractionMetadataFieldFieldTypeEnum;
537
+ /**
538
+ * Key of the metadata field (html or markdown)
539
+ */
540
+ 'metadataKey': ExtractionMetadataFieldMetadataKeyEnum;
541
+ }
542
+ declare const ExtractionMetadataFieldFieldTypeEnum: {
543
+ readonly Metadata: "METADATA";
544
+ };
545
+ type ExtractionMetadataFieldFieldTypeEnum = typeof ExtractionMetadataFieldFieldTypeEnum[keyof typeof ExtractionMetadataFieldFieldTypeEnum];
546
+ declare const ExtractionMetadataFieldMetadataKeyEnum: {
547
+ readonly Html: "HTML";
548
+ readonly Markdown: "MARKDOWN";
549
+ readonly PageUrl: "PAGE_URL";
550
+ };
551
+ type ExtractionMetadataFieldMetadataKeyEnum = typeof ExtractionMetadataFieldMetadataKeyEnum[keyof typeof ExtractionMetadataFieldMetadataKeyEnum];
507
552
 
508
553
  /**
509
554
  * Kadoa API
@@ -517,11 +562,10 @@ type ValidationCreatedAt = string;
517
562
  * Do not edit the class manually.
518
563
  */
519
564
  /**
520
- * Optional parameters for the rule execution
565
+ * @type ExtractionSchemaFieldExample
566
+ * Example value for the field
521
567
  */
522
- interface DynamicRuleConfigParameters {
523
- 'sql'?: string;
524
- }
568
+ type ExtractionSchemaFieldExample = Array<string> | string;
525
569
 
526
570
  /**
527
571
  * Kadoa API
@@ -536,31 +580,55 @@ interface DynamicRuleConfigParameters {
536
580
  */
537
581
 
538
582
  /**
539
- * Configuration for custom SQL validation rules with optional parameters
583
+ * Extracts and structures specific data from web pages (e.g., product prices, article titles)
540
584
  */
541
- interface DynamicRuleConfig {
585
+ interface ExtractionSchemaField {
542
586
  /**
543
- * Rule name
587
+ * Field name (letters and numbers only)
544
588
  */
545
589
  'name': string;
546
590
  /**
547
- * What the rule checks for
591
+ * Field description
548
592
  */
549
593
  'description': string;
594
+ 'fieldType'?: ExtractionSchemaFieldFieldTypeEnum;
595
+ 'example'?: ExtractionSchemaFieldExample;
550
596
  /**
551
- * Execution type for dynamic rules
597
+ * Data type of the field
552
598
  */
553
- 'ruleType': DynamicRuleConfigRuleTypeEnum;
599
+ 'dataType': ExtractionSchemaFieldDataTypeEnum;
554
600
  /**
555
- * Columns to which the rule applies
601
+ * Whether the field is a key field
556
602
  */
557
- 'targetColumns'?: Array<string>;
558
- 'parameters': DynamicRuleConfigParameters;
603
+ 'isKey'?: boolean;
559
604
  }
560
- declare const DynamicRuleConfigRuleTypeEnum: {
561
- readonly CustomSql: "custom_sql";
605
+ declare const ExtractionSchemaFieldFieldTypeEnum: {
606
+ readonly Schema: "SCHEMA";
562
607
  };
563
- type DynamicRuleConfigRuleTypeEnum = typeof DynamicRuleConfigRuleTypeEnum[keyof typeof DynamicRuleConfigRuleTypeEnum];
608
+ type ExtractionSchemaFieldFieldTypeEnum = typeof ExtractionSchemaFieldFieldTypeEnum[keyof typeof ExtractionSchemaFieldFieldTypeEnum];
609
+ declare const ExtractionSchemaFieldDataTypeEnum: {
610
+ readonly String: "STRING";
611
+ readonly Number: "NUMBER";
612
+ readonly Boolean: "BOOLEAN";
613
+ readonly Date: "DATE";
614
+ readonly Datetime: "DATETIME";
615
+ readonly Currency: "CURRENCY";
616
+ readonly Money: "MONEY";
617
+ readonly Image: "IMAGE";
618
+ readonly Link: "LINK";
619
+ readonly Object: "OBJECT";
620
+ readonly Array: "ARRAY";
621
+ readonly JobDescription: "JOB_DESCRIPTION";
622
+ readonly CategoryJobTypes: "CATEGORY_JOB_TYPES";
623
+ readonly Classification: "CLASSIFICATION";
624
+ readonly Categorize: "CATEGORIZE";
625
+ readonly StaticScraperData: "STATIC_SCRAPER_DATA";
626
+ readonly UniqueId: "UNIQUE_ID";
627
+ readonly JobbirdCustom: "JOBBIRD_CUSTOM";
628
+ readonly Pass: "PASS";
629
+ readonly AdditionalData: "ADDITIONAL_DATA";
630
+ };
631
+ type ExtractionSchemaFieldDataTypeEnum = typeof ExtractionSchemaFieldDataTypeEnum[keyof typeof ExtractionSchemaFieldDataTypeEnum];
564
632
 
565
633
  /**
566
634
  * Kadoa API
@@ -573,10 +641,12 @@ type DynamicRuleConfigRuleTypeEnum = typeof DynamicRuleConfigRuleTypeEnum[keyof
573
641
  * https://openapi-generator.tech
574
642
  * Do not edit the class manually.
575
643
  */
576
- interface ValidationMetadataInvalidRulesInner {
577
- 'name': string;
578
- 'error': string;
579
- }
644
+
645
+ /**
646
+ * @type SchemaResponseSchemaInner
647
+ * Extraction field schema
648
+ */
649
+ type SchemaResponseSchemaInner = ExtractionClassificationField | ExtractionMetadataField | ExtractionSchemaField;
580
650
 
581
651
  /**
582
652
  * Kadoa API
@@ -590,26 +660,30 @@ interface ValidationMetadataInvalidRulesInner {
590
660
  * Do not edit the class manually.
591
661
  */
592
662
  /**
593
- * Subset of library rule fields needed for job processing
663
+ * Browser interaction definition
594
664
  */
595
- interface ValidationMetadataLibraryRulesInner {
665
+ interface Interaction {
596
666
  /**
597
- * Rule identifier
667
+ * Type of interaction
598
668
  */
599
- 'id': string;
669
+ 'type': InteractionTypeEnum;
600
670
  /**
601
- * Rule name
671
+ * CSS selector for the target element
602
672
  */
603
- 'name': string;
604
- 'description'?: string;
673
+ 'selector'?: string;
605
674
  /**
606
- * Pre-configured parameters for the library rule
675
+ * Text to type (required for TYPE interactions)
607
676
  */
608
- 'parameters'?: {
609
- [key: string]: any | null;
610
- };
611
- 'targetColumns'?: Array<string>;
677
+ 'text'?: string;
612
678
  }
679
+ declare const InteractionTypeEnum: {
680
+ readonly Click: "CLICK";
681
+ readonly Type: "TYPE";
682
+ readonly Hover: "HOVER";
683
+ readonly Scroll: "SCROLL";
684
+ readonly Wait: "WAIT";
685
+ };
686
+ type InteractionTypeEnum = typeof InteractionTypeEnum[keyof typeof InteractionTypeEnum];
613
687
 
614
688
  /**
615
689
  * Kadoa API
@@ -622,15 +696,24 @@ interface ValidationMetadataLibraryRulesInner {
622
696
  * https://openapi-generator.tech
623
697
  * Do not edit the class manually.
624
698
  */
625
-
626
- interface ValidationMetadata {
627
- 'customRules': Array<DynamicRuleConfig>;
628
- 'libraryRules': Array<ValidationMetadataLibraryRulesInner>;
629
- 'totalRulesExecuted': number;
630
- 'usedPrompt'?: string;
631
- 'invalidRules'?: Array<ValidationMetadataInvalidRulesInner>;
632
- 'recordsValidated': number;
699
+ /**
700
+ * Scraping location configuration
701
+ */
702
+ interface Location {
703
+ /**
704
+ * Location type
705
+ */
706
+ 'type': LocationTypeEnum;
707
+ /**
708
+ * Country ISO code for manual location
709
+ */
710
+ 'isoCode'?: string;
633
711
  }
712
+ declare const LocationTypeEnum: {
713
+ readonly Auto: "auto";
714
+ readonly Manual: "manual";
715
+ };
716
+ type LocationTypeEnum = typeof LocationTypeEnum[keyof typeof LocationTypeEnum];
634
717
 
635
718
  /**
636
719
  * Kadoa API
@@ -643,43 +726,25 @@ interface ValidationMetadata {
643
726
  * https://openapi-generator.tech
644
727
  * Do not edit the class manually.
645
728
  */
646
-
647
729
  /**
648
- * Complete validation report including summary fields, anomaly details by rule, dataset location details, CDC summary, and execution strategy
730
+ * Field monitoring configuration
649
731
  */
650
- interface DataValidationReport {
732
+ interface MonitoredField {
651
733
  /**
652
- * Unique identifier
734
+ * Name of the field to monitor
653
735
  */
654
- 'id': string;
655
- 'workflowId': string;
656
- 'jobId': string;
657
- 'anomaliesCountTotal': number;
658
- 'anomaliesCountByRule': {
659
- [key: string]: number;
660
- };
661
- 'createdAt': ValidationCreatedAt;
662
- 'updatedAt': ValidationCreatedAt;
663
- 'completedAt'?: ValidationCompletedAt | null;
664
- 'metadata'?: ValidationMetadata;
665
- 'error'?: string;
666
- 'isDryRun'?: boolean;
667
- 'isWorkflowTriggered'?: boolean;
668
- 'datasetUri'?: string | null;
669
- 'anomaliesParquetPath'?: string | null;
736
+ 'fieldName': string;
670
737
  /**
671
- * ISOLATED validates each dataset independently. LINKING_COLUMNS validates data integrity across linked columns between datasets.
738
+ * Change operator
672
739
  */
673
- 'strategy'?: DataValidationReportStrategyEnum;
674
- 'anomaliesByRule': Array<AnomalyRuleData>;
675
- 'cdc'?: ChangeDetectionResult;
676
- 'schemaIssues': SchemaValidationResult;
740
+ 'operator': MonitoredFieldOperatorEnum;
677
741
  }
678
- declare const DataValidationReportStrategyEnum: {
679
- readonly Isolated: "ISOLATED";
680
- readonly LinkingColumns: "LINKING_COLUMNS";
742
+ declare const MonitoredFieldOperatorEnum: {
743
+ readonly Changed: "changed";
744
+ readonly Added: "added";
745
+ readonly Removed: "removed";
681
746
  };
682
- type DataValidationReportStrategyEnum = typeof DataValidationReportStrategyEnum[keyof typeof DataValidationReportStrategyEnum];
747
+ type MonitoredFieldOperatorEnum = typeof MonitoredFieldOperatorEnum[keyof typeof MonitoredFieldOperatorEnum];
683
748
 
684
749
  /**
685
750
  * Kadoa API
@@ -692,10 +757,37 @@ type DataValidationReportStrategyEnum = typeof DataValidationReportStrategyEnum[
692
757
  * https://openapi-generator.tech
693
758
  * Do not edit the class manually.
694
759
  */
695
- interface DeleteAllRulesResponseData$1 {
696
- 'deletedCount': number;
697
- 'workflowId'?: string;
760
+
761
+ /**
762
+ * Monitoring configuration
763
+ */
764
+ interface MonitoringConfig {
765
+ /**
766
+ * Whether monitoring is enabled
767
+ */
768
+ 'enabled': boolean;
769
+ /**
770
+ * Fields to monitor
771
+ */
772
+ 'fields': Array<MonitoredField>;
773
+ /**
774
+ * Notification channels
775
+ */
776
+ 'channels'?: Array<any | null>;
777
+ /**
778
+ * Array of conditions
779
+ */
780
+ 'conditions'?: Array<null>;
781
+ /**
782
+ * Logical operator for conditions
783
+ */
784
+ 'logicalOperator'?: MonitoringConfigLogicalOperatorEnum;
698
785
  }
786
+ declare const MonitoringConfigLogicalOperatorEnum: {
787
+ readonly And: "AND";
788
+ readonly Or: "OR";
789
+ };
790
+ type MonitoringConfigLogicalOperatorEnum = typeof MonitoringConfigLogicalOperatorEnum[keyof typeof MonitoringConfigLogicalOperatorEnum];
699
791
 
700
792
  /**
701
793
  * Kadoa API
@@ -710,13 +802,101 @@ interface DeleteAllRulesResponseData$1 {
710
802
  */
711
803
 
712
804
  /**
713
- * Summary of bulk rule deletion operation
805
+ * Create an agentic workflow with natural language instructions
714
806
  */
715
- interface DeleteAllRulesResponse {
716
- 'error': boolean;
717
- 'message': string;
718
- 'data': DeleteAllRulesResponseData$1;
807
+ interface CreateWorkflowAgenticBody {
808
+ /**
809
+ * List of URLs to scrape
810
+ */
811
+ 'urls': Array<string>;
812
+ /**
813
+ * Must be agentic-navigation mode
814
+ */
815
+ 'navigationMode': CreateWorkflowAgenticBodyNavigationModeEnum;
816
+ /**
817
+ * Name of the workflow
818
+ */
819
+ 'name'?: string;
820
+ /**
821
+ * Optional description of the workflow (maximum 500 characters)
822
+ */
823
+ 'description'?: string;
824
+ /**
825
+ * Tags for categorization
826
+ */
827
+ 'tags'?: Array<string>;
828
+ /**
829
+ * Maximum number of items to scrape
830
+ */
831
+ 'limit'?: number;
832
+ 'location'?: Location;
833
+ 'monitoring'?: MonitoringConfig;
834
+ /**
835
+ * Update frequency
836
+ */
837
+ 'interval'?: CreateWorkflowAgenticBodyIntervalEnum;
838
+ /**
839
+ * Cron schedules for updates
840
+ */
841
+ 'schedules'?: Array<string>;
842
+ /**
843
+ * When true, bypasses preview and installs the scraper immediately
844
+ */
845
+ 'bypassPreview'?: boolean;
846
+ /**
847
+ * Whether to automatically start the workflow after creation
848
+ */
849
+ 'autoStart'?: boolean;
850
+ /**
851
+ * Optional browser interactions to perform during scraping
852
+ */
853
+ 'interactions'?: Array<Interaction>;
854
+ /**
855
+ * Whether data validation is enabled
856
+ */
857
+ 'dataValidationEnabled'?: boolean;
858
+ /**
859
+ * Natural language instructions for the agent (between 10 and 5000 characters)
860
+ */
861
+ 'userPrompt': string;
862
+ /**
863
+ * Optional schema ID for agentic workflows
864
+ */
865
+ 'schemaId'?: string;
866
+ /**
867
+ * Optional entity name for agentic workflows
868
+ */
869
+ 'entity'?: string;
870
+ /**
871
+ * Optional schema fields for agentic workflows
872
+ */
873
+ 'fields'?: Array<SchemaResponseSchemaInner>;
719
874
  }
875
+ declare const CreateWorkflowAgenticBodyNavigationModeEnum: {
876
+ readonly AgenticNavigation: "agentic-navigation";
877
+ };
878
+ type CreateWorkflowAgenticBodyNavigationModeEnum = typeof CreateWorkflowAgenticBodyNavigationModeEnum[keyof typeof CreateWorkflowAgenticBodyNavigationModeEnum];
879
+ declare const CreateWorkflowAgenticBodyIntervalEnum: {
880
+ readonly OnlyOnce: "ONLY_ONCE";
881
+ readonly Every10Minutes: "EVERY_10_MINUTES";
882
+ readonly HalfHourly: "HALF_HOURLY";
883
+ readonly Hourly: "HOURLY";
884
+ readonly ThreeHourly: "THREE_HOURLY";
885
+ readonly SixHourly: "SIX_HOURLY";
886
+ readonly TwelveHourly: "TWELVE_HOURLY";
887
+ readonly EighteenHourly: "EIGHTEEN_HOURLY";
888
+ readonly Daily: "DAILY";
889
+ readonly TwoDay: "TWO_DAY";
890
+ readonly ThreeDay: "THREE_DAY";
891
+ readonly Weekly: "WEEKLY";
892
+ readonly Biweekly: "BIWEEKLY";
893
+ readonly Triweekly: "TRIWEEKLY";
894
+ readonly FourWeeks: "FOUR_WEEKS";
895
+ readonly Monthly: "MONTHLY";
896
+ readonly RealTime: "REAL_TIME";
897
+ readonly Custom: "CUSTOM";
898
+ };
899
+ type CreateWorkflowAgenticBodyIntervalEnum = typeof CreateWorkflowAgenticBodyIntervalEnum[keyof typeof CreateWorkflowAgenticBodyIntervalEnum];
720
900
 
721
901
  /**
722
902
  * Kadoa API
@@ -729,13 +909,98 @@ interface DeleteAllRulesResponse {
729
909
  * https://openapi-generator.tech
730
910
  * Do not edit the class manually.
731
911
  */
912
+
732
913
  /**
733
- * Soft delete request with optional reason for audit trail
914
+ * Create a workflow by defining entity and fields directly
734
915
  */
735
- interface DeleteRuleWithReason {
736
- 'workflowId': string;
737
- 'reason'?: string;
916
+ interface CreateWorkflowWithCustomSchemaBody {
917
+ /**
918
+ * List of URLs to scrape
919
+ */
920
+ 'urls': Array<string>;
921
+ /**
922
+ * Navigation mode for scraping
923
+ */
924
+ 'navigationMode'?: CreateWorkflowWithCustomSchemaBodyNavigationModeEnum;
925
+ /**
926
+ * Name of the workflow
927
+ */
928
+ 'name'?: string;
929
+ /**
930
+ * Optional description of the workflow (maximum 500 characters)
931
+ */
932
+ 'description'?: string;
933
+ /**
934
+ * Tags for categorization
935
+ */
936
+ 'tags'?: Array<string>;
937
+ /**
938
+ * Maximum number of items to scrape
939
+ */
940
+ 'limit'?: number;
941
+ 'location'?: Location;
942
+ 'monitoring'?: MonitoringConfig;
943
+ /**
944
+ * Update frequency
945
+ */
946
+ 'interval'?: CreateWorkflowWithCustomSchemaBodyIntervalEnum;
947
+ /**
948
+ * Cron schedules for updates
949
+ */
950
+ 'schedules'?: Array<string>;
951
+ /**
952
+ * When true, bypasses preview and installs the scraper immediately
953
+ */
954
+ 'bypassPreview'?: boolean;
955
+ /**
956
+ * Whether to automatically start the workflow after creation
957
+ */
958
+ 'autoStart'?: boolean;
959
+ /**
960
+ * Optional browser interactions to perform during scraping
961
+ */
962
+ 'interactions'?: Array<Interaction>;
963
+ /**
964
+ * Whether data validation is enabled
965
+ */
966
+ 'dataValidationEnabled'?: boolean;
967
+ /**
968
+ * Entity name for extraction
969
+ */
970
+ 'entity': string;
971
+ /**
972
+ * Schema fields for extraction
973
+ */
974
+ 'fields': Array<SchemaResponseSchemaInner>;
738
975
  }
976
+ declare const CreateWorkflowWithCustomSchemaBodyNavigationModeEnum: {
977
+ readonly SinglePage: "single-page";
978
+ readonly PaginatedPage: "paginated-page";
979
+ readonly PageAndDetail: "page-and-detail";
980
+ readonly AgenticNavigation: "agentic-navigation";
981
+ };
982
+ type CreateWorkflowWithCustomSchemaBodyNavigationModeEnum = typeof CreateWorkflowWithCustomSchemaBodyNavigationModeEnum[keyof typeof CreateWorkflowWithCustomSchemaBodyNavigationModeEnum];
983
+ declare const CreateWorkflowWithCustomSchemaBodyIntervalEnum: {
984
+ readonly OnlyOnce: "ONLY_ONCE";
985
+ readonly Every10Minutes: "EVERY_10_MINUTES";
986
+ readonly HalfHourly: "HALF_HOURLY";
987
+ readonly Hourly: "HOURLY";
988
+ readonly ThreeHourly: "THREE_HOURLY";
989
+ readonly SixHourly: "SIX_HOURLY";
990
+ readonly TwelveHourly: "TWELVE_HOURLY";
991
+ readonly EighteenHourly: "EIGHTEEN_HOURLY";
992
+ readonly Daily: "DAILY";
993
+ readonly TwoDay: "TWO_DAY";
994
+ readonly ThreeDay: "THREE_DAY";
995
+ readonly Weekly: "WEEKLY";
996
+ readonly Biweekly: "BIWEEKLY";
997
+ readonly Triweekly: "TRIWEEKLY";
998
+ readonly FourWeeks: "FOUR_WEEKS";
999
+ readonly Monthly: "MONTHLY";
1000
+ readonly RealTime: "REAL_TIME";
1001
+ readonly Custom: "CUSTOM";
1002
+ };
1003
+ type CreateWorkflowWithCustomSchemaBodyIntervalEnum = typeof CreateWorkflowWithCustomSchemaBodyIntervalEnum[keyof typeof CreateWorkflowWithCustomSchemaBodyIntervalEnum];
739
1004
 
740
1005
  /**
741
1006
  * Kadoa API
@@ -748,12 +1013,94 @@ interface DeleteRuleWithReason {
748
1013
  * https://openapi-generator.tech
749
1014
  * Do not edit the class manually.
750
1015
  */
1016
+
751
1017
  /**
752
- * Request to deactivate a rule with mandatory reason
1018
+ * Create a workflow using an existing schema configuration
753
1019
  */
754
- interface DisableRule {
755
- 'reason': string;
1020
+ interface CreateWorkflowWithSchemaBody {
1021
+ /**
1022
+ * List of URLs to scrape
1023
+ */
1024
+ 'urls': Array<string>;
1025
+ /**
1026
+ * Navigation mode for scraping
1027
+ */
1028
+ 'navigationMode'?: CreateWorkflowWithSchemaBodyNavigationModeEnum;
1029
+ /**
1030
+ * Name of the workflow
1031
+ */
1032
+ 'name'?: string;
1033
+ /**
1034
+ * Optional description of the workflow (maximum 500 characters)
1035
+ */
1036
+ 'description'?: string;
1037
+ /**
1038
+ * Tags for categorization
1039
+ */
1040
+ 'tags'?: Array<string>;
1041
+ /**
1042
+ * Maximum number of items to scrape
1043
+ */
1044
+ 'limit'?: number;
1045
+ 'location'?: Location;
1046
+ 'monitoring'?: MonitoringConfig;
1047
+ /**
1048
+ * Update frequency
1049
+ */
1050
+ 'interval'?: CreateWorkflowWithSchemaBodyIntervalEnum;
1051
+ /**
1052
+ * Cron schedules for updates
1053
+ */
1054
+ 'schedules'?: Array<string>;
1055
+ /**
1056
+ * When true, bypasses preview and installs the scraper immediately
1057
+ */
1058
+ 'bypassPreview'?: boolean;
1059
+ /**
1060
+ * Whether to automatically start the workflow after creation
1061
+ */
1062
+ 'autoStart'?: boolean;
1063
+ /**
1064
+ * Optional browser interactions to perform during scraping
1065
+ */
1066
+ 'interactions'?: Array<Interaction>;
1067
+ /**
1068
+ * Whether data validation is enabled
1069
+ */
1070
+ 'dataValidationEnabled'?: boolean;
1071
+ /**
1072
+ * ID of existing schema configuration
1073
+ */
1074
+ 'schemaId': string;
756
1075
  }
1076
+ declare const CreateWorkflowWithSchemaBodyNavigationModeEnum: {
1077
+ readonly SinglePage: "single-page";
1078
+ readonly PaginatedPage: "paginated-page";
1079
+ readonly PageAndDetail: "page-and-detail";
1080
+ readonly AgenticNavigation: "agentic-navigation";
1081
+ };
1082
+ type CreateWorkflowWithSchemaBodyNavigationModeEnum = typeof CreateWorkflowWithSchemaBodyNavigationModeEnum[keyof typeof CreateWorkflowWithSchemaBodyNavigationModeEnum];
1083
+ declare const CreateWorkflowWithSchemaBodyIntervalEnum: {
1084
+ readonly OnlyOnce: "ONLY_ONCE";
1085
+ readonly Every10Minutes: "EVERY_10_MINUTES";
1086
+ readonly HalfHourly: "HALF_HOURLY";
1087
+ readonly Hourly: "HOURLY";
1088
+ readonly ThreeHourly: "THREE_HOURLY";
1089
+ readonly SixHourly: "SIX_HOURLY";
1090
+ readonly TwelveHourly: "TWELVE_HOURLY";
1091
+ readonly EighteenHourly: "EIGHTEEN_HOURLY";
1092
+ readonly Daily: "DAILY";
1093
+ readonly TwoDay: "TWO_DAY";
1094
+ readonly ThreeDay: "THREE_DAY";
1095
+ readonly Weekly: "WEEKLY";
1096
+ readonly Biweekly: "BIWEEKLY";
1097
+ readonly Triweekly: "TRIWEEKLY";
1098
+ readonly FourWeeks: "FOUR_WEEKS";
1099
+ readonly Monthly: "MONTHLY";
1100
+ readonly RealTime: "REAL_TIME";
1101
+ readonly Custom: "CUSTOM";
1102
+ };
1103
+ type CreateWorkflowWithSchemaBodyIntervalEnum = typeof CreateWorkflowWithSchemaBodyIntervalEnum[keyof typeof CreateWorkflowWithSchemaBodyIntervalEnum];
757
1104
 
758
1105
  /**
759
1106
  * Kadoa API
@@ -766,16 +1113,12 @@ interface DisableRule {
766
1113
  * https://openapi-generator.tech
767
1114
  * Do not edit the class manually.
768
1115
  */
769
- interface EmailChannelConfig {
770
- /**
771
- * Array of recipient email addresses
772
- */
773
- 'recipients': Array<string>;
774
- /**
775
- * Sender email address (optional, must be a @kadoa.com domain email)
776
- */
777
- 'from'?: string;
778
- }
1116
+
1117
+ /**
1118
+ * @type CreateWorkflowBody
1119
+ * Request body for creating a new workflow
1120
+ */
1121
+ type CreateWorkflowBody = CreateWorkflowAgenticBody | CreateWorkflowWithCustomSchemaBody | CreateWorkflowWithSchemaBody;
779
1122
 
780
1123
  /**
781
1124
  * Kadoa API
@@ -789,14 +1132,25 @@ interface EmailChannelConfig {
789
1132
  * Do not edit the class manually.
790
1133
  */
791
1134
  /**
792
- * Rule generation request with user description
1135
+ * Response for workflow creation
793
1136
  */
794
- interface GenerateRule {
795
- 'jobId'?: string;
796
- 'userPrompt': string;
797
- 'selectedColumns'?: Array<string>;
1137
+ interface CreateWorkflowResponse {
1138
+ /**
1139
+ * Error flag (always false on success)
1140
+ */
1141
+ 'error': boolean;
1142
+ /**
1143
+ * Success flag
1144
+ */
1145
+ 'success': boolean;
1146
+ /**
1147
+ * ID of the created workflow
1148
+ */
798
1149
  'workflowId': string;
799
- 'isPreviewRun'?: boolean;
1150
+ /**
1151
+ * Success message
1152
+ */
1153
+ 'message': string;
800
1154
  }
801
1155
 
802
1156
  /**
@@ -810,10 +1164,13 @@ interface GenerateRule {
810
1164
  * https://openapi-generator.tech
811
1165
  * Do not edit the class manually.
812
1166
  */
813
- interface RuleParameters {
814
- 'sql': string;
815
- 'params'?: Array<any | null>;
816
- 'prompt'?: string;
1167
+ /**
1168
+ * Comparison results between expected and actual data schema
1169
+ */
1170
+ interface SchemaValidationResult {
1171
+ 'missingColumns': Array<string>;
1172
+ 'missingRequiredColumns': Array<string>;
1173
+ 'extraColumns': Array<string>;
817
1174
  }
818
1175
 
819
1176
  /**
@@ -827,56 +1184,10 @@ interface RuleParameters {
827
1184
  * https://openapi-generator.tech
828
1185
  * Do not edit the class manually.
829
1186
  */
830
-
831
1187
  /**
832
- * Complete validation rule with metadata and lifecycle information
1188
+ * @type ValidationCompletedAt
833
1189
  */
834
- interface Rule {
835
- /**
836
- * Unique identifier
837
- */
838
- 'id': string;
839
- /**
840
- * Human-readable rule name
841
- */
842
- 'name': string;
843
- 'description'?: string;
844
- 'ruleType'?: RuleRuleTypeEnum;
845
- 'workflowId'?: string;
846
- 'groupId'?: string;
847
- 'userId'?: string;
848
- 'teamId'?: string;
849
- 'targetColumns'?: Array<string>;
850
- 'parameters'?: RuleParameters;
851
- 'status': RuleStatusEnum;
852
- 'disabledReason'?: string | null;
853
- 'metadata'?: {
854
- [key: string]: any | null;
855
- };
856
- /**
857
- * ISO 8601 timestamp
858
- */
859
- 'createdAt': string;
860
- /**
861
- * ISO 8601 timestamp
862
- */
863
- 'updatedAt': string;
864
- /**
865
- * ISO 8601 timestamp
866
- */
867
- 'deletedAt'?: string | null;
868
- 'deletedReason'?: string | null;
869
- }
870
- declare const RuleRuleTypeEnum: {
871
- readonly CustomSql: "custom_sql";
872
- };
873
- type RuleRuleTypeEnum = typeof RuleRuleTypeEnum[keyof typeof RuleRuleTypeEnum];
874
- declare const RuleStatusEnum: {
875
- readonly Preview: "preview";
876
- readonly Enabled: "enabled";
877
- readonly Disabled: "disabled";
878
- };
879
- type RuleStatusEnum = typeof RuleStatusEnum[keyof typeof RuleStatusEnum];
1190
+ type ValidationCompletedAt = string;
880
1191
 
881
1192
  /**
882
1193
  * Kadoa API
@@ -890,15 +1201,9 @@ type RuleStatusEnum = typeof RuleStatusEnum[keyof typeof RuleStatusEnum];
890
1201
  * Do not edit the class manually.
891
1202
  */
892
1203
  /**
893
- * Request for validation rules based on data analysis
1204
+ * @type ValidationCreatedAt
894
1205
  */
895
- interface GenerateRules {
896
- 'jobId'?: string;
897
- 'maxRules'?: number;
898
- 'workflowId': string;
899
- 'isPreviewRun'?: boolean;
900
- 'prompt'?: string;
901
- }
1206
+ type ValidationCreatedAt = string;
902
1207
 
903
1208
  /**
904
1209
  * Kadoa API
@@ -911,14 +1216,11 @@ interface GenerateRules {
911
1216
  * https://openapi-generator.tech
912
1217
  * Do not edit the class manually.
913
1218
  */
914
-
915
1219
  /**
916
- * Paginated validation rules with metadata
1220
+ * Optional parameters for the rule execution
917
1221
  */
918
- interface RulesListResponse {
919
- 'error': boolean;
920
- 'data': Array<Rule>;
921
- 'pagination': PaginationMeta;
1222
+ interface DynamicRuleConfigParameters {
1223
+ 'sql'?: string;
922
1224
  }
923
1225
 
924
1226
  /**
@@ -932,24 +1234,33 @@ interface RulesListResponse {
932
1234
  * https://openapi-generator.tech
933
1235
  * Do not edit the class manually.
934
1236
  */
1237
+
935
1238
  /**
936
- * Confirmation details after successfully scheduling a validation job
1239
+ * Configuration for custom SQL validation rules with optional parameters
937
1240
  */
938
- interface ScheduleValidationResponse {
939
- 'error': boolean;
940
- 'message': string;
1241
+ interface DynamicRuleConfig {
941
1242
  /**
942
- * UUID of the scheduled validation job
1243
+ * Rule name
943
1244
  */
944
- 'validationId': string;
945
- 'workflowId': string;
946
- 'jobId': string;
947
- 'skipLibraryRules': boolean;
948
- 'libraryRulesCount': number;
949
- 'customRulesCount': number;
950
- 'totalRulesCount': number;
951
- 'createdAt': string;
1245
+ 'name': string;
1246
+ /**
1247
+ * What the rule checks for
1248
+ */
1249
+ 'description': string;
1250
+ /**
1251
+ * Execution type for dynamic rules
1252
+ */
1253
+ 'ruleType': DynamicRuleConfigRuleTypeEnum;
1254
+ /**
1255
+ * Columns to which the rule applies
1256
+ */
1257
+ 'targetColumns'?: Array<string>;
1258
+ 'parameters': DynamicRuleConfigParameters;
952
1259
  }
1260
+ declare const DynamicRuleConfigRuleTypeEnum: {
1261
+ readonly CustomSql: "custom_sql";
1262
+ };
1263
+ type DynamicRuleConfigRuleTypeEnum = typeof DynamicRuleConfigRuleTypeEnum[keyof typeof DynamicRuleConfigRuleTypeEnum];
953
1264
 
954
1265
  /**
955
1266
  * Kadoa API
@@ -962,19 +1273,9 @@ interface ScheduleValidationResponse {
962
1273
  * https://openapi-generator.tech
963
1274
  * Do not edit the class manually.
964
1275
  */
965
- interface SlackChannelConfig {
966
- /**
967
- * Slack webhook URL (optional)
968
- */
969
- 'webhookUrl'?: string;
970
- /**
971
- * Slack channel ID
972
- */
973
- 'slackChannelId': string;
974
- /**
975
- * Slack channel name
976
- */
977
- 'slackChannelName': string;
1276
+ interface ValidationMetadataInvalidRulesInner {
1277
+ 'name': string;
1278
+ 'error': string;
978
1279
  }
979
1280
 
980
1281
  /**
@@ -988,27 +1289,27 @@ interface SlackChannelConfig {
988
1289
  * https://openapi-generator.tech
989
1290
  * Do not edit the class manually.
990
1291
  */
991
-
992
1292
  /**
993
- * Partial update request for modifying validation rules
1293
+ * Subset of library rule fields needed for job processing
994
1294
  */
995
- interface UpdateRule {
996
- 'name'?: string;
1295
+ interface ValidationMetadataLibraryRulesInner {
1296
+ /**
1297
+ * Rule identifier
1298
+ */
1299
+ 'id': string;
1300
+ /**
1301
+ * Rule name
1302
+ */
1303
+ 'name': string;
997
1304
  'description'?: string;
998
- 'targetColumns'?: Array<string>;
999
- 'parameters'?: CreateRuleParameters;
1000
- 'status'?: UpdateRuleStatusEnum;
1001
- 'disabledReason'?: string | null;
1002
- 'metadata'?: {
1305
+ /**
1306
+ * Pre-configured parameters for the library rule
1307
+ */
1308
+ 'parameters'?: {
1003
1309
  [key: string]: any | null;
1004
1310
  };
1311
+ 'targetColumns'?: Array<string>;
1005
1312
  }
1006
- declare const UpdateRuleStatusEnum: {
1007
- readonly Preview: "preview";
1008
- readonly Enabled: "enabled";
1009
- readonly Disabled: "disabled";
1010
- };
1011
- type UpdateRuleStatusEnum = typeof UpdateRuleStatusEnum[keyof typeof UpdateRuleStatusEnum];
1012
1313
 
1013
1314
  /**
1014
1315
  * Kadoa API
@@ -1021,19 +1322,14 @@ type UpdateRuleStatusEnum = typeof UpdateRuleStatusEnum[keyof typeof UpdateRuleS
1021
1322
  * https://openapi-generator.tech
1022
1323
  * Do not edit the class manually.
1023
1324
  */
1024
- interface V4ChangesGet200ResponseChangesInnerDifferencesInnerFieldsInner {
1025
- /**
1026
- * Field name
1027
- */
1028
- 'key'?: string;
1029
- /**
1030
- * Current field value
1031
- */
1032
- 'value'?: string;
1033
- /**
1034
- * Previous field value (only present for changed type)
1035
- */
1036
- 'previousValue'?: string;
1325
+
1326
+ interface ValidationMetadata {
1327
+ 'customRules': Array<DynamicRuleConfig>;
1328
+ 'libraryRules': Array<ValidationMetadataLibraryRulesInner>;
1329
+ 'totalRulesExecuted': number;
1330
+ 'usedPrompt'?: string;
1331
+ 'invalidRules'?: Array<ValidationMetadataInvalidRulesInner>;
1332
+ 'recordsValidated': number;
1037
1333
  }
1038
1334
 
1039
1335
  /**
@@ -1048,22 +1344,42 @@ interface V4ChangesGet200ResponseChangesInnerDifferencesInnerFieldsInner {
1048
1344
  * Do not edit the class manually.
1049
1345
  */
1050
1346
 
1051
- interface V4ChangesGet200ResponseChangesInnerDifferencesInner {
1347
+ /**
1348
+ * Complete validation report including summary fields, anomaly details by rule, dataset location details, CDC summary, and execution strategy
1349
+ */
1350
+ interface DataValidationReport {
1052
1351
  /**
1053
- * Type of change (added, removed, or changed)
1352
+ * Unique identifier
1054
1353
  */
1055
- 'type'?: V4ChangesGet200ResponseChangesInnerDifferencesInnerTypeEnum;
1354
+ 'id': string;
1355
+ 'workflowId': string;
1356
+ 'jobId': string;
1357
+ 'anomaliesCountTotal': number;
1358
+ 'anomaliesCountByRule': {
1359
+ [key: string]: number;
1360
+ };
1361
+ 'createdAt': ValidationCreatedAt;
1362
+ 'updatedAt': ValidationCreatedAt;
1363
+ 'completedAt'?: ValidationCompletedAt | null;
1364
+ 'metadata'?: ValidationMetadata;
1365
+ 'error'?: string;
1366
+ 'isDryRun'?: boolean;
1367
+ 'isWorkflowTriggered'?: boolean;
1368
+ 'datasetUri'?: string | null;
1369
+ 'anomaliesParquetPath'?: string | null;
1056
1370
  /**
1057
- * List of field changes
1371
+ * ISOLATED validates each dataset independently. LINKING_COLUMNS validates data integrity across linked columns between datasets.
1058
1372
  */
1059
- 'fields'?: Array<V4ChangesGet200ResponseChangesInnerDifferencesInnerFieldsInner>;
1373
+ 'strategy'?: DataValidationReportStrategyEnum;
1374
+ 'anomaliesByRule': Array<AnomalyRuleData>;
1375
+ 'cdc'?: ChangeDetectionResult;
1376
+ 'schemaIssues': SchemaValidationResult;
1060
1377
  }
1061
- declare const V4ChangesGet200ResponseChangesInnerDifferencesInnerTypeEnum: {
1062
- readonly Added: "added";
1063
- readonly Removed: "removed";
1064
- readonly Changed: "changed";
1378
+ declare const DataValidationReportStrategyEnum: {
1379
+ readonly Isolated: "ISOLATED";
1380
+ readonly LinkingColumns: "LINKING_COLUMNS";
1065
1381
  };
1066
- type V4ChangesGet200ResponseChangesInnerDifferencesInnerTypeEnum = typeof V4ChangesGet200ResponseChangesInnerDifferencesInnerTypeEnum[keyof typeof V4ChangesGet200ResponseChangesInnerDifferencesInnerTypeEnum];
1382
+ type DataValidationReportStrategyEnum = typeof DataValidationReportStrategyEnum[keyof typeof DataValidationReportStrategyEnum];
1067
1383
 
1068
1384
  /**
1069
1385
  * Kadoa API
@@ -1076,36 +1392,9 @@ type V4ChangesGet200ResponseChangesInnerDifferencesInnerTypeEnum = typeof V4Chan
1076
1392
  * https://openapi-generator.tech
1077
1393
  * Do not edit the class manually.
1078
1394
  */
1079
-
1080
- interface V4ChangesGet200ResponseChangesInner {
1081
- /**
1082
- * Unique identifier of the change
1083
- */
1084
- 'id'?: string;
1085
- /**
1086
- * ID of the workflow this change belongs to
1087
- */
1395
+ interface DeleteAllRulesResponseData$1 {
1396
+ 'deletedCount': number;
1088
1397
  'workflowId'?: string;
1089
- /**
1090
- * Current state of the data after the change
1091
- */
1092
- 'data'?: Array<object>;
1093
- /**
1094
- * Structured representation of changes with object-based diffing
1095
- */
1096
- 'differences'?: Array<V4ChangesGet200ResponseChangesInnerDifferencesInner>;
1097
- /**
1098
- * URL where the change was detected
1099
- */
1100
- 'url'?: string;
1101
- /**
1102
- * URL of the screenshot taken when the change was detected
1103
- */
1104
- 'screenshotUrl'?: string;
1105
- /**
1106
- * Timestamp when the change was created
1107
- */
1108
- 'createdAt'?: string;
1109
1398
  }
1110
1399
 
1111
1400
  /**
@@ -1119,23 +1408,14 @@ interface V4ChangesGet200ResponseChangesInner {
1119
1408
  * https://openapi-generator.tech
1120
1409
  * Do not edit the class manually.
1121
1410
  */
1122
- interface V4ChangesGet200ResponsePagination {
1123
- /**
1124
- * Total number of changes found
1125
- */
1126
- 'totalCount'?: number;
1127
- /**
1128
- * Current page number
1129
- */
1130
- 'page'?: number;
1131
- /**
1132
- * Total number of pages
1133
- */
1134
- 'totalPages'?: number;
1135
- /**
1136
- * Number of records per page
1137
- */
1138
- 'limit'?: number;
1411
+
1412
+ /**
1413
+ * Summary of bulk rule deletion operation
1414
+ */
1415
+ interface DeleteAllRulesResponse {
1416
+ 'error': boolean;
1417
+ 'message': string;
1418
+ 'data': DeleteAllRulesResponseData$1;
1139
1419
  }
1140
1420
 
1141
1421
  /**
@@ -1149,18 +1429,12 @@ interface V4ChangesGet200ResponsePagination {
1149
1429
  * https://openapi-generator.tech
1150
1430
  * Do not edit the class manually.
1151
1431
  */
1152
-
1153
- interface V4ChangesGet200Response {
1154
- /**
1155
- * Timestamp of the response
1156
- */
1157
- 'timestamp'?: string;
1158
- /**
1159
- * Total number of changes found
1160
- */
1161
- 'changesCount'?: number;
1162
- 'changes'?: Array<V4ChangesGet200ResponseChangesInner>;
1163
- 'pagination'?: V4ChangesGet200ResponsePagination;
1432
+ /**
1433
+ * Soft delete request with optional reason for audit trail
1434
+ */
1435
+ interface DeleteRuleWithReason {
1436
+ 'workflowId': string;
1437
+ 'reason'?: string;
1164
1438
  }
1165
1439
 
1166
1440
  /**
@@ -1175,9 +1449,11 @@ interface V4ChangesGet200Response {
1175
1449
  * Do not edit the class manually.
1176
1450
  */
1177
1451
  /**
1178
- * @type V4DataValidationRulesGetIncludeDeletedParameter
1452
+ * Request to deactivate a rule with mandatory reason
1179
1453
  */
1180
- type V4DataValidationRulesGetIncludeDeletedParameter = boolean | string;
1454
+ interface DisableRule {
1455
+ 'reason': string;
1456
+ }
1181
1457
 
1182
1458
  /**
1183
1459
  * Kadoa API
@@ -1190,23 +1466,15 @@ type V4DataValidationRulesGetIncludeDeletedParameter = boolean | string;
1190
1466
  * https://openapi-generator.tech
1191
1467
  * Do not edit the class manually.
1192
1468
  */
1193
- interface V4DataValidationWorkflowsWorkflowIdValidationTogglePut200Response {
1194
- /**
1195
- * Whether an error occurred
1196
- */
1197
- 'error': boolean;
1198
- /**
1199
- * Success message indicating the action performed
1200
- */
1201
- 'message': string;
1469
+ interface EmailChannelConfig {
1202
1470
  /**
1203
- * The workflow ID that was updated
1471
+ * Array of recipient email addresses
1204
1472
  */
1205
- 'workflowId': string;
1473
+ 'recipients': Array<string>;
1206
1474
  /**
1207
- * The new validation status for the workflow
1475
+ * Sender email address (optional, must be a @kadoa.com domain email)
1208
1476
  */
1209
- 'enabled': boolean;
1477
+ 'from'?: string;
1210
1478
  }
1211
1479
 
1212
1480
  /**
@@ -1220,9 +1488,15 @@ interface V4DataValidationWorkflowsWorkflowIdValidationTogglePut200Response {
1220
1488
  * https://openapi-generator.tech
1221
1489
  * Do not edit the class manually.
1222
1490
  */
1223
- interface V4SchemasSchemaIdPut200Response {
1224
- 'success'?: boolean;
1225
- 'message'?: string;
1491
+ /**
1492
+ * Rule generation request with user description
1493
+ */
1494
+ interface GenerateRule {
1495
+ 'jobId'?: string;
1496
+ 'userPrompt': string;
1497
+ 'selectedColumns'?: Array<string>;
1498
+ 'workflowId': string;
1499
+ 'isPreviewRun'?: boolean;
1226
1500
  }
1227
1501
 
1228
1502
  /**
@@ -1236,28 +1510,12 @@ interface V4SchemasSchemaIdPut200Response {
1236
1510
  * https://openapi-generator.tech
1237
1511
  * Do not edit the class manually.
1238
1512
  */
1239
- /**
1240
- * Pagination information
1241
- */
1242
- interface V4WorkflowsGet200ResponsePagination {
1243
- /**
1244
- * Total number of workflows matching the filter criteria
1245
- */
1246
- 'totalCount'?: number;
1247
- /**
1248
- * Current page number
1249
- */
1250
- 'page'?: number;
1251
- /**
1252
- * Total number of pages
1253
- */
1254
- 'totalPages'?: number;
1255
- /**
1256
- * Number of items per page
1257
- */
1258
- 'limit'?: number;
1259
- }
1260
-
1513
+ interface RuleParameters {
1514
+ 'sql': string;
1515
+ 'params'?: Array<any | null>;
1516
+ 'prompt'?: string;
1517
+ }
1518
+
1261
1519
  /**
1262
1520
  * Kadoa API
1263
1521
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
@@ -1269,28 +1527,56 @@ interface V4WorkflowsGet200ResponsePagination {
1269
1527
  * https://openapi-generator.tech
1270
1528
  * Do not edit the class manually.
1271
1529
  */
1272
- interface V4WorkflowsGet200ResponseWorkflowsInnerBrowserActionsInner {
1530
+
1531
+ /**
1532
+ * Complete validation rule with metadata and lifecycle information
1533
+ */
1534
+ interface Rule {
1273
1535
  /**
1274
- * Action type (e.g., CLICK, TYPE, WAIT, GOTO)
1536
+ * Unique identifier
1275
1537
  */
1276
- 'type'?: string;
1538
+ 'id': string;
1277
1539
  /**
1278
- * CSS selector for element-based actions
1540
+ * Human-readable rule name
1279
1541
  */
1280
- 'selector'?: string;
1542
+ 'name': string;
1543
+ 'description'?: string;
1544
+ 'ruleType'?: RuleRuleTypeEnum;
1545
+ 'workflowId'?: string;
1546
+ 'groupId'?: string;
1547
+ 'userId'?: string;
1548
+ 'teamId'?: string;
1549
+ 'targetColumns'?: Array<string>;
1550
+ 'parameters'?: RuleParameters;
1551
+ 'status': RuleStatusEnum;
1552
+ 'disabledReason'?: string | null;
1553
+ 'metadata'?: {
1554
+ [key: string]: any | null;
1555
+ };
1281
1556
  /**
1282
- * Text to type for TYPE actions
1557
+ * ISO 8601 timestamp
1283
1558
  */
1284
- 'text'?: string;
1559
+ 'createdAt': string;
1285
1560
  /**
1286
- * Milliseconds to wait for WAIT actions
1561
+ * ISO 8601 timestamp
1287
1562
  */
1288
- 'timeMs'?: number;
1563
+ 'updatedAt': string;
1289
1564
  /**
1290
- * URL to navigate to for GOTO actions
1565
+ * ISO 8601 timestamp
1291
1566
  */
1292
- 'url'?: string;
1567
+ 'deletedAt'?: string | null;
1568
+ 'deletedReason'?: string | null;
1293
1569
  }
1570
+ declare const RuleRuleTypeEnum: {
1571
+ readonly CustomSql: "custom_sql";
1572
+ };
1573
+ type RuleRuleTypeEnum = typeof RuleRuleTypeEnum[keyof typeof RuleRuleTypeEnum];
1574
+ declare const RuleStatusEnum: {
1575
+ readonly Preview: "preview";
1576
+ readonly Enabled: "enabled";
1577
+ readonly Disabled: "disabled";
1578
+ };
1579
+ type RuleStatusEnum = typeof RuleStatusEnum[keyof typeof RuleStatusEnum];
1294
1580
 
1295
1581
  /**
1296
1582
  * Kadoa API
@@ -1304,13 +1590,14 @@ interface V4WorkflowsGet200ResponseWorkflowsInnerBrowserActionsInner {
1304
1590
  * Do not edit the class manually.
1305
1591
  */
1306
1592
  /**
1307
- * Data validation configuration
1593
+ * Request for validation rules based on data analysis
1308
1594
  */
1309
- interface V4WorkflowsGet200ResponseWorkflowsInnerDataValidation {
1310
- /**
1311
- * Whether data validation is enabled for the workflow
1312
- */
1313
- 'enabled'?: boolean;
1595
+ interface GenerateRules {
1596
+ 'jobId'?: string;
1597
+ 'maxRules'?: number;
1598
+ 'workflowId': string;
1599
+ 'isPreviewRun'?: boolean;
1600
+ 'prompt'?: string;
1314
1601
  }
1315
1602
 
1316
1603
  /**
@@ -1324,48 +1611,15 @@ interface V4WorkflowsGet200ResponseWorkflowsInnerDataValidation {
1324
1611
  * https://openapi-generator.tech
1325
1612
  * Do not edit the class manually.
1326
1613
  */
1327
- /**
1328
- * Scraping location configuration
1329
- */
1330
- interface V4WorkflowsGet200ResponseWorkflowsInnerLocation {
1331
- 'type'?: V4WorkflowsGet200ResponseWorkflowsInnerLocationTypeEnum;
1332
- 'isoCode'?: V4WorkflowsGet200ResponseWorkflowsInnerLocationIsoCodeEnum;
1333
- }
1334
- declare const V4WorkflowsGet200ResponseWorkflowsInnerLocationTypeEnum: {
1335
- readonly Auto: "auto";
1336
- readonly Manual: "manual";
1337
- };
1338
- type V4WorkflowsGet200ResponseWorkflowsInnerLocationTypeEnum = typeof V4WorkflowsGet200ResponseWorkflowsInnerLocationTypeEnum[keyof typeof V4WorkflowsGet200ResponseWorkflowsInnerLocationTypeEnum];
1339
- declare const V4WorkflowsGet200ResponseWorkflowsInnerLocationIsoCodeEnum: {
1340
- readonly De: "DE";
1341
- readonly Us: "US";
1342
- readonly Gb: "GB";
1343
- readonly Nl: "NL";
1344
- readonly Ca: "CA";
1345
- };
1346
- type V4WorkflowsGet200ResponseWorkflowsInnerLocationIsoCodeEnum = typeof V4WorkflowsGet200ResponseWorkflowsInnerLocationIsoCodeEnum[keyof typeof V4WorkflowsGet200ResponseWorkflowsInnerLocationIsoCodeEnum];
1347
1614
 
1348
1615
  /**
1349
- * Kadoa API
1350
- * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1351
- *
1352
- * The version of the OpenAPI document: 3.0.0
1353
- * Contact: support@kadoa.com
1354
- *
1355
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1356
- * https://openapi-generator.tech
1357
- * Do not edit the class manually.
1616
+ * Paginated validation rules with metadata
1358
1617
  */
1359
- interface V4WorkflowsGet200ResponseWorkflowsInnerNotificationConfigFieldsInner {
1360
- 'fieldName'?: string;
1361
- 'operator'?: V4WorkflowsGet200ResponseWorkflowsInnerNotificationConfigFieldsInnerOperatorEnum;
1618
+ interface RulesListResponse {
1619
+ 'error': boolean;
1620
+ 'data': Array<Rule>;
1621
+ 'pagination': PaginationMeta;
1362
1622
  }
1363
- declare const V4WorkflowsGet200ResponseWorkflowsInnerNotificationConfigFieldsInnerOperatorEnum: {
1364
- readonly Changed: "changed";
1365
- readonly Added: "added";
1366
- readonly Removed: "removed";
1367
- };
1368
- type V4WorkflowsGet200ResponseWorkflowsInnerNotificationConfigFieldsInnerOperatorEnum = typeof V4WorkflowsGet200ResponseWorkflowsInnerNotificationConfigFieldsInnerOperatorEnum[keyof typeof V4WorkflowsGet200ResponseWorkflowsInnerNotificationConfigFieldsInnerOperatorEnum];
1369
1623
 
1370
1624
  /**
1371
1625
  * Kadoa API
@@ -1378,13 +1632,23 @@ type V4WorkflowsGet200ResponseWorkflowsInnerNotificationConfigFieldsInnerOperato
1378
1632
  * https://openapi-generator.tech
1379
1633
  * Do not edit the class manually.
1380
1634
  */
1381
-
1382
1635
  /**
1383
- * Monitoring configuration
1636
+ * Confirmation details after successfully scheduling a validation job
1384
1637
  */
1385
- interface V4WorkflowsGet200ResponseWorkflowsInnerNotificationConfig {
1386
- 'enabled'?: boolean;
1387
- 'fields'?: Array<V4WorkflowsGet200ResponseWorkflowsInnerNotificationConfigFieldsInner>;
1638
+ interface ScheduleValidationResponse {
1639
+ 'error': boolean;
1640
+ 'message': string;
1641
+ /**
1642
+ * UUID of the scheduled validation job
1643
+ */
1644
+ 'validationId': string;
1645
+ 'workflowId': string;
1646
+ 'jobId': string;
1647
+ 'skipLibraryRules': boolean;
1648
+ 'libraryRulesCount': number;
1649
+ 'customRulesCount': number;
1650
+ 'totalRulesCount': number;
1651
+ 'createdAt': string;
1388
1652
  }
1389
1653
 
1390
1654
  /**
@@ -1398,29 +1662,20 @@ interface V4WorkflowsGet200ResponseWorkflowsInnerNotificationConfig {
1398
1662
  * https://openapi-generator.tech
1399
1663
  * Do not edit the class manually.
1400
1664
  */
1401
- interface V4WorkflowsGet200ResponseWorkflowsInnerSchemaInner {
1402
- 'name'?: string;
1403
- 'description'?: string;
1404
- 'example'?: string;
1405
- 'dataType'?: V4WorkflowsGet200ResponseWorkflowsInnerSchemaInnerDataTypeEnum;
1406
- 'isKey'?: boolean;
1407
- 'isRequired'?: boolean;
1408
- 'isUnique'?: boolean;
1665
+ interface SlackChannelConfig {
1666
+ /**
1667
+ * Slack webhook URL (optional)
1668
+ */
1669
+ 'webhookUrl'?: string;
1670
+ /**
1671
+ * Slack channel ID
1672
+ */
1673
+ 'slackChannelId': string;
1674
+ /**
1675
+ * Slack channel name
1676
+ */
1677
+ 'slackChannelName': string;
1409
1678
  }
1410
- declare const V4WorkflowsGet200ResponseWorkflowsInnerSchemaInnerDataTypeEnum: {
1411
- readonly String: "STRING";
1412
- readonly Number: "NUMBER";
1413
- readonly Boolean: "BOOLEAN";
1414
- readonly Date: "DATE";
1415
- readonly Datetime: "DATETIME";
1416
- readonly Currency: "CURRENCY";
1417
- readonly Money: "MONEY";
1418
- readonly Image: "IMAGE";
1419
- readonly Link: "LINK";
1420
- readonly Object: "OBJECT";
1421
- readonly Array: "ARRAY";
1422
- };
1423
- type V4WorkflowsGet200ResponseWorkflowsInnerSchemaInnerDataTypeEnum = typeof V4WorkflowsGet200ResponseWorkflowsInnerSchemaInnerDataTypeEnum[keyof typeof V4WorkflowsGet200ResponseWorkflowsInnerSchemaInnerDataTypeEnum];
1424
1679
 
1425
1680
  /**
1426
1681
  * Kadoa API
@@ -1433,10 +1688,27 @@ type V4WorkflowsGet200ResponseWorkflowsInnerSchemaInnerDataTypeEnum = typeof V4W
1433
1688
  * https://openapi-generator.tech
1434
1689
  * Do not edit the class manually.
1435
1690
  */
1436
- interface V4WorkflowsGet200ResponseWorkflowsInnerValidationStatisticsByRule {
1437
- 'ruleName'?: string;
1438
- 'count'?: number;
1691
+
1692
+ /**
1693
+ * Partial update request for modifying validation rules
1694
+ */
1695
+ interface UpdateRule {
1696
+ 'name'?: string;
1697
+ 'description'?: string;
1698
+ 'targetColumns'?: Array<string>;
1699
+ 'parameters'?: CreateRuleParameters;
1700
+ 'status'?: UpdateRuleStatusEnum;
1701
+ 'disabledReason'?: string | null;
1702
+ 'metadata'?: {
1703
+ [key: string]: any | null;
1704
+ };
1439
1705
  }
1706
+ declare const UpdateRuleStatusEnum: {
1707
+ readonly Preview: "preview";
1708
+ readonly Enabled: "enabled";
1709
+ readonly Disabled: "disabled";
1710
+ };
1711
+ type UpdateRuleStatusEnum = typeof UpdateRuleStatusEnum[keyof typeof UpdateRuleStatusEnum];
1440
1712
 
1441
1713
  /**
1442
1714
  * Kadoa API
@@ -1449,15 +1721,19 @@ interface V4WorkflowsGet200ResponseWorkflowsInnerValidationStatisticsByRule {
1449
1721
  * https://openapi-generator.tech
1450
1722
  * Do not edit the class manually.
1451
1723
  */
1452
- interface V4WorkflowsGet200ResponseWorkflowsInnerValidationStatisticsTotal {
1724
+ interface V4ChangesGet200ResponseChangesInnerDifferencesInnerFieldsInner {
1453
1725
  /**
1454
- * Overall validation score
1726
+ * Field name
1455
1727
  */
1456
- 'count'?: number;
1728
+ 'key'?: string;
1457
1729
  /**
1458
- * Change in validation score since last validation
1730
+ * Current field value
1459
1731
  */
1460
- 'change'?: number;
1732
+ 'value'?: string;
1733
+ /**
1734
+ * Previous field value (only present for changed type)
1735
+ */
1736
+ 'previousValue'?: string;
1461
1737
  }
1462
1738
 
1463
1739
  /**
@@ -1472,13 +1748,22 @@ interface V4WorkflowsGet200ResponseWorkflowsInnerValidationStatisticsTotal {
1472
1748
  * Do not edit the class manually.
1473
1749
  */
1474
1750
 
1475
- /**
1476
- * Validation statistics for the workflow
1477
- */
1478
- interface V4WorkflowsGet200ResponseWorkflowsInnerValidationStatistics {
1479
- 'total'?: V4WorkflowsGet200ResponseWorkflowsInnerValidationStatisticsTotal;
1480
- 'byRule'?: V4WorkflowsGet200ResponseWorkflowsInnerValidationStatisticsByRule;
1751
+ interface V4ChangesGet200ResponseChangesInnerDifferencesInner {
1752
+ /**
1753
+ * Type of change (added, removed, or changed)
1754
+ */
1755
+ 'type'?: V4ChangesGet200ResponseChangesInnerDifferencesInnerTypeEnum;
1756
+ /**
1757
+ * List of field changes
1758
+ */
1759
+ 'fields'?: Array<V4ChangesGet200ResponseChangesInnerDifferencesInnerFieldsInner>;
1481
1760
  }
1761
+ declare const V4ChangesGet200ResponseChangesInnerDifferencesInnerTypeEnum: {
1762
+ readonly Added: "added";
1763
+ readonly Removed: "removed";
1764
+ readonly Changed: "changed";
1765
+ };
1766
+ type V4ChangesGet200ResponseChangesInnerDifferencesInnerTypeEnum = typeof V4ChangesGet200ResponseChangesInnerDifferencesInnerTypeEnum[keyof typeof V4ChangesGet200ResponseChangesInnerDifferencesInnerTypeEnum];
1482
1767
 
1483
1768
  /**
1484
1769
  * Kadoa API
@@ -1492,147 +1777,137 @@ interface V4WorkflowsGet200ResponseWorkflowsInnerValidationStatistics {
1492
1777
  * Do not edit the class manually.
1493
1778
  */
1494
1779
 
1495
- interface V4WorkflowsGet200ResponseWorkflowsInner {
1780
+ interface V4ChangesGet200ResponseChangesInner {
1496
1781
  /**
1497
- * Unique identifier for the workflow
1782
+ * Unique identifier of the change
1498
1783
  */
1499
- '_id'?: string;
1784
+ 'id'?: string;
1500
1785
  /**
1501
- * Name of the workflow
1786
+ * ID of the workflow this change belongs to
1502
1787
  */
1503
- 'name'?: string;
1788
+ 'workflowId'?: string;
1504
1789
  /**
1505
- * Description of the workflow
1790
+ * Current state of the data after the change
1506
1791
  */
1507
- 'description'?: string;
1792
+ 'data'?: Array<object>;
1508
1793
  /**
1509
- * Current state of the workflow
1794
+ * Structured representation of changes with object-based diffing
1510
1795
  */
1511
- 'state'?: V4WorkflowsGet200ResponseWorkflowsInnerStateEnum;
1796
+ 'differences'?: Array<V4ChangesGet200ResponseChangesInnerDifferencesInner>;
1512
1797
  /**
1513
- * Display state for frontend
1798
+ * URL where the change was detected
1514
1799
  */
1515
- 'displayState'?: V4WorkflowsGet200ResponseWorkflowsInnerDisplayStateEnum;
1800
+ 'url'?: string;
1516
1801
  /**
1517
- * ID of the user who owns the workflow
1802
+ * URL of the screenshot taken when the change was detected
1518
1803
  */
1519
- 'userId'?: string;
1804
+ 'screenshotUrl'?: string;
1520
1805
  /**
1521
- * Timestamp when the workflow was created
1806
+ * Timestamp when the change was created
1522
1807
  */
1523
1808
  'createdAt'?: string;
1809
+ }
1810
+
1811
+ /**
1812
+ * Kadoa API
1813
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1814
+ *
1815
+ * The version of the OpenAPI document: 3.0.0
1816
+ * Contact: support@kadoa.com
1817
+ *
1818
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1819
+ * https://openapi-generator.tech
1820
+ * Do not edit the class manually.
1821
+ */
1822
+ interface V4ChangesGet200ResponsePagination {
1524
1823
  /**
1525
- * Tags associated with the workflow
1526
- */
1527
- 'tags'?: Array<string>;
1528
- /**
1529
- * Maximum number of items to scrape
1530
- */
1531
- 'limit'?: number;
1532
- /**
1533
- * When the last job finished
1534
- */
1535
- 'finishedAt'?: string;
1536
- /**
1537
- * When the last job started
1538
- */
1539
- 'startedAt'?: string;
1540
- /**
1541
- * Protocol information from last job
1542
- */
1543
- 'protocol'?: string;
1544
- /**
1545
- * ID of the last job
1546
- */
1547
- 'jobId'?: string;
1548
- /**
1549
- * Database key for the workflow data
1550
- */
1551
- 'dataKey'?: string;
1552
- 'location'?: V4WorkflowsGet200ResponseWorkflowsInnerLocation;
1553
- /**
1554
- * Cost of the last job run in credits
1555
- */
1556
- 'runCosts'?: number;
1557
- /**
1558
- * State of the last job run
1559
- */
1560
- 'runState'?: string;
1561
- /**
1562
- * Total number of records extracted
1824
+ * Total number of changes found
1563
1825
  */
1564
- 'totalRecords'?: number;
1826
+ 'totalCount'?: number;
1565
1827
  /**
1566
- * Primary URL being scraped
1828
+ * Current page number
1567
1829
  */
1568
- 'url'?: string;
1830
+ 'page'?: number;
1569
1831
  /**
1570
- * List of URLs being scraped
1832
+ * Total number of pages
1571
1833
  */
1572
- 'urls'?: Array<string>;
1834
+ 'totalPages'?: number;
1573
1835
  /**
1574
- * Optional browser actions to perform before extraction
1836
+ * Number of records per page
1575
1837
  */
1576
- 'browserActions'?: Array<V4WorkflowsGet200ResponseWorkflowsInnerBrowserActionsInner>;
1838
+ 'limit'?: number;
1839
+ }
1840
+
1841
+ /**
1842
+ * Kadoa API
1843
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1844
+ *
1845
+ * The version of the OpenAPI document: 3.0.0
1846
+ * Contact: support@kadoa.com
1847
+ *
1848
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1849
+ * https://openapi-generator.tech
1850
+ * Do not edit the class manually.
1851
+ */
1852
+
1853
+ interface V4ChangesGet200Response {
1577
1854
  /**
1578
- * Extraction schema fields
1855
+ * Timestamp of the response
1579
1856
  */
1580
- 'schema'?: Array<V4WorkflowsGet200ResponseWorkflowsInnerSchemaInner>;
1857
+ 'timestamp'?: string;
1581
1858
  /**
1582
- * Type of schema (deprecated)
1859
+ * Total number of changes found
1583
1860
  */
1584
- 'schemaType'?: V4WorkflowsGet200ResponseWorkflowsInnerSchemaTypeEnum;
1861
+ 'changesCount'?: number;
1862
+ 'changes'?: Array<V4ChangesGet200ResponseChangesInner>;
1863
+ 'pagination'?: V4ChangesGet200ResponsePagination;
1864
+ }
1865
+
1866
+ /**
1867
+ * Kadoa API
1868
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1869
+ *
1870
+ * The version of the OpenAPI document: 3.0.0
1871
+ * Contact: support@kadoa.com
1872
+ *
1873
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1874
+ * https://openapi-generator.tech
1875
+ * Do not edit the class manually.
1876
+ */
1877
+ /**
1878
+ * @type V4DataValidationRulesGetIncludeDeletedParameter
1879
+ */
1880
+ type V4DataValidationRulesGetIncludeDeletedParameter = boolean | string;
1881
+
1882
+ /**
1883
+ * Kadoa API
1884
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1885
+ *
1886
+ * The version of the OpenAPI document: 3.0.0
1887
+ * Contact: support@kadoa.com
1888
+ *
1889
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1890
+ * https://openapi-generator.tech
1891
+ * Do not edit the class manually.
1892
+ */
1893
+ interface V4DataValidationWorkflowsWorkflowIdValidationTogglePut200Response {
1585
1894
  /**
1586
- * Name of the template used
1895
+ * Whether an error occurred
1587
1896
  */
1588
- 'templateName'?: string;
1897
+ 'error': boolean;
1589
1898
  /**
1590
- * ID of the template used
1899
+ * Success message indicating the action performed
1591
1900
  */
1592
- 'templateId'?: string;
1901
+ 'message': string;
1593
1902
  /**
1594
- * Whether the schema can be edited
1903
+ * The workflow ID that was updated
1595
1904
  */
1596
- 'isSchemaEditable'?: boolean;
1597
- 'dataValidation'?: V4WorkflowsGet200ResponseWorkflowsInnerDataValidation;
1598
- 'validationStatistics'?: V4WorkflowsGet200ResponseWorkflowsInnerValidationStatistics;
1905
+ 'workflowId': string;
1599
1906
  /**
1600
- * Whether monitoring is enabled
1601
- */
1602
- 'monitoring'?: boolean;
1603
- 'notificationConfig'?: V4WorkflowsGet200ResponseWorkflowsInnerNotificationConfig;
1604
- }
1605
- declare const V4WorkflowsGet200ResponseWorkflowsInnerStateEnum: {
1606
- readonly Active: "ACTIVE";
1607
- readonly Error: "ERROR";
1608
- readonly Paused: "PAUSED";
1609
- readonly NotSupported: "NOT_SUPPORTED";
1610
- readonly Preview: "PREVIEW";
1611
- readonly ComplianceReview: "COMPLIANCE_REVIEW";
1612
- readonly ComplianceRejected: "COMPLIANCE_REJECTED";
1613
- readonly Queued: "QUEUED";
1614
- readonly Setup: "SETUP";
1615
- readonly Deleted: "DELETED";
1616
- };
1617
- type V4WorkflowsGet200ResponseWorkflowsInnerStateEnum = typeof V4WorkflowsGet200ResponseWorkflowsInnerStateEnum[keyof typeof V4WorkflowsGet200ResponseWorkflowsInnerStateEnum];
1618
- declare const V4WorkflowsGet200ResponseWorkflowsInnerDisplayStateEnum: {
1619
- readonly Active: "ACTIVE";
1620
- readonly Error: "ERROR";
1621
- readonly Paused: "PAUSED";
1622
- readonly NotSupported: "NOT_SUPPORTED";
1623
- readonly Preview: "PREVIEW";
1624
- readonly ComplianceReview: "COMPLIANCE_REVIEW";
1625
- readonly ComplianceRejected: "COMPLIANCE_REJECTED";
1626
- readonly Queued: "QUEUED";
1627
- readonly Setup: "SETUP";
1628
- readonly Running: "RUNNING";
1629
- };
1630
- type V4WorkflowsGet200ResponseWorkflowsInnerDisplayStateEnum = typeof V4WorkflowsGet200ResponseWorkflowsInnerDisplayStateEnum[keyof typeof V4WorkflowsGet200ResponseWorkflowsInnerDisplayStateEnum];
1631
- declare const V4WorkflowsGet200ResponseWorkflowsInnerSchemaTypeEnum: {
1632
- readonly Detail: "DETAIL";
1633
- readonly Directory: "DIRECTORY";
1634
- };
1635
- type V4WorkflowsGet200ResponseWorkflowsInnerSchemaTypeEnum = typeof V4WorkflowsGet200ResponseWorkflowsInnerSchemaTypeEnum[keyof typeof V4WorkflowsGet200ResponseWorkflowsInnerSchemaTypeEnum];
1907
+ * The new validation status for the workflow
1908
+ */
1909
+ 'enabled': boolean;
1910
+ }
1636
1911
 
1637
1912
  /**
1638
1913
  * Kadoa API
@@ -1645,13 +1920,26 @@ type V4WorkflowsGet200ResponseWorkflowsInnerSchemaTypeEnum = typeof V4WorkflowsG
1645
1920
  * https://openapi-generator.tech
1646
1921
  * Do not edit the class manually.
1647
1922
  */
1648
-
1649
- interface V4WorkflowsGet200Response {
1923
+ /**
1924
+ * Pagination information
1925
+ */
1926
+ interface V4WorkflowsGet200ResponsePagination {
1650
1927
  /**
1651
- * List of workflows
1928
+ * Total number of workflows matching the filter criteria
1652
1929
  */
1653
- 'workflows'?: Array<V4WorkflowsGet200ResponseWorkflowsInner>;
1654
- 'pagination'?: V4WorkflowsGet200ResponsePagination;
1930
+ 'totalCount'?: number;
1931
+ /**
1932
+ * Current page number
1933
+ */
1934
+ 'page'?: number;
1935
+ /**
1936
+ * Total number of pages
1937
+ */
1938
+ 'totalPages'?: number;
1939
+ /**
1940
+ * Number of items per page
1941
+ */
1942
+ 'limit'?: number;
1655
1943
  }
1656
1944
 
1657
1945
  /**
@@ -1665,16 +1953,14 @@ interface V4WorkflowsGet200Response {
1665
1953
  * https://openapi-generator.tech
1666
1954
  * Do not edit the class manually.
1667
1955
  */
1668
- interface V4WorkflowsPost201Response {
1669
- 'success'?: boolean;
1670
- /**
1671
- * ID of the created workflow
1672
- */
1673
- 'workflowId'?: string;
1956
+ /**
1957
+ * Data validation configuration
1958
+ */
1959
+ interface V4WorkflowsGet200ResponseWorkflowsInnerDataValidation {
1674
1960
  /**
1675
- * Information about workflow creation
1961
+ * Whether data validation is enabled for the workflow
1676
1962
  */
1677
- 'info'?: string;
1963
+ 'enabled'?: boolean;
1678
1964
  }
1679
1965
 
1680
1966
  /**
@@ -1688,38 +1974,52 @@ interface V4WorkflowsPost201Response {
1688
1974
  * https://openapi-generator.tech
1689
1975
  * Do not edit the class manually.
1690
1976
  */
1691
- interface WorkflowWithCustomSchemaFieldsInner {
1692
- /**
1693
- * Name of the field to extract
1694
- */
1695
- 'name'?: string;
1696
- /**
1697
- * Data type of the field
1698
- */
1699
- 'dataType'?: WorkflowWithCustomSchemaFieldsInnerDataTypeEnum;
1977
+ interface V4WorkflowsGet200ResponseWorkflowsInnerValidationStatisticsByRule {
1978
+ 'ruleName'?: string;
1979
+ 'count'?: number;
1980
+ }
1981
+
1982
+ /**
1983
+ * Kadoa API
1984
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1985
+ *
1986
+ * The version of the OpenAPI document: 3.0.0
1987
+ * Contact: support@kadoa.com
1988
+ *
1989
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1990
+ * https://openapi-generator.tech
1991
+ * Do not edit the class manually.
1992
+ */
1993
+ interface V4WorkflowsGet200ResponseWorkflowsInnerValidationStatisticsTotal {
1700
1994
  /**
1701
- * Description of what this field represents
1995
+ * Overall validation score
1702
1996
  */
1703
- 'description'?: string;
1997
+ 'count'?: number;
1704
1998
  /**
1705
- * Example value for this field
1999
+ * Change in validation score since last validation
1706
2000
  */
1707
- 'example'?: string;
2001
+ 'change'?: number;
2002
+ }
2003
+
2004
+ /**
2005
+ * Kadoa API
2006
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2007
+ *
2008
+ * The version of the OpenAPI document: 3.0.0
2009
+ * Contact: support@kadoa.com
2010
+ *
2011
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2012
+ * https://openapi-generator.tech
2013
+ * Do not edit the class manually.
2014
+ */
2015
+
2016
+ /**
2017
+ * Validation statistics for the workflow
2018
+ */
2019
+ interface V4WorkflowsGet200ResponseWorkflowsInnerValidationStatistics {
2020
+ 'total'?: V4WorkflowsGet200ResponseWorkflowsInnerValidationStatisticsTotal;
2021
+ 'byRule'?: V4WorkflowsGet200ResponseWorkflowsInnerValidationStatisticsByRule;
1708
2022
  }
1709
- declare const WorkflowWithCustomSchemaFieldsInnerDataTypeEnum: {
1710
- readonly String: "STRING";
1711
- readonly Number: "NUMBER";
1712
- readonly Boolean: "BOOLEAN";
1713
- readonly Date: "DATE";
1714
- readonly Datetime: "DATETIME";
1715
- readonly Currency: "CURRENCY";
1716
- readonly Money: "MONEY";
1717
- readonly Image: "IMAGE";
1718
- readonly Link: "LINK";
1719
- readonly Object: "OBJECT";
1720
- readonly Array: "ARRAY";
1721
- };
1722
- type WorkflowWithCustomSchemaFieldsInnerDataTypeEnum = typeof WorkflowWithCustomSchemaFieldsInnerDataTypeEnum[keyof typeof WorkflowWithCustomSchemaFieldsInnerDataTypeEnum];
1723
2023
 
1724
2024
  /**
1725
2025
  * Kadoa API
@@ -1732,28 +2032,28 @@ type WorkflowWithCustomSchemaFieldsInnerDataTypeEnum = typeof WorkflowWithCustom
1732
2032
  * https://openapi-generator.tech
1733
2033
  * Do not edit the class manually.
1734
2034
  */
1735
- interface WorkflowWithCustomSchemaInteractionsInner {
2035
+ interface V4WorkflowsWorkflowIdGet200ResponseBrowserActionsInner {
1736
2036
  /**
1737
- * Type of interaction
2037
+ * Action type (e.g., CLICK, TYPE, WAIT, GOTO)
1738
2038
  */
1739
- 'type'?: WorkflowWithCustomSchemaInteractionsInnerTypeEnum;
2039
+ 'type'?: string;
1740
2040
  /**
1741
- * CSS selector for the target element
2041
+ * CSS selector for element-based actions
1742
2042
  */
1743
2043
  'selector'?: string;
1744
2044
  /**
1745
- * Text to type (required for TYPE interactions)
2045
+ * Text to type for TYPE actions
1746
2046
  */
1747
2047
  'text'?: string;
2048
+ /**
2049
+ * Milliseconds to wait for WAIT actions
2050
+ */
2051
+ 'timeMs'?: number;
2052
+ /**
2053
+ * URL to navigate to for GOTO actions
2054
+ */
2055
+ 'url'?: string;
1748
2056
  }
1749
- declare const WorkflowWithCustomSchemaInteractionsInnerTypeEnum: {
1750
- readonly Click: "CLICK";
1751
- readonly Type: "TYPE";
1752
- readonly Hover: "HOVER";
1753
- readonly Scroll: "SCROLL";
1754
- readonly Wait: "WAIT";
1755
- };
1756
- type WorkflowWithCustomSchemaInteractionsInnerTypeEnum = typeof WorkflowWithCustomSchemaInteractionsInnerTypeEnum[keyof typeof WorkflowWithCustomSchemaInteractionsInnerTypeEnum];
1757
2057
 
1758
2058
  /**
1759
2059
  * Kadoa API
@@ -1769,18 +2069,23 @@ type WorkflowWithCustomSchemaInteractionsInnerTypeEnum = typeof WorkflowWithCust
1769
2069
  /**
1770
2070
  * Scraping location configuration
1771
2071
  */
1772
- interface WorkflowWithCustomSchemaLocation {
1773
- 'type'?: WorkflowWithCustomSchemaLocationTypeEnum;
1774
- /**
1775
- * Country ISO code for manual location
1776
- */
1777
- 'isoCode'?: string;
2072
+ interface V4WorkflowsWorkflowIdGet200ResponseLocation {
2073
+ 'type'?: V4WorkflowsWorkflowIdGet200ResponseLocationTypeEnum;
2074
+ 'isoCode'?: V4WorkflowsWorkflowIdGet200ResponseLocationIsoCodeEnum;
1778
2075
  }
1779
- declare const WorkflowWithCustomSchemaLocationTypeEnum: {
2076
+ declare const V4WorkflowsWorkflowIdGet200ResponseLocationTypeEnum: {
1780
2077
  readonly Auto: "auto";
1781
2078
  readonly Manual: "manual";
1782
2079
  };
1783
- type WorkflowWithCustomSchemaLocationTypeEnum = typeof WorkflowWithCustomSchemaLocationTypeEnum[keyof typeof WorkflowWithCustomSchemaLocationTypeEnum];
2080
+ type V4WorkflowsWorkflowIdGet200ResponseLocationTypeEnum = typeof V4WorkflowsWorkflowIdGet200ResponseLocationTypeEnum[keyof typeof V4WorkflowsWorkflowIdGet200ResponseLocationTypeEnum];
2081
+ declare const V4WorkflowsWorkflowIdGet200ResponseLocationIsoCodeEnum: {
2082
+ readonly De: "DE";
2083
+ readonly Us: "US";
2084
+ readonly Gb: "GB";
2085
+ readonly Nl: "NL";
2086
+ readonly Ca: "CA";
2087
+ };
2088
+ type V4WorkflowsWorkflowIdGet200ResponseLocationIsoCodeEnum = typeof V4WorkflowsWorkflowIdGet200ResponseLocationIsoCodeEnum[keyof typeof V4WorkflowsWorkflowIdGet200ResponseLocationIsoCodeEnum];
1784
2089
 
1785
2090
  /**
1786
2091
  * Kadoa API
@@ -1793,101 +2098,71 @@ type WorkflowWithCustomSchemaLocationTypeEnum = typeof WorkflowWithCustomSchemaL
1793
2098
  * https://openapi-generator.tech
1794
2099
  * Do not edit the class manually.
1795
2100
  */
2101
+ interface V4WorkflowsWorkflowIdGet200ResponseNotificationConfigFieldsInner {
2102
+ 'fieldName'?: string;
2103
+ 'operator'?: V4WorkflowsWorkflowIdGet200ResponseNotificationConfigFieldsInnerOperatorEnum;
2104
+ }
2105
+ declare const V4WorkflowsWorkflowIdGet200ResponseNotificationConfigFieldsInnerOperatorEnum: {
2106
+ readonly Changed: "changed";
2107
+ readonly Added: "added";
2108
+ readonly Removed: "removed";
2109
+ };
2110
+ type V4WorkflowsWorkflowIdGet200ResponseNotificationConfigFieldsInnerOperatorEnum = typeof V4WorkflowsWorkflowIdGet200ResponseNotificationConfigFieldsInnerOperatorEnum[keyof typeof V4WorkflowsWorkflowIdGet200ResponseNotificationConfigFieldsInnerOperatorEnum];
1796
2111
 
1797
2112
  /**
1798
- * Create a workflow by defining entity and fields directly
2113
+ * Kadoa API
2114
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2115
+ *
2116
+ * The version of the OpenAPI document: 3.0.0
2117
+ * Contact: support@kadoa.com
2118
+ *
2119
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2120
+ * https://openapi-generator.tech
2121
+ * Do not edit the class manually.
1799
2122
  */
1800
- interface WorkflowWithCustomSchema {
1801
- /**
1802
- * Entity name for extraction (required unless using agentic-navigation mode)
1803
- */
1804
- 'entity'?: string;
1805
- /**
1806
- * Schema fields for extraction (required unless using agentic-navigation mode)
1807
- */
1808
- 'fields'?: Array<WorkflowWithCustomSchemaFieldsInner>;
1809
- /**
1810
- * List of URLs to scrape
1811
- */
1812
- 'urls': Array<string>;
1813
- /**
1814
- * Navigation mode for scraping. When using agentic-navigation, userPrompt is required and entity/fields become optional
1815
- */
1816
- 'navigationMode': WorkflowWithCustomSchemaNavigationModeEnum;
1817
- /**
1818
- * Required when navigationMode is agentic-navigation. Natural language instructions for the agent (between 10 and 5000 characters)
1819
- */
1820
- 'userPrompt'?: string;
1821
- /**
1822
- * Maximum number of items to scrape
1823
- */
1824
- 'limit'?: number;
1825
- 'location'?: WorkflowWithCustomSchemaLocation;
1826
- /**
1827
- * Name of the workflow
1828
- */
2123
+
2124
+ /**
2125
+ * Monitoring configuration
2126
+ */
2127
+ interface V4WorkflowsWorkflowIdGet200ResponseNotificationConfig {
2128
+ 'enabled'?: boolean;
2129
+ 'fields'?: Array<V4WorkflowsWorkflowIdGet200ResponseNotificationConfigFieldsInner>;
2130
+ }
2131
+
2132
+ /**
2133
+ * Kadoa API
2134
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2135
+ *
2136
+ * The version of the OpenAPI document: 3.0.0
2137
+ * Contact: support@kadoa.com
2138
+ *
2139
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2140
+ * https://openapi-generator.tech
2141
+ * Do not edit the class manually.
2142
+ */
2143
+ interface V4WorkflowsWorkflowIdGet200ResponseSchemaInner {
1829
2144
  'name'?: string;
1830
- /**
1831
- * Optional description of the workflow (maximum 500 characters)
1832
- */
1833
2145
  'description'?: string;
1834
- /**
1835
- * Tags for categorization
1836
- */
1837
- 'tags'?: Array<string>;
1838
- /**
1839
- * Monitoring configuration
1840
- */
1841
- 'monitoring'?: object;
1842
- /**
1843
- * Update frequency
1844
- */
1845
- 'interval'?: WorkflowWithCustomSchemaIntervalEnum;
1846
- /**
1847
- * Cron schedules for updates
1848
- */
1849
- 'schedules'?: Array<string>;
1850
- /**
1851
- * When true, bypasses preview and installs the scraper immediately with the given limit
1852
- */
1853
- 'bypassPreview'?: boolean;
1854
- /**
1855
- * Whether to automatically start the workflow after creation
1856
- */
1857
- 'autoStart'?: boolean;
1858
- /**
1859
- * Optional browser interactions to perform during scraping
1860
- */
1861
- 'interactions'?: Array<WorkflowWithCustomSchemaInteractionsInner>;
2146
+ 'example'?: string;
2147
+ 'dataType'?: V4WorkflowsWorkflowIdGet200ResponseSchemaInnerDataTypeEnum;
2148
+ 'isKey'?: boolean;
2149
+ 'isRequired'?: boolean;
2150
+ 'isUnique'?: boolean;
1862
2151
  }
1863
- declare const WorkflowWithCustomSchemaNavigationModeEnum: {
1864
- readonly SinglePage: "single-page";
1865
- readonly PaginatedPage: "paginated-page";
1866
- readonly PageAndDetail: "page-and-detail";
1867
- readonly AgenticNavigation: "agentic-navigation";
1868
- };
1869
- type WorkflowWithCustomSchemaNavigationModeEnum = typeof WorkflowWithCustomSchemaNavigationModeEnum[keyof typeof WorkflowWithCustomSchemaNavigationModeEnum];
1870
- declare const WorkflowWithCustomSchemaIntervalEnum: {
1871
- readonly OnlyOnce: "ONLY_ONCE";
1872
- readonly Every10Minutes: "EVERY_10_MINUTES";
1873
- readonly HalfHourly: "HALF_HOURLY";
1874
- readonly Hourly: "HOURLY";
1875
- readonly ThreeHourly: "THREE_HOURLY";
1876
- readonly SixHourly: "SIX_HOURLY";
1877
- readonly TwelveHourly: "TWELVE_HOURLY";
1878
- readonly EighteenHourly: "EIGHTEEN_HOURLY";
1879
- readonly Daily: "DAILY";
1880
- readonly TwoDay: "TWO_DAY";
1881
- readonly ThreeDay: "THREE_DAY";
1882
- readonly Weekly: "WEEKLY";
1883
- readonly Biweekly: "BIWEEKLY";
1884
- readonly Triweekly: "TRIWEEKLY";
1885
- readonly FourWeekly: "FOUR_WEEKLY";
1886
- readonly Monthly: "MONTHLY";
1887
- readonly RealTime: "REAL_TIME";
1888
- readonly Custom: "CUSTOM";
2152
+ declare const V4WorkflowsWorkflowIdGet200ResponseSchemaInnerDataTypeEnum: {
2153
+ readonly String: "STRING";
2154
+ readonly Number: "NUMBER";
2155
+ readonly Boolean: "BOOLEAN";
2156
+ readonly Date: "DATE";
2157
+ readonly Datetime: "DATETIME";
2158
+ readonly Currency: "CURRENCY";
2159
+ readonly Money: "MONEY";
2160
+ readonly Image: "IMAGE";
2161
+ readonly Link: "LINK";
2162
+ readonly Object: "OBJECT";
2163
+ readonly Array: "ARRAY";
1889
2164
  };
1890
- type WorkflowWithCustomSchemaIntervalEnum = typeof WorkflowWithCustomSchemaIntervalEnum[keyof typeof WorkflowWithCustomSchemaIntervalEnum];
2165
+ type V4WorkflowsWorkflowIdGet200ResponseSchemaInnerDataTypeEnum = typeof V4WorkflowsWorkflowIdGet200ResponseSchemaInnerDataTypeEnum[keyof typeof V4WorkflowsWorkflowIdGet200ResponseSchemaInnerDataTypeEnum];
1891
2166
 
1892
2167
  /**
1893
2168
  * Kadoa API
@@ -1901,96 +2176,147 @@ type WorkflowWithCustomSchemaIntervalEnum = typeof WorkflowWithCustomSchemaInter
1901
2176
  * Do not edit the class manually.
1902
2177
  */
1903
2178
 
1904
- /**
1905
- * Create a workflow using an existing schema configuration
1906
- */
1907
- interface WorkflowWithExistingSchema {
2179
+ interface V4WorkflowsGet200ResponseWorkflowsInner {
2180
+ /**
2181
+ * Unique identifier for the workflow
2182
+ */
2183
+ '_id'?: string;
2184
+ /**
2185
+ * Name of the workflow
2186
+ */
2187
+ 'name'?: string;
1908
2188
  /**
1909
- * ID of existing schema configuration (not required when using agentic-navigation mode)
2189
+ * Description of the workflow
1910
2190
  */
1911
- 'schemaId': string;
2191
+ 'description'?: string;
1912
2192
  /**
1913
- * List of URLs to scrape
2193
+ * Current state of the workflow
1914
2194
  */
1915
- 'urls': Array<string>;
2195
+ 'state'?: V4WorkflowsGet200ResponseWorkflowsInnerStateEnum;
2196
+ /**
2197
+ * Display state for frontend
2198
+ */
2199
+ 'displayState'?: V4WorkflowsGet200ResponseWorkflowsInnerDisplayStateEnum;
2200
+ /**
2201
+ * ID of the user who owns the workflow
2202
+ */
2203
+ 'userId'?: string;
1916
2204
  /**
1917
- * Navigation mode for scraping. When using agentic-navigation, userPrompt is required and schemaId becomes optional
2205
+ * Timestamp when the workflow was created
1918
2206
  */
1919
- 'navigationMode': WorkflowWithExistingSchemaNavigationModeEnum;
2207
+ 'createdAt'?: string;
1920
2208
  /**
1921
- * Required when navigationMode is agentic-navigation. Natural language instructions for the agent (between 10 and 5000 characters)
2209
+ * Tags associated with the workflow
1922
2210
  */
1923
- 'userPrompt'?: string;
2211
+ 'tags'?: Array<string>;
1924
2212
  /**
1925
2213
  * Maximum number of items to scrape
1926
2214
  */
1927
2215
  'limit'?: number;
1928
- 'location'?: WorkflowWithCustomSchemaLocation;
1929
2216
  /**
1930
- * Name of the workflow
2217
+ * When the last job finished
1931
2218
  */
1932
- 'name'?: string;
2219
+ 'finishedAt'?: string;
1933
2220
  /**
1934
- * Optional description of the workflow (maximum 500 characters)
2221
+ * When the last job started
1935
2222
  */
1936
- 'description'?: string;
2223
+ 'startedAt'?: string;
1937
2224
  /**
1938
- * Tags for categorization
2225
+ * Protocol information from last job
1939
2226
  */
1940
- 'tags'?: Array<string>;
2227
+ 'protocol'?: string;
1941
2228
  /**
1942
- * Monitoring configuration
2229
+ * ID of the last job
1943
2230
  */
1944
- 'monitoring'?: object;
2231
+ 'jobId'?: string;
1945
2232
  /**
1946
- * Update frequency
2233
+ * Database key for the workflow data
1947
2234
  */
1948
- 'interval'?: WorkflowWithExistingSchemaIntervalEnum;
2235
+ 'dataKey'?: string;
2236
+ 'location'?: V4WorkflowsWorkflowIdGet200ResponseLocation;
1949
2237
  /**
1950
- * Cron schedules for updates
2238
+ * Cost of the last job run in credits
1951
2239
  */
1952
- 'schedules'?: Array<string>;
2240
+ 'runCosts'?: number;
1953
2241
  /**
1954
- * When true, bypasses preview and installs the scraper immediately with the given limit
2242
+ * State of the last job run
1955
2243
  */
1956
- 'bypassPreview'?: boolean;
2244
+ 'runState'?: string;
1957
2245
  /**
1958
- * Whether to automatically start the workflow after creation
2246
+ * Total number of records extracted
1959
2247
  */
1960
- 'autoStart'?: boolean;
2248
+ 'totalRecords'?: number;
1961
2249
  /**
1962
- * Optional browser interactions to perform during scraping
2250
+ * Primary URL being scraped
2251
+ */
2252
+ 'url'?: string;
2253
+ /**
2254
+ * List of URLs being scraped
2255
+ */
2256
+ 'urls'?: Array<string>;
2257
+ /**
2258
+ * Optional browser actions to perform before extraction
2259
+ */
2260
+ 'browserActions'?: Array<V4WorkflowsWorkflowIdGet200ResponseBrowserActionsInner>;
2261
+ /**
2262
+ * Extraction schema fields
2263
+ */
2264
+ 'schema'?: Array<V4WorkflowsWorkflowIdGet200ResponseSchemaInner>;
2265
+ /**
2266
+ * Type of schema (deprecated)
2267
+ */
2268
+ 'schemaType'?: V4WorkflowsGet200ResponseWorkflowsInnerSchemaTypeEnum;
2269
+ /**
2270
+ * Name of the template used
2271
+ */
2272
+ 'templateName'?: string;
2273
+ /**
2274
+ * ID of the template used
2275
+ */
2276
+ 'templateId'?: string;
2277
+ /**
2278
+ * Whether the schema can be edited
2279
+ */
2280
+ 'isSchemaEditable'?: boolean;
2281
+ 'dataValidation'?: V4WorkflowsGet200ResponseWorkflowsInnerDataValidation;
2282
+ 'validationStatistics'?: V4WorkflowsGet200ResponseWorkflowsInnerValidationStatistics;
2283
+ /**
2284
+ * Whether monitoring is enabled
1963
2285
  */
1964
- 'interactions'?: Array<WorkflowWithCustomSchemaInteractionsInner>;
2286
+ 'monitoring'?: boolean;
2287
+ 'notificationConfig'?: V4WorkflowsWorkflowIdGet200ResponseNotificationConfig;
1965
2288
  }
1966
- declare const WorkflowWithExistingSchemaNavigationModeEnum: {
1967
- readonly SinglePage: "single-page";
1968
- readonly PaginatedPage: "paginated-page";
1969
- readonly PageAndDetail: "page-and-detail";
1970
- readonly AgenticNavigation: "agentic-navigation";
2289
+ declare const V4WorkflowsGet200ResponseWorkflowsInnerStateEnum: {
2290
+ readonly Active: "ACTIVE";
2291
+ readonly Error: "ERROR";
2292
+ readonly Paused: "PAUSED";
2293
+ readonly NotSupported: "NOT_SUPPORTED";
2294
+ readonly Preview: "PREVIEW";
2295
+ readonly ComplianceReview: "COMPLIANCE_REVIEW";
2296
+ readonly ComplianceRejected: "COMPLIANCE_REJECTED";
2297
+ readonly Queued: "QUEUED";
2298
+ readonly Setup: "SETUP";
2299
+ readonly Deleted: "DELETED";
1971
2300
  };
1972
- type WorkflowWithExistingSchemaNavigationModeEnum = typeof WorkflowWithExistingSchemaNavigationModeEnum[keyof typeof WorkflowWithExistingSchemaNavigationModeEnum];
1973
- declare const WorkflowWithExistingSchemaIntervalEnum: {
1974
- readonly OnlyOnce: "ONLY_ONCE";
1975
- readonly Every10Minutes: "EVERY_10_MINUTES";
1976
- readonly HalfHourly: "HALF_HOURLY";
1977
- readonly Hourly: "HOURLY";
1978
- readonly ThreeHourly: "THREE_HOURLY";
1979
- readonly SixHourly: "SIX_HOURLY";
1980
- readonly TwelveHourly: "TWELVE_HOURLY";
1981
- readonly EighteenHourly: "EIGHTEEN_HOURLY";
1982
- readonly Daily: "DAILY";
1983
- readonly TwoDay: "TWO_DAY";
1984
- readonly ThreeDay: "THREE_DAY";
1985
- readonly Weekly: "WEEKLY";
1986
- readonly Biweekly: "BIWEEKLY";
1987
- readonly Triweekly: "TRIWEEKLY";
1988
- readonly FourWeekly: "FOUR_WEEKLY";
1989
- readonly Monthly: "MONTHLY";
1990
- readonly RealTime: "REAL_TIME";
1991
- readonly Custom: "CUSTOM";
2301
+ type V4WorkflowsGet200ResponseWorkflowsInnerStateEnum = typeof V4WorkflowsGet200ResponseWorkflowsInnerStateEnum[keyof typeof V4WorkflowsGet200ResponseWorkflowsInnerStateEnum];
2302
+ declare const V4WorkflowsGet200ResponseWorkflowsInnerDisplayStateEnum: {
2303
+ readonly Active: "ACTIVE";
2304
+ readonly Error: "ERROR";
2305
+ readonly Paused: "PAUSED";
2306
+ readonly NotSupported: "NOT_SUPPORTED";
2307
+ readonly Preview: "PREVIEW";
2308
+ readonly ComplianceReview: "COMPLIANCE_REVIEW";
2309
+ readonly ComplianceRejected: "COMPLIANCE_REJECTED";
2310
+ readonly Queued: "QUEUED";
2311
+ readonly Setup: "SETUP";
2312
+ readonly Running: "RUNNING";
1992
2313
  };
1993
- type WorkflowWithExistingSchemaIntervalEnum = typeof WorkflowWithExistingSchemaIntervalEnum[keyof typeof WorkflowWithExistingSchemaIntervalEnum];
2314
+ type V4WorkflowsGet200ResponseWorkflowsInnerDisplayStateEnum = typeof V4WorkflowsGet200ResponseWorkflowsInnerDisplayStateEnum[keyof typeof V4WorkflowsGet200ResponseWorkflowsInnerDisplayStateEnum];
2315
+ declare const V4WorkflowsGet200ResponseWorkflowsInnerSchemaTypeEnum: {
2316
+ readonly Detail: "DETAIL";
2317
+ readonly Directory: "DIRECTORY";
2318
+ };
2319
+ type V4WorkflowsGet200ResponseWorkflowsInnerSchemaTypeEnum = typeof V4WorkflowsGet200ResponseWorkflowsInnerSchemaTypeEnum[keyof typeof V4WorkflowsGet200ResponseWorkflowsInnerSchemaTypeEnum];
1994
2320
 
1995
2321
  /**
1996
2322
  * Kadoa API
@@ -2004,10 +2330,13 @@ type WorkflowWithExistingSchemaIntervalEnum = typeof WorkflowWithExistingSchemaI
2004
2330
  * Do not edit the class manually.
2005
2331
  */
2006
2332
 
2007
- /**
2008
- * @type V4WorkflowsPostRequest
2009
- */
2010
- type V4WorkflowsPostRequest = WorkflowWithCustomSchema | WorkflowWithExistingSchema;
2333
+ interface V4WorkflowsGet200Response {
2334
+ /**
2335
+ * List of workflows
2336
+ */
2337
+ 'workflows'?: Array<V4WorkflowsGet200ResponseWorkflowsInner>;
2338
+ 'pagination'?: V4WorkflowsGet200ResponsePagination;
2339
+ }
2011
2340
 
2012
2341
  /**
2013
2342
  * Kadoa API
@@ -2370,7 +2699,7 @@ interface V4WorkflowsWorkflowIdGet200Response {
2370
2699
  * Whether monitoring is enabled
2371
2700
  */
2372
2701
  'monitoring'?: boolean;
2373
- 'location'?: V4WorkflowsGet200ResponseWorkflowsInnerLocation;
2702
+ 'location'?: V4WorkflowsWorkflowIdGet200ResponseLocation;
2374
2703
  /**
2375
2704
  * Tags associated with the workflow
2376
2705
  */
@@ -2426,11 +2755,11 @@ interface V4WorkflowsWorkflowIdGet200Response {
2426
2755
  /**
2427
2756
  * Optional browser actions to perform before extraction
2428
2757
  */
2429
- 'browserActions'?: Array<V4WorkflowsGet200ResponseWorkflowsInnerBrowserActionsInner>;
2758
+ 'browserActions'?: Array<V4WorkflowsWorkflowIdGet200ResponseBrowserActionsInner>;
2430
2759
  /**
2431
2760
  * Extraction schema fields
2432
2761
  */
2433
- 'schema'?: Array<V4WorkflowsGet200ResponseWorkflowsInnerSchemaInner>;
2762
+ 'schema'?: Array<V4WorkflowsWorkflowIdGet200ResponseSchemaInner>;
2434
2763
  /**
2435
2764
  * Type of schema (deprecated)
2436
2765
  */
@@ -2458,7 +2787,7 @@ interface V4WorkflowsWorkflowIdGet200Response {
2458
2787
  'linkingColumns'?: Array<string>;
2459
2788
  'dataLinking'?: V4WorkflowsWorkflowIdGet200ResponseDataLinking;
2460
2789
  'validationStatistics'?: V4WorkflowsWorkflowIdGet200ResponseValidationStatistics;
2461
- 'notificationConfig'?: V4WorkflowsGet200ResponseWorkflowsInnerNotificationConfig;
2790
+ 'notificationConfig'?: V4WorkflowsWorkflowIdGet200ResponseNotificationConfig;
2462
2791
  }
2463
2792
  declare const V4WorkflowsWorkflowIdGet200ResponseStateEnum: {
2464
2793
  readonly Active: "ACTIVE";
@@ -2663,6 +2992,22 @@ declare const V4WorkflowsWorkflowIdJobsJobIdGet200ResponseStateEnum: {
2663
2992
  };
2664
2993
  type V4WorkflowsWorkflowIdJobsJobIdGet200ResponseStateEnum = typeof V4WorkflowsWorkflowIdJobsJobIdGet200ResponseStateEnum[keyof typeof V4WorkflowsWorkflowIdJobsJobIdGet200ResponseStateEnum];
2665
2994
 
2995
+ /**
2996
+ * Kadoa API
2997
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2998
+ *
2999
+ * The version of the OpenAPI document: 3.0.0
3000
+ * Contact: support@kadoa.com
3001
+ *
3002
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
3003
+ * https://openapi-generator.tech
3004
+ * Do not edit the class manually.
3005
+ */
3006
+ interface V4WorkflowsWorkflowIdMetadataPut200Response {
3007
+ 'success'?: boolean;
3008
+ 'message'?: string;
3009
+ }
3010
+
2666
3011
  /**
2667
3012
  * Kadoa API
2668
3013
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
@@ -4382,13 +4727,13 @@ interface WorkflowsApiInterface {
4382
4727
  */
4383
4728
  v4WorkflowsGet(requestParameters?: WorkflowsApiV4WorkflowsGetRequest, options?: RawAxiosRequestConfig): AxiosPromise<V4WorkflowsGet200Response>;
4384
4729
  /**
4385
- *
4730
+ * Create a new workflow with schema, custom fields, or agentic navigation mode
4386
4731
  * @summary Create a new workflow
4387
4732
  * @param {WorkflowsApiV4WorkflowsPostRequest} requestParameters Request parameters.
4388
4733
  * @param {*} [options] Override http request option.
4389
4734
  * @throws {RequiredError}
4390
4735
  */
4391
- v4WorkflowsPost(requestParameters: WorkflowsApiV4WorkflowsPostRequest, options?: RawAxiosRequestConfig): AxiosPromise<V4WorkflowsPost201Response>;
4736
+ v4WorkflowsPost(requestParameters?: WorkflowsApiV4WorkflowsPostRequest, options?: RawAxiosRequestConfig): AxiosPromise<CreateWorkflowResponse>;
4392
4737
  /**
4393
4738
  *
4394
4739
  * @summary Get workflow audit log entries
@@ -4460,7 +4805,7 @@ interface WorkflowsApiInterface {
4460
4805
  * @param {*} [options] Override http request option.
4461
4806
  * @throws {RequiredError}
4462
4807
  */
4463
- v4WorkflowsWorkflowIdMetadataPut(requestParameters: WorkflowsApiV4WorkflowsWorkflowIdMetadataPutRequest, options?: RawAxiosRequestConfig): AxiosPromise<V4SchemasSchemaIdPut200Response>;
4808
+ v4WorkflowsWorkflowIdMetadataPut(requestParameters: WorkflowsApiV4WorkflowsWorkflowIdMetadataPutRequest, options?: RawAxiosRequestConfig): AxiosPromise<V4WorkflowsWorkflowIdMetadataPut200Response>;
4464
4809
  /**
4465
4810
  *
4466
4811
  * @summary Pause a workflow
@@ -4649,7 +4994,10 @@ interface WorkflowsApiV4WorkflowsGetRequest {
4649
4994
  * Request parameters for v4WorkflowsPost operation in WorkflowsApi.
4650
4995
  */
4651
4996
  interface WorkflowsApiV4WorkflowsPostRequest {
4652
- readonly v4WorkflowsPostRequest: V4WorkflowsPostRequest;
4997
+ /**
4998
+ * Body
4999
+ */
5000
+ readonly createWorkflowBody?: CreateWorkflowBody;
4653
5001
  }
4654
5002
  /**
4655
5003
  * Request parameters for v4WorkflowsWorkflowIdAuditlogGet operation in WorkflowsApi.
@@ -5110,55 +5458,11 @@ declare class DataFetcherService {
5110
5458
  fetchDataPages(options: FetchDataOptions): AsyncGenerator<FetchDataResult, void, unknown>;
5111
5459
  }
5112
5460
 
5113
- type NavigationMode = (typeof WorkflowWithExistingSchemaNavigationModeEnum)[keyof typeof WorkflowWithExistingSchemaNavigationModeEnum];
5114
- type WorkflowInterval = (typeof WorkflowWithCustomSchemaIntervalEnum)[keyof typeof WorkflowWithCustomSchemaIntervalEnum];
5115
- type MonitoringConfig = V4WorkflowsWorkflowIdMetadataPutRequestMonitoring & {
5116
- channels?: Array<unknown>;
5117
- };
5118
- type LocationConfig$1 = WorkflowWithCustomSchemaLocation;
5461
+ type NavigationMode = (typeof CreateWorkflowWithSchemaBodyNavigationModeEnum)[keyof typeof CreateWorkflowWithSchemaBodyNavigationModeEnum];
5462
+ type WorkflowInterval = (typeof CreateWorkflowWithSchemaBodyIntervalEnum)[keyof typeof CreateWorkflowWithSchemaBodyIntervalEnum];
5463
+ type LocationConfig$1 = Location;
5119
5464
 
5120
- declare const SchemaFieldDataTypeEnum: {
5121
- readonly String: "STRING";
5122
- readonly Number: "NUMBER";
5123
- readonly Boolean: "BOOLEAN";
5124
- readonly Date: "DATE";
5125
- readonly Datetime: "DATETIME";
5126
- readonly Currency: "CURRENCY";
5127
- readonly Money: "MONEY";
5128
- readonly Location: "LOCATION";
5129
- readonly Html: "HTML";
5130
- readonly Markdown: "MARKDOWN";
5131
- readonly Image: "IMAGE";
5132
- readonly Link: "LINK";
5133
- readonly Object: "OBJECT";
5134
- readonly Array: "ARRAY";
5135
- };
5136
- interface SchemaField {
5137
- /**
5138
- * Field name
5139
- * @type {string}
5140
- * @memberof SchemaField
5141
- */
5142
- name: string;
5143
- /**
5144
- * Field description
5145
- * @type {string}
5146
- * @memberof SchemaField
5147
- */
5148
- description: string;
5149
- /**
5150
- * Example value for the field
5151
- * @type {string}
5152
- * @memberof SchemaField
5153
- */
5154
- example: string;
5155
- /**
5156
- * Data type of the field
5157
- * @type {string}
5158
- * @memberof SchemaField
5159
- */
5160
- dataType: (typeof SchemaFieldDataTypeEnum)[keyof typeof SchemaFieldDataTypeEnum];
5161
- }
5465
+ type SchemaField = ExtractionSchemaField | ExtractionClassificationField | ExtractionMetadataField;
5162
5466
  interface EntityPrediction {
5163
5467
  entity: string;
5164
5468
  fields: SchemaField[];
@@ -5273,7 +5577,7 @@ interface PollingResult<T> {
5273
5577
  */
5274
5578
  declare function pollUntil<T>(pollFn: () => Promise<T>, isComplete: (result: T) => boolean, options?: PollingOptions): Promise<PollingResult<T>>;
5275
5579
 
5276
- type LocationConfig = WorkflowWithCustomSchemaLocation;
5580
+ type LocationConfig = Location;
5277
5581
  type WorkflowId = string;
5278
5582
  type WorkflowStateEnum = V4WorkflowsGet200ResponseWorkflowsInnerStateEnum;
5279
5583
  type WorkflowState = WorkflowStateEnum[keyof WorkflowStateEnum];
@@ -5286,8 +5590,8 @@ interface CreateWorkflowInput {
5286
5590
  name: string;
5287
5591
  description?: string;
5288
5592
  schemaId?: string;
5289
- entity?: string;
5290
- fields?: Array<SchemaField>;
5593
+ entity: string;
5594
+ fields: Array<SchemaField>;
5291
5595
  tags?: string[];
5292
5596
  interval?: WorkflowInterval;
5293
5597
  monitoring?: MonitoringConfig;
@@ -5537,7 +5841,15 @@ declare class ExtractionModule {
5537
5841
  * @param options Extraction configuration options including optional notification settings
5538
5842
  * @returns ExtractionResult containing workflow ID, workflow details, and first page of extracted data
5539
5843
  *
5540
- * @example
5844
+ * @example Simple extraction with AI detection
5845
+ * ```typescript
5846
+ * const result = await client.extraction.run({
5847
+ * urls: ['https://example.com'],
5848
+ * name: 'My Extraction'
5849
+ * });
5850
+ * ```
5851
+ *
5852
+ * @example With notifications
5541
5853
  * ```typescript
5542
5854
  * const result = await client.extraction.run({
5543
5855
  * urls: ['https://example.com'],
@@ -5551,6 +5863,8 @@ declare class ExtractionModule {
5551
5863
  * }
5552
5864
  * });
5553
5865
  * ```
5866
+ *
5867
+ * @see {@link KadoaClient.extract} For more flexible extraction configuration using the builder API
5554
5868
  */
5555
5869
  run(options: ExtractionOptions): Promise<ExtractionResult>;
5556
5870
  /**
@@ -5572,6 +5886,8 @@ declare class ExtractionModule {
5572
5886
  * }
5573
5887
  * });
5574
5888
  * ```
5889
+ *
5890
+ * @see {@link KadoaClient.extract} For more flexible extraction configuration using the builder API
5575
5891
  */
5576
5892
  submit(options: ExtractionOptions): Promise<SubmitExtractionResult>;
5577
5893
  /**
@@ -5835,6 +6151,97 @@ declare class WorkflowsModule {
5835
6151
  waitForJobCompletion(workflowId: string, jobId: string, options?: JobWaitOptions): Promise<FinishedJob>;
5836
6152
  }
5837
6153
 
6154
+ /**
6155
+ * Raw content format options
6156
+ */
6157
+ type RawFormat = "html" | "markdown" | "url";
6158
+ /**
6159
+ * Data type for schema fields
6160
+ */
6161
+ type DataType = (typeof ExtractionSchemaFieldDataTypeEnum)[keyof typeof ExtractionSchemaFieldDataTypeEnum];
6162
+ /**
6163
+ * Optional configuration for schema fields
6164
+ */
6165
+ interface FieldOptions {
6166
+ /**
6167
+ * Example value for the field (required for STRING, IMAGE, LINK, OBJECT, ARRAY)
6168
+ * Can be a string or an array of strings
6169
+ */
6170
+ example?: ExtractionSchemaFieldExample;
6171
+ /**
6172
+ * Whether this field is a primary key
6173
+ */
6174
+ isKey?: boolean;
6175
+ }
6176
+ /**
6177
+ * Category definition for classification fields
6178
+ */
6179
+ type Category = ExtractionClassificationFieldCategoriesInner;
6180
+
6181
+ /**
6182
+ * Base builder for extraction configuration
6183
+ */
6184
+ declare class ExtractionBuilder {
6185
+ protected fields: SchemaField[];
6186
+ protected schemaName?: string;
6187
+ protected schemaId?: string;
6188
+ /**
6189
+ * Start defining a custom schema with fields
6190
+ * @param name - The entity name (e.g., "Product", "Article")
6191
+ */
6192
+ schema(name: string): SchemaBuilder;
6193
+ /**
6194
+ * Use an existing schema by ID
6195
+ * @param schemaId - The schema ID to reference
6196
+ */
6197
+ useSchema(schemaId: string): this;
6198
+ /**
6199
+ * Extract raw page content without transformation
6200
+ * @param format - Raw content format(s): "html", "markdown", or "url"
6201
+ */
6202
+ raw(format: RawFormat | RawFormat[]): this;
6203
+ /**
6204
+ * Get the fields array (internal use)
6205
+ */
6206
+ getFields(): SchemaField[];
6207
+ /**
6208
+ * Get the schema name (internal use)
6209
+ */
6210
+ getSchemaName(): string | undefined;
6211
+ /**
6212
+ * Get the schema ID (internal use)
6213
+ */
6214
+ getSchemaId(): string | undefined;
6215
+ }
6216
+ /**
6217
+ * Builder for defining custom schemas with fields
6218
+ */
6219
+ declare class SchemaBuilder extends ExtractionBuilder {
6220
+ private static readonly FIELD_NAME_PATTERN;
6221
+ private static readonly TYPES_REQUIRING_EXAMPLE;
6222
+ constructor(parentBuilder: ExtractionBuilder);
6223
+ /**
6224
+ * Add a structured field to the schema
6225
+ * @param name - Field name (alphanumeric only)
6226
+ * @param description - Field description
6227
+ * @param dataType - Data type (STRING, NUMBER, BOOLEAN, etc.)
6228
+ * @param options - Optional field configuration
6229
+ */
6230
+ field(name: string, description: string, dataType: DataType, options?: FieldOptions): this;
6231
+ /**
6232
+ * Add a classification field to categorize content
6233
+ * @param name - Field name (alphanumeric only)
6234
+ * @param description - Field description
6235
+ * @param categories - Array of category definitions
6236
+ */
6237
+ classify(name: string, description: string, categories: Category[]): this;
6238
+ /**
6239
+ * Add raw page content alongside structured fields
6240
+ * @param format - Raw content format(s): "html", "markdown", or "url"
6241
+ */
6242
+ raw(format: RawFormat | RawFormat[]): this;
6243
+ }
6244
+
5838
6245
  interface ExtractOptionsInternal {
5839
6246
  urls: string[];
5840
6247
  name: string;
@@ -5848,7 +6255,17 @@ interface ExtractOptionsInternal {
5848
6255
  }
5849
6256
  interface ExtractOptions extends Omit<ExtractOptionsInternal, "navigationMode" | "entity"> {
5850
6257
  navigationMode?: NavigationMode;
5851
- entity?: EntityConfig;
6258
+ /**
6259
+ * Extraction configuration builder function
6260
+ * @example
6261
+ * ```typescript
6262
+ * extraction: builder => builder
6263
+ * .schema("Product")
6264
+ * .field("title", "Product name", "STRING", { example: "Example Product" })
6265
+ * .field("price", "Product price", "CURRENCY")
6266
+ * ```
6267
+ */
6268
+ extraction?: (builder: ExtractionBuilder) => ExtractionBuilder;
5852
6269
  }
5853
6270
  interface PreparedExtraction {
5854
6271
  options: ExtractOptionsInternal;
@@ -5973,6 +6390,41 @@ declare class KadoaClient {
5973
6390
  * Get the realtime connection (if enabled)
5974
6391
  */
5975
6392
  get realtime(): Realtime | undefined;
6393
+ /**
6394
+ * Create a prepared extraction using the fluent builder API
6395
+ *
6396
+ * @param options - Extraction options including URLs and optional extraction builder
6397
+ * @returns PreparedExtraction that can be configured with notifications, monitoring, etc.
6398
+ *
6399
+ * @example Auto-detection
6400
+ * ```typescript
6401
+ * const extraction = await client.extract({
6402
+ * urls: ["https://example.com"],
6403
+ * name: "My Extraction"
6404
+ * }).create();
6405
+ * ```
6406
+ *
6407
+ * @example Raw extraction
6408
+ * ```typescript
6409
+ * const extraction = await client.extract({
6410
+ * urls: ["https://example.com"],
6411
+ * name: "My Extraction",
6412
+ * extraction: builder => builder.raw("markdown")
6413
+ * }).create();
6414
+ * ```
6415
+ *
6416
+ * @example Custom schema
6417
+ * ```typescript
6418
+ * const extraction = await client.extract({
6419
+ * urls: ["https://example.com"],
6420
+ * name: "My Extraction",
6421
+ * extraction: builder => builder
6422
+ * .schema("Product")
6423
+ * .field("title", "Product name", "STRING", { example: "Example" })
6424
+ * .field("price", "Product price", "CURRENCY")
6425
+ * }).create();
6426
+ * ```
6427
+ */
5976
6428
  extract(options: ExtractOptions): PreparedExtraction;
5977
6429
  /**
5978
6430
  * Connect to realtime WebSocket server