retab 0.1.0 → 0.1.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.
- checksums.yaml +4 -4
- data/lib/retab/base_client.rb +168 -33
- data/lib/retab/classifications/category.rb +3 -1
- data/lib/retab/classifications/classification.rb +3 -1
- data/lib/retab/classifications/classification_consensus.rb +3 -1
- data/lib/retab/classifications/classification_decision.rb +3 -1
- data/lib/retab/classifications/classification_request.rb +3 -1
- data/lib/retab/classifications.rb +40 -25
- data/lib/retab/client.rb +0 -68
- data/lib/retab/configuration.rb +8 -6
- data/lib/retab/edit_templates/create_edit_template_request.rb +3 -1
- data/lib/retab/edit_templates/edit_template.rb +3 -1
- data/lib/retab/edit_templates/update_edit_template_request.rb +3 -1
- data/lib/retab/edit_templates.rb +36 -24
- data/lib/retab/edits/edit.rb +6 -1
- data/lib/retab/edits/edit_request.rb +3 -1
- data/lib/retab/edits.rb +45 -25
- data/lib/retab/errors.rb +21 -4
- data/lib/retab/experiment_run_metrics/experiment_by_document_metrics_response.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_by_document_target_metric.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_by_target_document_metric.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_by_target_metrics_response.rb +6 -2
- data/lib/retab/experiment_run_metrics/experiment_confusion_flow_metric.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_confusion_summary_aggregate.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_extract_summary_aggregate.rb +1 -0
- data/lib/retab/experiment_run_metrics/experiment_metric_document_ref.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_metrics_missing_error.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_metrics_stale_error.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_summary_metric_document.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_summary_metrics_response.rb +6 -2
- data/lib/retab/experiment_run_metrics/experiment_target_confusion_metric.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_vote_row.rb +3 -1
- data/lib/retab/experiment_run_metrics/experiment_votes_metrics_response.rb +3 -1
- data/lib/retab/experiment_run_metrics/metrics_stale_error_last_run.rb +3 -1
- data/lib/retab/experiment_run_metrics.rb +9 -9
- data/lib/retab/experiment_run_results/error_workflow_experiment_result.rb +3 -1
- data/lib/retab/experiment_run_results/experiment_result.rb +21 -2
- data/lib/retab/experiment_run_results/experiment_result_timing.rb +3 -1
- data/lib/retab/experiment_run_results.rb +32 -8
- data/lib/retab/experiment_runs/cancel_workflow_experiment_run_response.rb +21 -2
- data/lib/retab/experiment_runs/create_experiment_run_request.rb +3 -1
- data/lib/retab/experiment_runs/experiment_run.rb +21 -2
- data/lib/retab/experiment_runs/experiment_run_timing.rb +3 -1
- data/lib/retab/experiment_runs/experiment_run_trigger.rb +1 -0
- data/lib/retab/experiment_runs.rb +56 -33
- data/lib/retab/extractions/extraction.rb +3 -1
- data/lib/retab/extractions/extraction_consensus.rb +3 -1
- data/lib/retab/extractions/extraction_request.rb +8 -3
- data/lib/retab/extractions/file_ref.rb +3 -1
- data/lib/retab/extractions/retab_usage.rb +1 -0
- data/lib/retab/extractions/sources_response.rb +3 -1
- data/lib/retab/extractions.rb +59 -33
- data/lib/retab/files/complete_file_upload_request.rb +1 -0
- data/lib/retab/files/create_upload_response.rb +3 -1
- data/lib/retab/files/file.rb +6 -1
- data/lib/retab/files/file_link.rb +3 -1
- data/lib/retab/files/upload_file_request.rb +3 -1
- data/lib/retab/files.rb +55 -29
- data/lib/retab/jobs/create_job_request.rb +3 -1
- data/lib/retab/jobs/job.rb +3 -1
- data/lib/retab/jobs/job_error.rb +3 -1
- data/lib/retab/jobs/job_response.rb +3 -1
- data/lib/retab/jobs.rb +73 -37
- data/lib/retab/mime.rb +69 -38
- data/lib/retab/paginated_list.rb +86 -0
- data/lib/retab/parses/parse.rb +3 -1
- data/lib/retab/parses/parse_output.rb +3 -1
- data/lib/retab/parses/parse_request.rb +3 -1
- data/lib/retab/parses.rb +39 -24
- data/lib/retab/partitions/partition.rb +3 -1
- data/lib/retab/partitions/partition_chunk.rb +3 -1
- data/lib/retab/partitions/partition_chunk_likelihood.rb +3 -1
- data/lib/retab/partitions/partition_consensus.rb +6 -2
- data/lib/retab/partitions/partition_request.rb +3 -1
- data/lib/retab/partitions.rb +40 -25
- data/lib/retab/schemas/generate_schema_request.rb +3 -1
- data/lib/retab/schemas/partial_schema.rb +3 -1
- data/lib/retab/schemas.rb +13 -9
- data/lib/retab/shared/http_validation_error.rb +1 -0
- data/lib/retab/shared/validation_error.rb +3 -1
- data/lib/retab/splits/split.rb +3 -1
- data/lib/retab/splits/split_consensus.rb +6 -2
- data/lib/retab/splits/split_request.rb +3 -1
- data/lib/retab/splits/split_result.rb +3 -1
- data/lib/retab/splits/split_subdocument_likelihood.rb +3 -1
- data/lib/retab/splits/subdocument.rb +3 -1
- data/lib/retab/splits.rb +39 -24
- data/lib/retab/types/actor_kind.rb +3 -3
- data/lib/retab/types/api_response.rb +2 -0
- data/lib/retab/types/assertion_drift_status.rb +3 -3
- data/lib/retab/types/assertion_outcome.rb +3 -3
- data/lib/retab/types/base_model.rb +34 -9
- data/lib/retab/types/cancel_workflow_response_cancellation_status.rb +3 -3
- data/lib/retab/types/classifications_order.rb +2 -2
- data/lib/retab/types/condition_evaluation_details_logical_operator.rb +2 -2
- data/lib/retab/types/create_experiment_request_n_consensus.rb +3 -3
- data/lib/retab/types/create_job_request_endpoint.rb +24 -12
- data/lib/retab/types/declarative_apply_response_action.rb +3 -3
- data/lib/retab/types/declarative_plan_field_change_action.rb +3 -3
- data/lib/retab/types/declarative_plan_resource_change_target.rb +3 -3
- data/lib/retab/types/declarative_plan_resource_change_type.rb +44 -22
- data/lib/retab/types/error_step_lifecycle_category.rb +3 -3
- data/lib/retab/types/error_step_lifecycle_stage.rb +7 -7
- data/lib/retab/types/experiment_block_type.rb +4 -4
- data/lib/retab/types/experiment_public_status.rb +5 -5
- data/lib/retab/types/experiment_run_metrics_view.rb +4 -4
- data/lib/retab/types/experiment_run_results_order.rb +9 -0
- data/lib/retab/types/experiment_schema_drift_status.rb +4 -4
- data/lib/retab/types/field_type.rb +2 -2
- data/lib/retab/types/generate_schema_request_reasoning_effort.rb +6 -6
- data/lib/retab/types/handle_payload_type.rb +3 -3
- data/lib/retab/types/job_status.rb +7 -7
- data/lib/retab/types/jobs_source.rb +3 -3
- data/lib/retab/types/latest_block_test_run_summary_status.rb +6 -6
- data/lib/retab/types/length_compare_condition_op.rb +6 -6
- data/lib/retab/types/list_struct.rb +13 -50
- data/lib/retab/types/parse_request_table_parsing_format.rb +4 -4
- data/lib/retab/types/request_options.rb +2 -0
- data/lib/retab/types/resume_status.rb +3 -3
- data/lib/retab/types/review_decision_status.rb +5 -5
- data/lib/retab/types/review_evaluation_review_decision.rb +2 -2
- data/lib/retab/types/similarity_gte_condition_method.rb +2 -2
- data/lib/retab/types/sources_response_document_type.rb +6 -6
- data/lib/retab/types/step_artifact_ref_operation.rb +24 -12
- data/lib/retab/types/submission_status.rb +3 -3
- data/lib/retab/types/update_workflow_block_request_config_mode.rb +2 -2
- data/lib/retab/types/while_loop_termination_termination_reason.rb +3 -3
- data/lib/retab/types/workflow_block_create_request_type.rb +30 -15
- data/lib/retab/types/workflow_block_executions_order.rb +9 -0
- data/lib/retab/types/workflow_block_type.rb +40 -20
- data/lib/retab/types/workflow_experiments_order.rb +9 -0
- data/lib/retab/types/workflow_export_payload_request_exclude_status.rb +8 -8
- data/lib/retab/types/workflow_export_payload_request_export_source.rb +2 -2
- data/lib/retab/types/workflow_export_payload_request_trigger_types.rb +6 -6
- data/lib/retab/types/workflow_test_run_results_order.rb +9 -0
- data/lib/retab/types/{workflow_config_block_type.rb → workflow_tests_order.rb} +1 -1
- data/lib/retab/util.rb +4 -2
- data/lib/retab/version.rb +3 -1
- data/lib/retab/workflow_artifacts/api_call_attempt.rb +3 -1
- data/lib/retab/workflow_artifacts/api_call_invocation.rb +3 -1
- data/lib/retab/workflow_artifacts/b_box.rb +3 -1
- data/lib/retab/workflow_artifacts/classification_workflow_artifact.rb +3 -1
- data/lib/retab/workflow_artifacts/condition_evaluation_details.rb +6 -2
- data/lib/retab/workflow_artifacts/condition_evaluation_per_item.rb +3 -1
- data/lib/retab/workflow_artifacts/condition_evaluation_result.rb +6 -2
- data/lib/retab/workflow_artifacts/condition_evaluation_sub_condition.rb +3 -1
- data/lib/retab/workflow_artifacts/conditional_evaluation.rb +3 -1
- data/lib/retab/workflow_artifacts/edit_config.rb +1 -0
- data/lib/retab/workflow_artifacts/edit_result.rb +3 -1
- data/lib/retab/workflow_artifacts/edit_workflow_artifact.rb +6 -1
- data/lib/retab/workflow_artifacts/extraction_workflow_artifact.rb +3 -1
- data/lib/retab/workflow_artifacts/form_field.rb +3 -1
- data/lib/retab/workflow_artifacts/function_invocation.rb +3 -1
- data/lib/retab/workflow_artifacts/parse_workflow_artifact.rb +3 -1
- data/lib/retab/workflow_artifacts/partition_workflow_artifact.rb +3 -1
- data/lib/retab/workflow_artifacts/review_evaluation.rb +3 -1
- data/lib/retab/workflow_artifacts/split_workflow_artifact.rb +3 -1
- data/lib/retab/workflow_artifacts/while_loop_termination.rb +3 -1
- data/lib/retab/workflow_artifacts/workflow_artifact.rb +3 -1
- data/lib/retab/workflow_artifacts.rb +20 -13
- data/lib/retab/workflow_block_executions/completed_block_execution_lifecycle.rb +1 -0
- data/lib/retab/workflow_block_executions/create_block_execution_request.rb +3 -1
- data/lib/retab/workflow_block_executions/error_block_execution_lifecycle.rb +3 -1
- data/lib/retab/workflow_block_executions/skipped_block_execution_lifecycle.rb +3 -1
- data/lib/retab/workflow_block_executions/stored_block_execution.rb +15 -2
- data/lib/retab/workflow_block_executions.rb +40 -15
- data/lib/retab/workflow_blocks/update_workflow_block_request.rb +3 -1
- data/lib/retab/workflow_blocks/workflow_block.rb +3 -1
- data/lib/retab/workflow_blocks/workflow_block_create_request.rb +3 -1
- data/lib/retab/workflow_blocks.rb +52 -36
- data/lib/retab/workflow_edges/workflow_edge_create_request.rb +3 -1
- data/lib/retab/workflow_edges/workflow_edge_doc.rb +3 -1
- data/lib/retab/workflow_edges.rb +36 -22
- data/lib/retab/workflow_experiments/create_experiment_request.rb +9 -3
- data/lib/retab/workflow_experiments/experiment_document_capture_request.rb +3 -1
- data/lib/retab/workflow_experiments/experiment_document_provenance.rb +3 -1
- data/lib/retab/workflow_experiments/explicit_experiment_document_request.rb +3 -1
- data/lib/retab/workflow_experiments/update_experiment_request.rb +9 -3
- data/lib/retab/workflow_experiments/workflow_experiment.rb +3 -1
- data/lib/retab/workflow_experiments.rb +70 -23
- data/lib/retab/workflow_review_versions/create_review_version_request.rb +3 -1
- data/lib/retab/workflow_review_versions/review_version.rb +3 -1
- data/lib/retab/workflow_review_versions.rb +25 -17
- data/lib/retab/workflow_reviews/actor.rb +3 -1
- data/lib/retab/workflow_reviews/approve_review_request.rb +1 -0
- data/lib/retab/workflow_reviews/reject_review_request.rb +3 -1
- data/lib/retab/workflow_reviews/review.rb +37 -2
- data/lib/retab/workflow_reviews/review_all_of.rb +39 -2
- data/lib/retab/workflow_reviews/review_always.rb +1 -0
- data/lib/retab/workflow_reviews/review_any_of.rb +39 -2
- data/lib/retab/workflow_reviews/review_any_required_field_null.rb +1 -0
- data/lib/retab/workflow_reviews/review_any_split_pages_lt.rb +3 -1
- data/lib/retab/workflow_reviews/review_boundary_confidence_lt.rb +3 -1
- data/lib/retab/workflow_reviews/review_branch_in.rb +3 -1
- data/lib/retab/workflow_reviews/review_category_in.rb +3 -1
- data/lib/retab/workflow_reviews/review_confidence_lt.rb +3 -1
- data/lib/retab/workflow_reviews/review_decision.rb +3 -1
- data/lib/retab/workflow_reviews/review_field_confidence_lt.rb +3 -1
- data/lib/retab/workflow_reviews/review_json_condition.rb +3 -1
- data/lib/retab/workflow_reviews/review_split_count_neq.rb +3 -1
- data/lib/retab/workflow_reviews/review_top_margin_lt.rb +3 -1
- data/lib/retab/workflow_reviews/review_validation_failed.rb +1 -0
- data/lib/retab/workflow_reviews/submit_decision_response.rb +3 -1
- data/lib/retab/workflow_reviews.rb +47 -22
- data/lib/retab/workflow_runs/api_trigger.rb +3 -1
- data/lib/retab/workflow_runs/awaiting_review_run.rb +3 -1
- data/lib/retab/workflow_runs/cancel_workflow_request.rb +1 -0
- data/lib/retab/workflow_runs/cancel_workflow_response.rb +3 -1
- data/lib/retab/workflow_runs/cancelled_terminal.rb +3 -1
- data/lib/retab/workflow_runs/create_workflow_run_request.rb +16 -0
- data/lib/retab/workflow_runs/email_trigger.rb +3 -1
- data/lib/retab/workflow_runs/error_details.rb +3 -1
- data/lib/retab/workflow_runs/error_terminal.rb +3 -1
- data/lib/retab/workflow_runs/manual_trigger.rb +3 -1
- data/lib/retab/workflow_runs/pending_run.rb +1 -0
- data/lib/retab/workflow_runs/restart_trigger.rb +3 -1
- data/lib/retab/workflow_runs/run_inputs.rb +3 -1
- data/lib/retab/workflow_runs/run_timing.rb +3 -1
- data/lib/retab/workflow_runs/running_run.rb +1 -0
- data/lib/retab/workflow_runs/schedule_trigger.rb +3 -1
- data/lib/retab/workflow_runs/webhook_trigger.rb +3 -1
- data/lib/retab/workflow_runs/workflow_export_payload_request.rb +3 -1
- data/lib/retab/workflow_runs/workflow_export_payload_response.rb +3 -1
- data/lib/retab/workflow_runs/workflow_run.rb +39 -3
- data/lib/retab/workflow_runs/workflow_snapshot_ref.rb +3 -1
- data/lib/retab/workflow_runs.rb +97 -47
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_apply_response.rb +6 -2
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_export_response.rb +3 -1
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_plan_change.rb +6 -2
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_plan_field_change.rb +3 -1
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_plan_resource_change.rb +3 -1
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_plan_response.rb +6 -2
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_plan_summary.rb +3 -1
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_validation_response.rb +3 -1
- data/lib/retab/{workflow_specs → workflow_spec}/declarative_workflow_request.rb +1 -0
- data/lib/retab/{workflow_specs.rb → workflow_spec.rb} +29 -13
- data/lib/retab/workflow_steps/awaiting_review_step_lifecycle.rb +1 -0
- data/lib/retab/workflow_steps/cancelled_step_lifecycle.rb +3 -1
- data/lib/retab/workflow_steps/container_context_data.rb +3 -1
- data/lib/retab/workflow_steps/error_step_lifecycle.rb +3 -1
- data/lib/retab/workflow_steps/handle_payload.rb +3 -1
- data/lib/retab/workflow_steps/queued_step_lifecycle.rb +1 -0
- data/lib/retab/workflow_steps/step_artifact_ref.rb +3 -1
- data/lib/retab/workflow_steps/workflow_run_step.rb +28 -3
- data/lib/retab/workflow_steps.rb +34 -17
- data/lib/retab/workflow_test_run_results/assertion_failure.rb +3 -1
- data/lib/retab/workflow_test_run_results/assertion_result.rb +3 -1
- data/lib/retab/workflow_test_run_results/file_handle_input.rb +3 -1
- data/lib/retab/workflow_test_run_results/json_handle_input.rb +3 -1
- data/lib/retab/workflow_test_run_results/manual_workflow_test_source.rb +3 -1
- data/lib/retab/workflow_test_run_results/materialized_document.rb +3 -1
- data/lib/retab/workflow_test_run_results/run_step_workflow_test_source.rb +3 -1
- data/lib/retab/workflow_test_run_results/verdict_summary.rb +3 -1
- data/lib/retab/workflow_test_run_results/workflow_test_result.rb +31 -3
- data/lib/retab/workflow_test_run_results.rb +35 -8
- data/lib/retab/workflow_test_runs/block_test_batch_execution_counts.rb +3 -1
- data/lib/retab/workflow_test_runs/block_test_lifecycle_counts.rb +3 -1
- data/lib/retab/workflow_test_runs/block_test_outcome_counts.rb +3 -1
- data/lib/retab/workflow_test_runs/create_workflow_test_run_request.rb +30 -1
- data/lib/retab/workflow_test_runs/workflow_test_block_target.rb +3 -1
- data/lib/retab/workflow_test_runs/workflow_test_run.rb +39 -3
- data/lib/retab/{workflows/workflow_diagnosis_issue.rb → workflow_test_runs/workflow_test_run_block_scope.rb} +7 -11
- data/lib/retab/workflow_test_runs/workflow_test_run_single_scope.rb +25 -0
- data/lib/retab/workflow_test_runs/workflow_test_run_timing.rb +3 -1
- data/lib/retab/{workflows/workflow_block_position.rb → workflow_test_runs/workflow_test_run_workflow_scope.rb} +5 -8
- data/lib/retab/workflow_test_runs.rb +66 -32
- data/lib/retab/workflow_tests/all_items_match_condition.rb +39 -2
- data/lib/retab/workflow_tests/any_item_matches_condition.rb +39 -2
- data/lib/retab/workflow_tests/array_contains_condition.rb +3 -1
- data/lib/retab/workflow_tests/assertion_schema_dep.rb +3 -1
- data/lib/retab/workflow_tests/assertion_spec.rb +39 -2
- data/lib/retab/workflow_tests/between_condition.rb +3 -1
- data/lib/retab/workflow_tests/contain_condition.rb +3 -1
- data/lib/retab/workflow_tests/create_workflow_test_request.rb +13 -2
- data/lib/retab/workflow_tests/ends_with_condition.rb +3 -1
- data/lib/retab/workflow_tests/equal_condition.rb +3 -1
- data/lib/retab/workflow_tests/exist_condition.rb +1 -0
- data/lib/retab/workflow_tests/json_schema_valid_condition.rb +3 -1
- data/lib/retab/workflow_tests/latest_block_test_run_summary.rb +3 -1
- data/lib/retab/workflow_tests/length_compare_condition.rb +3 -1
- data/lib/retab/workflow_tests/llm_judged_as_condition.rb +3 -1
- data/lib/retab/workflow_tests/llm_not_judged_as_condition.rb +3 -1
- data/lib/retab/workflow_tests/matche_regex_condition.rb +3 -1
- data/lib/retab/workflow_tests/not_contains_condition.rb +3 -1
- data/lib/retab/workflow_tests/not_equals_condition.rb +3 -1
- data/lib/retab/workflow_tests/not_exists_condition.rb +1 -0
- data/lib/retab/workflow_tests/number_compare_condition.rb +3 -1
- data/lib/retab/workflow_tests/object_contains_condition.rb +3 -1
- data/lib/retab/workflow_tests/output_target.rb +3 -1
- data/lib/retab/workflow_tests/similarity_gte_condition.rb +3 -1
- data/lib/retab/workflow_tests/split_iou_condition.rb +3 -1
- data/lib/retab/workflow_tests/start_with_condition.rb +3 -1
- data/lib/retab/workflow_tests/update_workflow_test_request.rb +13 -2
- data/lib/retab/workflow_tests/workflow_test.rb +19 -4
- data/lib/retab/workflow_tests.rb +68 -21
- data/lib/retab/workflows/create_workflow_request.rb +3 -1
- data/lib/retab/workflows/publish_workflow_request.rb +1 -0
- data/lib/retab/workflows/update_workflow_request.rb +3 -1
- data/lib/retab/workflows/workflow.rb +3 -4
- data/lib/retab/workflows/workflow_published.rb +3 -1
- data/lib/retab/workflows.rb +76 -55
- data/lib/retab.rb +6 -6
- data/rbi/retab/classifications.rbi +1 -1
- data/rbi/retab/client.rbi +0 -51
- data/rbi/retab/create_workflow_run_request.rbi +24 -0
- data/rbi/retab/create_workflow_test_run_request.rbi +12 -0
- data/rbi/retab/edit.rbi +6 -0
- data/rbi/retab/edit_template.rbi +4 -4
- data/rbi/retab/edit_templates.rbi +1 -1
- data/rbi/retab/edit_workflow_artifact.rbi +6 -0
- data/rbi/retab/edits.rbi +4 -1
- data/rbi/retab/email_trigger.rbi +2 -2
- data/rbi/retab/experiment_run_results.rbi +5 -2
- data/rbi/retab/experiment_runs.rbi +2 -3
- data/rbi/retab/extraction_request.rbi +6 -0
- data/rbi/retab/extractions.rbi +3 -2
- data/rbi/retab/file.rbi +10 -4
- data/rbi/retab/files.rbi +2 -2
- data/rbi/retab/jobs.rbi +1 -1
- data/rbi/retab/parses.rbi +1 -1
- data/rbi/retab/partitions.rbi +1 -1
- data/rbi/retab/splits.rbi +1 -1
- data/rbi/retab/workflow.rbi +0 -6
- data/rbi/retab/workflow_artifacts.rbi +1 -1
- data/rbi/retab/workflow_block_executions.rbi +5 -2
- data/rbi/retab/workflow_blocks.rbi +4 -1
- data/rbi/retab/workflow_edges.rbi +1 -1
- data/rbi/retab/workflow_experiments.rbi +15 -2
- data/rbi/retab/workflow_review_versions.rbi +1 -1
- data/rbi/retab/workflow_reviews.rbi +4 -1
- data/rbi/retab/workflow_runs.rbi +6 -2
- data/rbi/retab/{workflow_specs.rbi → workflow_spec.rbi} +1 -1
- data/rbi/retab/workflow_steps.rbi +3 -2
- data/rbi/retab/{workflow_diagnosis_issue.rbi → workflow_test_run_block_scope.rbi} +4 -16
- data/rbi/retab/workflow_test_run_results.rbi +6 -2
- data/rbi/retab/workflow_test_run_single_scope.rbi +30 -0
- data/rbi/retab/{workflow_block_position.rbi → workflow_test_run_workflow_scope.rbi} +5 -11
- data/rbi/retab/workflow_test_runs.rbi +5 -4
- data/rbi/retab/workflow_tests.rbi +11 -2
- data/rbi/retab/workflows.rbi +28 -12
- metadata +25 -31
- data/lib/retab/types/workflow_diagnosis_issue_severity.rb +0 -14
- data/lib/retab/workflows/workflow_config_block.rb +0 -44
- data/lib/retab/workflows/workflow_config_edge.rb +0 -35
- data/lib/retab/workflows/workflow_diagnosis_response.rb +0 -29
- data/lib/retab/workflows/workflow_diagnosis_stats.rb +0 -29
- data/lib/retab/workflows/workflow_email_trigger.rb +0 -23
- data/lib/retab/workflows/workflow_graph_diagnosis_request.rb +0 -26
- data/rbi/retab/workflow_config_block.rbi +0 -72
- data/rbi/retab/workflow_config_edge.rbi +0 -54
- data/rbi/retab/workflow_diagnosis_response.rbi +0 -42
- data/rbi/retab/workflow_diagnosis_stats.rbi +0 -42
- data/rbi/retab/workflow_email_trigger.rbi +0 -30
- data/rbi/retab/workflow_graph_diagnosis_request.rbi +0 -36
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ec5a7c94ae5550b0264067af9b62e78aa26c70c6080f0aa19a16d62a22ed0657
|
|
4
|
+
data.tar.gz: f666c564ffa300ab11fca9e88c9892f77ffc040d157a39a9d393de08ef841586
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 87d9b4548bb1b36fcfb7129e3d2367f537f5b8caa227cce87fe71d1cc6306a1b30f8c32d1cc12f61f327db6394c951a9affdad1d8b0436253c5b16cec380c938
|
|
7
|
+
data.tar.gz: 6a40f27a46700369053a581ba5c1a98edd1b03cbdfdbaeed0005da52366966442e98472168c36f967f31357f28c3d4904313f83ae1bf66aebb131fcd2eb8ba9c
|
data/lib/retab/base_client.rb
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
# This file is auto-generated by oagen. Do not edit.
|
|
4
|
+
|
|
3
5
|
# @oagen-ignore-file
|
|
4
6
|
#
|
|
5
7
|
# Hand-maintained HTTP runtime. Generated resource methods call
|
|
@@ -7,22 +9,22 @@
|
|
|
7
9
|
# and wrap the result in spec-derived model classes.
|
|
8
10
|
#
|
|
9
11
|
# This is intentionally minimal — net/http + JSON, no retry/backoff polish.
|
|
10
|
-
# A future revision should
|
|
11
|
-
#
|
|
12
|
+
# A future revision should grow retries, idempotency keys, and structured
|
|
13
|
+
# error mapping; the spec doesn't describe any of those.
|
|
12
14
|
|
|
13
|
-
require
|
|
14
|
-
require
|
|
15
|
-
require
|
|
15
|
+
require "json"
|
|
16
|
+
require "net/http"
|
|
17
|
+
require "openssl"
|
|
18
|
+
require "uri"
|
|
16
19
|
|
|
17
20
|
module Retab
|
|
18
21
|
class BaseClient
|
|
19
22
|
attr_reader :configuration
|
|
20
23
|
|
|
21
|
-
def initialize(api_key: nil, api_host: nil, configuration: nil, **opts)
|
|
22
|
-
@configuration =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
raise ConfigurationError, 'api_key is required' if @configuration.api_key.nil?
|
|
24
|
+
def initialize(api_key: nil, api_host: nil, base_url: nil, configuration: nil, **opts)
|
|
25
|
+
@configuration = configuration ||
|
|
26
|
+
Configuration.new(api_key: api_key, api_host: api_host, base_url: base_url, **opts)
|
|
27
|
+
raise ConfigurationError, "api_key is required" if @configuration.api_key.nil?
|
|
26
28
|
end
|
|
27
29
|
|
|
28
30
|
def api_key
|
|
@@ -52,6 +54,7 @@ module Retab
|
|
|
52
54
|
query = URI.encode_www_form(params.reject { |_, v| v.nil? })
|
|
53
55
|
uri.query = query unless query.empty?
|
|
54
56
|
end
|
|
57
|
+
|
|
55
58
|
uri
|
|
56
59
|
end
|
|
57
60
|
|
|
@@ -62,59 +65,83 @@ module Retab
|
|
|
62
65
|
put: Net::HTTP::Put,
|
|
63
66
|
patch: Net::HTTP::Patch,
|
|
64
67
|
delete: Net::HTTP::Delete,
|
|
65
|
-
head: Net::HTTP::Head
|
|
68
|
+
head: Net::HTTP::Head
|
|
66
69
|
}.fetch(method.to_sym) { raise ArgumentError, "unsupported HTTP method: #{method}" }
|
|
67
70
|
req = klass.new(uri.request_uri)
|
|
68
|
-
req[
|
|
69
|
-
req[
|
|
71
|
+
req["Accept"] = "application/json"
|
|
72
|
+
req["User-Agent"] = @configuration.user_agent
|
|
70
73
|
if auth
|
|
71
|
-
key = (request_options[:api_key] || request_options[
|
|
72
|
-
|
|
74
|
+
key = (request_options[:api_key] || request_options["api_key"] || api_key)
|
|
75
|
+
# Retab's API expects the raw key in `Api-Key` (not `Authorization: Bearer ...`).
|
|
76
|
+
# Confirmed against the Python SDK's `client.py` and the server response on
|
|
77
|
+
# /v1/files: "Provide a valid Bearer token, API Key, ..." — the API Key path
|
|
78
|
+
# is the `Api-Key` header.
|
|
79
|
+
req["Api-Key"] = key if key
|
|
73
80
|
end
|
|
74
|
-
|
|
75
|
-
|
|
81
|
+
|
|
82
|
+
if (idem = request_options[:idempotency_key] || request_options["idempotency_key"])
|
|
83
|
+
req["Idempotency-Key"] = idem
|
|
76
84
|
end
|
|
77
|
-
|
|
85
|
+
|
|
86
|
+
extra_headers = request_options[:headers] || request_options["headers"] || {}
|
|
78
87
|
extra_headers.each { |k, v| req[k.to_s] = v.to_s }
|
|
79
88
|
if body && %i[post put patch].include?(method.to_sym)
|
|
80
|
-
req[
|
|
89
|
+
req["Content-Type"] = "application/json"
|
|
81
90
|
req.body = body.is_a?(String) ? body : JSON.generate(body)
|
|
82
91
|
end
|
|
92
|
+
|
|
83
93
|
req
|
|
84
94
|
end
|
|
85
95
|
|
|
86
96
|
def perform(uri, req, request_options:)
|
|
87
97
|
http = Net::HTTP.new(uri.host, uri.port)
|
|
88
|
-
http.use_ssl = (uri.scheme ==
|
|
98
|
+
http.use_ssl = (uri.scheme == "https")
|
|
89
99
|
http.read_timeout = request_options[:timeout] || @configuration.timeout
|
|
90
100
|
http.open_timeout = request_options[:timeout] || @configuration.timeout
|
|
91
101
|
http.request(req)
|
|
92
102
|
rescue Net::OpenTimeout, Net::ReadTimeout => e
|
|
93
103
|
raise TimeoutError, e.message
|
|
104
|
+
rescue Errno::ECONNREFUSED,
|
|
105
|
+
Errno::EHOSTUNREACH,
|
|
106
|
+
Errno::ENETUNREACH,
|
|
107
|
+
Errno::ECONNRESET,
|
|
108
|
+
Errno::EPIPE,
|
|
109
|
+
SocketError,
|
|
110
|
+
OpenSSL::SSL::SSLError => e
|
|
111
|
+
raise ConnectionError, "#{e.class.name.split("::").last}: #{e.message}"
|
|
94
112
|
end
|
|
95
113
|
|
|
96
114
|
def raise_for_status(response)
|
|
97
115
|
code = response.code.to_i
|
|
98
116
|
return if code < 400
|
|
99
117
|
body = parse_body(response)
|
|
100
|
-
message = body
|
|
118
|
+
message = extract_error_message(body) || response.message
|
|
101
119
|
args = {
|
|
102
120
|
message: message,
|
|
103
121
|
http_status: code,
|
|
104
|
-
request_id: response[
|
|
105
|
-
code: body
|
|
106
|
-
body: body
|
|
122
|
+
request_id: response["x-request-id"],
|
|
123
|
+
code: extract_error_code(body),
|
|
124
|
+
body: body
|
|
107
125
|
}
|
|
108
126
|
case code
|
|
109
|
-
when 400
|
|
110
|
-
|
|
111
|
-
when
|
|
112
|
-
|
|
113
|
-
when
|
|
114
|
-
|
|
115
|
-
when
|
|
116
|
-
|
|
117
|
-
|
|
127
|
+
when 400
|
|
128
|
+
raise BadRequestError.new(**args)
|
|
129
|
+
when 401
|
|
130
|
+
raise AuthenticationError.new(**args)
|
|
131
|
+
when 403
|
|
132
|
+
raise AuthorizationError.new(**args)
|
|
133
|
+
when 404
|
|
134
|
+
raise NotFoundError.new(**args)
|
|
135
|
+
when 409
|
|
136
|
+
raise ConflictError.new(**args)
|
|
137
|
+
when 422
|
|
138
|
+
raise UnprocessableEntityError.new(**args)
|
|
139
|
+
when 429
|
|
140
|
+
raise RateLimitExceededError.new(**args)
|
|
141
|
+
when 500..599
|
|
142
|
+
raise InternalServerError.new(**args)
|
|
143
|
+
else
|
|
144
|
+
raise APIError.new(**args)
|
|
118
145
|
end
|
|
119
146
|
end
|
|
120
147
|
|
|
@@ -124,5 +151,113 @@ module Retab
|
|
|
124
151
|
rescue JSON::ParserError
|
|
125
152
|
response.body
|
|
126
153
|
end
|
|
154
|
+
|
|
155
|
+
# Walk Retab's nested error envelope to find the most specific
|
|
156
|
+
# human-readable message. The server uses two distinct shapes:
|
|
157
|
+
#
|
|
158
|
+
# HTTPException family (4xx/5xx domain errors):
|
|
159
|
+
# { "detail": { "code": "...", "message": "...",
|
|
160
|
+
# "details": { "error": "<the real one-liner>" } } }
|
|
161
|
+
# { "detail": { "code": "...", "message": "...",
|
|
162
|
+
# "details": { "error": { "message": "<deep>",
|
|
163
|
+
# "code": "..." } } } }
|
|
164
|
+
#
|
|
165
|
+
# Validation family (422, FastAPI / pydantic):
|
|
166
|
+
# { "status_code": 10422,
|
|
167
|
+
# "message": "[{"type": "missing", "loc": [...], "msg": "Field required"}, ...]",
|
|
168
|
+
# "data": null }
|
|
169
|
+
#
|
|
170
|
+
# Plus FastAPI's stock { "detail": "..." } and { "detail": [...] } forms.
|
|
171
|
+
# Fall back through every shape rather than returning "Bad Request".
|
|
172
|
+
def extract_error_message(body)
|
|
173
|
+
raw = walk_error_message(body)
|
|
174
|
+
# The validation-family wrapper carries a stringified JSON array in
|
|
175
|
+
# `message`. Unstringify and surface a readable summary instead of the
|
|
176
|
+
# opaque `[{"type": "missing", ...}]` blob.
|
|
177
|
+
if raw.is_a?(String) && raw.strip.start_with?("[", "{")
|
|
178
|
+
begin
|
|
179
|
+
require "json"
|
|
180
|
+
|
|
181
|
+
parsed = JSON.parse(raw)
|
|
182
|
+
return walk_error_message(parsed) || raw
|
|
183
|
+
rescue JSON::ParserError
|
|
184
|
+
# not actually JSON — keep the raw string
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
raw
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
# Recursive walk: unwrap each layer (detail / details / error / message),
|
|
192
|
+
# bottoming out at the first string. Handles arbitrary nesting depth so a
|
|
193
|
+
# `details.error` payload that is itself a {message, code} hash doesn't
|
|
194
|
+
# leak into the exception message verbatim.
|
|
195
|
+
#
|
|
196
|
+
# Order matters: we prefer the DEEPEST message (the most specific one).
|
|
197
|
+
# Walk into `details`/`detail`/`error` first; only fall back to the
|
|
198
|
+
# current level's `message` when no deeper string is reachable.
|
|
199
|
+
def walk_error_message(node)
|
|
200
|
+
case node
|
|
201
|
+
when nil
|
|
202
|
+
nil
|
|
203
|
+
when String
|
|
204
|
+
node
|
|
205
|
+
when Array
|
|
206
|
+
return nil if node.empty?
|
|
207
|
+
# FastAPI validation errors arrive as an Array of
|
|
208
|
+
# { type, loc, msg } hashes. Concatenate them into a single line
|
|
209
|
+
# like "msg1 (a.b); msg2 (x.y)" rather than just returning the
|
|
210
|
+
# first `msg` — multiple errors deserve to all surface.
|
|
211
|
+
if node.first.is_a?(Hash)
|
|
212
|
+
formatted = node
|
|
213
|
+
.map do |item|
|
|
214
|
+
msg = item["msg"] || item[:msg]
|
|
215
|
+
loc = item["loc"] || item[:loc]
|
|
216
|
+
if msg && loc.is_a?(Array) && !loc.empty?
|
|
217
|
+
"#{msg} (#{loc.join(".")})"
|
|
218
|
+
else
|
|
219
|
+
msg || walk_error_message(item)
|
|
220
|
+
end
|
|
221
|
+
end
|
|
222
|
+
.compact
|
|
223
|
+
return formatted.join("; ") unless formatted.empty?
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
node.first.to_s
|
|
227
|
+
when Hash
|
|
228
|
+
%w[details detail error].each do |k|
|
|
229
|
+
inner = node[k] || node[k.to_sym]
|
|
230
|
+
next if inner.nil?
|
|
231
|
+
result = walk_error_message(inner)
|
|
232
|
+
return result unless result.nil?
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
msg = node["message"] || node[:message]
|
|
236
|
+
return msg if msg.is_a?(String)
|
|
237
|
+
nil
|
|
238
|
+
else
|
|
239
|
+
node.to_s
|
|
240
|
+
end
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
def extract_error_code(body)
|
|
244
|
+
walk_error_code(body)
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
# Prefer the deepest code (same logic as walk_error_message). The outer
|
|
248
|
+
# envelope's code is generic ("HTTP_EXCEPTION"); deeper layers carry the
|
|
249
|
+
# specific one ("TARGET_HAS_NO_INPUT_HANDLE", etc.).
|
|
250
|
+
def walk_error_code(node)
|
|
251
|
+
return nil unless node.is_a?(Hash)
|
|
252
|
+
%w[details detail error].each do |k|
|
|
253
|
+
inner = node[k] || node[k.to_sym]
|
|
254
|
+
next if inner.nil?
|
|
255
|
+
c = walk_error_code(inner)
|
|
256
|
+
return c unless c.nil?
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
code = node["code"] || node[:code]
|
|
260
|
+
code.is_a?(String) ? code : nil
|
|
261
|
+
end
|
|
127
262
|
end
|
|
128
263
|
end
|
|
@@ -11,12 +11,14 @@ module Retab
|
|
|
11
11
|
description: :description
|
|
12
12
|
}.freeze
|
|
13
13
|
|
|
14
|
-
attr_accessor
|
|
14
|
+
attr_accessor(
|
|
15
15
|
:name,
|
|
16
16
|
:handle_key,
|
|
17
17
|
:description
|
|
18
|
+
)
|
|
18
19
|
|
|
19
20
|
def initialize(json)
|
|
21
|
+
super()
|
|
20
22
|
hash = self.class.normalize(json)
|
|
21
23
|
@name = hash[:name]
|
|
22
24
|
@handle_key = hash[:handle_key]
|
|
@@ -18,7 +18,7 @@ module Retab
|
|
|
18
18
|
created_at: :created_at
|
|
19
19
|
}.freeze
|
|
20
20
|
|
|
21
|
-
attr_accessor
|
|
21
|
+
attr_accessor(
|
|
22
22
|
:id,
|
|
23
23
|
:file,
|
|
24
24
|
:model,
|
|
@@ -29,8 +29,10 @@ module Retab
|
|
|
29
29
|
:consensus,
|
|
30
30
|
:usage,
|
|
31
31
|
:created_at
|
|
32
|
+
)
|
|
32
33
|
|
|
33
34
|
def initialize(json)
|
|
35
|
+
super()
|
|
34
36
|
hash = self.class.normalize(json)
|
|
35
37
|
@id = hash[:id]
|
|
36
38
|
@file = hash[:file] ? Retab::FileRef.new(hash[:file]) : nil
|
|
@@ -10,11 +10,13 @@ module Retab
|
|
|
10
10
|
likelihoods: :likelihoods
|
|
11
11
|
}.freeze
|
|
12
12
|
|
|
13
|
-
attr_accessor
|
|
13
|
+
attr_accessor(
|
|
14
14
|
:choices,
|
|
15
15
|
:likelihoods
|
|
16
|
+
)
|
|
16
17
|
|
|
17
18
|
def initialize(json)
|
|
19
|
+
super()
|
|
18
20
|
hash = self.class.normalize(json)
|
|
19
21
|
@choices = (hash[:choices] || []).map { |item| item ? Retab::ClassificationDecision.new(item) : nil }
|
|
20
22
|
@likelihoods = hash[:likelihoods]
|
|
@@ -10,11 +10,13 @@ module Retab
|
|
|
10
10
|
category: :category
|
|
11
11
|
}.freeze
|
|
12
12
|
|
|
13
|
-
attr_accessor
|
|
13
|
+
attr_accessor(
|
|
14
14
|
:reasoning,
|
|
15
15
|
:category
|
|
16
|
+
)
|
|
16
17
|
|
|
17
18
|
def initialize(json)
|
|
19
|
+
super()
|
|
18
20
|
hash = self.class.normalize(json)
|
|
19
21
|
@reasoning = hash[:reasoning]
|
|
20
22
|
@category = hash[:category]
|
|
@@ -15,7 +15,7 @@ module Retab
|
|
|
15
15
|
bust_cache: :bust_cache
|
|
16
16
|
}.freeze
|
|
17
17
|
|
|
18
|
-
attr_accessor
|
|
18
|
+
attr_accessor(
|
|
19
19
|
:document,
|
|
20
20
|
:categories,
|
|
21
21
|
:model,
|
|
@@ -23,8 +23,10 @@ module Retab
|
|
|
23
23
|
:instructions,
|
|
24
24
|
:n_consensus,
|
|
25
25
|
:bust_cache
|
|
26
|
+
)
|
|
26
27
|
|
|
27
28
|
def initialize(json)
|
|
29
|
+
super()
|
|
28
30
|
hash = self.class.normalize(json)
|
|
29
31
|
@document = hash[:document] ? Retab::MimeData.new(hash[:document]) : nil
|
|
30
32
|
@categories = (hash[:categories] || []).map { |item| item ? Retab::Category.new(item) : nil }
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# This file is auto-generated by oagen. Do not edit.
|
|
4
4
|
|
|
5
|
-
require
|
|
5
|
+
require "json"
|
|
6
6
|
|
|
7
7
|
module Retab
|
|
8
8
|
class Classifications
|
|
@@ -19,34 +19,34 @@ module Retab
|
|
|
19
19
|
# @param from_date [String, nil]
|
|
20
20
|
# @param to_date [String, nil]
|
|
21
21
|
# @param request_options [Hash] (see Retab::Types::RequestOptions)
|
|
22
|
-
# @return [Retab::
|
|
22
|
+
# @return [Retab::PaginatedList<Retab::Classification>]
|
|
23
23
|
def list(
|
|
24
24
|
before: nil,
|
|
25
25
|
after: nil,
|
|
26
26
|
limit: 10,
|
|
27
|
-
order:
|
|
27
|
+
order: "desc",
|
|
28
28
|
filename: nil,
|
|
29
29
|
from_date: nil,
|
|
30
30
|
to_date: nil,
|
|
31
31
|
request_options: {}
|
|
32
32
|
)
|
|
33
33
|
params = {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
"before" => before,
|
|
35
|
+
"after" => after,
|
|
36
|
+
"limit" => limit,
|
|
37
|
+
"order" => order,
|
|
38
|
+
"filename" => filename,
|
|
39
|
+
"from_date" => from_date,
|
|
40
|
+
"to_date" => to_date
|
|
41
41
|
}.compact
|
|
42
42
|
response = @client.request(
|
|
43
43
|
method: :get,
|
|
44
|
-
path:
|
|
44
|
+
path: "/v1/classifications",
|
|
45
45
|
auth: true,
|
|
46
46
|
params: params,
|
|
47
47
|
request_options: request_options
|
|
48
48
|
)
|
|
49
|
-
fetch_next = ->(cursor) {
|
|
49
|
+
fetch_next = -> (cursor) {
|
|
50
50
|
list(
|
|
51
51
|
before: before,
|
|
52
52
|
after: cursor,
|
|
@@ -58,10 +58,17 @@ module Retab
|
|
|
58
58
|
request_options: request_options
|
|
59
59
|
)
|
|
60
60
|
}
|
|
61
|
-
Retab::
|
|
61
|
+
Retab::PaginatedList.from_response(
|
|
62
62
|
response,
|
|
63
63
|
model: Retab::Classification,
|
|
64
|
-
filters: {
|
|
64
|
+
filters: {
|
|
65
|
+
before: before,
|
|
66
|
+
limit: limit,
|
|
67
|
+
order: order,
|
|
68
|
+
filename: filename,
|
|
69
|
+
from_date: from_date,
|
|
70
|
+
to_date: to_date
|
|
71
|
+
},
|
|
65
72
|
fetch_next: fetch_next
|
|
66
73
|
)
|
|
67
74
|
end
|
|
@@ -88,23 +95,27 @@ module Retab
|
|
|
88
95
|
)
|
|
89
96
|
document = Retab::MimeData.coerce(document) unless document.nil?
|
|
90
97
|
body = {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
"document" => document,
|
|
99
|
+
"categories" => categories,
|
|
100
|
+
"model" => model,
|
|
101
|
+
"first_n_pages" => first_n_pages,
|
|
102
|
+
"instructions" => instructions,
|
|
103
|
+
"n_consensus" => n_consensus,
|
|
104
|
+
"bust_cache" => bust_cache
|
|
98
105
|
}.compact
|
|
99
106
|
response = @client.request(
|
|
100
107
|
method: :post,
|
|
101
|
-
path:
|
|
108
|
+
path: "/v1/classifications",
|
|
102
109
|
auth: true,
|
|
103
110
|
body: body,
|
|
104
111
|
request_options: request_options
|
|
105
112
|
)
|
|
106
113
|
result = Retab::Classification.new(response.body)
|
|
107
|
-
result.last_response = Retab::Types::ApiResponse.new(
|
|
114
|
+
result.last_response = Retab::Types::ApiResponse.new(
|
|
115
|
+
http_status: response.code.to_i,
|
|
116
|
+
http_headers: response.each_header.to_h,
|
|
117
|
+
request_id: response["x-request-id"]
|
|
118
|
+
)
|
|
108
119
|
result
|
|
109
120
|
end
|
|
110
121
|
|
|
@@ -123,7 +134,11 @@ module Retab
|
|
|
123
134
|
request_options: request_options
|
|
124
135
|
)
|
|
125
136
|
result = Retab::Classification.new(response.body)
|
|
126
|
-
result.last_response = Retab::Types::ApiResponse.new(
|
|
137
|
+
result.last_response = Retab::Types::ApiResponse.new(
|
|
138
|
+
http_status: response.code.to_i,
|
|
139
|
+
http_headers: response.each_header.to_h,
|
|
140
|
+
request_id: response["x-request-id"]
|
|
141
|
+
)
|
|
127
142
|
result
|
|
128
143
|
end
|
|
129
144
|
|
|
@@ -135,7 +150,7 @@ module Retab
|
|
|
135
150
|
classification_id:,
|
|
136
151
|
request_options: {}
|
|
137
152
|
)
|
|
138
|
-
|
|
153
|
+
@client.request(
|
|
139
154
|
method: :delete,
|
|
140
155
|
path: "/v1/classifications/#{Retab::Util.encode_path(classification_id)}",
|
|
141
156
|
auth: true,
|
data/lib/retab/client.rb
CHANGED
|
@@ -33,78 +33,10 @@ module Retab
|
|
|
33
33
|
@files ||= Retab::Files.new(self)
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
-
def workflow_runs
|
|
37
|
-
@workflow_runs ||= Retab::WorkflowRuns.new(self)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def workflow_steps
|
|
41
|
-
@workflow_steps ||= Retab::WorkflowSteps.new(self)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def workflow_reviews
|
|
45
|
-
@workflow_reviews ||= Retab::WorkflowReviews.new(self)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def workflow_review_versions
|
|
49
|
-
@workflow_review_versions ||= Retab::WorkflowReviewVersions.new(self)
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def workflow_artifacts
|
|
53
|
-
@workflow_artifacts ||= Retab::WorkflowArtifacts.new(self)
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def workflow_test_runs
|
|
57
|
-
@workflow_test_runs ||= Retab::WorkflowTestRuns.new(self)
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def workflow_test_run_results
|
|
61
|
-
@workflow_test_run_results ||= Retab::WorkflowTestRunResults.new(self)
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
def workflow_blocks
|
|
65
|
-
@workflow_blocks ||= Retab::WorkflowBlocks.new(self)
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def workflow_edges
|
|
69
|
-
@workflow_edges ||= Retab::WorkflowEdges.new(self)
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def workflow_tests
|
|
73
|
-
@workflow_tests ||= Retab::WorkflowTests.new(self)
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
def experiment_runs
|
|
77
|
-
@experiment_runs ||= Retab::ExperimentRuns.new(self)
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
def experiment_run_results
|
|
81
|
-
@experiment_run_results ||= Retab::ExperimentRunResults.new(self)
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def experiment_run_metrics
|
|
85
|
-
@experiment_run_metrics ||= Retab::ExperimentRunMetrics.new(self)
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
def workflow_experiments
|
|
89
|
-
@workflow_experiments ||= Retab::WorkflowExperiments.new(self)
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
def workflow_block_executions
|
|
93
|
-
@workflow_block_executions ||= Retab::WorkflowBlockExecutions.new(self)
|
|
94
|
-
end
|
|
95
|
-
|
|
96
36
|
def workflows
|
|
97
37
|
@workflows ||= Retab::Workflows.new(self)
|
|
98
38
|
end
|
|
99
39
|
|
|
100
|
-
def workflow_specs
|
|
101
|
-
@workflow_specs ||= Retab::WorkflowSpecs.new(self)
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
def edit_templates
|
|
105
|
-
@edit_templates ||= Retab::EditTemplates.new(self)
|
|
106
|
-
end
|
|
107
|
-
|
|
108
40
|
def edits
|
|
109
41
|
@edits ||= Retab::Edits.new(self)
|
|
110
42
|
end
|
data/lib/retab/configuration.rb
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
# This file is auto-generated by oagen. Do not edit.
|
|
4
|
+
|
|
3
5
|
# @oagen-ignore-file
|
|
4
6
|
#
|
|
5
|
-
# Hand-maintained configuration.
|
|
6
|
-
#
|
|
7
|
+
# Hand-maintained configuration. The spec-driven resources read `@client.api_key`
|
|
8
|
+
# and friends; defaults here drive that.
|
|
7
9
|
|
|
8
10
|
module Retab
|
|
9
11
|
class Configuration
|
|
10
|
-
DEFAULT_API_HOST =
|
|
12
|
+
DEFAULT_API_HOST = "https://api.retab.com"
|
|
11
13
|
|
|
12
14
|
attr_accessor :api_key, :api_host, :timeout, :max_retries, :user_agent
|
|
13
15
|
|
|
14
|
-
def initialize(api_key: nil, api_host: nil, timeout: nil, max_retries: nil, user_agent: nil)
|
|
16
|
+
def initialize(api_key: nil, api_host: nil, base_url: nil, timeout: nil, max_retries: nil, user_agent: nil)
|
|
15
17
|
@api_key = api_key
|
|
16
|
-
@api_host = api_host || DEFAULT_API_HOST
|
|
18
|
+
@api_host = api_host || base_url || DEFAULT_API_HOST
|
|
17
19
|
@timeout = timeout || 60
|
|
18
20
|
@max_retries = max_retries || 3
|
|
19
|
-
@user_agent = user_agent || "retab-ruby/#{Retab::VERSION rescue
|
|
21
|
+
@user_agent = user_agent || "retab-ruby/#{Retab::VERSION rescue "0.1.0"}"
|
|
20
22
|
end
|
|
21
23
|
end
|
|
22
24
|
end
|
|
@@ -11,12 +11,14 @@ module Retab
|
|
|
11
11
|
form_fields: :form_fields
|
|
12
12
|
}.freeze
|
|
13
13
|
|
|
14
|
-
attr_accessor
|
|
14
|
+
attr_accessor(
|
|
15
15
|
:name,
|
|
16
16
|
:document,
|
|
17
17
|
:form_fields
|
|
18
|
+
)
|
|
18
19
|
|
|
19
20
|
def initialize(json)
|
|
21
|
+
super()
|
|
20
22
|
hash = self.class.normalize(json)
|
|
21
23
|
@name = hash[:name]
|
|
22
24
|
@document = hash[:document] ? Retab::MimeData.new(hash[:document]) : nil
|
|
@@ -15,7 +15,7 @@ module Retab
|
|
|
15
15
|
updated_at: :updated_at
|
|
16
16
|
}.freeze
|
|
17
17
|
|
|
18
|
-
attr_accessor
|
|
18
|
+
attr_accessor(
|
|
19
19
|
:id,
|
|
20
20
|
:name,
|
|
21
21
|
:file,
|
|
@@ -23,8 +23,10 @@ module Retab
|
|
|
23
23
|
:field_count,
|
|
24
24
|
:created_at,
|
|
25
25
|
:updated_at
|
|
26
|
+
)
|
|
26
27
|
|
|
27
28
|
def initialize(json)
|
|
29
|
+
super()
|
|
28
30
|
hash = self.class.normalize(json)
|
|
29
31
|
@id = hash[:id]
|
|
30
32
|
@name = hash[:name]
|
|
@@ -10,11 +10,13 @@ module Retab
|
|
|
10
10
|
form_fields: :form_fields
|
|
11
11
|
}.freeze
|
|
12
12
|
|
|
13
|
-
attr_accessor
|
|
13
|
+
attr_accessor(
|
|
14
14
|
:name,
|
|
15
15
|
:form_fields
|
|
16
|
+
)
|
|
16
17
|
|
|
17
18
|
def initialize(json)
|
|
19
|
+
super()
|
|
18
20
|
hash = self.class.normalize(json)
|
|
19
21
|
@name = hash[:name]
|
|
20
22
|
@form_fields = (hash[:form_fields] || []).map { |item| item ? Retab::FormField.new(item) : nil }
|